37#ifndef edgeInterpolationScheme_H
38#define edgeInterpolationScheme_H
92 (
mesh, faceFlux, schemeData)
148 static tmp<GeometricField<Type, faePatchField, edgeMesh>>
183 virtual bool corrected()
const {
return false; }
195 virtual tmp<GeometricField<Type, faePatchField, edgeMesh>>
196 interpolate(
const GeometricField<Type, faPatchField, areaMesh>&)
const;
224#define makeEdgeInterpolationTypeScheme(SS, Type) \
226defineNamedTemplateTypeNameAndDebug(SS<Type>, 0); \
228edgeInterpolationScheme<Type>::addMeshConstructorToTable<SS<Type>> \
229 add##SS##Type##MeshConstructorToTable_; \
231edgeInterpolationScheme<Type>::addMeshFluxConstructorToTable<SS<Type>> \
232 add##SS##Type##MeshFluxConstructorToTable_;
234#define makeEdgeInterpolationScheme(SS) \
236makeEdgeInterpolationTypeScheme(SS, scalar) \
237makeEdgeInterpolationTypeScheme(SS, vector) \
238makeEdgeInterpolationTypeScheme(SS, tensor)
Forwards and collection of common area field types.
Generic GeometricField class.
An Istream is an abstract base class for all input systems (streams, files, token lists etc)....
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.
edgeInterpolationScheme(const edgeInterpolationScheme &)=delete
No copy construct.
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.
void operator=(const edgeInterpolationScheme &)=delete
No copy assignment.
Finite area mesh (used for 2-D non-Euclidian finite area method) defined using a patch of faces on a ...
constexpr refCount() noexcept
Default construct, initializing count to 0.
A class for managing temporary objects.
Forwards for edge field types.
GeometricField< scalar, faePatchField, edgeMesh > edgeScalarField
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).