@@ -52,7 +52,7 @@ 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 );
@@ -110,6 +110,14 @@ CSU2TCLib::CSU2TCLib(const CConfig* config, unsigned short val_nDim, bool viscou
110110 ElDegeneracy (0 ,5 ) = 5 ;
111111 ElDegeneracy (0 ,6 ) = 15 ;
112112
113+ if (viscous) {
114+ // F.M. White, Viscous Fluid Flow, 3rd ed., McGraw-Hill, 2006.
115+ mu_ref[0 ] = 2.125E-5 ;
116+ k_ref[0 ] = 0.0163 ;
117+ Sm_ref[0 ] = 114.0 ;
118+ Sk_ref[0 ] = 170 ;
119+ }
120+
113121 } else if (gas_model == " N2" ){
114122 /* --- Check for errors in the initialization ---*/
115123 if (nSpecies != 2 ) {
@@ -252,6 +260,14 @@ CSU2TCLib::CSU2TCLib(const CConfig* config, unsigned short val_nDim, bool viscou
252260 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 ;
253261 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 ;
254262
263+ if (viscous) {
264+ // F.M. White, Viscous Fluid Flow, 3rd ed., McGraw-Hill, 2006.
265+ k_ref[0 ] = 0.0242 ;
266+ mu_ref[0 ] = 1.663E-5 ;
267+ Sm_ref[0 ] = 107.0 ;
268+ Sk_ref[0 ] = 150.0 ;
269+ }
270+
255271 } else if (gas_model == " AIR-5" ){
256272
257273 /* --- Check for errors in the initialization ---*/
@@ -598,6 +614,14 @@ CSU2TCLib::CSU2TCLib(const CConfig* config, unsigned short val_nDim, bool viscou
598614 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 ;
599615 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 ;
600616
617+ if (viscous) {
618+ // F.M. White, Viscous Fluid Flow, 3rd ed., McGraw-Hill, 2006.
619+ k_ref[0 ] = 0.0241 ;
620+ mu_ref[0 ] = 1.716E-5 ;
621+ Sm_ref[0 ] = 111.0 ;
622+ Sk_ref[0 ] = 194.0 ;
623+ }
624+
601625 } else if (gas_model == " AIR-7" ){
602626
603627 /* --- Check for errors in the initialization ---*/
@@ -1027,6 +1051,14 @@ CSU2TCLib::CSU2TCLib(const CConfig* config, unsigned short val_nDim, bool viscou
10271051 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 ;
10281052 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 ;
10291053 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 ;
1054+
1055+ if (viscous) {
1056+ // F.M. White, Viscous Fluid Flow, 3rd ed., McGraw-Hill, 2006.
1057+ k_ref[0 ] = 0.0241 ;
1058+ mu_ref[0 ] = 1.716E-5 ;
1059+ Sm_ref[0 ] = 111.0 ;
1060+ Sk_ref[0 ] = 194.0 ;
1061+ }
10301062 }
10311063
10321064 if (ionization) { nHeavy = nSpecies-1 ; nEl = 1 ; }
@@ -1598,6 +1630,8 @@ vector<su2double>& CSU2TCLib::GetDiffusionCoeff(){
15981630 DiffusionCoeffWBE ();
15991631 if (Kind_TransCoeffModel == TRANSCOEFFMODEL::GUPTAYOS)
16001632 DiffusionCoeffGY ();
1633+ if (Kind_TransCoeffModel == TRANSCOEFFMODEL::SUTHERLAND)
1634+ DiffusionCoeffWBE ();
16011635
16021636 return DiffusionCoeff;
16031637
@@ -1609,6 +1643,8 @@ su2double CSU2TCLib::GetViscosity(){
16091643 ViscosityWBE ();
16101644 if (Kind_TransCoeffModel == TRANSCOEFFMODEL::GUPTAYOS)
16111645 ViscosityGY ();
1646+ if (Kind_TransCoeffModel == TRANSCOEFFMODEL::SUTHERLAND)
1647+ ViscositySuth ();
16121648
16131649 return Mu;
16141650
@@ -1620,6 +1656,8 @@ vector<su2double>& CSU2TCLib::GetThermalConductivities(){
16201656 ThermalConductivitiesWBE ();
16211657 if (Kind_TransCoeffModel == TRANSCOEFFMODEL::GUPTAYOS)
16221658 ThermalConductivitiesGY ();
1659+ if (Kind_TransCoeffModel == TRANSCOEFFMODEL::SUTHERLAND)
1660+ ThermalConductivitiesSuth ();
16231661
16241662 return ThermalConductivities;
16251663
@@ -1802,7 +1840,7 @@ void CSU2TCLib::DiffusionCoeffGY(){
18021840 // }
18031841
18041842 /* --- Assign species diffusion coefficient ---*/
1805- DiffusionCoeff[iSpecies] = gam_t *gam_t *Mi*(1 -Mi*gam_i) / denom;
1843+ DiffusionCoeff[iSpecies] = (denom > EPS) ? ( gam_t *gam_t *Mi*(1 -Mi*gam_i) / denom) : su2double ( 0.0 ) ;
18061844 }
18071845 // if (ionization) {
18081846 // TODO: Update correct iElectron....
@@ -1971,18 +2009,48 @@ void CSU2TCLib::ThermalConductivitiesGY(){
19712009 }
19722010
19732011 /* --- Translational contribution to thermal conductivity ---*/
1974- ThermalCond_tr += ( 15.0 /4.0 )*kb*gam_i/denom_t ;
2012+ ThermalCond_tr += ( denom_t > EPS) ? (( 15.0 /4.0 )*kb*gam_i/denom_t ) : su2double ( 0.0 ) ;
19752013
19762014 /* --- Translational contribution to thermal conductivity ---*/
1977- if (RotationModes[iSpecies] != 0.0 )
1978- ThermalCond_tr += kb*gam_i/denom_r;
2015+ if (RotationModes[iSpecies] != 0.0 ) ThermalCond_tr += (denom_r > EPS) ? (kb*gam_i/denom_r) : su2double (0.0 );
19792016
19802017 /* --- Vibrational-electronic contribution to thermal conductivity ---*/
1981- ThermalCond_ve += kb*Cvve/R*gam_i / denom_r;
2018+ ThermalCond_ve += (denom_r > EPS) ? ( kb*Cvve/R*gam_i / denom_r) : su2double ( 0.0 ) ;
19822019 }
19832020
19842021 ThermalConductivities[0 ] = ThermalCond_tr;
19852022 ThermalConductivities[1 ] = ThermalCond_ve;
2023+ }
2024+
2025+ void CSU2TCLib::ViscositySuth (){
2026+
2027+ su2double T_nd = T / T_ref_suth;
2028+
2029+ /* --- Calculate mixture laminar viscosity ---*/
2030+ Mu = mu_ref[0 ] * T_nd * sqrt (T_nd) * ((T_ref_suth + Sm_ref[0 ]) / (T + Sm_ref[0 ]));
2031+
2032+ }
2033+
2034+ void CSU2TCLib::ThermalConductivitiesSuth (){
2035+
2036+ /* --- Compute mixture quantities ---*/
2037+ su2double mass = 0.0 , rho = 0.0 ;
2038+ for (unsigned short ii=0 ; ii<nSpecies; ii++) rho += rhos[ii];
2039+ for (unsigned short ii=0 ; ii<nSpecies; ii++) mass += rhos[ii]/rho*MolarMass[ii];
2040+
2041+ su2double Cvtr = ComputerhoCvtr ()/rho;
2042+ su2double Cvve = ComputerhoCvve ()/rho;
2043+
2044+ /* --- Compute simple Kve scaling factor ---*/
2045+ su2double scl = Cvve/Cvtr;
2046+
2047+ /* --- Compute k's using Sutherland's law ---*/
2048+ su2double T_nd = T / T_ref_suth;
2049+ su2double k = k_ref[0 ] * T_nd * sqrt (T_nd) * ((T_ref_suth + Sk_ref[0 ]) / (T + Sk_ref[0 ]));
2050+ su2double kve = scl*k;
2051+
2052+ ThermalConductivities[0 ] = k;
2053+ ThermalConductivities[1 ] = kve;
19862054
19872055}
19882056
0 commit comments