Skip to content

Commit 07b1a8c

Browse files
committed
Move muscl, limiter and implicit var to scalar class data.
1 parent dea0ae4 commit 07b1a8c

4 files changed

Lines changed: 15 additions & 34 deletions

File tree

SU2_CFD/include/solvers/CScalarSolver.hpp

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -57,6 +57,10 @@ class CScalarSolver : public CSolver {
5757

5858
const bool Conservative; /*!< \brief Transported Variable is conservative. Solution has to be multiplied with rho. */
5959

60+
bool implicit; /*!< \brief Solver uses an implicit scheme. */
61+
bool muscl; /*!< \brief Solver uses MUSCL reconstruction. */
62+
bool limiter; /*!< \brief Solver uses limiters. */
63+
6064
/*--- Shallow copy of grid coloring for OpenMP parallelization. ---*/
6165

6266
#ifdef HAVE_OMP

SU2_CFD/include/solvers/CScalarSolver.inl

Lines changed: 0 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -79,22 +79,6 @@ CScalarSolver<VariableType>::~CScalarSolver() {
7979

8080
template <class VariableType>
8181
void CScalarSolver<VariableType>::CommonPreprocessing(CGeometry *geometry, const CConfig *config, const bool Output) {
82-
/*--- Set booleans depending on the calling solver, alternatively one could add the bools to the func input. ---*/
83-
bool implicit = false;
84-
bool muscl = false;
85-
bool limiter = false;
86-
if (SolverName == "SA" || SolverName == "K-W SST") {
87-
implicit = (config->GetKind_TimeIntScheme_Turb() == EULER_IMPLICIT);
88-
muscl = config->GetMUSCL_Turb();
89-
limiter = (config->GetKind_SlopeLimit_Turb() != NO_LIMITER) &&
90-
(config->GetInnerIter() <= config->GetLimiterIter());
91-
}
92-
else if (SolverName == "SPECIES") {
93-
implicit = (config->GetKind_TimeIntScheme_Species() == EULER_IMPLICIT);
94-
muscl = config->GetMUSCL_Species();
95-
limiter = (config->GetKind_SlopeLimit_Species() != NO_LIMITER) &&
96-
(config->GetInnerIter() <= config->GetLimiterIter());
97-
}
9882

9983
/*--- Clear residual and system matrix, not needed for
10084
* reducer strategy as we write over the entire matrix. ---*/
@@ -129,19 +113,6 @@ template <class VariableType>
129113
void CScalarSolver<VariableType>::Upwind_Residual(CGeometry* geometry, CSolver** solver_container,
130114
CNumerics** numerics_container, CConfig* config,
131115
unsigned short iMesh) {
132-
const bool implicit = (config->GetKind_TimeIntScheme() == EULER_IMPLICIT);
133-
134-
bool muscl = false;
135-
bool limiter = false;
136-
if (SolverName == "SA" || SolverName == "K-W SST") {
137-
muscl = config->GetMUSCL_Turb();
138-
limiter = (config->GetKind_SlopeLimit_Turb() != NO_LIMITER);
139-
}
140-
else if (SolverName == "SPECIES") {
141-
muscl = config->GetMUSCL_Species();
142-
limiter = (config->GetKind_SlopeLimit_Species() != NO_LIMITER);
143-
}
144-
145116
/*--- Only reconstruct flow variables if MUSCL is on for flow (requires upwind) and turbulence. ---*/
146117
const bool musclFlow = config->GetMUSCL_Flow() && muscl && (config->GetKind_ConvNumScheme_Flow() == SPACE_UPWIND);
147118
/*--- Only consider flow limiters for cell-based limiters, edge-based would need to be recomputed. ---*/
@@ -484,7 +455,6 @@ template <class VariableType>
484455
void CScalarSolver<VariableType>::SetResidual_DualTime(CGeometry* geometry, CSolver** solver_container, CConfig* config,
485456
unsigned short iRKStep, unsigned short iMesh,
486457
unsigned short RunTime_EqSystem) {
487-
const bool implicit = (config->GetKind_TimeIntScheme() == EULER_IMPLICIT);
488458
const bool first_order = (config->GetTime_Marching() == TIME_MARCHING::DT_STEPPING_1ST);
489459
const bool second_order = (config->GetTime_Marching() == TIME_MARCHING::DT_STEPPING_2ND);
490460
const bool incompressible = (config->GetKind_Regime() == ENUM_REGIME::INCOMPRESSIBLE);

SU2_CFD/src/solvers/CSpeciesSolver.cpp

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,12 @@ CSpeciesSolver::CSpeciesSolver(CGeometry* geometry, CConfig* config, unsigned sh
5858

5959
nDim = geometry->GetnDim();
6060

61+
/*--- Set whether MUSCL and limiters are used in this solver, and implicit variable ---*/
62+
implicit = (config->GetKind_TimeIntScheme_Species() == EULER_IMPLICIT);
63+
muscl = config->GetMUSCL_Species();
64+
limiter = (config->GetKind_SlopeLimit_Species() != NO_LIMITER) &&
65+
(config->GetInnerIter() <= config->GetLimiterIter());
66+
6167
/*--- Single grid simulation ---*/
6268

6369
if (iMesh == MESH_0 || config->GetMGCycle() == FULLMG_CYCLE) {
@@ -390,7 +396,6 @@ void CSpeciesSolver::BC_Inlet(CGeometry* geometry, CSolver** solver_container, C
390396
LinSysRes.AddBlock(iPoint, residual);
391397

392398
/*--- Jacobian contribution for implicit integration ---*/
393-
const bool implicit = (config->GetKind_TimeIntScheme() == EULER_IMPLICIT);
394399
if (implicit) Jacobian.AddBlock2Diag(iPoint, residual.jacobian_i);
395400

396401
// Unfinished viscous contribution removed before right after d8a0da9a00. Further testing required.
@@ -535,7 +540,6 @@ void CSpeciesSolver::BC_Outlet(CGeometry* geometry, CSolver** solver_container,
535540
LinSysRes.AddBlock(iPoint, residual);
536541

537542
/*--- Jacobian contribution for implicit integration ---*/
538-
const bool implicit = (config->GetKind_TimeIntScheme() == EULER_IMPLICIT);
539543
if (implicit) Jacobian.AddBlock2Diag(iPoint, residual.jacobian_i);
540544

541545
// Unfinished viscous contribution removed before right after d8a0da9a00. Further testing required.

SU2_CFD/src/solvers/CTurbSolver.cpp

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,11 @@ CTurbSolver::CTurbSolver(CGeometry* geometry, CConfig *config, bool conservative
3737
: CScalarSolver<CTurbVariable>(geometry, config, conservative) {
3838
/*--- Store if an implicit scheme is used, for use during periodic boundary conditions. ---*/
3939
SetImplicitPeriodic(config->GetKind_TimeIntScheme_Turb() == EULER_IMPLICIT);
40+
41+
implicit = (config->GetKind_TimeIntScheme_Turb() == EULER_IMPLICIT);
42+
muscl = config->GetMUSCL_Turb();
43+
limiter = (config->GetKind_SlopeLimit_Turb() != NO_LIMITER) &&
44+
(config->GetInnerIter() <= config->GetLimiterIter());
4045
}
4146

4247
CTurbSolver::~CTurbSolver() {
@@ -336,8 +341,6 @@ void CTurbSolver::Impose_Fixed_Values(const CGeometry *geometry, const CConfig *
336341
/*--- Check whether turbulence quantities are fixed to far-field values on a half-plane. ---*/
337342
if(config->GetTurb_Fixed_Values()){
338343

339-
const bool implicit = (config->GetKind_TimeIntScheme() == EULER_IMPLICIT);
340-
341344
/*--- Form normalized far-field velocity ---*/
342345
const su2double* velocity_inf = config->GetVelocity_FreeStreamND();
343346
su2double velmag_inf = GeometryToolbox::Norm(nDim, velocity_inf);

0 commit comments

Comments
 (0)