35 #ifndef surfaceInterpolationScheme_H 36 #define surfaceInterpolationScheme_H 69 TypeName(
"surfaceInterpolationScheme");
96 (mesh, faceFlux, schemeData)
156 template<
class SFType>
229 typename innerProduct<vector, Type>::type,
286 #define makeSurfaceInterpolationTypeScheme(SS, Type) \ 288 defineNamedTemplateTypeNameAndDebug(SS<Type>, 0); \ 290 surfaceInterpolationScheme<Type>::addMeshConstructorToTable<SS<Type>> \ 291 add##SS##Type##MeshConstructorToTable_; \ 293 surfaceInterpolationScheme<Type>::addMeshFluxConstructorToTable<SS<Type>> \ 294 add##SS##Type##MeshFluxConstructorToTable_; 296 #define makeSurfaceInterpolationScheme(SS) \ 298 makeSurfaceInterpolationTypeScheme(SS, scalar) \ 299 makeSurfaceInterpolationTypeScheme(SS, vector) \ 300 makeSurfaceInterpolationTypeScheme(SS, sphericalTensor) \ 301 makeSurfaceInterpolationTypeScheme(SS, symmTensor) \ 302 makeSurfaceInterpolationTypeScheme(SS, tensor)
virtual bool corrected() const
Return true if this scheme uses an explicit correction.
declareRunTimeSelectionTable(tmp, surfaceInterpolationScheme, Mesh,(const fvMesh &mesh, Istream &schemeData),(mesh, schemeData))
Mesh data needed to do the Finite Volume discretisation.
Reference counter for various OpenFOAM components.
An Istream is an abstract base class for all input systems (streams, files, token lists etc)...
surfaceInterpolationScheme(const fvMesh &mesh)
Construct from mesh.
const fvMesh & mesh() const
Return mesh reference.
static tmp< surfaceInterpolationScheme< Type > > New(const fvMesh &mesh, Istream &schemeData)
Return new tmp interpolation scheme.
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.
virtual ~surfaceInterpolationScheme()
Destructor.
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.
void operator=(const surfaceInterpolationScheme &)=delete
Disallow default bitwise assignment.
Mesh data needed to do the Finite Volume discretisation.
virtual tmp< surfaceScalarField > weights(const GeometricField< Type, fvPatchField, volMesh > &) const =0
Return the interpolation weighting factors for the given field.
Macros to ease declaration of run-time selection tables.
A class for managing temporary objects.
TypeName("surfaceInterpolationScheme")
Runtime type information.
typeOfRank< typename pTraits< arg1 >::cmptType, direction(pTraits< arg1 >::rank)+direction(pTraits< arg2 >::rank) - 2 >::type type
Abstract base class for surface interpolation schemes.
An abstract base class with a fat-interface to all derived classes covering all possible ways in whic...
virtual tmp< GeometricField< Type, fvsPatchField, surfaceMesh > > correction(const GeometricField< Type, fvPatchField, volMesh > &) const
Return the explicit correction to the face-interpolate.