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)
Generic GeometricField class.
An Istream is an abstract base class for all input systems (streams, files, token lists etc)....
A special matrix type and solver, designed for finite volume solutions of scalar equations....
Mesh data needed to do the Finite Volume discretisation.
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.
convectionScheme(const convectionScheme &)
Copy construct.
Abstract base class for multi-variate surface interpolation schemes.
constexpr refCount() noexcept
Default construct, initializing count to 0.
A class for managing temporary objects.
A class for handling words, derived from Foam::string.
Abstract base class for finite volume calculus convection schemes.
Namespace for finite-volume.
GeometricField< scalar, fvsPatchField, surfaceMesh > surfaceScalarField
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
Basic run-time type information using word as the type's name. Used to enhance the standard RTTI to c...
Forwards and collection of common volume field types.