37#ifndef multivariateSurfaceInterpolationScheme_H
38#define multivariateSurfaceInterpolationScheme_H
63 public HashTable<const GeometricField<Type, fvPatchField, volMesh>*>
85 const fieldTable& fields_;
103 virtual const word&
type()
const = 0;
212#define makeMultivariateSurfaceInterpolationTypeScheme(SS, Type) \
214defineNamedTemplateTypeNameAndDebug(SS<Type>, 0); \
216multivariateSurfaceInterpolationScheme<Type>:: \
217addIstreamConstructorToTable<SS<Type>> \
218 add##SS##Type##ConstructorToTable_;
221#define makeMultivariateSurfaceInterpolationScheme(SS) \
223makeMultivariateSurfaceInterpolationTypeScheme(SS, scalar) \
224makeMultivariateSurfaceInterpolationTypeScheme(SS, vector) \
225makeMultivariateSurfaceInterpolationTypeScheme(SS, sphericalTensor) \
226makeMultivariateSurfaceInterpolationTypeScheme(SS, symmTensor) \
227makeMultivariateSurfaceInterpolationTypeScheme(SS, tensor)
Generic GeometricField class.
A HashTable similar to std::unordered_map.
bool insert(const word &key, const const GeometricField< Type, fvPatchField, volMesh > * &obj)
Copy insert a new entry, not overwriting existing entries.
const word & name() const noexcept
Return the object name.
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.
surfaceInterpolationScheme sub-class returned by operator(field)
virtual tmp< surfaceScalarField > weights(const GeometricField< Type, fvPatchField, volMesh > &field) const =0
Return the interpolation weighting factors.
fieldScheme(const GeometricField< Type, fvPatchField, volMesh > &field)
void add(const GeometricField< Type, fvPatchField, volMesh > &f)
Abstract base class for multi-variate surface interpolation schemes.
virtual ~multivariateSurfaceInterpolationScheme()=default
Destructor.
static tmp< multivariateSurfaceInterpolationScheme< Type > > New(const fvMesh &mesh, const fieldTable &fields, const surfaceScalarField &faceFlux, Istream &schemeData)
Return a pointer to a new gradScheme created on freestore.
const fieldTable & fields() const
Return fields to be interpolated.
declareRunTimeSelectionTable(tmp, multivariateSurfaceInterpolationScheme, Istream,(const fvMesh &mesh, const fieldTable &fields, const surfaceScalarField &faceFlux, Istream &is),(mesh, fields, faceFlux, is))
const fvMesh & mesh() const
Return mesh reference.
multivariateSurfaceInterpolationScheme(const fvMesh &mesh, const fieldTable &fields, const surfaceScalarField &faceFlux, Istream &schemeData)
Construct for interpolating given field.
virtual const word & type() const =0
Runtime type information.
Reference counter for various OpenFOAM components.
Abstract base class for surface interpolation schemes.
const fvMesh & mesh() const
Return mesh reference.
A class for managing temporary objects.
A class for handling words, derived from Foam::string.
#define declareRunTimeSelectionTable(ptrWrapper, baseType, argNames, argList, parList)
Declare a run-time selection (variables and adder classes)