46 #ifndef LimitedScheme_H 47 #define LimitedScheme_H 63 template<
class Type,
class Limiter,
template<
class>
class LimitFunc>
150 #define makeLimitedSurfaceInterpolationTypeScheme\ 159 typedef LimitedScheme<TYPE, LIMITER<NVDTVD>, limitFuncs::LIMFUNC> \ 160 LimitedScheme##TYPE##LIMITER##NVDTVD##LIMFUNC##_; \ 161 defineTemplateTypeNameAndDebugWithName \ 162 (LimitedScheme##TYPE##LIMITER##NVDTVD##LIMFUNC##_, #SS, 0); \ 164 surfaceInterpolationScheme<TYPE>::addMeshConstructorToTable \ 165 <LimitedScheme<TYPE, LIMITER<NVDTVD>, limitFuncs::LIMFUNC>> \ 166 add##SS##LIMFUNC##TYPE##MeshConstructorToTable_; \ 168 surfaceInterpolationScheme<TYPE>::addMeshFluxConstructorToTable \ 169 <LimitedScheme<TYPE, LIMITER<NVDTVD>, limitFuncs::LIMFUNC>> \ 170 add##SS##LIMFUNC##TYPE##MeshFluxConstructorToTable_; \ 172 limitedSurfaceInterpolationScheme<TYPE>::addMeshConstructorToTable \ 173 <LimitedScheme<TYPE, LIMITER<NVDTVD>, limitFuncs::LIMFUNC>> \ 174 add##SS##LIMFUNC##TYPE##MeshConstructorToLimitedTable_; \ 176 limitedSurfaceInterpolationScheme<TYPE>::addMeshFluxConstructorToTable \ 177 <LimitedScheme<TYPE, LIMITER<NVDTVD>, limitFuncs::LIMFUNC>> \ 178 add##SS##LIMFUNC##TYPE##MeshFluxConstructorToLimitedTable_; 181 #define makeLimitedSurfaceInterpolationScheme(SS, LIMITER) \ 183 makeLimitedSurfaceInterpolationTypeScheme(SS,LIMITER,NVDTVD,magSqr,scalar) \ 184 makeLimitedSurfaceInterpolationTypeScheme(SS,LIMITER,NVDTVD,magSqr,vector) \ 185 makeLimitedSurfaceInterpolationTypeScheme \ 193 makeLimitedSurfaceInterpolationTypeScheme(SS,LIMITER,NVDTVD,magSqr,symmTensor)\ 194 makeLimitedSurfaceInterpolationTypeScheme(SS,LIMITER,NVDTVD,magSqr,tensor) 197 #define makeLimitedVSurfaceInterpolationScheme(SS, LIMITER) \ 198 makeLimitedSurfaceInterpolationTypeScheme(SS,LIMITER,NVDVTVDV,null,vector) 201 #define makeLLimitedSurfaceInterpolationTypeScheme\ 211 typedef LimitedScheme<TYPE, LLIMITER<LIMITER<NVDTVD>>, limitFuncs::LIMFUNC> \ 212 LimitedScheme##TYPE##LLIMITER##LIMITER##NVDTVD##LIMFUNC##_; \ 213 defineTemplateTypeNameAndDebugWithName \ 214 (LimitedScheme##TYPE##LLIMITER##LIMITER##NVDTVD##LIMFUNC##_, #SS, 0); \ 216 surfaceInterpolationScheme<TYPE>::addMeshConstructorToTable \ 217 <LimitedScheme<TYPE, LLIMITER<LIMITER<NVDTVD>>, limitFuncs::LIMFUNC>> \ 218 add##SS##LIMFUNC##TYPE##MeshConstructorToTable_; \ 220 surfaceInterpolationScheme<TYPE>::addMeshFluxConstructorToTable \ 221 <LimitedScheme<TYPE, LLIMITER<LIMITER<NVDTVD>>, limitFuncs::LIMFUNC>> \ 222 add##SS##LIMFUNC##TYPE##MeshFluxConstructorToTable_; \ 224 limitedSurfaceInterpolationScheme<TYPE>::addMeshConstructorToTable \ 225 <LimitedScheme<TYPE, LLIMITER<LIMITER<NVDTVD>>, limitFuncs::LIMFUNC>> \ 226 add##SS##LIMFUNC##TYPE##MeshConstructorToLimitedTable_; \ 228 limitedSurfaceInterpolationScheme<TYPE>::addMeshFluxConstructorToTable \ 229 <LimitedScheme<TYPE, LLIMITER<LIMITER<NVDTVD>>, limitFuncs::LIMFUNC>> \ 230 add##SS##LIMFUNC##TYPE##MeshFluxConstructorToLimitedTable_;
Class to create NVD/TVD limited weighting-factors.
An Istream is an abstract base class for all input systems (streams, files, token lists etc)...
virtual tmp< surfaceScalarField > limiter(const GeometricField< Type, fvPatchField, volMesh > &) const
Return the interpolation weighting factors.
Generic GeometricField class.
TypeName("LimitedScheme")
Runtime type information.
Mesh data needed to do the Finite Volume discretisation.
Abstract base class for limited surface interpolation schemes.
A class for managing temporary objects.