38template<
class FieldType,
class GradientType>
49 const FieldType& field,
50 const GradientType& gradient,
58#define INSTANTIATE(KIND)\
59if (geometry.GetnDim() == 2) {\
60 computeLimiters_impl<2,KIND>(solver, kindMpiComm, kindPeriodicComm1, kindPeriodicComm2, geometry,\
61 config, varBegin, varEnd, umusclKappa, field, gradient, fieldMin, fieldMax, limiter);\
63 computeLimiters_impl<3,KIND>(solver, kindMpiComm, kindPeriodicComm1, kindPeriodicComm2, geometry,\
64 config, varBegin, varEnd, umusclKappa, field, gradient, fieldMin, fieldMax, limiter);\
66 switch (LimiterKind) {
70 for(
size_t iPoint = 0; iPoint < geometry.
GetnPoint(); ++iPoint)
71 for(
size_t iVar = varBegin; iVar < varEnd; ++iVar)
72 limiter(iPoint, iVar) = 1.0;
A class template that allows defining limiters via specialization of particular details.
static void Error(const std::string &ErrorMsg, const std::string &FunctionName)
Definition mpi_structure.cpp:131
Main class for defining the problem; basically this class reads the configuration file,...
Definition CConfig.hpp:64
Parent class for defining the geometry of the problem (complete geometry, multigrid agglomerated geom...
Definition CGeometry.hpp:75
unsigned long GetnPoint() const
Get number of points.
Definition CGeometry.hpp:587
unsigned short GetnDim() const
Get number of coordinates.
Definition CGeometry.hpp:575
Definition CSolver.hpp:71
passivedouble su2double
Definition code_config.hpp:181
#define INSTANTIATE(KIND)
Generic computation of limiters.
void computeLimiters(LIMITER LimiterKind, CSolver *solver, MPI_QUANTITIES kindMpiComm, PERIODIC_QUANTITIES kindPeriodicComm1, PERIODIC_QUANTITIES kindPeriodicComm2, CGeometry &geometry, const CConfig &config, size_t varBegin, size_t varEnd, su2double umusclKappa, const FieldType &field, const GradientType &gradient, FieldType &fieldMin, FieldType &fieldMax, FieldType &limiter)
A wrapper funtion that calls specialized implementations depending on "LimiterKind"....
Definition computeLimiters.hpp:39
#define CURRENT_FUNCTION
Definition mpi_structure.hpp:59
#define END_SU2_OMP_FOR
Definition omp_structure.hpp:158
#define SU2_OMP_FOR_STAT(CHUNK)
Definition omp_structure.hpp:151
LIMITER
Types of slope limiters.
Definition option_structure.hpp:1038
@ VENKATAKRISHNAN
Slope limiter using Venkatakrisnan method (stencil formulation).
@ NISHIKAWA_R3
Slope limiter using Nishikawa's R3 method (stencil formulation).
@ NISHIKAWA_R4
Slope limiter using Nishikawa's R4 method (stencil formulation).
@ SHARP_EDGES
Slope limiter using sharp edges.
@ NISHIKAWA_R5
Slope limiter using Nishikawa's R5 method (stencil formulation).
@ VENKATAKRISHNAN_WANG
Slope limiter using Venkatakrisnan method, eps based on solution (stencil formulation).
@ WALL_DISTANCE
Slope limiter using wall distance.
@ BARTH_JESPERSEN
Slope limiter using Barth-Jespersen method (stencil formulation).
PERIODIC_QUANTITIES
Vertex-based quantities exchanged during periodic marker communications.
Definition option_structure.hpp:2843
MPI_QUANTITIES
Vertex-based quantities exchanged in MPI point-to-point communications.
Definition option_structure.hpp:2873