Go to the documentation of this file.
46 #ifndef LimitedScheme_H
47 #define LimitedScheme_H
63 template<
class Type,
class Limiter,
template<
class>
class LimitFunc>
143 #define makeLimitedSurfaceInterpolationTypeScheme(SS, LIMITER, NVDTVD, LIMFUNC, TYPE) \
145 typedef LimitedScheme<TYPE, LIMITER<NVDTVD>, limitFuncs::LIMFUNC> \
146 LimitedScheme##TYPE##LIMITER##NVDTVD##LIMFUNC##_; \
147 defineTemplateTypeNameAndDebugWithName \
148 (LimitedScheme##TYPE##LIMITER##NVDTVD##LIMFUNC##_, #SS, 0); \
150 surfaceInterpolationScheme<TYPE>::addMeshConstructorToTable \
151 <LimitedScheme<TYPE, LIMITER<NVDTVD>, limitFuncs::LIMFUNC> > \
152 add##SS##LIMFUNC##TYPE##MeshConstructorToTable_; \
154 surfaceInterpolationScheme<TYPE>::addMeshFluxConstructorToTable \
155 <LimitedScheme<TYPE, LIMITER<NVDTVD>, limitFuncs::LIMFUNC> > \
156 add##SS##LIMFUNC##TYPE##MeshFluxConstructorToTable_; \
158 limitedSurfaceInterpolationScheme<TYPE>::addMeshConstructorToTable \
159 <LimitedScheme<TYPE, LIMITER<NVDTVD>, limitFuncs::LIMFUNC> > \
160 add##SS##LIMFUNC##TYPE##MeshConstructorToLimitedTable_; \
162 limitedSurfaceInterpolationScheme<TYPE>::addMeshFluxConstructorToTable \
163 <LimitedScheme<TYPE, LIMITER<NVDTVD>, limitFuncs::LIMFUNC> > \
164 add##SS##LIMFUNC##TYPE##MeshFluxConstructorToLimitedTable_;
167 #define makeLimitedSurfaceInterpolationScheme(SS, LIMITER) \
169 makeLimitedSurfaceInterpolationTypeScheme(SS,LIMITER,NVDTVD,magSqr,scalar) \
170 makeLimitedSurfaceInterpolationTypeScheme(SS,LIMITER,NVDTVD,magSqr,vector) \
171 makeLimitedSurfaceInterpolationTypeScheme(SS,LIMITER,NVDTVD,magSqr,sphericalTensor) \
172 makeLimitedSurfaceInterpolationTypeScheme(SS,LIMITER,NVDTVD,magSqr,symmTensor)\
173 makeLimitedSurfaceInterpolationTypeScheme(SS,LIMITER,NVDTVD,magSqr,tensor)
176 #define makeLimitedVSurfaceInterpolationScheme(SS, LIMITER) \
177 makeLimitedSurfaceInterpolationTypeScheme(SS,LIMITER,NVDVTVDV,null,vector)
180 #define makeLLimitedSurfaceInterpolationTypeScheme(SS, LLIMITER, LIMITER, NVDTVD, LIMFUNC, TYPE) \
182 typedef LimitedScheme<TYPE, LLIMITER<LIMITER<NVDTVD> >, limitFuncs::LIMFUNC> \
183 LimitedScheme##TYPE##LLIMITER##LIMITER##NVDTVD##LIMFUNC##_; \
184 defineTemplateTypeNameAndDebugWithName \
185 (LimitedScheme##TYPE##LLIMITER##LIMITER##NVDTVD##LIMFUNC##_, #SS, 0); \
187 surfaceInterpolationScheme<TYPE>::addMeshConstructorToTable \
188 <LimitedScheme<TYPE, LLIMITER<LIMITER<NVDTVD> >, limitFuncs::LIMFUNC> > \
189 add##SS##LIMFUNC##TYPE##MeshConstructorToTable_; \
191 surfaceInterpolationScheme<TYPE>::addMeshFluxConstructorToTable \
192 <LimitedScheme<TYPE, LLIMITER<LIMITER<NVDTVD> >, limitFuncs::LIMFUNC> > \
193 add##SS##LIMFUNC##TYPE##MeshFluxConstructorToTable_; \
195 limitedSurfaceInterpolationScheme<TYPE>::addMeshConstructorToTable \
196 <LimitedScheme<TYPE, LLIMITER<LIMITER<NVDTVD> >, limitFuncs::LIMFUNC> > \
197 add##SS##LIMFUNC##TYPE##MeshConstructorToLimitedTable_; \
199 limitedSurfaceInterpolationScheme<TYPE>::addMeshFluxConstructorToTable \
200 <LimitedScheme<TYPE, LLIMITER<LIMITER<NVDTVD> >, limitFuncs::LIMFUNC> > \
201 add##SS##LIMFUNC##TYPE##MeshFluxConstructorToLimitedTable_;