Skip to content

Commit 3205992

Browse files
committed
Add in Sutherland's law for NEMO problems + some clean up to viscous functions
1 parent 40e82f4 commit 3205992

8 files changed

Lines changed: 142 additions & 55 deletions

File tree

Common/include/option_structure.hpp

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -613,11 +613,13 @@ MakePair("ONESPECIES", ONESPECIES)
613613
* \brief types of coefficient transport model
614614
*/
615615
enum class TRANSCOEFFMODEL {
616+
SUTHERLAND,
616617
WILKE,
617618
GUPTAYOS,
618619
CHAPMANN_ENSKOG
619620
};
620621
static const MapType<std::string, TRANSCOEFFMODEL> TransCoeffModel_Map = {
622+
MakePair("SUTHERLAND", TRANSCOEFFMODEL::SUTHERLAND)
621623
MakePair("WILKE", TRANSCOEFFMODEL::WILKE)
622624
MakePair("GUPTA-YOS", TRANSCOEFFMODEL::GUPTAYOS)
623625
MakePair("CHAPMANN-ENSKOG", TRANSCOEFFMODEL::CHAPMANN_ENSKOG)

Common/src/CConfig.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3792,8 +3792,8 @@ void CConfig::SetPostprocessing(SU2_COMPONENT val_software, unsigned short val_i
37923792
SU2_MPI::Error("Only STANDARD_AIR fluid model can be used with US Measurement System", CURRENT_FUNCTION);
37933793
}
37943794

3795-
if (Kind_FluidModel == SU2_NONEQ && Kind_TransCoeffModel != TRANSCOEFFMODEL::WILKE ) {
3796-
SU2_MPI::Error("Only WILKE transport model is stable for the NEMO solver using SU2TClib. Use Mutation++ instead.", CURRENT_FUNCTION);
3795+
if (Kind_FluidModel == SU2_NONEQ && (Kind_TransCoeffModel != TRANSCOEFFMODEL::WILKE && Kind_TransCoeffModel != TRANSCOEFFMODEL::SUTHERLAND) ) {
3796+
SU2_MPI::Error("Only WILKE and SUTHERLAND transport models are stable for the NEMO solver using SU2TClib. Use Mutation++ instead.", CURRENT_FUNCTION);
37973797
}
37983798

37993799
if (Kind_FluidModel == MUTATIONPP && (Kind_TransCoeffModel != TRANSCOEFFMODEL::WILKE && Kind_TransCoeffModel != TRANSCOEFFMODEL::CHAPMANN_ENSKOG)) {

SU2_CFD/include/fluid/CSU2TCLib.hpp

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -64,6 +64,12 @@ class CSU2TCLib : public CNEMOGas {
6464
phis, mus, /*!< \brief Auxiliary vectors to be used in Wilke/Blottner/Eucken model */
6565
A; /*!< \brief Auxiliary vector to be used in net production rate computation */
6666

67+
vector<su2double>
68+
mu_ref, /*!< \brief Vector containing reference viscosity for Sutherland's law */
69+
k_ref, /*!< \brief Vector containing reference thermal conducivities for Sutherland's law */
70+
Sm_ref, /*!< \brief Vector containing Sutherland's constant for viscosity */
71+
Sk_ref; /*!< \brief Vector containing Sutherland's constant for thermal conductivities */
72+
6773
su2activematrix CharElTemp, /*!< \brief Characteristic temperature of electron states. */
6874
ElDegeneracy, /*!< \brief Degeneracy of electron states. */
6975
RxnConstantTable, /*!< \brief Table of chemical equiibrium reaction constants */
@@ -232,6 +238,16 @@ class CSU2TCLib : public CNEMOGas {
232238
*/
233239
void ThermalConductivitiesGY();
234240

241+
/*!
242+
* \brief Get viscosity with Sutherland's transport model.
243+
*/
244+
void ViscositySuth();
245+
246+
/*!
247+
* \brief Get T-R and V-E thermal conductivities vector with Sutherland's transport model.
248+
*/
249+
void ThermalConductivitiesSuth();
250+
235251
/*!
236252
* \brief Get reference temperature.
237253
*/

SU2_CFD/src/fluid/CSU2TCLib.cpp

Lines changed: 80 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -52,10 +52,17 @@ CSU2TCLib::CSU2TCLib(const CConfig* config, unsigned short val_nDim, bool viscou
5252
eve_eq.resize(nSpecies,0.0);
5353
eve.resize(nSpecies,0.0);
5454

55-
if(viscous){
55+
if (viscous) {
5656
MolarFracWBE.resize(nSpecies,0.0);
5757
phis.resize(nSpecies,0.0);
5858
mus.resize(nSpecies,0.0);
59+
60+
/*--- Reference values for Sutherland's law viscosity ---*/
61+
//Note: Can be extended with better coefficients of individual species,.
62+
k_ref.resize(1,0.0);
63+
mu_ref.resize(1,0.0);
64+
Sm_ref.resize(1,0.0);
65+
Sk_ref.resize(1,0.0);
5966
}
6067

6168
if (gas_model =="ARGON"){
@@ -110,6 +117,13 @@ CSU2TCLib::CSU2TCLib(const CConfig* config, unsigned short val_nDim, bool viscou
110117
ElDegeneracy(0,5) = 5;
111118
ElDegeneracy(0,6) = 15;
112119

120+
if (viscous) {
121+
mu_ref[0] = 2.125E-5;
122+
k_ref[0] = 0.0163;
123+
Sm_ref[0] = 114.0;
124+
Sk_ref[0] = 170;
125+
}
126+
113127
} else if (gas_model == "N2"){
114128
/*--- Check for errors in the initialization ---*/
115129
if (nSpecies != 2) {
@@ -252,6 +266,13 @@ CSU2TCLib::CSU2TCLib(const CConfig* config, unsigned short val_nDim, bool viscou
252266
Omega11(1,0,0) = -8.3493693E-03; Omega11(1,0,1) = 1.7808911E-01; Omega11(1,0,2) = -1.4466155E+00; Omega11(1,0,3) = 1.9324210E+03;
253267
Omega11(1,1,0) = -7.7439615E-03; Omega11(1,1,1) = 1.7129007E-01; Omega11(1,1,2) = -1.4809088E+00; Omega11(1,1,3) = 2.1284951E+03;
254268

269+
if (viscous) {
270+
k_ref[0] = 0.0242;
271+
mu_ref[0] = 1.663E-5;
272+
Sm_ref[0] = 107.0;
273+
Sk_ref[0] = 150.0;
274+
}
275+
255276
} else if (gas_model == "AIR-5"){
256277

257278
/*--- Check for errors in the initialization ---*/
@@ -598,6 +619,13 @@ CSU2TCLib::CSU2TCLib(const CConfig* config, unsigned short val_nDim, bool viscou
598619
Omega11(4,3,0) = -5.0478143E-03; Omega11(4,3,1) = 1.0236186E-01; Omega11(4,3,2) = -9.0058935E-01; Omega11(4,3,3) = 4.4472565E+02;
599620
Omega11(4,4,0) = -4.2451096E-03; Omega11(4,4,1) = 9.6820337E-02; Omega11(4,4,2) = -9.9770795E-01; Omega11(4,4,3) = 8.3320644E+02;
600621

622+
if (viscous) {
623+
k_ref[0] = 0.0241;
624+
mu_ref[0] = 1.716E-5;
625+
Sm_ref[0] = 111.0;
626+
Sk_ref[0] = 194.0;
627+
}
628+
601629
} else if (gas_model == "AIR-7"){
602630

603631
/*--- Check for errors in the initialization ---*/
@@ -1027,6 +1055,13 @@ CSU2TCLib::CSU2TCLib(const CConfig* config, unsigned short val_nDim, bool viscou
10271055
Omega11(4,2,0) = -1.0066279E-03; Omega11(4,2,1) = 1.1029264E-02; Omega11(4,2,2) = -2.0671266E-01; Omega11(4,2,3) = 8.2644384E+01;
10281056
Omega11(4,3,0) = -5.0478143E-03; Omega11(4,3,1) = 1.0236186E-01; Omega11(4,3,2) = -9.0058935E-01; Omega11(4,3,3) = 4.4472565E+02;
10291057
Omega11(4,4,0) = -4.2451096E-03; Omega11(4,4,1) = 9.6820337E-02; Omega11(4,4,2) = -9.9770795E-01; Omega11(4,4,3) = 8.3320644E+02;
1058+
1059+
if (viscous) {
1060+
k_ref[0] = 0.0241;
1061+
mu_ref[0] = 1.716E-5;
1062+
Sm_ref[0] = 111.0;
1063+
Sk_ref[0] = 194.0;
1064+
}
10301065
}
10311066

10321067
if (ionization) { nHeavy = nSpecies-1; nEl = 1; }
@@ -1598,6 +1633,8 @@ vector<su2double>& CSU2TCLib::GetDiffusionCoeff(){
15981633
DiffusionCoeffWBE();
15991634
if(Kind_TransCoeffModel == TRANSCOEFFMODEL::GUPTAYOS)
16001635
DiffusionCoeffGY();
1636+
if(Kind_TransCoeffModel == TRANSCOEFFMODEL::SUTHERLAND)
1637+
DiffusionCoeffWBE();
16011638

16021639
return DiffusionCoeff;
16031640

@@ -1609,6 +1646,8 @@ su2double CSU2TCLib::GetViscosity(){
16091646
ViscosityWBE();
16101647
if(Kind_TransCoeffModel == TRANSCOEFFMODEL::GUPTAYOS)
16111648
ViscosityGY();
1649+
if(Kind_TransCoeffModel == TRANSCOEFFMODEL::SUTHERLAND)
1650+
ViscositySuth();
16121651

16131652
return Mu;
16141653

@@ -1620,6 +1659,8 @@ vector<su2double>& CSU2TCLib::GetThermalConductivities(){
16201659
ThermalConductivitiesWBE();
16211660
if(Kind_TransCoeffModel == TRANSCOEFFMODEL::GUPTAYOS)
16221661
ThermalConductivitiesGY();
1662+
if(Kind_TransCoeffModel == TRANSCOEFFMODEL::SUTHERLAND)
1663+
ThermalConductivitiesSuth();
16231664

16241665
return ThermalConductivities;
16251666

@@ -1802,7 +1843,8 @@ void CSU2TCLib::DiffusionCoeffGY(){
18021843
//}
18031844

18041845
/*--- Assign species diffusion coefficient ---*/
1805-
DiffusionCoeff[iSpecies] = gam_t*gam_t*Mi*(1-Mi*gam_i) / denom;
1846+
if (denom == 0) { DiffusionCoeff[iSpecies] = 0.0; }
1847+
else { DiffusionCoeff[iSpecies] = gam_t*gam_t*Mi*(1-Mi*gam_i) / denom; }
18061848
}
18071849
// if (ionization) {
18081850
//TODO: Update correct iElectron....
@@ -1971,18 +2013,50 @@ void CSU2TCLib::ThermalConductivitiesGY(){
19712013
}
19722014

19732015
/*--- Translational contribution to thermal conductivity ---*/
1974-
ThermalCond_tr += (15.0/4.0)*kb*gam_i/denom_t;
2016+
if (denom_t != 0) ThermalCond_tr += (15.0/4.0)*kb*gam_i/denom_t;
19752017

19762018
/*--- Translational contribution to thermal conductivity ---*/
1977-
if (RotationModes[iSpecies] != 0.0)
1978-
ThermalCond_tr += kb*gam_i/denom_r;
2019+
if (RotationModes[iSpecies] != 0.0 && denom_r != 0) ThermalCond_tr += kb*gam_i/denom_r;
19792020

19802021
/*--- Vibrational-electronic contribution to thermal conductivity ---*/
1981-
ThermalCond_ve += kb*Cvve/R*gam_i / denom_r;
2022+
if (denom_r != 0) ThermalCond_ve += kb*Cvve/R*gam_i / denom_r;
19822023
}
19832024

19842025
ThermalConductivities[0] = ThermalCond_tr;
19852026
ThermalConductivities[1] = ThermalCond_ve;
2027+
}
2028+
2029+
void CSU2TCLib::ViscositySuth(){
2030+
2031+
su2double T_ref = 273.15;
2032+
su2double T_nd = T / T_ref;
2033+
2034+
/*--- Calculate mixture laminar viscosity ---*/
2035+
Mu = mu_ref[0] * T_nd * sqrt(T_nd) * ((T_ref + Sm_ref[0]) / (T + Sm_ref[0]));
2036+
2037+
}
2038+
2039+
void CSU2TCLib::ThermalConductivitiesSuth(){
2040+
2041+
/*--- Compute mixture quantities ---*/
2042+
su2double mass = 0.0, rho = 0.0;
2043+
for (unsigned short ii=0; ii<nSpecies; ii++) rho += rhos[ii];
2044+
for (unsigned short ii=0; ii<nSpecies; ii++) mass += rhos[ii]/rho*MolarMass[ii];
2045+
2046+
su2double Cvtr = ComputerhoCvtr()/rho;
2047+
su2double Cvve = ComputerhoCvve()/rho;
2048+
2049+
/*--- Compute simple Kve scaling factor ---*/
2050+
su2double scl = Cvve/Cvtr;
2051+
2052+
/*--- Compute k's using Sutherland's law ---*/
2053+
su2double T_ref = 273.15;
2054+
su2double T_nd = T / T_ref;
2055+
su2double k = k_ref[0] * T_nd * sqrt(T_nd) * ((T_ref + Sk_ref[0]) / (T + Sk_ref[0]));
2056+
su2double kve = scl*k;
2057+
2058+
ThermalConductivities[0] = k;
2059+
ThermalConductivities[1] = kve;
19862060

19872061
}
19882062

SU2_CFD/src/numerics/NEMO/CNEMONumerics.cpp

Lines changed: 32 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -228,61 +228,58 @@ void CNEMONumerics::GetViscousProjFlux(const su2double *val_primvar,
228228
su2double val_therm_conductivity_ve,
229229
const CConfig *config) {
230230

231+
if (ionization) {
232+
SU2_MPI::Error("NEED TO IMPLEMENT IONIZED FUNCTIONALITY!!!",CURRENT_FUNCTION);
233+
}
234+
231235
// Requires a slightly non-standard primitive vector:
232236
// Assumes - V = [Y1, ... , Yn, T, Tve, ... ]
233237
// and gradient GV = [GY1, ... , GYn, GT, GTve, ... ]
234238
// rather than the standard V = [r1, ... , rn, T, Tve, ... ]
235239

236-
unsigned short iSpecies, iVar, iDim, jDim;
237-
su2double mu, ktr, kve, rho, T, Tve, RuSI, Ru;
238-
auto& Ms = fluidmodel->GetSpeciesMolarMass();
239-
240240
su2activematrix Flux_Tensor(nVar,nDim);
241241

242242
/*--- Initialize ---*/
243-
for (iVar = 0; iVar < nVar; iVar++) {
243+
for (auto iVar = 0; iVar < nVar; iVar++) {
244244
Proj_Flux_Tensor[iVar] = 0.0;
245-
for (iDim = 0; iDim < nDim; iDim++)
245+
for (auto iDim = 0; iDim < nDim; iDim++)
246246
Flux_Tensor[iVar][iDim] = 0.0;
247247
}
248248

249-
/*--- Rename for convenience ---*/
249+
/*--- Rename variables for convenience ---*/
250+
const auto& Ms = fluidmodel->GetSpeciesMolarMass();
250251
const auto& Ds = val_diffusioncoeff;
251-
mu = val_lam_viscosity+val_eddy_viscosity;
252-
ktr = val_therm_conductivity;
253-
kve = val_therm_conductivity_ve;
254-
rho = val_primvar[RHO_INDEX];
255-
T = val_primvar[T_INDEX];
256-
Tve = val_primvar[TVE_INDEX];
252+
const su2double mu = val_lam_viscosity+val_eddy_viscosity;
253+
su2double ktr = val_therm_conductivity;
254+
su2double kve = val_therm_conductivity_ve;
255+
const su2double rho = val_primvar[RHO_INDEX];
256+
const su2double T = val_primvar[T_INDEX];
257+
const su2double Tve = val_primvar[TVE_INDEX];
257258
const auto& V = val_primvar;
258259
const auto& GV = val_gradprimvar;
259-
RuSI= UNIVERSAL_GAS_CONSTANT;
260-
Ru = 1000.0*RuSI;
261-
260+
const su2double Ru = 1000.0*UNIVERSAL_GAS_CONSTANT;
262261
const auto& hs = fluidmodel->ComputeSpeciesEnthalpy(T, Tve, val_eve);
263262

264263
/*--- Scale thermal conductivity with turb visc ---*/
265264
// TODO: Need to determine proper way to incorporate eddy viscosity
266265
// This is only scaling Kve by same factor as ktr
267266
// NOTE: V[iSpecies] is == Ys.
268267
su2double Mass = 0.0;
269-
su2double tmp1, scl, Cptr;
270-
for (iSpecies=0;iSpecies<nSpecies;iSpecies++)
268+
for (auto iSpecies = 0;iSpecies<nSpecies;iSpecies++)
271269
Mass += V[iSpecies]*Ms[iSpecies];
272-
Cptr = V[RHOCVTR_INDEX]/V[RHO_INDEX]+Ru/Mass;
273-
tmp1 = Cptr*(val_eddy_viscosity/Prandtl_Turb);
274-
scl = tmp1/ktr;
270+
271+
su2double Cptr = V[RHOCVTR_INDEX]/V[RHO_INDEX]+Ru/Mass;
272+
su2double tmp1 = Cptr*(val_eddy_viscosity/Prandtl_Turb);
273+
su2double scl = tmp1/ktr;
275274
ktr += Cptr*(val_eddy_viscosity/Prandtl_Turb);
276275
kve = kve*(1.0+scl);
277276
//Cpve = V[RHOCVVE_INDEX]+Ru/Mass;
278277
//kve += Cpve*(val_eddy_viscosity/Prandtl_Turb);
279278

280-
/*--- Pre-compute mixture quantities ---*/
281-
279+
/*--- Pre-compute mixture quantities ---*/ //TODO
282280
su2double Vector[MAXNDIM] = {0.0};
283-
284-
for (iDim = 0; iDim < nDim; iDim++) {
285-
for (iSpecies = 0; iSpecies < nHeavy; iSpecies++) {
281+
for (auto iDim = 0; iDim < nDim; iDim++) {
282+
for (auto iSpecies = 0; iSpecies < nHeavy; iSpecies++) {
286283
Vector[iDim] += rho*Ds[iSpecies]*GV[RHOS_INDEX+iSpecies][iDim];
287284
}
288285
}
@@ -291,37 +288,34 @@ void CNEMONumerics::GetViscousProjFlux(const su2double *val_primvar,
291288
ComputeStressTensor(nDim,tau,val_gradprimvar+VEL_INDEX, mu);
292289

293290
/*--- Populate entries in the viscous flux vector ---*/
294-
for (iDim = 0; iDim < nDim; iDim++) {
291+
for (auto iDim = 0; iDim < nDim; iDim++) {
292+
295293
/*--- Species diffusion velocity ---*/
296-
for (iSpecies = 0; iSpecies < nHeavy; iSpecies++) {
294+
for (auto iSpecies = 0; iSpecies < nHeavy; iSpecies++) {
297295
Flux_Tensor[iSpecies][iDim] = rho*Ds[iSpecies]*GV[RHOS_INDEX+iSpecies][iDim]
298296
- V[RHOS_INDEX+iSpecies]*Vector[iDim];
299297
}
300-
if (ionization) {
301-
SU2_MPI::Error("NEED TO IMPLEMENT IONIZED FUNCTIONALITY!!!",CURRENT_FUNCTION);
302-
}
303298

304-
/*--- Shear stress related terms ---*/
299+
/*--- Shear-stress/momentum related terms ---*/
305300
Flux_Tensor[nSpecies+nDim][iDim] = 0.0;
306-
for (jDim = 0; jDim < nDim; jDim++) {
301+
for (auto jDim = 0; jDim < nDim; jDim++) {
307302
Flux_Tensor[nSpecies+jDim][iDim] = tau[iDim][jDim];
308303
Flux_Tensor[nSpecies+nDim][iDim] += tau[iDim][jDim]*val_primvar[VEL_INDEX+jDim];
309304
}
310305

311306
/*--- Diffusion terms ---*/
312-
for (iSpecies = 0; iSpecies < nHeavy; iSpecies++) {
307+
for (auto iSpecies = 0; iSpecies < nHeavy; iSpecies++) {
313308
Flux_Tensor[nSpecies+nDim][iDim] += Flux_Tensor[iSpecies][iDim] * hs[iSpecies];
314309
Flux_Tensor[nSpecies+nDim+1][iDim] += Flux_Tensor[iSpecies][iDim] * val_eve[iSpecies];
315310
}
316311

317312
/*--- Heat transfer terms ---*/
318-
Flux_Tensor[nSpecies+nDim][iDim] += ktr*GV[T_INDEX][iDim] +
319-
kve*GV[TVE_INDEX][iDim];
313+
Flux_Tensor[nSpecies+nDim][iDim] += ktr*GV[T_INDEX][iDim] + kve*GV[TVE_INDEX][iDim];
320314
Flux_Tensor[nSpecies+nDim+1][iDim] += kve*GV[TVE_INDEX][iDim];
321315
}
322316

323-
for (iVar = 0; iVar < nVar; iVar++) {
324-
for (iDim = 0; iDim < nDim; iDim++) {
317+
for (auto iVar = 0; iVar < nVar; iVar++) {
318+
for (auto iDim = 0; iDim < nDim; iDim++) {
325319
Proj_Flux_Tensor[iVar] += Flux_Tensor[iVar][iDim]*val_normal[iDim];
326320
}
327321
}

SU2_CFD/src/numerics/NEMO/NEMO_diffusion.cpp

Lines changed: 4 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -128,14 +128,10 @@ CNumerics::ResidualType<> CAvgGrad_NEMO::ComputeResidual(const CConfig *config)
128128
PrimVar_j[iSpecies] = V_j[iSpecies]/V_j[RHO_INDEX];
129129
Mean_PrimVar[iSpecies] = 0.5*(PrimVar_i[iSpecies] + PrimVar_j[iSpecies]);
130130
for (auto iDim = 0; iDim < nDim; iDim++) {
131-
Mean_GradPrimVar[iSpecies][iDim] = 0.5*(1.0/V_i[RHO_INDEX] *
132-
(PrimVar_Grad_i[iSpecies][iDim] -
133-
PrimVar_i[iSpecies] *
134-
PrimVar_Grad_i[RHO_INDEX][iDim]) +
135-
1.0/V_j[RHO_INDEX] *
136-
(PrimVar_Grad_j[iSpecies][iDim] -
137-
PrimVar_j[iSpecies] *
138-
PrimVar_Grad_j[RHO_INDEX][iDim]));
131+
Mean_GradPrimVar[iSpecies][iDim] = 0.5*(1.0/V_i[RHO_INDEX] * (PrimVar_Grad_i[iSpecies][iDim] -
132+
PrimVar_i[iSpecies] * PrimVar_Grad_i[RHO_INDEX][iDim]) +
133+
1.0/V_j[RHO_INDEX] * (PrimVar_Grad_j[iSpecies][iDim] -
134+
PrimVar_j[iSpecies] * PrimVar_Grad_j[RHO_INDEX][iDim]));
139135
}
140136
}
141137

SU2_CFD/src/solvers/CNEMOEulerSolver.cpp

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1312,6 +1312,11 @@ void CNEMOEulerSolver::SetNondimensionalization(CConfig *config, unsigned short
13121312
if (viscous) {
13131313

13141314
switch(config->GetKind_TransCoeffModel()){
1315+
case TRANSCOEFFMODEL::SUTHERLAND:
1316+
ModelTable << "Sutherland + WBE";
1317+
NonDimTable.PrintFooter();
1318+
break;
1319+
13151320
case TRANSCOEFFMODEL::WILKE:
13161321
ModelTable << "Wilke-Blottner-Eucken";
13171322
NonDimTable.PrintFooter();

config_template.cfg

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1346,7 +1346,7 @@ CFL_REDUCTION_ADJTURB= 0.01
13461346

13471347
% -------------------- NEMO NUMERICAL METHOD DEFINITION -----------------------%
13481348
%
1349-
% Mixture transport properties (WILKE,GUPTA-YOS,CHAPMANN-ENSKOG)
1349+
% Mixture transport properties (WILKE,GUPTA-YOS,CHAPMANN-ENSKOG, SUTHERLAND)
13501350
TRANSPORT_COEFF_MODEL = WILKE
13511351

13521352
% ----------------------- GEOMETRY EVALUATION PARAMETERS ----------------------%

0 commit comments

Comments
 (0)