37#ifndef surfaceInterpolationScheme_H
38#define surfaceInterpolationScheme_H
80 TypeName(
"surfaceInterpolationScheme");
107 (
mesh, faceFlux, schemeData)
163 template<
class SFType>
287#define makeSurfaceInterpolationTypeScheme(SS, Type) \
289defineNamedTemplateTypeNameAndDebug(SS<Type>, 0); \
291surfaceInterpolationScheme<Type>::addMeshConstructorToTable<SS<Type>> \
292 add##SS##Type##MeshConstructorToTable_; \
294surfaceInterpolationScheme<Type>::addMeshFluxConstructorToTable<SS<Type>> \
295 add##SS##Type##MeshFluxConstructorToTable_;
297#define makeSurfaceInterpolationScheme(SS) \
299makeSurfaceInterpolationTypeScheme(SS, scalar) \
300makeSurfaceInterpolationTypeScheme(SS, vector) \
301makeSurfaceInterpolationTypeScheme(SS, sphericalTensor) \
302makeSurfaceInterpolationTypeScheme(SS, symmTensor) \
303makeSurfaceInterpolationTypeScheme(SS, tensor)
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.
An abstract base class with a fat-interface to all derived classes covering all possible ways in whic...
typeOfRank< typenamepTraits< arg1 >::cmptType, direction(pTraits< arg1 >::rank)+direction(pTraits< arg2 >::rank) -2 >::type type
Reference counter for various OpenFOAM components.
Abstract base class for surface interpolation schemes.
virtual bool corrected() const
Return true if this scheme uses an explicit correction.
surfaceInterpolationScheme(const fvMesh &mesh)
Construct from mesh.
virtual tmp< surfaceScalarField > weights(const GeometricField< Type, fvPatchField, volMesh > &) const =0
Return the interpolation weighting factors for the given field.
static tmp< GeometricField< typename innerProduct< typename SFType::value_type, Type >::type, fvsPatchField, surfaceMesh > > dotInterpolate(const SFType &Sf, const GeometricField< Type, fvPatchField, volMesh > &vf, const tmp< surfaceScalarField > &tlambdas)
Return the face-interpolate of the given cell field.
TypeName("surfaceInterpolationScheme")
Runtime type information.
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.
declareRunTimeSelectionTable(tmp, surfaceInterpolationScheme, MeshFlux,(const fvMesh &mesh, const surfaceScalarField &faceFlux, Istream &schemeData),(mesh, faceFlux, schemeData))
const fvMesh & mesh() const
Return mesh reference.
virtual tmp< GeometricField< Type, fvsPatchField, surfaceMesh > > correction(const GeometricField< Type, fvPatchField, volMesh > &) const
Return the explicit correction to the face-interpolate.
static tmp< surfaceInterpolationScheme< Type > > New(const fvMesh &mesh, Istream &schemeData)
Return new tmp interpolation scheme.
declareRunTimeSelectionTable(tmp, surfaceInterpolationScheme, Mesh,(const fvMesh &mesh, Istream &schemeData),(mesh, schemeData))
virtual ~surfaceInterpolationScheme()=default
Destructor.
Mesh data needed to do the Finite Volume discretisation.
A class for managing temporary objects.
type
Volume classification types.
Macros to ease declaration of run-time selection tables.
#define declareRunTimeSelectionTable(ptrWrapper, baseType, argNames, argList, parList)
Declare a run-time selection (variables and adder classes)
#define TypeName(TypeNameString)
Declare a ClassName() with extra virtual type info.