Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 8 additions & 3 deletions SU2_CFD/include/solvers/CScalarSolver.inl
Original file line number Diff line number Diff line change
Expand Up @@ -99,6 +99,7 @@ void CScalarSolver<VariableType>::CommonPreprocessing(CGeometry *geometry, const
const bool muscl = config->GetMUSCL();
const bool limiter = (config->GetKind_SlopeLimit() != LIMITER::NONE) &&
(config->GetInnerIter() <= config->GetLimiterIter());
const bool van_albada = (config->GetKind_SlopeLimit() == LIMITER::VAN_ALBADA_EDGE);

/*--- Clear residual and system matrix, not needed for
* reducer strategy as we write over the entire matrix. ---*/
Expand Down Expand Up @@ -126,7 +127,7 @@ void CScalarSolver<VariableType>::CommonPreprocessing(CGeometry *geometry, const
case WEIGHTED_LEAST_SQUARES: SetSolution_Gradient_LS(geometry, config, -1); break;
}

if (limiter && muscl) SetSolution_Limiter(geometry, config);
if (limiter && !van_albada && muscl) SetSolution_Limiter(geometry, config);
}

template <class VariableType>
Expand All @@ -141,6 +142,7 @@ void CScalarSolver<VariableType>::Upwind_Residual(CGeometry* geometry, CSolver**
const bool muscl = config->GetMUSCL();
const bool limiter = (config->GetKind_SlopeLimit() != LIMITER::NONE) &&
(config->GetInnerIter() <= config->GetLimiterIter());
const bool van_albada = (config->GetKind_SlopeLimit() == LIMITER::VAN_ALBADA_EDGE);

/*--- Only reconstruct flow variables if MUSCL is on for flow (requires upwind) and turbulence. ---*/
const bool musclFlow = config->GetMUSCL_Flow() && muscl && (config->GetKind_ConvNumScheme_Flow() == SPACE_UPWIND);
Expand Down Expand Up @@ -258,7 +260,7 @@ void CScalarSolver<VariableType>::Upwind_Residual(CGeometry* geometry, CSolver**
auto Gradient_i = nodes->GetGradient_Reconstruction(iPoint);
auto Gradient_j = nodes->GetGradient_Reconstruction(jPoint);

if (limiter) {
if (limiter && !van_albada) {
Limiter_i = nodes->GetLimiter(iPoint);
Limiter_j = nodes->GetLimiter(jPoint);
}
Expand All @@ -269,7 +271,10 @@ void CScalarSolver<VariableType>::Upwind_Residual(CGeometry* geometry, CSolver**
su2double Project_Grad_i = MUSCL_Reconstruction(Gradient_i[iVar], Vector_ij, U_ij, kappa, musclRamp);
su2double Project_Grad_j = MUSCL_Reconstruction(Gradient_j[iVar], Vector_ij, U_ij, kappa, musclRamp);

if (limiter) {
if (van_albada) {
Project_Grad_i *= LimiterHelpers<>::vanAlbadaFunction(Project_Grad_i, U_ij, EPS);
Project_Grad_j *= LimiterHelpers<>::vanAlbadaFunction(Project_Grad_j, U_ij, EPS);
Comment on lines +274 to +276
} else if (limiter) {
Project_Grad_i *= Limiter_i[iVar];
Project_Grad_j *= Limiter_j[iVar];
}
Expand Down
14 changes: 9 additions & 5 deletions SU2_CFD/src/output/CFlowOutput.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1476,7 +1476,7 @@ void CFlowOutput::SetVolumeOutputFieldsScalarLimiter(const CConfig* config) {
/*--- Only place outputs of the "SOLUTION" group for species transport here. ---*/


if (config->GetKind_SlopeLimit_Turb() != LIMITER::NONE) {
if (config->GetKind_SlopeLimit_Turb() != LIMITER::NONE && config->GetKind_SlopeLimit_Turb() != LIMITER::VAN_ALBADA_EDGE) {
switch (TurbModelFamily(config->GetKind_Turb_Model())) {
case TURB_FAMILY::SA:
AddVolumeOutput("LIMITER_NU_TILDE", "Limiter_Nu_Tilde", "LIMITER", "Limiter value of the Spalart-Allmaras variable");
Expand All @@ -1492,7 +1492,7 @@ void CFlowOutput::SetVolumeOutputFieldsScalarLimiter(const CConfig* config) {
}
}

if (config->GetKind_SlopeLimit_Species() != LIMITER::NONE) {
if (config->GetKind_SlopeLimit_Species() != LIMITER::NONE && config->GetKind_SlopeLimit_Species() != LIMITER::VAN_ALBADA_EDGE) {
switch (config->GetKind_Species_Model()) {
case SPECIES_MODEL::SPECIES_TRANSPORT:
for (unsigned short iVar = 0; iVar < config->GetnSpecies(); iVar++)
Expand Down Expand Up @@ -1658,7 +1658,8 @@ void CFlowOutput::LoadVolumeDataScalar(const CConfig* config, const CSolver* con
SetVolumeOutputValue("Q_CRITERION", iPoint, GetQCriterion(Node_Flow->GetVelocityGradient(iPoint)));
}

const bool limiter = (config->GetKind_SlopeLimit_Turb() != LIMITER::NONE);
const bool limiter = (config->GetKind_SlopeLimit_Turb() != LIMITER::NONE) &&
(config->GetKind_SlopeLimit_Turb() != LIMITER::VAN_ALBADA_EDGE);

switch (TurbModelFamily(config->GetKind_Turb_Model())) {
case TURB_FAMILY::SA:
Expand Down Expand Up @@ -1728,6 +1729,9 @@ void CFlowOutput::LoadVolumeDataScalar(const CConfig* config, const CSolver* con
}
}

const bool limiter_species = (config->GetKind_SlopeLimit_Species() != LIMITER::NONE) &&
(config->GetKind_SlopeLimit_Species() != LIMITER::VAN_ALBADA_EDGE);

switch (config->GetKind_Species_Model()) {

case SPECIES_MODEL::SPECIES_TRANSPORT: {
Expand All @@ -1736,7 +1740,7 @@ void CFlowOutput::LoadVolumeDataScalar(const CConfig* config, const CSolver* con
SetVolumeOutputValue("SPECIES_" + std::to_string(iVar), iPoint, Node_Species->GetSolution(iPoint, iVar));
SetVolumeOutputValue("RES_SPECIES_" + std::to_string(iVar), iPoint, solver[SPECIES_SOL]->LinSysRes(iPoint, iVar));
SetVolumeOutputValue("DIFFUSIVITY_"+ std::to_string(iVar), iPoint, Node_Species->GetDiffusivity(iPoint,iVar));
if (config->GetKind_SlopeLimit_Species() != LIMITER::NONE)
if (limiter_species)
SetVolumeOutputValue("LIMITER_SPECIES_" + std::to_string(iVar), iPoint, Node_Species->GetLimiter(iPoint, iVar));
if (config->GetPyCustomSource()){
SetVolumeOutputValue("SPECIES_UDS_" + std::to_string(iVar), iPoint, Node_Species->GetUserDefinedSource()(iPoint, iVar));
Expand Down Expand Up @@ -1765,7 +1769,7 @@ void CFlowOutput::LoadVolumeDataScalar(const CConfig* config, const CSolver* con
SetVolumeOutputValue("RES_" + scalar_name, iPoint, solver[SPECIES_SOL]->LinSysRes(iPoint, flamelet_config_options.n_control_vars + i_scalar));
}

if (config->GetKind_SlopeLimit_Species() != LIMITER::NONE) {
if (limiter_species) {
/*--- Limiter for controlling variable transport equations. ---*/
for (auto iCV=0u; iCV<flamelet_config_options.n_control_vars; iCV++) {
const auto& cv_name = flamelet_config_options.controlling_variable_names[iCV];
Expand Down
2 changes: 1 addition & 1 deletion config_template.cfg
Original file line number Diff line number Diff line change
Expand Up @@ -1615,7 +1615,7 @@ MUSCL_TURB= NO
%
MUSCL_KAPPA_TURB= 0.0
%
% Slope limiter (same as SLOPE_LIMITER_FLOW except VAN_ALBADA_EDGE)
% Slope limiter (same as SLOPE_LIMITER_FLOW)
%
SLOPE_LIMITER_TURB= VENKATAKRISHNAN
%
Expand Down