Skip to content

Commit 2f6e267

Browse files
Fixing Schmidt diffusivity model and adding option of Constant Lewis number (#1787)
* fixing CConstantSchmidt diffusivity * adding option Different lewis numbers * merging different and unity lewis options * spelling fix
1 parent 4f3e0af commit 2f6e267

6 files changed

Lines changed: 46 additions & 77 deletions

File tree

Common/include/CConfig.hpp

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -832,11 +832,13 @@ class CConfig {
832832
nMu_S, /*!< \brief Number of species reference S for Sutherland model. */
833833
nThermal_Conductivity_Constant,/*!< \brief Number of species constant thermal conductivity. */
834834
nPrandtl_Lam, /*!< \brief Number of species laminar Prandtl number. */
835-
nPrandtl_Turb; /*!< \brief Number of species turbulent Prandtl number. */
835+
nPrandtl_Turb, /*!< \brief Number of species turbulent Prandtl number. */
836+
nConstant_Lewis_Number; /*!< \brief Number of species Lewis Number. */
836837
su2double Diffusivity_Constant; /*!< \brief Constant mass diffusivity for scalar transport. */
837838
su2double Diffusivity_ConstantND; /*!< \brief Non-dim. constant mass diffusivity for scalar transport. */
838839
su2double Schmidt_Number_Laminar; /*!< \brief Laminar Schmidt number for mass diffusion. */
839840
su2double Schmidt_Number_Turbulent; /*!< \brief Turbulent Schmidt number for mass diffusion. */
841+
su2double *Constant_Lewis_Number; /*!< \brief Different Lewis number for mass diffusion. */
840842
array<su2double, N_POLY_COEFFS> CpPolyCoefficientsND{{0.0}}; /*!< \brief Definition of the non-dimensional temperature polynomial coefficients for specific heat Cp. */
841843
array<su2double, N_POLY_COEFFS> MuPolyCoefficientsND{{0.0}}; /*!< \brief Definition of the non-dimensional temperature polynomial coefficients for viscosity. */
842844
array<su2double, N_POLY_COEFFS> KtPolyCoefficientsND{{0.0}}; /*!< \brief Definition of the non-dimensional temperature polynomial coefficients for thermal conductivity. */
@@ -3851,6 +3853,12 @@ class CConfig {
38513853
*/
38523854
su2double GetSchmidt_Number_Turbulent(void) const { return Schmidt_Number_Turbulent; }
38533855

3856+
/*!
3857+
* \brief Get the value of the Lewis number for each species.
3858+
* \return Lewis Number.
3859+
*/
3860+
su2double GetConstant_Lewis_Number(unsigned short val_index = 0) const { return Constant_Lewis_Number[val_index]; }
3861+
38543862
/*!
38553863
* \brief Get the value of the reference viscosity for Sutherland model.
38563864
* \return The reference viscosity.

Common/include/option_structure.hpp

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -721,13 +721,15 @@ static const MapType<std::string, CONDUCTIVITYMODEL_TURB> TurbConductivityModel_
721721
enum class DIFFUSIVITYMODEL {
722722
CONSTANT_DIFFUSIVITY, /*!< \brief Constant mass diffusivity for scalar transport. */
723723
CONSTANT_SCHMIDT, /*!< \brief Constant Schmidt number for mass diffusion in scalar transport. */
724-
UNITY_LEWIS, /*!< \brief Unity Lewis model */
724+
UNITY_LEWIS, /*!< \brief Unity Lewis model for mass diffusion in scalar transport. */
725+
CONSTANT_LEWIS, /*!< \brief Different Lewis number model for mass diffusion in scalar transport. */
725726
};
726727

727728
static const MapType<std::string, DIFFUSIVITYMODEL> Diffusivity_Model_Map = {
728729
MakePair("CONSTANT_DIFFUSIVITY", DIFFUSIVITYMODEL::CONSTANT_DIFFUSIVITY)
729730
MakePair("CONSTANT_SCHMIDT", DIFFUSIVITYMODEL::CONSTANT_SCHMIDT)
730731
MakePair("UNITY_LEWIS", DIFFUSIVITYMODEL::UNITY_LEWIS)
732+
MakePair("CONSTANT_LEWIS", DIFFUSIVITYMODEL::CONSTANT_LEWIS)
731733
};
732734

733735
/*!

Common/src/CConfig.cpp

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1334,6 +1334,8 @@ void CConfig::SetConfig_Options() {
13341334
addDoubleOption("SCHMIDT_NUMBER_LAMINAR", Schmidt_Number_Laminar, 1.0);
13351335
/*!\brief SCHMIDT_TURB \n DESCRIPTION: Turbulent Schmidt number of mass diffusion \n DEFAULT 0.70 (more or less experimental value) \ingroup Config*/
13361336
addDoubleOption("SCHMIDT_NUMBER_TURBULENT", Schmidt_Number_Turbulent, 0.7);
1337+
/*!\brief DESCRIPTION: Constant Lewis number for mass diffusion */
1338+
addDoubleListOption("CONSTANT_LEWIS_NUMBER", nConstant_Lewis_Number, Constant_Lewis_Number);
13371339

13381340
vel_inf[0] = 1.0; vel_inf[1] = 0.0; vel_inf[2] = 0.0;
13391341
/*!\brief FREESTREAM_VELOCITY\n DESCRIPTION: Free-stream velocity (m/s) */
@@ -3756,6 +3758,7 @@ void CConfig::SetPostprocessing(SU2_COMPONENT val_software, unsigned short val_i
37563758
const su2double Thermal_Conductivity_Constant_Default = (SystemMeasurements == SI) ? 2.57E-2 : (2.57E-2 * 0.577789317);
37573759
const su2double Prandtl_Lam_Default = 0.72;
37583760
const su2double Prandtl_Turb_Default = 0.9;
3761+
const su2double Lewis_Number_Default = 1.0;
37593762

37603763
auto SetDefaultIfEmpty = [](su2double*& array, unsigned short& size, const su2double& default_val) {
37613764
if (array == nullptr) {
@@ -3777,6 +3780,7 @@ void CConfig::SetPostprocessing(SU2_COMPONENT val_software, unsigned short val_i
37773780
Thermal_Conductivity_Constant_Default);
37783781
SetDefaultIfEmpty(Prandtl_Lam, nPrandtl_Lam, Prandtl_Lam_Default);
37793782
SetDefaultIfEmpty(Prandtl_Turb, nPrandtl_Turb, Prandtl_Turb_Default);
3783+
SetDefaultIfEmpty(Constant_Lewis_Number, nConstant_Lewis_Number, Lewis_Number_Default);
37803784

37813785
/*--- Check whether inputs for FLUID_MIXTURE are correctly specified. ---*/
37823786

@@ -5368,6 +5372,15 @@ void CConfig::SetPostprocessing(SU2_COMPONENT val_software, unsigned short val_i
53685372
!(OptionIsSet("DIFFUSIVITY_CONSTANT")))
53695373
SU2_MPI::Error("A DIFFUSIVITY_CONSTANT=<value> has to be set with DIFFUSIVITY_MODEL= CONSTANT_DIFFUSIVITY.", CURRENT_FUNCTION);
53705374

5375+
/*--- Check whether the number of entries of the constant Lewis number equals the number of transported scalar
5376+
equations solved. nConstant_Lewis_Number is used because it is required for the diffusivity fluid mixing
5377+
models--- */
5378+
if (Kind_Diffusivity_Model == DIFFUSIVITYMODEL::CONSTANT_LEWIS && nConstant_Lewis_Number != nSpecies_Init)
5379+
SU2_MPI::Error(
5380+
"The use of CONSTANT_LEWIS requires the number of entries for CONSTANT_LEWIS_NUMBER ,\n"
5381+
"to be equal to the number of entries of SPECIES_INIT",
5382+
CURRENT_FUNCTION);
5383+
53715384
// Helper function that checks scalar variable bounds,
53725385
auto checkScalarBounds = [&](su2double scalar, string name, su2double lowerBound, su2double upperBound) {
53735386
if (scalar < lowerBound || scalar > upperBound)

SU2_CFD/include/fluid/CUnityLewisDiffusivity.hpp renamed to SU2_CFD/include/fluid/CConstantLewisDiffusivity.hpp

Lines changed: 14 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
/*!
2-
* \file CUnityLewisDiffusivity.hpp
3-
* \brief Defines unity Lewis mass diffusivity.
4-
* \author M.Heimgartner
2+
* \file CConstantLewisDiffusivity.hpp
3+
* \brief Defines Constant Lewis mass diffusivity.
4+
* \author M.Heimgartner, C.Morales
55
* \version 7.4.0 "Blackbird"
66
*
77
* SU2 Project Website: https://su2code.github.io
@@ -30,20 +30,25 @@
3030
#include "CDiffusivityModel.hpp"
3131

3232
/*!
33-
* \class CUnityLewisDiffusivity
34-
* \brief Defines a unity Lewis mass diffusivity model for species equations.
35-
* \author M.Heimgartner
33+
* \class CConstantLewisDiffusivity
34+
* \brief Defines a Constant Lewis mass diffusivity model for species equations.
35+
* \author M.Heimgartner, C.Morales
3636
*/
37-
class CUnityLewisDiffusivity final : public CDiffusivityModel {
37+
class CConstantLewisDiffusivity final : public CDiffusivityModel {
3838
public:
39+
/*!
40+
* \brief Constructor of the class.
41+
*/
42+
CConstantLewisDiffusivity(su2double Lewis) : Lewis_(Lewis) {}
43+
3944
/*!
4045
* \brief Set diffusivity.
4146
*/
4247
void SetDiffusivity(su2double T, su2double rho, su2double mu_lam, su2double mu_turb, su2double cp,
4348
su2double kt) override {
44-
diff_ = kt / (Lewis * rho * cp);
49+
diff_ = kt / (Lewis_ * rho * cp);
4550
}
4651

4752
private:
48-
const su2double Lewis{1.0};
53+
const su2double Lewis_{1.0};
4954
};

SU2_CFD/include/fluid/CConstantSchmidtRANS.hpp

Lines changed: 0 additions & 57 deletions
This file was deleted.

SU2_CFD/src/fluid/CFluidModel.cpp

Lines changed: 7 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -35,14 +35,13 @@
3535
#include "../../include/fluid/CConstantPrandtl.hpp"
3636
#include "../../include/fluid/CConstantPrandtlRANS.hpp"
3737
#include "../../include/fluid/CConstantSchmidt.hpp"
38-
#include "../../include/fluid/CConstantSchmidtRANS.hpp"
3938
#include "../../include/fluid/CConstantViscosity.hpp"
4039
#include "../../include/fluid/CFluidScalar.hpp"
4140
#include "../../include/fluid/CPolynomialConductivity.hpp"
4241
#include "../../include/fluid/CPolynomialConductivityRANS.hpp"
4342
#include "../../include/fluid/CPolynomialViscosity.hpp"
4443
#include "../../include/fluid/CSutherland.hpp"
45-
#include "../../include/fluid/CUnityLewisDiffusivity.hpp"
44+
#include "../../include/fluid/CConstantLewisDiffusivity.hpp"
4645

4746
unique_ptr<CViscosityModel> CFluidModel::MakeLaminarViscosityModel(const CConfig* config, unsigned short iSpecies) {
4847
switch (config->GetKind_ViscosityModel()) {
@@ -112,15 +111,14 @@ unique_ptr<CDiffusivityModel> CFluidModel::MakeMassDiffusivityModel(const CConfi
112111
return unique_ptr<CConstantDiffusivity>(new CConstantDiffusivity(config->GetDiffusivity_ConstantND()));
113112
break;
114113
case DIFFUSIVITYMODEL::CONSTANT_SCHMIDT:
115-
if ((config->GetKind_Solver() == MAIN_SOLVER::RANS) || (config->GetKind_Solver() == MAIN_SOLVER::DISC_ADJ_RANS)) {
116-
return unique_ptr<CConstantSchmidtRANS>(
117-
new CConstantSchmidtRANS(config->GetSchmidt_Number_Laminar(), config->GetSchmidt_Number_Turbulent()));
118-
} else {
119-
return unique_ptr<CConstantSchmidt>(new CConstantSchmidt(config->GetSchmidt_Number_Laminar()));
120-
}
114+
return unique_ptr<CConstantSchmidt>(new CConstantSchmidt(config->GetSchmidt_Number_Laminar()));
121115
break;
122116
case DIFFUSIVITYMODEL::UNITY_LEWIS:
123-
return unique_ptr<CUnityLewisDiffusivity>(new CUnityLewisDiffusivity());
117+
return unique_ptr<CConstantLewisDiffusivity>(new CConstantLewisDiffusivity(1.0));
118+
break;
119+
case DIFFUSIVITYMODEL::CONSTANT_LEWIS:
120+
return unique_ptr<CConstantLewisDiffusivity>(
121+
new CConstantLewisDiffusivity(config->GetConstant_Lewis_Number(iSpecies)));
124122
break;
125123
default:
126124
SU2_MPI::Error("Diffusivity model not available.", CURRENT_FUNCTION);

0 commit comments

Comments
 (0)