40#ifndef convectionScheme_H
41#define convectionScheme_H
82 virtual const word&
type()
const = 0;
97 (
mesh, faceFlux, schemeData)
211#define makeFvConvectionTypeScheme(SS, Type) \
212 defineNamedTemplateTypeNameAndDebug(Foam::fv::SS<Foam::Type>, 0); \
218 convectionScheme<Type>::addIstreamConstructorToTable<SS<Type>> \
219 add##SS##Type##IstreamConstructorToTable_; \
223#define makeFvConvectionScheme(SS) \
225makeFvConvectionTypeScheme(SS, scalar) \
226makeFvConvectionTypeScheme(SS, vector) \
227makeFvConvectionTypeScheme(SS, sphericalTensor) \
228makeFvConvectionTypeScheme(SS, symmTensor) \
229makeFvConvectionTypeScheme(SS, tensor)
232#define makeMultivariateFvConvectionTypeScheme(SS, Type) \
233 defineNamedTemplateTypeNameAndDebug(Foam::fv::SS<Foam::Type>, 0); \
239 convectionScheme<Type>:: \
240 addMultivariateConstructorToTable<SS<Type>> \
241 add##SS##Type##MultivariateConstructorToTable_; \
246#define makeMultivariateFvConvectionScheme(SS) \
248makeMultivariateFvConvectionTypeScheme(SS, scalar) \
249makeMultivariateFvConvectionTypeScheme(SS, vector) \
250makeMultivariateFvConvectionTypeScheme(SS, sphericalTensor) \
251makeMultivariateFvConvectionTypeScheme(SS, symmTensor) \
252makeMultivariateFvConvectionTypeScheme(SS, tensor)
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.
Abstract base class for convection schemes.
virtual tmp< GeometricField< Type, fvPatchField, volMesh > > fvcDiv(const surfaceScalarField &, const GeometricField< Type, fvPatchField, volMesh > &) const =0
virtual tmp< GeometricField< Type, fvsPatchField, surfaceMesh > > interpolate(const surfaceScalarField &, const GeometricField< Type, fvPatchField, volMesh > &) const =0
void operator=(const convectionScheme< Type > &)
declareRunTimeSelectionTable(tmp, convectionScheme, Istream,(const fvMesh &mesh, const surfaceScalarField &faceFlux, Istream &schemeData),(mesh, faceFlux, schemeData))
virtual tmp< GeometricField< Type, fvsPatchField, surfaceMesh > > flux(const surfaceScalarField &, const GeometricField< Type, fvPatchField, volMesh > &) const =0
virtual ~convectionScheme()
Destructor.
declareRunTimeSelectionTable(tmp, convectionScheme, Multivariate,(const fvMesh &mesh, const typename multivariateSurfaceInterpolationScheme< Type >::fieldTable &fields, const surfaceScalarField &faceFlux, Istream &schemeData),(mesh, fields, faceFlux, schemeData))
const fvMesh & mesh() const
Return mesh reference.
convectionScheme(const fvMesh &mesh, const surfaceScalarField &)
Construct from mesh, flux and Istream.
virtual const word & type() const =0
Runtime type information.
virtual tmp< fvMatrix< Type > > fvmDiv(const surfaceScalarField &, const GeometricField< Type, fvPatchField, volMesh > &) const =0
static tmp< convectionScheme< Type > > New(const fvMesh &mesh, const surfaceScalarField &faceFlux, Istream &schemeData)
Return a pointer to a new convectionScheme created on freestore.
Abstract base class for multi-variate surface interpolation schemes.
Reference counter for various OpenFOAM components.
A class for managing temporary objects.
A class for handling words, derived from Foam::string.
Abstract base class for finite volume calculus convection schemes.
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)
multivariateSurfaceInterpolationScheme< scalar >::fieldTable fields