Skip to content

Commit 6142816

Browse files
committed
Add MUSCL_KAPPA options to config class and template
1 parent 82ba477 commit 6142816

File tree

3 files changed

+82
-2
lines changed

3 files changed

+82
-2
lines changed

Common/include/CConfig.hpp

Lines changed: 37 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -590,8 +590,13 @@ class CConfig {
590590
MUSCL_Turb, /*!< \brief MUSCL scheme for the turbulence equations.*/
591591
MUSCL_Heat, /*!< \brief MUSCL scheme for the (fvm) heat equation.*/
592592
MUSCL_AdjFlow, /*!< \brief MUSCL scheme for the adj flow equations.*/
593-
MUSCL_AdjTurb; /*!< \brief MUSCL scheme for the adj turbulence equations.*/
594-
bool MUSCL_Species; /*!< \brief MUSCL scheme for the species equations.*/
593+
MUSCL_AdjTurb, /*!< \brief MUSCL scheme for the adj turbulence equations.*/
594+
MUSCL_Species; /*!< \brief MUSCL scheme for the species equations.*/
595+
su2double MUSCL_Kappa_Flow, /*!< \brief Blending coefficient for MUSCL scheme for the flow equations.*/
596+
MUSCL_Kappa_Turb, /*!< \brief Blending coefficient for MUSCL scheme for the turbulence equations.*/
597+
MUSCL_Kappa_Heat, /*!< \brief Blending coefficient for MUSCL scheme for the (fvm) heat equation.*/
598+
MUSCL_Kappa_AdjFlow, /*!< \brief Blending coefficient for MUSCL scheme for the adj flow equations.*/
599+
MUSCL_Kappa_Species; /*!< \brief MUSCL scheme for the species equations.*/
595600
bool Use_Accurate_Jacobians; /*!< \brief Use numerically computed Jacobians for AUSM+up(2) and SLAU(2). */
596601
bool Use_Accurate_Turb_Jacobians; /*!< \brief Use numerically computed Jacobians for standard SA turbulence model. */
597602
bool EulerPersson; /*!< \brief Boolean to determine whether this is an Euler simulation with Persson shock capturing. */
@@ -4655,6 +4660,36 @@ class CConfig {
46554660
*/
46564661
bool GetMUSCL_AdjTurb(void) const { return MUSCL_AdjTurb; }
46574662

4663+
/*!
4664+
* \brief Get the blending coefficient for the MUSCL scheme.
4665+
* \return Blending coefficient for the MUSCL scheme.
4666+
*/
4667+
su2double GetMUSCL_Kappa_Flow(void) const { return MUSCL_Kappa_Flow; }
4668+
4669+
/*!
4670+
* \brief Get the blending coefficient for the MUSCL scheme.
4671+
* \return Blending coefficient for the MUSCL scheme.
4672+
*/
4673+
su2double GetMUSCL_Kappa_Heat(void) const { return MUSCL_Kappa_Heat; }
4674+
4675+
/*!
4676+
* \brief Get the blending coefficient for the MUSCL scheme.
4677+
* \return Blending coefficient for the MUSCL scheme.
4678+
*/
4679+
su2double GetMUSCL_Kappa_Turb(void) const { return MUSCL_Kappa_Turb; }
4680+
4681+
/*!
4682+
* \brief Get the blending coefficient for the MUSCL scheme.
4683+
* \return Blending coefficient for the MUSCL scheme.
4684+
*/
4685+
su2double GetMUSCL_Kappa_Species(void) const { return MUSCL_Kappa_Species; }
4686+
4687+
/*!
4688+
* \brief Get the blending coefficient for the MUSCL scheme.
4689+
* \return Blending coefficient for the MUSCL scheme.
4690+
*/
4691+
su2double GetMUSCL_Kappa_AdjFlow(void) const { return MUSCL_Kappa_AdjFlow; }
4692+
46584693
/*!
46594694
* \brief Get whether to "Use Accurate Jacobians" for AUSM+up(2) and SLAU(2).
46604695
* \return yes/no.

Common/src/CConfig.cpp

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1984,6 +1984,8 @@ void CConfig::SetConfig_Options() {
19841984

19851985
/*!\brief MUSCL_FLOW \n DESCRIPTION: Check if the MUSCL scheme should be used \ingroup Config*/
19861986
addBoolOption("MUSCL_FLOW", MUSCL_Flow, true);
1987+
/*!\brief MUSCL_KAPPA_FLOW \n DESCRIPTION: Blending coefficient for the MUSCL scheme \ingroup Config*/
1988+
addDoubleOption("MUSCL_KAPPA_FLOW", MUSCL_Kappa_Flow, 0.0);
19871989
/*!\brief SLOPE_LIMITER_FLOW
19881990
* DESCRIPTION: Slope limiter for the direct solution. \n OPTIONS: See \link Limiter_Map \endlink \n DEFAULT VENKATAKRISHNAN \ingroup Config*/
19891991
addEnumOption("SLOPE_LIMITER_FLOW", Kind_SlopeLimit_Flow, Limiter_Map, LIMITER::VENKATAKRISHNAN);
@@ -2005,6 +2007,8 @@ void CConfig::SetConfig_Options() {
20052007
addConvectOption("CONV_NUM_METHOD_ADJFLOW", Kind_ConvNumScheme_AdjFlow, Kind_Centered_AdjFlow, Kind_Upwind_AdjFlow);
20062008
/*!\brief MUSCL_ADJFLOW \n DESCRIPTION: Check if the MUSCL scheme should be used \ingroup Config*/
20072009
addBoolOption("MUSCL_ADJFLOW", MUSCL_AdjFlow, true);
2010+
/*!\brief MUSCL_KAPPA_ADJFLOW \n DESCRIPTION: Blending coefficient for the MUSCL scheme \ingroup Config*/
2011+
addDoubleOption("MUSCL_KAPPA_ADJFLOW", MUSCL_Kappa_AdjFlow, 0.0);
20082012
/*!\brief SLOPE_LIMITER_ADJFLOW
20092013
* DESCRIPTION: Slope limiter for the adjoint solution. \n OPTIONS: See \link Limiter_Map \endlink \n DEFAULT VENKATAKRISHNAN \ingroup Config*/
20102014
addEnumOption("SLOPE_LIMITER_ADJFLOW", Kind_SlopeLimit_AdjFlow, Limiter_Map, LIMITER::VENKATAKRISHNAN);
@@ -2016,6 +2020,8 @@ void CConfig::SetConfig_Options() {
20162020

20172021
/*!\brief MUSCL_TURB \n DESCRIPTION: Check if the MUSCL scheme should be used \ingroup Config*/
20182022
addBoolOption("MUSCL_TURB", MUSCL_Turb, false);
2023+
/*!\brief MUSCL_KAPPA_TURB \n DESCRIPTION: Blending coefficient for the MUSCL scheme \ingroup Config*/
2024+
addDoubleOption("MUSCL_KAPPA_TURB", MUSCL_Kappa_Turb, 0.0);
20192025
/*!\brief SLOPE_LIMITER_TURB
20202026
* \n DESCRIPTION: Slope limiter \n OPTIONS: See \link Limiter_Map \endlink \n DEFAULT VENKATAKRISHNAN \ingroup Config*/
20212027
addEnumOption("SLOPE_LIMITER_TURB", Kind_SlopeLimit_Turb, Limiter_Map, LIMITER::VENKATAKRISHNAN);
@@ -2035,13 +2041,17 @@ void CConfig::SetConfig_Options() {
20352041

20362042
/*!\brief MUSCL_SPECIES \n DESCRIPTION: Check if the MUSCL scheme should be used \n DEFAULT false \ingroup Config*/
20372043
addBoolOption("MUSCL_SPECIES", MUSCL_Species, false);
2044+
/*!\brief MUSCL_KAPPA_SPECIES \n DESCRIPTION: Blending coefficient for the MUSCL scheme \ingroup Config*/
2045+
addDoubleOption("MUSCL_KAPPA_SPECIES", MUSCL_Kappa_Species, 0.0);
20382046
/*!\brief SLOPE_LIMITER_SPECIES \n DESCRIPTION: Slope limiter \n OPTIONS: See \link Limiter_Map \endlink \n DEFAULT NONE \ingroup Config*/
20392047
addEnumOption("SLOPE_LIMITER_SPECIES", Kind_SlopeLimit_Species, Limiter_Map, LIMITER::NONE);
20402048
/*!\brief CONV_NUM_METHOD_SPECIES \n DESCRIPTION: Convective numerical method for species transport \ingroup Config*/
20412049
addConvectOption("CONV_NUM_METHOD_SPECIES", Kind_ConvNumScheme_Species, Kind_Centered_Species, Kind_Upwind_Species);
20422050

20432051
/*!\brief MUSCL_HEAT \n DESCRIPTION: Check if the MUSCL scheme should be used \ingroup Config*/
20442052
addBoolOption("MUSCL_HEAT", MUSCL_Heat, false);
2053+
/*!\brief MUSCL_KAPPA_HEAT \n DESCRIPTION: Blending coefficient for the MUSCL scheme \ingroup Config*/
2054+
addDoubleOption("MUSCL_KAPPA_HEAT", MUSCL_Kappa_Heat, 0.0);
20452055
/*!\brief SLOPE_LIMITER_HEAT \n DESCRIPTION: Slope limiter \n OPTIONS: See \link Limiter_Map \endlink \n DEFAULT NONE \ingroup Config*/
20462056
addEnumOption("SLOPE_LIMITER_HEAT", Kind_SlopeLimit_Heat, Limiter_Map, LIMITER::NONE);
20472057
/*!\brief CONV_NUM_METHOD_HEAT \n DESCRIPTION: Convective numerical method */
@@ -5517,6 +5527,23 @@ void CConfig::SetPostprocessing(SU2_COMPONENT val_software, unsigned short val_i
55175527
CURRENT_FUNCTION);
55185528
}
55195529

5530+
/* Check MUSCL blending coefficients. */
5531+
if (MUSCL_Flow && (MUSCL_Kappa_Flow < -1.0 || MUSCL_Kappa_Flow > 1.0)) {
5532+
SU2_MPI::Error("MUSCL_KAPPA_FLOW should be in range [-1.0, 1.0].", CURRENT_FUNCTION);
5533+
}
5534+
if (MUSCL_Turb && (MUSCL_Kappa_Turb < -1.0 || MUSCL_Kappa_Turb > 1.0)) {
5535+
SU2_MPI::Error("MUSCL_KAPPA_TURB should be in range [-1.0, 1.0].", CURRENT_FUNCTION);
5536+
}
5537+
if (MUSCL_Heat && (MUSCL_Kappa_Heat < -1.0 || MUSCL_Kappa_Heat > 1.0)) {
5538+
SU2_MPI::Error("MUSCL_KAPPA_HEAT should be in range [-1.0, 1.0].", CURRENT_FUNCTION);
5539+
}
5540+
if (MUSCL_AdjFlow && (MUSCL_Kappa_AdjFlow < -1.0 || MUSCL_Kappa_AdjFlow > 1.0)) {
5541+
SU2_MPI::Error("MUSCL_KAPPA_ADJFLOW should be in range [-1.0, 1.0].", CURRENT_FUNCTION);
5542+
}
5543+
if (MUSCL_Species && (MUSCL_Kappa_Species < -1.0 || MUSCL_Kappa_Species > 1.0)) {
5544+
SU2_MPI::Error("MUSCL_KAPPA_SPECIES should be in range [-1.0, 1.0].", CURRENT_FUNCTION);
5545+
}
5546+
55205547
/* Check for whether we need a second gradient method to calculate
55215548
gradients for uwpind reconstruction. Set additional booleans to
55225549
minimize overhead as appropriate. */

config_template.cfg

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -880,6 +880,9 @@ CONV_NUM_METHOD_SPECIES= SCALAR_UPWIND
880880
% Required for 2nd order upwind schemes (NO, YES)
881881
MUSCL_SPECIES= NO
882882
%
883+
% Same as MUSCL_KAPPA_FLOW but for species transport.
884+
MUSCL_KAPPA_SPECIES= 0.0
885+
%
883886
% Slope limiter for species equations (same as SLOPE_LIMITER_TURB)
884887
SLOPE_LIMITER_SPECIES = NONE
885888
%
@@ -1460,6 +1463,10 @@ CUSTOM_OBJFUNC= 'DRAG + 10 * pow(fmax(0.4-LIFT, 0), 2)'
14601463
% Required for 2nd order upwind schemes (NO, YES)
14611464
MUSCL_FLOW= YES
14621465
%
1466+
% Coefficient for blending upwind and central differences in MUSCL scheme.
1467+
% Values range from -1 (fully one-sided) to 1 (central difference).
1468+
MUSCL_KAPPA_FLOW= 0.0
1469+
%
14631470
% Slope limiter (NONE, VENKATAKRISHNAN, VENKATAKRISHNAN_WANG, BARTH_JESPERSEN, VAN_ALBADA_EDGE,
14641471
% NISHIKAWA_R3, NISHIKAWA_R4, NISHIKAWA_R5)
14651472
SLOPE_LIMITER_FLOW= VENKATAKRISHNAN
@@ -1468,6 +1475,10 @@ SLOPE_LIMITER_FLOW= VENKATAKRISHNAN
14681475
%
14691476
MUSCL_TURB= NO
14701477
%
1478+
% Same as MUSCL_KAPPA_FLOW but for turbulence.
1479+
%
1480+
MUSCL_KAPPA_TURB= 0.0
1481+
%
14711482
% Slope limiter (same as SLOPE_LIMITER_FLOW except VAN_ALBADA_EDGE)
14721483
%
14731484
SLOPE_LIMITER_TURB= VENKATAKRISHNAN
@@ -1476,6 +1487,10 @@ SLOPE_LIMITER_TURB= VENKATAKRISHNAN
14761487
%
14771488
MUSCL_ADJFLOW= YES
14781489
%
1490+
% Same as MUSCL_KAPPA_FLOW but for the continuous adjoint equations.
1491+
%
1492+
MUSCL_KAPPA_ADJFLOW= 0.0
1493+
%
14791494
% Slope limiter (same as SLOPE_LIMITER_FLOW plus SHARP_EDGES, WALL_DISTANCE)
14801495
%
14811496
SLOPE_LIMITER_ADJFLOW= VENKATAKRISHNAN
@@ -1884,6 +1899,9 @@ CONV_NUM_METHOD_HEAT= SCALAR_UPWIND
18841899
% Check if the MUSCL scheme should be used
18851900
MUSCL_HEAT= YES
18861901
%
1902+
% Same as MUSCL_KAPPA_FLOW but for the heat equation.
1903+
MUSCL_KAPPA_HEAT= 0.0
1904+
%
18871905
% Slope limiter for the heat equation (same options as SLOPE_LIMITER_SPECIES)
18881906
SLOPE_LIMITER_HEAT = NONE
18891907
%

0 commit comments

Comments
 (0)