Skip to content

Commit 8d9533d

Browse files
authored
Merge branch 'develop' into dependabot/github_actions/actions/setup-python-6
2 parents 771579b + ead1817 commit 8d9533d

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

51 files changed

+663
-330
lines changed

Common/include/CConfig.hpp

Lines changed: 75 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -93,7 +93,7 @@ class CConfig {
9393
bool MG_AdjointFlow; /*!< \brief MG with the adjoint flow problem */
9494
su2double *PressureLimits,
9595
*DensityLimits,
96-
*TemperatureLimits; /*!< \brief Limits for the primitive variables */
96+
TemperatureLimits[2]; /*!< \brief Limits for the primitive variables */
9797
bool ActDisk_DoubleSurface; /*!< \brief actuator disk double surface */
9898
bool Engine_HalfModel; /*!< \brief only half model is in the computational grid */
9999
bool ActDisk_SU2_DEF; /*!< \brief actuator disk double surface */
@@ -431,7 +431,8 @@ class CConfig {
431431
bool UseVectorization; /*!< \brief Whether to use vectorized numerics schemes. */
432432
bool NewtonKrylov; /*!< \brief Use a coupled Newton method to solve the flow equations. */
433433
array<unsigned short,3> NK_IntParam{{20, 3, 2}}; /*!< \brief Integer parameters for NK method. */
434-
array<su2double,4> NK_DblParam{{-2.0, 0.1, -3.0, 1e-4}}; /*!< \brief Floating-point parameters for NK method. */
434+
array<su2double,5> NK_DblParam{{-2.0, 0.1, -3.0, 1e-4, 1.0}}; /*!< \brief Floating-point parameters for NK method. */
435+
su2double NK_Relaxation = 1.0;
435436

436437
unsigned short nMGLevels; /*!< \brief Number of multigrid levels (coarse levels). */
437438
unsigned short nCFL; /*!< \brief Number of CFL, one for each multigrid level. */
@@ -899,6 +900,8 @@ class CConfig {
899900
ModVel_FreeStreamND, /*!< \brief Non-dimensional magnitude of the free-stream velocity of the fluid. */
900901
Density_FreeStream, /*!< \brief Free-stream density of the fluid. */
901902
Viscosity_FreeStream, /*!< \brief Free-stream viscosity of the fluid. */
903+
ThermalConductivity_FreeStream, /*!< \brief Free-stream thermal conductivity of the fluid. */
904+
SpecificHeatCp_FreeStream, /*!< \brief Free-stream specific heat capacity at constant pressure of the fluid. */
902905
Tke_FreeStream, /*!< \brief Total turbulent kinetic energy of the fluid. */
903906
Intermittency_FreeStream, /*!< \brief Freestream intermittency (for sagt transition model) of the fluid. */
904907
ReThetaT_FreeStream, /*!< \brief Freestream Transition Momentum Thickness Reynolds Number (for LM transition model) of the fluid. */
@@ -940,6 +943,8 @@ class CConfig {
940943
Velocity_FreeStreamND[3], /*!< \brief Farfield velocity values (external flow). */
941944
Energy_FreeStreamND, /*!< \brief Farfield energy value (external flow). */
942945
Viscosity_FreeStreamND, /*!< \brief Farfield viscosity value (external flow). */
946+
ThermalConductivity_FreeStreamND, /*!< \brief Farfield thermal conductivity value (external flow). */
947+
SpecificHeatCp_FreeStreamND, /*!< \brief Farfield specific heat capacity at constant pressure value (external flow). */
943948
Tke_FreeStreamND, /*!< \brief Farfield kinetic energy (external flow). */
944949
Omega_FreeStreamND, /*!< \brief Specific dissipation (external flow). */
945950
Omega_FreeStream; /*!< \brief Specific dissipation (external flow). */
@@ -1328,9 +1333,9 @@ class CConfig {
13281333
template <class Tenum, class Tfield>
13291334
void addEnumListOption(const string name, unsigned short& input_size, Tfield*& option_field, const map<string,Tenum>& enum_map);
13301335

1331-
void addDoubleArrayOption(const string& name, const int size, su2double* option_field);
1336+
void addDoubleArrayOption(const string& name, int size, bool allow_fewer, su2double* option_field);
13321337

1333-
void addUShortArrayOption(const string& name, const int size, unsigned short* option_field);
1338+
void addUShortArrayOption(const string& name, int size, bool allow_fewer, unsigned short* option_field);
13341339

13351340
void addDoubleListOption(const string& name, unsigned short & size, su2double * & option_field);
13361341

@@ -1760,6 +1765,18 @@ class CConfig {
17601765
*/
17611766
su2double GetViscosity_FreeStream(void) const { return Viscosity_FreeStream; }
17621767

1768+
/*!
1769+
* \brief Get the value of the freestream thermal conductivity.
1770+
* \return Freestream thermal conductivity.
1771+
*/
1772+
su2double GetThermalConductivity_FreeStream(void) const { return ThermalConductivity_FreeStream; }
1773+
1774+
/*!
1775+
* \brief Get the value of the freestream heat capacity at constant pressure.
1776+
* \return Freestream heat capacity at constant pressure.
1777+
*/
1778+
su2double GetSpecificHeatCp_FreeStream(void) const { return SpecificHeatCp_FreeStream; }
1779+
17631780
/*!
17641781
* \brief Get the value of the freestream density.
17651782
* \return Freestream density.
@@ -1991,6 +2008,18 @@ class CConfig {
19912008
*/
19922009
su2double GetViscosity_FreeStreamND(void) const { return Viscosity_FreeStreamND; }
19932010

2011+
/*!
2012+
* \brief Get the value of the non-dimensionalized freestream thermal conductivity.
2013+
* \return Non-dimensionalized freestream thermal conductivity.
2014+
*/
2015+
su2double GetThermalConductivity_FreeStreamND(void) const { return ThermalConductivity_FreeStreamND; }
2016+
2017+
/*!
2018+
* \brief Get the value of the non-dimensionalized freestream heat capacity at constant pressure.
2019+
* \return Non-dimensionalized freestream heat capacity at constant pressure.
2020+
*/
2021+
su2double GetSpecificHeatCp_FreeStreamND(void) const { return SpecificHeatCp_FreeStreamND; }
2022+
19942023
/*!
19952024
* \brief Get the value of the non-dimensionalized freestream viscosity.
19962025
* \return Non-dimensionalized freestream viscosity.
@@ -2155,6 +2184,12 @@ class CConfig {
21552184
*/
21562185
su2double GetInc_Temperature_Init(void) const { return Inc_Temperature_Init; }
21572186

2187+
/*!
2188+
* \brief Get Temperature limits for incompressible flows.
2189+
* \return Temperature limits minimum and maximum values.
2190+
*/
2191+
su2double GetTemperatureLimits(int iVar) const { return TemperatureLimits[iVar]; }
2192+
21582193
/*!
21592194
* \brief Get the flag for activating species transport clipping.
21602195
* \return Flag for species clipping.
@@ -2610,6 +2645,18 @@ class CConfig {
26102645
*/
26112646
void SetViscosity_FreeStream(su2double val_viscosity_freestream) { Viscosity_FreeStream = val_viscosity_freestream; }
26122647

2648+
/*!
2649+
* \brief Set the freestream thermal conductivity.
2650+
* \param[in] val_thermalconductivity_freestream - Value of the freestream thermal conductivity.
2651+
*/
2652+
void SetThermalConductivity_FreeStream(su2double val_thermalconductivity_freestream) { ThermalConductivity_FreeStream = val_thermalconductivity_freestream; }
2653+
2654+
/*!
2655+
* \brief Set the freestream specific heat capacity at constant pressure.
2656+
* \param[in] val_specificheatCp_freestream - Value of the freestream specific heat capacity at constant pressure.
2657+
*/
2658+
void SetSpecificHeatCp_FreeStream(su2double val_specificheatCp_freestream) { SpecificHeatCp_FreeStream = val_specificheatCp_freestream; }
2659+
26132660
/*!
26142661
* \brief Set the magnitude of the free-stream velocity.
26152662
* \param[in] val_modvel_freestream - Magnitude of the free-stream velocity.
@@ -2672,6 +2719,18 @@ class CConfig {
26722719
*/
26732720
void SetViscosity_FreeStreamND(su2double val_viscosity_freestreamnd) { Viscosity_FreeStreamND = val_viscosity_freestreamnd; }
26742721

2722+
/*!
2723+
* \brief Set the non-dimensional free-stream thermal conductivity.
2724+
* \param[in] val_thermalconductivity_freestreamnd - Value of the non-dimensional free-stream thermal conductivity.
2725+
*/
2726+
void SetThermalConductivity_FreeStreamND(su2double val_thermalconductivity_freestreamnd) { ThermalConductivity_FreeStreamND = val_thermalconductivity_freestreamnd; }
2727+
2728+
/*!
2729+
* \brief Set the non-dimensional free-stream specific heat capacity at constant pressure.
2730+
* \param[in] val_specificheatCp_freestreamnd - Value of the non-dimensional free-stream specific heat capacity at constant pressure.
2731+
*/
2732+
void SetSpecificHeatCp_FreeStreamND(su2double val_specificheatCp_freestreamnd) { SpecificHeatCp_FreeStreamND = val_specificheatCp_freestreamnd; }
2733+
26752734
/*!
26762735
* \brief Set the non-dimensional freestream turbulent kinetic energy.
26772736
* \param[in] val_tke_freestreamnd - Value of the non-dimensional freestream turbulent kinetic energy.
@@ -4317,12 +4376,22 @@ class CConfig {
43174376
/*!
43184377
* \brief Get Newton-Krylov integer parameters.
43194378
*/
4320-
array<unsigned short,3> GetNewtonKrylovIntParam(void) const { return NK_IntParam; }
4379+
array<unsigned short,3> GetNewtonKrylovIntParam() const { return NK_IntParam; }
43214380

43224381
/*!
43234382
* \brief Get Newton-Krylov floating-point parameters.
43244383
*/
4325-
array<su2double,4> GetNewtonKrylovDblParam(void) const { return NK_DblParam; }
4384+
array<su2double,5> GetNewtonKrylovDblParam() const { return NK_DblParam; }
4385+
4386+
/*!
4387+
* \brief Get the Newton-Krylov relaxation.
4388+
*/
4389+
su2double GetNewtonKrylovRelaxation() const { return NK_Relaxation; }
4390+
4391+
/*!
4392+
* \brief Set the Newton-Krylov relaxation.
4393+
*/
4394+
void SetNewtonKrylovRelaxation(const su2double& relaxation) { NK_Relaxation = relaxation; }
43264395

43274396
/*!
43284397
* \brief Returns the Roe kappa (multipler of the dissipation term).

Common/include/option_structure.inl

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -233,18 +233,19 @@ class COptionEnumList final : public COptionBase {
233233

234234
template <class Type>
235235
class COptionArray final : public COptionBase {
236-
string name; // Identifier for the option
237-
const int size; // Number of elements
238-
Type* field; // Reference to the field
236+
string name; // Identifier for the option
237+
const int size; // Number of elements
238+
const bool allow_fewer; // Allow smaller size
239+
Type* field; // Reference to the field
239240

240241
public:
241-
COptionArray(string option_field_name, const int list_size, Type* option_field)
242-
: name(option_field_name), size(list_size), field(option_field) {}
242+
COptionArray(string option_field_name, const int list_size, const bool allow_fewer, Type* option_field)
243+
: name(std::move(option_field_name)), size(list_size), allow_fewer(allow_fewer), field(option_field) {}
243244

244245
string SetValue(const vector<string>& option_value) override {
245246
COptionBase::SetValue(option_value);
246247
// Check that the size is correct
247-
if (option_value.size() != (unsigned long)this->size) {
248+
if ((option_value.size() < size_t(size) && !allow_fewer) || option_value.size() > size_t(size)) {
248249
string newstring;
249250
newstring.append(this->name);
250251
newstring.append(": wrong number of arguments: ");
@@ -258,7 +259,7 @@ class COptionArray final : public COptionBase {
258259
newstring.append(" found");
259260
return newstring;
260261
}
261-
for (int i = 0; i < this->size; i++) {
262+
for (size_t i = 0; i < option_value.size(); i++) {
262263
istringstream is(option_value[i]);
263264
if (!(is >> field[i])) {
264265
return badValue(" array", this->name);

0 commit comments

Comments
 (0)