Skip to content

Commit fb5cd4f

Browse files
committed
Implement NASA polynomial gas model (CNasaGas) and integrate into solvers
1 parent d5bd506 commit fb5cd4f

11 files changed

Lines changed: 283 additions & 4 deletions

File tree

Common/include/CConfig.hpp

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -912,6 +912,9 @@ class CConfig {
912912
array<su2double, N_POLY_COEFFS> CpPolyCoefficientsND{{0.0}}; /*!< \brief Definition of the non-dimensional temperature polynomial coefficients for specific heat Cp. */
913913
array<su2double, N_POLY_COEFFS> MuPolyCoefficientsND{{0.0}}; /*!< \brief Definition of the non-dimensional temperature polynomial coefficients for viscosity. */
914914
array<su2double, N_POLY_COEFFS> KtPolyCoefficientsND{{0.0}}; /*!< \brief Definition of the non-dimensional temperature polynomial coefficients for thermal conductivity. */
915+
array<su2double, N_NASA_POLY_COEFFS> NASA_CpLowPolyCoefficients{{0.0}}; /*!< \brief Definition of the NASA temperature polynomial coefficients for specific heat Cp (low temperature range). */
916+
array<su2double, N_NASA_POLY_COEFFS> NASA_CpHighPolyCoefficients{{0.0}}; /*!< \brief Definition of the NASA temperature polynomial coefficients for specific heat Cp (high temperature range). */
917+
su2double NASA_TransitionTemperature; /*!< \brief Transition temperature for the NASA polynomial gas model. */
915918
su2double TurbIntensityAndViscRatioFreeStream[2]; /*!< \brief Freestream turbulent intensity and viscosity ratio for turbulence and transition models. */
916919
su2double Energy_FreeStream, /*!< \brief Free-stream total energy of the fluid. */
917920
ModVel_FreeStream, /*!< \brief Magnitude of the free-stream velocity of the fluid. */
@@ -1125,6 +1128,9 @@ class CConfig {
11251128
array<su2double, N_POLY_COEFFS> cp_polycoeffs{{0.0}}; /*!< \brief Array for specific heat polynomial coefficients. */
11261129
array<su2double, N_POLY_COEFFS> mu_polycoeffs{{0.0}}; /*!< \brief Array for viscosity polynomial coefficients. */
11271130
array<su2double, N_POLY_COEFFS> kt_polycoeffs{{0.0}}; /*!< \brief Array for thermal conductivity polynomial coefficients. */
1131+
array<su2double, N_NASA_POLY_COEFFS> nasa_cp_low_polycoeffs{{0.0}}; /*!< \brief Array for NASA high temperature polynomial coefficients. */
1132+
array<su2double, N_NASA_POLY_COEFFS> nasa_cp_high_polycoeffs{{0.0}}; /*!< \brief Array for NASA high temperature polynomial coefficients. */
1133+
su2double nasa_transition_temperature; /*!< \brief Transition temperature for the NASA polynomial gas model. */
11281134
bool Body_Force; /*!< \brief Flag to know if a body force is included in the formulation. */
11291135

11301136
struct CMUSCLRampParam {

Common/include/option_structure.hpp

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -202,6 +202,7 @@ constexpr passivedouble COLORING_EFF_THRESH = 0.875; /*!< \brief Below this val
202202
Cp(T) = b0 + b1*T + b2*T^2 + b3*T^3 + b4*T^4. By default, all coeffs
203203
are set to zero and will be properly non-dim. in the solver. ---*/
204204
constexpr int N_POLY_COEFFS = 5; /*!< \brief Number of coefficients in temperature polynomial fits for fluid models. */
205+
constexpr int N_NASA_POLY_COEFFS = 7; /*!< \brief Number of coefficients in NASA temperature polynomial fits. */
205206

206207
/*!
207208
* \brief Boolean answers
@@ -551,6 +552,7 @@ enum ENUM_FLUIDMODEL {
551552
COOLPROP = 10, /*!< \brief Thermodynamics library. */
552553
FLUID_FLAMELET = 11, /*!< \brief lookup table (LUT) method for premixed flamelets. */
553554
DATADRIVEN_FLUID = 12, /*!< \brief multi-layer perceptron driven fluid model. */
555+
NASA_GAS = 13, /*!< \brief NASA polynomial ideal gas model. */
554556
};
555557
static const MapType<std::string, ENUM_FLUIDMODEL> FluidModel_Map = {
556558
MakePair("STANDARD_AIR", STANDARD_AIR)
@@ -566,6 +568,7 @@ static const MapType<std::string, ENUM_FLUIDMODEL> FluidModel_Map = {
566568
MakePair("COOLPROP", COOLPROP)
567569
MakePair("DATADRIVEN_FLUID", DATADRIVEN_FLUID)
568570
MakePair("FLUID_FLAMELET", FLUID_FLAMELET)
571+
MakePair("NASA_GAS", NASA_GAS)
569572
};
570573

571574
/*!

Common/src/CConfig.cpp

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1334,6 +1334,12 @@ void CConfig::SetConfig_Options() {
13341334
addDoubleArrayOption("MU_POLYCOEFFS", N_POLY_COEFFS, false, mu_polycoeffs.data());
13351335
/* DESCRIPTION: Definition of the temperature polynomial coefficients for specific heat Cp. */
13361336
addDoubleArrayOption("KT_POLYCOEFFS", N_POLY_COEFFS, false, kt_polycoeffs.data());
1337+
/* DESCRIPTION: Definition of the NASA temperature polynomial coefficients for specific heat Cp (low temperature range). */
1338+
addDoubleArrayOption("NASA_CP_LOW_COEFFS", N_NASA_POLY_COEFFS, false, nasa_cp_low_polycoeffs.data());
1339+
/* DESCRIPTION: Definition of the NASA temperature polynomial coefficients for specific heat Cp (high temperature range). */
1340+
addDoubleArrayOption("NASA_CP_HIGH_COEFFS", N_NASA_POLY_COEFFS, false, nasa_cp_high_polycoeffs.data());
1341+
/* DESCRIPTION: Transition temperature for the NASA polynomial gas model. */
1342+
addDoubleOption("NASA_T_TRANS", nasa_transition_temperature, 1000.0);
13371343

13381344
/*!\brief REYNOLDS_NUMBER \n DESCRIPTION: Reynolds number (non-dimensional, based on the free-stream values). Needed for viscous solvers. For incompressible solvers the Reynolds length will always be 1.0 \n DEFAULT: 0.0 \ingroup Config */
13391345
addDoubleOption("REYNOLDS_NUMBER", Reynolds, 0.0);

SU2_CFD/include/fluid/CNasaGas.hpp

Lines changed: 64 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,64 @@
1+
/*!
2+
* \file CNasaGas.hpp
3+
* \brief Defines the NASA polynomial gas model.
4+
* \author Om Giri
5+
* \version 8.4.0 "Harrier"
6+
*/
7+
8+
#pragma once
9+
10+
#include "CIdealGas.hpp"
11+
#include <array>
12+
13+
/*!
14+
* \class CNasaGas
15+
* \brief Child class for defining the NASA polynomial gas model.
16+
*/
17+
class CNasaGas : public CIdealGas {
18+
protected:
19+
array<su2double, 7> CpLowPolyCoefficientsND{{0.0}}; /*!< \brief NASA low temp polynomial coefficients. */
20+
array<su2double, 7> CpHighPolyCoefficientsND{{0.0}}; /*!< \brief NASA high temp polynomial coefficients. */
21+
su2double TransitionTemperatureND{0.0}; /*!< \brief NASA transition temperature. */
22+
23+
public:
24+
/*!
25+
* \brief Constructor of the class.
26+
*/
27+
CNasaGas(su2double gamma, su2double R, bool CompEntropy = true);
28+
29+
/*!
30+
* \brief Set specific heat Cp model.
31+
*/
32+
void SetCpModel(const CConfig* config, su2double val_Temperature_Ref) override;
33+
34+
/*!
35+
* \brief Set the Dimensionless State using Density and Internal Energy
36+
*/
37+
void SetTDState_rhoe(su2double rho, su2double e) override;
38+
39+
/*!
40+
* \brief Set the Dimensionless State using Pressure and Temperature
41+
*/
42+
void SetTDState_PT(su2double P, su2double T) override;
43+
44+
/*!
45+
* \brief Set the Dimensionless State using Pressure and Density
46+
*/
47+
void SetTDState_Prho(su2double P, su2double rho) override;
48+
49+
/*!
50+
* \brief Set the Dimensionless State using Density and Temperature
51+
*/
52+
void SetTDState_rhoT(su2double rho, su2double T) override;
53+
54+
/*!
55+
* \brief Set the Dimensionless State using Pressure and Entropy
56+
*/
57+
void SetTDState_Ps(su2double P, su2double s) override;
58+
59+
protected:
60+
/*!
61+
* \brief Calculate Cp, Enthalpy and Entropy from Temperature.
62+
*/
63+
void ComputeProperties_T(su2double T);
64+
};

SU2_CFD/src/fluid/CFluidModel.cpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,7 @@
4545
#include "../../include/fluid/CCoolPropViscosity.hpp"
4646
#include "../../include/fluid/CConstantLewisDiffusivity.hpp"
4747
#include "../../include/fluid/CCoolPropConductivity.hpp"
48+
#include "../../include/fluid/CNasaGas.hpp"
4849

4950
unique_ptr<CViscosityModel> CFluidModel::MakeLaminarViscosityModel(const CConfig* config, unsigned short iSpecies) {
5051
switch (config->GetKind_ViscosityModel()) {

SU2_CFD/src/fluid/CNasaGas.cpp

Lines changed: 146 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,146 @@
1+
/*!
2+
* \file CNasaGas.cpp
3+
* \brief Source of the NASA polynomial gas model.
4+
* \author Om Giri
5+
* \version 8.4.0 "Harrier"
6+
*/
7+
8+
#include "../../include/fluid/CNasaGas.hpp"
9+
10+
CNasaGas::CNasaGas(su2double gamma, su2double R, bool CompEntropy) : CIdealGas(gamma, R, CompEntropy) {
11+
// Constructor inherited from CIdealGas
12+
}
13+
14+
void CNasaGas::SetCpModel(const CConfig* config, su2double val_Temperature_Ref) {
15+
for (int i = 0; i < 7; ++i) {
16+
CpLowPolyCoefficientsND[i] = config->GetNASA_CpLowPolyCoeff(i);
17+
CpHighPolyCoefficientsND[i] = config->GetNASA_CpHighPolyCoeff(i);
18+
}
19+
TransitionTemperatureND = config->GetNASA_TransitionTemperature() / val_Temperature_Ref;
20+
}
21+
22+
void CNasaGas::ComputeProperties_T(su2double T) {
23+
Temperature = T;
24+
const array<su2double, 7>* c;
25+
26+
if (T < TransitionTemperatureND) {
27+
c = &CpLowPolyCoefficientsND;
28+
} else {
29+
c = &CpHighPolyCoefficientsND;
30+
}
31+
32+
/*--- NASA polynomials:
33+
Cp/R = a1*T^-2 + a2*T^-1 + a3 + a4*T + a5*T^2 + a6*T^3 + a7*T^4
34+
H/RT = -a1*T^-2 + a2*log(T)/T + a3 + a4*T/2 + a5*T^2/3 + a6*T^3/4 + a7*T^4/5 + a8/T
35+
S/R = -a1*T^-2/2 - a2*T^-1 + a3*log(T) + a4*T + a5*T^2/2 + a6*T^3/3 + a7*T^4/4 + a9
36+
37+
Note: SU2 usually uses a 7-coefficient form:
38+
Cp/R = a0 + a1*T + a2*T^2 + a3*T^3 + a4*T^4
39+
H/RT = a0 + a1*T/2 + a2*T^2/3 + a3*T^3/4 + a4*T^4/5 + a5/T
40+
S/R = a0*log(T) + a1*T + a2*T^2/2 + a3*T^3/3 + a4*T^4/4 + a6
41+
42+
Wait, standard NASA 7-coefficient format is:
43+
Cp/R = a0 + a1*T + a2*T^2 + a3*T^3 + a4*T^4
44+
H/RT = a0 + a1*T/2 + a2*T^2/3 + a3*T^3/4 + a4*T^4/5 + a5/T
45+
S/R = a0*lnT + a1*T + a2*T^2/2 + a3*T^3/3 + a4*T^4/4 + a6
46+
47+
I will use this standard 7-coefficient format.
48+
---*/
49+
50+
Cp = ((*c)[0] + (*c)[1]*T + (*c)[2]*T*T + (*c)[3]*T*T*T + (*c)[4]*T*T*T*T) * Gas_Constant;
51+
Enthalpy = ((*c)[0] + (*c)[1]*T/2.0 + (*c)[2]*T*T/3.0 + (*c)[3]*T*T*T/4.0 + (*c)[4]*T*T*T*T/5.0 + (*c)[5]/T) * T * Gas_Constant;
52+
53+
if (ComputeEntropy) {
54+
Entropy = ((*c)[0]*log(T) + (*c)[1]*T + (*c)[2]*T*T/2.0 + (*c)[3]*T*T*T/3.0 + (*c)[4]*T*T*T*T/4.0 + (*c)[6]) * Gas_Constant;
55+
// Note: This is partial entropy (temperature dependent part). Pressure part added in SetTDState_rhoe if needed.
56+
// However, SU2 CIdealGas includes log(1/rho) term.
57+
}
58+
59+
// Cv = Cp - R
60+
Cv = Cp - Gas_Constant;
61+
// Gamma = Cp / Cv
62+
Gamma = Cp / Cv;
63+
Gamma_Minus_One = Gamma - 1.0;
64+
}
65+
66+
void CNasaGas::SetTDState_rhoe(su2double rho, su2double e) {
67+
Density = rho;
68+
StaticEnergy = e;
69+
70+
/*--- Solve for T using Newton-Raphson: e(T) = h(T) - R*T ---*/
71+
su2double T_iter = Temperature;
72+
if (T_iter <= 0.0) T_iter = 1.0; // Initial guess
73+
74+
for (int i = 0; i < 10; ++i) {
75+
ComputeProperties_T(T_iter);
76+
su2double e_iter = Enthalpy - Gas_Constant * T_iter;
77+
su2double de_dT = Cv; // de/dT = Cv for ideal gas even with variable Cp
78+
su2double deltaT = (e - e_iter) / de_dT;
79+
T_iter += deltaT;
80+
if (abs(deltaT) < 1e-8 * T_iter) break;
81+
}
82+
83+
Temperature = T_iter;
84+
ComputeProperties_T(Temperature);
85+
86+
Pressure = Density * Gas_Constant * Temperature;
87+
SoundSpeed2 = Gamma * Pressure / Density;
88+
89+
/*--- Derivatives ---*/
90+
dPde_rho = Density * Gas_Constant / Cv;
91+
dPdrho_e = Gas_Constant * Temperature - StaticEnergy * dPde_rho; // From P = rho*R*T and e = e(T)
92+
93+
dTde_rho = 1.0 / Cv;
94+
dTdrho_e = 0.0;
95+
96+
if (ComputeEntropy) {
97+
// Entropy was S(T). Now add pressure/density part: S = S(T) - R*ln(rho*R) + R*ln(R_ref?)
98+
// CIdealGas uses: Entropy = (1.0 / Gamma_Minus_One * log(Temperature) + log(1.0 / Density)) * Gas_Constant;
99+
// For NASA, S(T) already has the log(T) part.
100+
Entropy += log(1.0 / Density) * Gas_Constant;
101+
}
102+
}
103+
104+
void CNasaGas::SetTDState_PT(su2double P, su2double T) {
105+
Pressure = P;
106+
Temperature = T;
107+
ComputeProperties_T(T);
108+
Density = P / (Gas_Constant * T);
109+
StaticEnergy = Enthalpy - Gas_Constant * T;
110+
SetTDState_rhoe(Density, StaticEnergy);
111+
}
112+
113+
void CNasaGas::SetTDState_Prho(su2double P, su2double rho) {
114+
Pressure = P;
115+
Density = rho;
116+
Temperature = P / (Density * Gas_Constant);
117+
ComputeProperties_T(Temperature);
118+
StaticEnergy = Enthalpy - Gas_Constant * Temperature;
119+
SetTDState_rhoe(Density, StaticEnergy);
120+
}
121+
122+
void CNasaGas::SetTDState_rhoT(su2double rho, su2double T) {
123+
Density = rho;
124+
Temperature = T;
125+
ComputeProperties_T(T);
126+
Pressure = Density * Gas_Constant * T;
127+
StaticEnergy = Enthalpy - Gas_Constant * T;
128+
SetTDState_rhoe(Density, StaticEnergy);
129+
}
130+
131+
void CNasaGas::SetTDState_Ps(su2double P, su2double s) {
132+
/*--- This would require another nested iteration to find T from P and s.
133+
For now, we can use an approximate T or a simple Newton solver. ---*/
134+
su2double T_iter = Temperature;
135+
if (T_iter <= 0.0) T_iter = 1.0;
136+
137+
for (int i = 0; i < 10; ++i) {
138+
ComputeProperties_T(T_iter);
139+
su2double s_iter = Entropy + log(Gas_Constant * T_iter / P) * Gas_Constant;
140+
su2double ds_dT = Cp / T_iter;
141+
su2double deltaT = (s - s_iter) / ds_dT;
142+
T_iter += deltaT;
143+
if (abs(deltaT) < 1e-8 * T_iter) break;
144+
}
145+
SetTDState_PT(P, T_iter);
146+
}

SU2_CFD/src/meson.build

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,8 @@ su2_cfd_src += files(['fluid/CFluidModel.cpp',
1313
'fluid/CNEMOGas.cpp',
1414
'fluid/CMutationTCLib.cpp',
1515
'fluid/CSU2TCLib.cpp',
16-
'fluid/CDataDrivenFluid.cpp'])
16+
'fluid/CDataDrivenFluid.cpp',
17+
'fluid/CNasaGas.cpp'])
1718

1819
su2_cfd_src += files(['output/COutputFactory.cpp',
1920
'output/CAdjElasticityOutput.cpp',

SU2_CFD/src/output/CFlowOutput.cpp

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -250,8 +250,19 @@ void CFlowOutput::SetAnalyzeSurface(const CSolver* const*solver, const CGeometry
250250
Mach = sqrt(Velocity2)/SoundSpeed;
251251
Temperature = Pressure / (Gas_Constant * Density);
252252
Enthalpy = flow_nodes->GetEnthalpy(iPoint);
253-
TotalTemperature = Temperature * (1.0 + Mach * Mach * 0.5 * (Gamma - 1.0));
254-
TotalPressure = Pressure * pow( 1.0 + Mach * Mach * 0.5 * (Gamma - 1.0), Gamma / (Gamma - 1.0));
253+
if (config->GetKind_FluidModel() == NASA_GAS) {
254+
TotalTemperature = Temperature;
255+
TotalPressure = Pressure;
256+
// For variable Cp, we'd need an iterative or approximate approach for stagnation properties.
257+
// For now, use a simplified approach or leave as static if complex.
258+
// A common approximation for small Mach: Tt = T + V^2/(2*Cp)
259+
TotalTemperature = Temperature + 0.5 * Velocity2 / flow_nodes->GetSpecificHeatCp(iPoint);
260+
// Pt approximation: Pt = P * (Tt/T)^(Cp/R)
261+
TotalPressure = Pressure * pow(TotalTemperature / Temperature, flow_nodes->GetSpecificHeatCp(iPoint) / Gas_Constant);
262+
} else {
263+
TotalTemperature = Temperature * (1.0 + Mach * Mach * 0.5 * (Gamma - 1.0));
264+
TotalPressure = Pressure * pow( 1.0 + Mach * Mach * 0.5 * (Gamma - 1.0), Gamma / (Gamma - 1.0));
265+
}
255266
}
256267

257268
/*--- Compute the mass Surface_MassFlow ---*/

SU2_CFD/src/solvers/CEulerSolver.cpp

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -881,6 +881,13 @@ void CEulerSolver::SetNondimensionalization(CConfig *config, unsigned short iMes
881881

882882
auxFluidModel = new CDataDrivenFluid(config);
883883

884+
break;
885+
886+
case NASA_GAS:
887+
888+
auxFluidModel = new CNasaGas(Gamma, config->GetGas_Constant());
889+
auxFluidModel->SetCpModel(config, 1.0);
890+
884891
break;
885892
case COOLPROP:
886893

@@ -1133,6 +1140,11 @@ void CEulerSolver::SetNondimensionalization(CConfig *config, unsigned short iMes
11331140
FluidModel[thread] = new CDataDrivenFluid(config, false);
11341141
break;
11351142

1143+
case NASA_GAS:
1144+
FluidModel[thread] = new CNasaGas(Gamma, Gas_ConstantND);
1145+
GetFluidModel()->SetCpModel(config, config->GetTemperature_Ref());
1146+
break;
1147+
11361148
case COOLPROP:
11371149
FluidModel[thread] = new CCoolProp(config->GetFluid_Name());
11381150
break;
@@ -1311,6 +1323,9 @@ void CEulerSolver::SetNondimensionalization(CConfig *config, unsigned short iMes
13111323
case PR_GAS:
13121324
ModelTable << "PR_GAS";
13131325
break;
1326+
case NASA_GAS:
1327+
ModelTable << "NASA_GAS";
1328+
break;
13141329
case COOLPROP:
13151330
ModelTable << "CoolProp library";
13161331
break;

SU2_CFD/src/solvers/CFEM_DG_EulerSolver.cpp

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@
3333
#include "../../include/fluid/CPengRobinson.hpp"
3434
#include "../../include/fluid/CCoolProp.hpp"
3535
#include "../../include/fluid/CDataDrivenFluid.hpp"
36+
#include "../../include/fluid/CNasaGas.hpp"
3637

3738
enum {
3839
SIZE_ARR_NORM = 8
@@ -914,6 +915,21 @@ void CFEM_DG_EulerSolver::SetNondimensionalization(CConfig *config,
914915
}
915916

916917
break;
918+
919+
case NASA_GAS:
920+
FluidModel = new CNasaGas(Gamma, config->GetGas_Constant(), config->GetCompute_Entropy());
921+
FluidModel->SetCpModel(config, 1.0);
922+
if (free_stream_temp) {
923+
FluidModel->SetTDState_PT(Pressure_FreeStream, Temperature_FreeStream);
924+
Density_FreeStream = FluidModel->GetDensity();
925+
config->SetDensity_FreeStream(Density_FreeStream);
926+
}
927+
else {
928+
FluidModel->SetTDState_Prho(Pressure_FreeStream, Density_FreeStream );
929+
Temperature_FreeStream = FluidModel->GetTemperature();
930+
config->SetTemperature_FreeStream(Temperature_FreeStream);
931+
}
932+
break;
917933
}
918934

919935
Mach2Vel_FreeStream = FluidModel->GetSoundSpeed();
@@ -1121,6 +1137,12 @@ void CFEM_DG_EulerSolver::SetNondimensionalization(CConfig *config,
11211137
FluidModel = new CDataDrivenFluid(config);
11221138
FluidModel->SetEnergy_Prho(Pressure_FreeStreamND, Density_FreeStreamND);
11231139
break;
1140+
1141+
case NASA_GAS:
1142+
FluidModel = new CNasaGas(Gamma, Gas_ConstantND, config->GetCompute_Entropy());
1143+
FluidModel->SetCpModel(config, config->GetTemperature_Ref());
1144+
FluidModel->SetEnergy_Prho(Pressure_FreeStreamND, Density_FreeStreamND);
1145+
break;
11241146
}
11251147

11261148
Energy_FreeStreamND = FluidModel->GetStaticEnergy() + 0.5*ModVel_FreeStreamND*ModVel_FreeStreamND;
@@ -1291,6 +1313,9 @@ void CFEM_DG_EulerSolver::SetNondimensionalization(CConfig *config,
12911313
case PR_GAS:
12921314
ModelTable << "PR_GAS";
12931315
break;
1316+
case NASA_GAS:
1317+
ModelTable << "NASA_GAS";
1318+
break;
12941319
case COOLPROP:
12951320
ModelTable << "CoolProp library";
12961321
break;

0 commit comments

Comments
 (0)