37#ifndef edgeInterpolationScheme_H
38#define edgeInterpolationScheme_H
100 (
mesh, faceFlux, schemeData)
226#define makeEdgeInterpolationTypeScheme(SS, Type) \
228defineNamedTemplateTypeNameAndDebug(SS<Type>, 0); \
230edgeInterpolationScheme<Type>::addMeshConstructorToTable<SS<Type>> \
231 add##SS##Type##MeshConstructorToTable_; \
233edgeInterpolationScheme<Type>::addMeshFluxConstructorToTable<SS<Type>> \
234 add##SS##Type##MeshFluxConstructorToTable_;
236#define makeEdgeInterpolationScheme(SS) \
238makeEdgeInterpolationTypeScheme(SS, scalar) \
239makeEdgeInterpolationTypeScheme(SS, vector) \
240makeEdgeInterpolationTypeScheme(SS, tensor)
Forwards and collection of common area field types.
An Istream is an abstract base class for all input systems (streams, files, token lists etc)....
Abstract base class for edge interpolation schemes.
virtual bool corrected() const
Return true if this scheme uses an explicit correction.
declareRunTimeSelectionTable(tmp, edgeInterpolationScheme, Mesh,(const faMesh &mesh, Istream &schemeData),(mesh, schemeData))
static tmp< GeometricField< Type, faePatchField, edgeMesh > > interpolate(const GeometricField< Type, faPatchField, areaMesh > &, const tmp< edgeScalarField > &, const tmp< edgeScalarField > &)
Return the face-interpolate of the given cell field.
edgeInterpolationScheme(const faMesh &mesh)
Construct from mesh.
virtual tmp< edgeScalarField > weights(const GeometricField< Type, faPatchField, areaMesh > &) const =0
Return the interpolation weighting factors for the given field.
static tmp< edgeInterpolationScheme< Type > > New(const faMesh &mesh, Istream &schemeData)
Return new tmp interpolation scheme.
virtual tmp< GeometricField< Type, faePatchField, edgeMesh > > correction(const GeometricField< Type, faPatchField, areaMesh > &) const
Return the explicit correction to the face-interpolate.
virtual ~edgeInterpolationScheme()
const faMesh & mesh() const
Return mesh reference.
declareRunTimeSelectionTable(tmp, edgeInterpolationScheme, MeshFlux,(const faMesh &mesh, const edgeScalarField &faceFlux, Istream &schemeData),(mesh, faceFlux, schemeData))
static tmp< GeometricField< Type, faePatchField, edgeMesh > > euclidianInterpolate(const GeometricField< Type, faPatchField, areaMesh > &, const tmp< edgeScalarField > &)
Return the euclidian edge-interpolate of the given area field.
Finite area mesh (used for 2-D non-Euclidian finite area method) defined using a patch of faces on a ...
Reference counter for various OpenFOAM components.
A class for managing temporary objects.
Forwards for edge field 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)