46 #ifndef LimitedScheme_H 47 #define LimitedScheme_H 63 template<
class Type,
class Limiter,
template<
class>
class LimitFunc>
153 #define makeLimitedSurfaceInterpolationTypeScheme\ 162 typedef LimitedScheme<TYPE, LIMITER<NVDTVD>, limitFuncs::LIMFUNC> \ 163 LimitedScheme##TYPE##LIMITER##NVDTVD##LIMFUNC##_; \ 164 defineTemplateTypeNameAndDebugWithName \ 165 (LimitedScheme##TYPE##LIMITER##NVDTVD##LIMFUNC##_, #SS, 0); \ 167 surfaceInterpolationScheme<TYPE>::addMeshConstructorToTable \ 168 <LimitedScheme<TYPE, LIMITER<NVDTVD>, limitFuncs::LIMFUNC>> \ 169 add##SS##LIMFUNC##TYPE##MeshConstructorToTable_; \ 171 surfaceInterpolationScheme<TYPE>::addMeshFluxConstructorToTable \ 172 <LimitedScheme<TYPE, LIMITER<NVDTVD>, limitFuncs::LIMFUNC>> \ 173 add##SS##LIMFUNC##TYPE##MeshFluxConstructorToTable_; \ 175 limitedSurfaceInterpolationScheme<TYPE>::addMeshConstructorToTable \ 176 <LimitedScheme<TYPE, LIMITER<NVDTVD>, limitFuncs::LIMFUNC>> \ 177 add##SS##LIMFUNC##TYPE##MeshConstructorToLimitedTable_; \ 179 limitedSurfaceInterpolationScheme<TYPE>::addMeshFluxConstructorToTable \ 180 <LimitedScheme<TYPE, LIMITER<NVDTVD>, limitFuncs::LIMFUNC>> \ 181 add##SS##LIMFUNC##TYPE##MeshFluxConstructorToLimitedTable_; 184 #define makeLimitedSurfaceInterpolationScheme(SS, LIMITER) \ 186 makeLimitedSurfaceInterpolationTypeScheme(SS,LIMITER,NVDTVD,magSqr,scalar) \ 187 makeLimitedSurfaceInterpolationTypeScheme(SS,LIMITER,NVDTVD,magSqr,vector) \ 188 makeLimitedSurfaceInterpolationTypeScheme \ 196 makeLimitedSurfaceInterpolationTypeScheme(SS,LIMITER,NVDTVD,magSqr,symmTensor)\ 197 makeLimitedSurfaceInterpolationTypeScheme(SS,LIMITER,NVDTVD,magSqr,tensor) 200 #define makeLimitedVSurfaceInterpolationScheme(SS, LIMITER) \ 201 makeLimitedSurfaceInterpolationTypeScheme(SS,LIMITER,NVDVTVDV,null,vector) 204 #define makeLLimitedSurfaceInterpolationTypeScheme\ 214 typedef LimitedScheme<TYPE, LLIMITER<LIMITER<NVDTVD>>, limitFuncs::LIMFUNC> \ 215 LimitedScheme##TYPE##LLIMITER##LIMITER##NVDTVD##LIMFUNC##_; \ 216 defineTemplateTypeNameAndDebugWithName \ 217 (LimitedScheme##TYPE##LLIMITER##LIMITER##NVDTVD##LIMFUNC##_, #SS, 0); \ 219 surfaceInterpolationScheme<TYPE>::addMeshConstructorToTable \ 220 <LimitedScheme<TYPE, LLIMITER<LIMITER<NVDTVD>>, limitFuncs::LIMFUNC>> \ 221 add##SS##LIMFUNC##TYPE##MeshConstructorToTable_; \ 223 surfaceInterpolationScheme<TYPE>::addMeshFluxConstructorToTable \ 224 <LimitedScheme<TYPE, LLIMITER<LIMITER<NVDTVD>>, limitFuncs::LIMFUNC>> \ 225 add##SS##LIMFUNC##TYPE##MeshFluxConstructorToTable_; \ 227 limitedSurfaceInterpolationScheme<TYPE>::addMeshConstructorToTable \ 228 <LimitedScheme<TYPE, LLIMITER<LIMITER<NVDTVD>>, limitFuncs::LIMFUNC>> \ 229 add##SS##LIMFUNC##TYPE##MeshConstructorToLimitedTable_; \ 231 limitedSurfaceInterpolationScheme<TYPE>::addMeshFluxConstructorToTable \ 232 <LimitedScheme<TYPE, LLIMITER<LIMITER<NVDTVD>>, limitFuncs::LIMFUNC>> \ 233 add##SS##LIMFUNC##TYPE##MeshFluxConstructorToLimitedTable_;
LimitedScheme(const fvMesh &mesh, const surfaceScalarField &faceFlux, const Limiter &weight)
Construct from mesh and faceFlux and limiter scheme.
Class to create NVD/TVD limited weighting-factors.
An Istream is an abstract base class for all input systems (streams, files, token lists etc)...
Generic GeometricField class.
void operator=(const LimitedScheme &)=delete
Disallow default bitwise assignment.
TypeName("LimitedScheme")
Runtime type information.
virtual tmp< surfaceScalarField > limiter(const GeometricField< Type, fvPatchField, volMesh > &) const
Return the interpolation weighting factors.
Mesh data needed to do the Finite Volume discretisation.
Abstract base class for limited surface interpolation schemes.
A class for managing temporary objects.