41#ifndef skewCorrected_H
42#define skewCorrected_H
61 public surfaceInterpolationScheme<Type>
71 skewCorrected(
const skewCorrected&) =
delete;
74 void operator=(
const skewCorrected&) =
delete;
92 surfaceInterpolationScheme<Type>(
mesh),
95 surfaceInterpolationScheme<Type>::
New(
mesh, is)
108 surfaceInterpolationScheme<Type>(
mesh),
111 surfaceInterpolationScheme<Type>::
New(
mesh, faceFlux, is)
124 return tScheme_().weights(vf);
131 tScheme_().corrected()
151 "skewCorrected::skewCorrection(" + vf.
name() +
')',
152 mesh.time().timeName(),
160 for (
direction cmpt=0; cmpt<pTraits<Type>::nComponents; cmpt++)
162 tsfCorr.ref().replace
185 virtual tmp<GeometricField<Type, fvsPatchField, surfaceMesh>>
188 const GeometricField<Type, fvPatchField, volMesh>& vf
201 return tScheme_().correction(vf);
210 tmp<GeometricField<Type, fvsPatchField, surfaceMesh>>
const dimensionSet & dimensions() const noexcept
Return dimensions.
Generic GeometricField class.
tmp< GeometricField< cmptType, PatchField, GeoMesh > > component(const direction) const
Return a component of the field.
Defines the attributes of an object for which implicit objectRegistry management is supported,...
const word & name() const noexcept
Return the object name.
An Istream is an abstract base class for all input systems (streams, files, token lists etc)....
static FOAM_NO_DANGLING_REFERENCE const skewCorrectionVectors & New(const fvMesh &mesh, Args &&... args)
Generic dimensioned Type class.
Mesh data needed to do the Finite Volume discretisation.
Basic second-order gradient scheme using face-interpolation and Gauss' theorem.
Central-differencing interpolation scheme class.
A traits class, which is primarily used for primitives and vector-space.
Skewness-corrected interpolation scheme that applies an explicit correction to given scheme.
skewCorrected(const fvMesh &mesh, Istream &is)
Construct from mesh and Istream.
virtual bool corrected() const
Return true if this scheme uses an explicit correction.
tmp< surfaceScalarField > weights(const GeometricField< Type, fvPatchField, volMesh > &vf) const
Return the interpolation weighting factors.
TypeName("skewCorrected")
Runtime type information.
virtual tmp< GeometricField< Type, fvsPatchField, surfaceMesh > > correction(const GeometricField< Type, fvPatchField, volMesh > &vf) const
Return the explicit correction to the face-interpolate.
skewCorrected(const fvMesh &mesh, const surfaceScalarField &faceFlux, Istream &is)
Construct from mesh, faceFlux and Istream.
tmp< GeometricField< Type, fvsPatchField, surfaceMesh > > skewCorrection(const GeometricField< Type, fvPatchField, volMesh > &vf) const
Skew-correction vectors for the skewness-corrected interpolation scheme.
bool skew() const
Return whether mesh is skew or not.
static tmp< GeometricField< Type, fvsPatchField, surfaceMesh > > interpolate(const GeometricField< Type, fvPatchField, volMesh > &, const tmp< surfaceScalarField > &, const tmp< surfaceScalarField > &)
Return the face-interpolate of the given cell field.
const fvMesh & mesh() const
Return mesh reference.
static tmp< surfaceInterpolationScheme< Type > > New(const fvMesh &mesh, Istream &schemeData)
Return new tmp interpolation scheme.
A class for managing temporary objects.
T & ref() const
Return non-const reference to the contents of a non-null managed pointer.
GeometricField< scalar, fvsPatchField, surfaceMesh > surfaceScalarField
static constexpr const zero Zero
Global zero (0).
dimensionedTensor skew(const dimensionedTensor &dt)
#define TypeName(TypeNameString)
Declare a ClassName() with extra virtual type info.