Go to the documentation of this file.
38 #ifndef CentredFitSnGradScheme_H
39 #define CentredFitSnGradScheme_H
59 template<
class Type,
class Polynomial,
class Stencil>
69 const scalar linearLimitFactor_;
72 const scalar centralWeight_;
96 linearLimitFactor_(readScalar(is)),
165 #define makeCentredFitSnGradTypeScheme(SS, POLYNOMIAL, STENCIL, TYPE) \
166 typedef Foam::fv::CentredFitSnGradScheme \
167 <Foam::TYPE, Foam::POLYNOMIAL, Foam::STENCIL> \
168 CentredFitSnGradScheme##TYPE##POLYNOMIAL##STENCIL##_; \
170 defineTemplateTypeNameAndDebugWithName \
171 (CentredFitSnGradScheme##TYPE##POLYNOMIAL##STENCIL##_, #SS, 0); \
177 snGradScheme<TYPE>::addMeshConstructorToTable \
178 <CentredFitSnGradScheme<TYPE, POLYNOMIAL, STENCIL>> \
179 add##SS##STENCIL##TYPE##MeshConstructorToTable_; \
183 #define makeCentredFitSnGradScheme(SS, POLYNOMIAL, STENCIL) \
185 makeCentredFitSnGradTypeScheme(SS,POLYNOMIAL,STENCIL,scalar) \
186 makeCentredFitSnGradTypeScheme(SS,POLYNOMIAL,STENCIL,vector) \
187 makeCentredFitSnGradTypeScheme(SS,POLYNOMIAL,STENCIL,sphericalTensor) \
188 makeCentredFitSnGradTypeScheme(SS,POLYNOMIAL,STENCIL,symmTensor) \
189 makeCentredFitSnGradTypeScheme(SS,POLYNOMIAL,STENCIL,tensor)
const dimensionSet dimLength(0, 1, 0, 0, 0, 0, 0)
virtual const surfaceScalarField & nonOrthDeltaCoeffs() const
Return reference to non-orthogonal cell-centre difference.
A class for managing temporary objects.
virtual tmp< surfaceScalarField > deltaCoeffs(const GeometricField< Type, fvPatchField, volMesh > &) const
Return the interpolation weighting factors for the given field.
CentredFitSnGradScheme(const fvMesh &mesh, Istream &is)
Construct from mesh and Istream.
static const Type & New(const Mesh &mesh, Args &&... args)
Get existing or create a new MeshObject.
virtual tmp< GeometricField< Type, fvsPatchField, surfaceMesh > > correction(const GeometricField< Type, fvPatchField, volMesh > &vf) const
Return the explicit correction to the face-interpolate.
TypeName("CentredFitSnGradScheme")
Runtime type information.
An Istream is an abstract base class for all input systems (streams, files, token lists etc)....
Mesh data needed to do the Finite Volume discretisation.
Data for centred fit snGrad schemes.
const fvMesh & mesh() const
Return const reference to mesh.
Abstract base class for runtime selected snGrad surface normal gradient schemes.
virtual bool corrected() const noexcept
Return true if this scheme uses an explicit correction.
tmp< GeometricField< Type, fvsPatchField, surfaceMesh > > weightedSum(const GeometricField< Type, fvPatchField, volMesh > &fld, const List< List< scalar >> &stencilWeights) const
Sum vol field contributions to create face values.
const List< scalarList > & coeffs() const
Return reference to fit coefficients.