51 #ifndef LimitedScheme_H 52 #define LimitedScheme_H 68 template<
class Type,
class Limiter,
template<
class>
class LimitFunc>
104 const Limiter& weight
155 #define makeLimitedSurfaceInterpolationTypeScheme\ 164 typedef LimitedScheme<TYPE, LIMITER<NVDTVD>, limitFuncs::LIMFUNC> \ 165 LimitedScheme##TYPE##LIMITER##NVDTVD##LIMFUNC##_; \ 166 defineTemplateTypeNameAndDebugWithName \ 167 (LimitedScheme##TYPE##LIMITER##NVDTVD##LIMFUNC##_, #SS, 0); \ 169 surfaceInterpolationScheme<TYPE>::addMeshConstructorToTable \ 170 <LimitedScheme<TYPE, LIMITER<NVDTVD>, limitFuncs::LIMFUNC>> \ 171 add##SS##LIMFUNC##TYPE##MeshConstructorToTable_; \ 173 surfaceInterpolationScheme<TYPE>::addMeshFluxConstructorToTable \ 174 <LimitedScheme<TYPE, LIMITER<NVDTVD>, limitFuncs::LIMFUNC>> \ 175 add##SS##LIMFUNC##TYPE##MeshFluxConstructorToTable_; \ 177 limitedSurfaceInterpolationScheme<TYPE>::addMeshConstructorToTable \ 178 <LimitedScheme<TYPE, LIMITER<NVDTVD>, limitFuncs::LIMFUNC>> \ 179 add##SS##LIMFUNC##TYPE##MeshConstructorToLimitedTable_; \ 181 limitedSurfaceInterpolationScheme<TYPE>::addMeshFluxConstructorToTable \ 182 <LimitedScheme<TYPE, LIMITER<NVDTVD>, limitFuncs::LIMFUNC>> \ 183 add##SS##LIMFUNC##TYPE##MeshFluxConstructorToLimitedTable_; 186 #define makeLimitedSurfaceInterpolationScheme(SS, LIMITER) \ 188 makeLimitedSurfaceInterpolationTypeScheme(SS,LIMITER,NVDTVD,magSqr,scalar) \ 189 makeLimitedSurfaceInterpolationTypeScheme(SS,LIMITER,NVDTVD,magSqr,vector) \ 190 makeLimitedSurfaceInterpolationTypeScheme \ 198 makeLimitedSurfaceInterpolationTypeScheme(SS,LIMITER,NVDTVD,magSqr,symmTensor)\ 199 makeLimitedSurfaceInterpolationTypeScheme(SS,LIMITER,NVDTVD,magSqr,tensor) 202 #define makeLimitedVSurfaceInterpolationScheme(SS, LIMITER) \ 203 makeLimitedSurfaceInterpolationTypeScheme(SS,LIMITER,NVDVTVDV,null,vector) 206 #define makeLLimitedSurfaceInterpolationTypeScheme\ 216 typedef LimitedScheme<TYPE, LLIMITER<LIMITER<NVDTVD>>, limitFuncs::LIMFUNC> \ 217 LimitedScheme##TYPE##LLIMITER##LIMITER##NVDTVD##LIMFUNC##_; \ 218 defineTemplateTypeNameAndDebugWithName \ 219 (LimitedScheme##TYPE##LLIMITER##LIMITER##NVDTVD##LIMFUNC##_, #SS, 0); \ 221 surfaceInterpolationScheme<TYPE>::addMeshConstructorToTable \ 222 <LimitedScheme<TYPE, LLIMITER<LIMITER<NVDTVD>>, limitFuncs::LIMFUNC>> \ 223 add##SS##LIMFUNC##TYPE##MeshConstructorToTable_; \ 225 surfaceInterpolationScheme<TYPE>::addMeshFluxConstructorToTable \ 226 <LimitedScheme<TYPE, LLIMITER<LIMITER<NVDTVD>>, limitFuncs::LIMFUNC>> \ 227 add##SS##LIMFUNC##TYPE##MeshFluxConstructorToTable_; \ 229 limitedSurfaceInterpolationScheme<TYPE>::addMeshConstructorToTable \ 230 <LimitedScheme<TYPE, LLIMITER<LIMITER<NVDTVD>>, limitFuncs::LIMFUNC>> \ 231 add##SS##LIMFUNC##TYPE##MeshConstructorToLimitedTable_; \ 233 limitedSurfaceInterpolationScheme<TYPE>::addMeshFluxConstructorToTable \ 234 <LimitedScheme<TYPE, LLIMITER<LIMITER<NVDTVD>>, limitFuncs::LIMFUNC>> \ 235 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)...
Generic GeometricField class.
const fvMesh & mesh() const
Return mesh reference.
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.