37#ifndef multivariateSurfaceInterpolationScheme_H
38#define multivariateSurfaceInterpolationScheme_H
53class multivariateSurfaceInterpolationScheme
63 public HashTable<const GeometricField<Type, fvPatchField, volMesh>*>
85 const fieldTable& fields_;
91 multivariateSurfaceInterpolationScheme
93 const multivariateSurfaceInterpolationScheme&
97 void operator=(
const multivariateSurfaceInterpolationScheme&) =
delete;
103 virtual const word&
type()
const = 0;
111 multivariateSurfaceInterpolationScheme,
126 multivariateSurfaceInterpolationScheme
160 const fieldTable&
fields()
const
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.
constexpr HashTable() noexcept
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.
constexpr refCount() noexcept
Default construct, initializing count to 0.
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.
GeometricField< scalar, fvsPatchField, surfaceMesh > surfaceScalarField
#define declareRunTimeSelectionTable(ptrWrapper, baseType, argNames, argList, parList)
Declare a run-time selection (variables and adder classes).
nonInt insert("surfaceSum(((S|magSf)*S)")