40#ifndef laplacianScheme_H
41#define laplacianScheme_H
69template<
class Type,
class GType>
95 virtual const word&
type()
const = 0;
127 tinterpGammaScheme_.reset(new linear<GType>(mesh));
128 tsnGradScheme_.reset(new correctedSnGrad<Type>(mesh));
132 tinterpGammaScheme_.reset
134 surfaceInterpolationScheme<GType>::New(mesh, is)
139 snGradScheme<Type>::New(mesh, is)
223#define makeFvLaplacianTypeScheme(SS, GType, Type) \
224 typedef Foam::fv::SS<Foam::Type, Foam::GType> SS##Type##GType; \
225 defineNamedTemplateTypeNameAndDebug(SS##Type##GType, 0); \
231 typedef SS<Type, GType> SS##Type##GType; \
233 laplacianScheme<Type, GType>:: \
234 addIstreamConstructorToTable<SS<Type, GType>> \
235 add##SS##Type##GType##IstreamConstructorToTable_; \
240#define makeFvLaplacianScheme(SS) \
242makeFvLaplacianTypeScheme(SS, scalar, scalar) \
243makeFvLaplacianTypeScheme(SS, symmTensor, scalar) \
244makeFvLaplacianTypeScheme(SS, tensor, scalar) \
245makeFvLaplacianTypeScheme(SS, scalar, vector) \
246makeFvLaplacianTypeScheme(SS, symmTensor, vector) \
247makeFvLaplacianTypeScheme(SS, tensor, vector) \
248makeFvLaplacianTypeScheme(SS, scalar, sphericalTensor) \
249makeFvLaplacianTypeScheme(SS, symmTensor, sphericalTensor) \
250makeFvLaplacianTypeScheme(SS, tensor, sphericalTensor) \
251makeFvLaplacianTypeScheme(SS, scalar, symmTensor) \
252makeFvLaplacianTypeScheme(SS, symmTensor, symmTensor) \
253makeFvLaplacianTypeScheme(SS, tensor, symmTensor) \
254makeFvLaplacianTypeScheme(SS, scalar, tensor) \
255makeFvLaplacianTypeScheme(SS, symmTensor, tensor) \
256makeFvLaplacianTypeScheme(SS, tensor, tensor)
Generic GeometricField class.
bool eof() const noexcept
True if end of input seen.
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.
Surface gradient scheme with full explicit non-orthogonal correction.
virtual tmp< fvMatrix< Type > > fvmLaplacian(const GeometricField< GType, fvsPatchField, surfaceMesh > &, const GeometricField< Type, fvPatchField, volMesh > &)=0
laplacianScheme(const laplacianScheme &)=delete
No copy construct.
declareRunTimeSelectionTable(tmp, laplacianScheme, Istream,(const fvMesh &mesh, Istream &schemeData),(mesh, schemeData))
void operator=(const laplacianScheme &)=delete
No copy assignment.
virtual tmp< GeometricField< Type, fvPatchField, volMesh > > fvcLaplacian(const GeometricField< Type, fvPatchField, volMesh > &)=0
tmp< snGradScheme< scalar > > tsnGradScheme_
virtual tmp< GeometricField< Type, fvPatchField, volMesh > > fvcLaplacian(const GeometricField< GType, fvPatchField, volMesh > &, const GeometricField< Type, fvPatchField, volMesh > &)
laplacianScheme(const fvMesh &mesh, const tmp< surfaceInterpolationScheme< GType > > &igs, const tmp< snGradScheme< Type > > &sngs)
Construct from mesh, interpolation and snGradScheme schemes.
tmp< surfaceInterpolationScheme< scalar > > tinterpGammaScheme_
virtual ~laplacianScheme()=default
Destructor.
static tmp< laplacianScheme< Type, GType > > New(const fvMesh &mesh, Istream &schemeData)
Return a pointer to a new laplacianScheme created on freestore.
const fvMesh & mesh() const
laplacianScheme(const fvMesh &mesh, Istream &is)
Construct from mesh and Istream.
laplacianScheme(const fvMesh &mesh)
Construct from mesh.
virtual tmp< fvMatrix< Type > > fvmLaplacian(const GeometricField< GType, fvPatchField, volMesh > &, const GeometricField< Type, fvPatchField, volMesh > &)
virtual tmp< GeometricField< Type, fvPatchField, volMesh > > fvcLaplacian(const GeometricField< GType, fvsPatchField, surfaceMesh > &, const GeometricField< Type, fvPatchField, volMesh > &)=0
virtual const word & type() const =0
Runtime type information.
Abstract base class for runtime selected snGrad surface normal gradient schemes.
Central-differencing interpolation scheme class.
constexpr refCount() noexcept
Default construct, initializing count to 0.
Abstract base class for surface interpolation schemes.
A class for managing temporary objects.
A class for handling words, derived from Foam::string.
Namespace for finite-volume.
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).
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.