38#ifndef multivariateScheme_H
39#define multivariateScheme_H
53template<
class Type,
class Scheme>
54class multivariateScheme
56 public multivariateSurfaceInterpolationScheme<Type>,
57 public Scheme::LimiterType
68 multivariateScheme(
const multivariateScheme&) =
delete;
71 void operator=(
const multivariateScheme&) =
delete;
86 const typename multivariateSurfaceInterpolationScheme<Type>::
99 public multivariateSurfaceInterpolationScheme<Type>::
116 multivariateSurfaceInterpolationScheme<Type>::
155#define makeLimitedMultivariateSurfaceInterpolationScheme(SS, LIMITER) \
156typedef multivariateScheme \
159 LimitedScheme<scalar, LIMITER<NVDTVD>, limitFuncs::magSqr> \
161 multivariateScheme##LIMITER##_; \
162 defineTemplateTypeNameAndDebugWithName \
164 multivariateScheme##LIMITER##_, \
169multivariateSurfaceInterpolationScheme<scalar>::addIstreamConstructorToTable \
174 LimitedScheme<scalar, LIMITER<NVDTVD>, limitFuncs::magSqr> \
177 addMultivariate##SS##ConstructorToTable_;
180#define makeLLimitedMultivariateSurfaceInterpolationScheme\
188typedef multivariateScheme \
191 LimitedScheme<scalar, LLIMITER<LIMITER<NVDTVD>>, limitFuncs::LIMFUNC> \
193 multivariateScheme##LLIMITER##LIMITER##NVDTVD##LIMFUNC##_; \
194 defineTemplateTypeNameAndDebugWithName \
196 multivariateScheme##LLIMITER##LIMITER##NVDTVD##LIMFUNC##_, \
201multivariateSurfaceInterpolationScheme<scalar>::addIstreamConstructorToTable \
206 LimitedScheme<scalar, LLIMITER<LIMITER<NVDTVD>>, limitFuncs::LIMFUNC> \
209 addMultivariate##SS##ConstructorToTable_;
Generic GeometricField class.
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.
tmp< surfaceScalarField > weights(const GeometricField< Type, fvPatchField, volMesh > &) const
Return the interpolation weighting factors.
fieldScheme(const GeometricField< Type, fvPatchField, volMesh > &field, const surfaceScalarField &weights)
multivariateScheme(const fvMesh &mesh, const typename multivariateSurfaceInterpolationScheme< Type >::fieldTable &fields, const surfaceScalarField &faceFlux, Istream &schemeData)
Construct for field, faceFlux and Istream.
TypeName("multivariateScheme")
Runtime type information.
const fieldTable & fields() const
const fvMesh & mesh() const
A class for managing temporary objects.
GeometricField< scalar, fvsPatchField, surfaceMesh > surfaceScalarField
#define TypeName(TypeNameString)
Declare a ClassName() with extra virtual type info.