mirror of
https://github.com/CoolProp/CoolProp.git
synced 2026-02-09 21:35:28 -05:00
Water viscosity hardcoded implemented; Fixed reference for CO2 - need to double check all transport references
Signed-off-by: Ian Bell <ian.h.bell@gmail.com>
This commit is contained in:
@@ -608,6 +608,16 @@ protected:
|
||||
/// Parse the thermal conductivity data
|
||||
void parse_thermal_conductivity(rapidjson::Value &conductivity, CoolPropFluid & fluid)
|
||||
{
|
||||
if (conductivity.HasMember("hardcoded")){
|
||||
std::string target = cpjson::get_string(conductivity, "hardcoded");
|
||||
if (!target.compare("Water")){
|
||||
fluid.transport.hardcoded_conductivity = CoolProp::TransportPropertyData::CONDUCTIVITY_HARDCODED_WATER; return;
|
||||
}
|
||||
else{
|
||||
throw ValueError(format("hardcoded residual conductivity term [%s] is not understood for fluid %s",target.c_str(), fluid.name.c_str()));
|
||||
}
|
||||
}
|
||||
|
||||
// Load the BibTeX key
|
||||
fluid.transport.BibTeX_conductivity = cpjson::get_string(conductivity,"BibTeX");
|
||||
|
||||
|
||||
@@ -220,7 +220,7 @@ long double HelmholtzEOSMixtureBackend::calc_conductivity(void)
|
||||
switch(components[0]->transport.hardcoded_conductivity)
|
||||
{
|
||||
case CoolProp::TransportPropertyData::CONDUCTIVITY_HARDCODED_WATER:
|
||||
return TransportRoutines::viscosity_water_hardcoded(*this);
|
||||
return TransportRoutines::conductivity_hardcoded_water(*this);
|
||||
default:
|
||||
throw ValueError(format("hardcoded viscosity type [%d] is invalid for fluid %s", components[0]->transport.hardcoded_conductivity, name().c_str()));
|
||||
}
|
||||
|
||||
@@ -571,9 +571,9 @@ long double TransportRoutines::conductivity_critical_hardcoded_R123(HelmholtzEOS
|
||||
|
||||
long double TransportRoutines::conductivity_dilute_hardcoded_CO2(HelmholtzEOSMixtureBackend &HEOS){
|
||||
|
||||
double e_k=251.196,Tstar;
|
||||
double b[]={0.4226159,0.6280115,-0.5387661,0.6735941,0,0,-0.4362677,0.2255388};
|
||||
double c[]={0,2.387869e-2,4.350794,-10.33404,7.981590,-1.940558};
|
||||
double e_k = 251.196, Tstar;
|
||||
double b[] = {0.4226159, 0.6280115, -0.5387661, 0.6735941, 0, 0, -0.4362677, 0.2255388};
|
||||
double c[] = {0, 2.387869e-2, 4.350794, -10.33404, 7.981590, -1.940558};
|
||||
|
||||
//Vesovic Eq. 31 [no units]
|
||||
double summer = 0;
|
||||
@@ -624,5 +624,64 @@ long double TransportRoutines::conductivity_dilute_eta0_and_poly(HelmholtzEOSMix
|
||||
}
|
||||
}
|
||||
|
||||
long double TransportRoutines::conductivity_hardcoded_water(HelmholtzEOSMixtureBackend &HEOS){
|
||||
|
||||
double L[5][6] = {{1.60397357,-0.646013523,0.111443906,0.102997357,-0.0504123634,0.00609859258},
|
||||
{2.33771842,-2.78843778,1.53616167,-0.463045512,0.0832827019,-0.00719201245},
|
||||
{2.19650529,-4.54580785,3.55777244,-1.40944978,0.275418278,-0.0205938816},
|
||||
{-1.21051378,1.60812989,-0.621178141,0.0716373224,0,0},
|
||||
{-2.7203370,4.57586331,-3.18369245,1.1168348,-0.19268305,0.012913842}};
|
||||
|
||||
double lambdabar_0,lambdabar_1,lambdabar_2,rhobar,Tbar,sum,R_Water;
|
||||
double Tstar=647.096,rhostar=322,pstar=22064000,lambdastar=1e-3,mustar=1e-6;
|
||||
double tau,xi;
|
||||
int i,j;
|
||||
|
||||
Tbar = HEOS.T()/Tstar;
|
||||
rhobar = HEOS.keyed_output(CoolProp::iDmass)/rhostar;
|
||||
|
||||
// Dilute gas contribution
|
||||
lambdabar_0 = sqrt(Tbar)/(2.443221e-3+1.323095e-2/Tbar+6.770357e-3/pow(Tbar,2)-3.454586e-3/pow(Tbar,3)+4.096266e-4/pow(Tbar,4));
|
||||
|
||||
sum=0;
|
||||
for (i=0;i<=4;i++){
|
||||
for (j=0;j<=5;j++){
|
||||
sum+=L[i][j]*powInt(1.0/Tbar-1.0,i)*powInt(rhobar-1,j);
|
||||
}
|
||||
}
|
||||
// Finite density contribution
|
||||
lambdabar_1=exp(rhobar*sum);
|
||||
|
||||
double nu=0.630,GAMMA =177.8514,gamma=1.239,xi_0=0.13,Lambda_0=0.06,Tr_bar=1.5,tau_ref = Tr_bar*Tstar/HEOS.T(),
|
||||
qd_bar=1/0.4,pi=3.141592654, delta = HEOS.delta(), R=461.51805;//J/kg/K
|
||||
tau=1/Tbar;
|
||||
|
||||
double drhodp = 1/(R*HEOS.T()*(1+2*rhobar*HEOS.dalphar_dDelta()+rhobar*rhobar*HEOS.d2alphar_dDelta2()));
|
||||
double drhobar_dpbar = pstar/rhostar*drhodp;
|
||||
double drhodp_Trbar = 1/(R*Tr_bar*Tstar*(1+2*rhobar*HEOS.calc_alphar_deriv_nocache(0,1,HEOS.mole_fractions,1/Tr_bar,delta)+delta*delta*HEOS.calc_alphar_deriv_nocache(0,2,HEOS.mole_fractions,1/Tr_bar,delta)));
|
||||
double drhobar_dpbar_Trbar = pstar/rhostar*drhodp_Trbar;
|
||||
double cp = HEOS.cpmolar(); // [J/mol/K]
|
||||
double cv = HEOS.cvmolar(); // [J/mol/K]
|
||||
double cpbar = cp/8.31447215; //[-]
|
||||
double mubar = HEOS.viscosity()/mustar;
|
||||
double DELTAchibar_T = rhobar*(drhobar_dpbar-drhobar_dpbar_Trbar*Tr_bar/Tbar);
|
||||
if (DELTAchibar_T<0)
|
||||
xi = 0;
|
||||
else
|
||||
xi = xi_0*pow(DELTAchibar_T/Lambda_0,nu/gamma);
|
||||
double y = qd_bar*xi;
|
||||
|
||||
double Z;
|
||||
double kappa = cp/cv;
|
||||
if (y < 1.2e-7)
|
||||
Z = 0;
|
||||
else
|
||||
Z = 2/(pi*y)*(((1-1/kappa)*atan(y)+y/kappa)-(1-exp(-1/(1/y+y*y/3/rhobar/rhobar))));
|
||||
|
||||
lambdabar_2 = GAMMA*rhobar*cpbar*Tbar/mubar*Z;
|
||||
|
||||
return (lambdabar_0*lambdabar_1+lambdabar_2)*lambdastar;
|
||||
}
|
||||
|
||||
|
||||
}; /* namespace CoolProp */
|
||||
@@ -166,6 +166,9 @@ public:
|
||||
static long double conductivity_dilute_eta0_and_poly(HelmholtzEOSMixtureBackend &HEOS);
|
||||
static long double conductivity_residual_polynomial_and_exponential(HelmholtzEOSMixtureBackend &HEOS);
|
||||
|
||||
static long double conductivity_hardcoded_water(HelmholtzEOSMixtureBackend &HEOS);
|
||||
|
||||
|
||||
}; /* class TransportRoutines */
|
||||
|
||||
}; /* namespace CoolProp */
|
||||
|
||||
@@ -129,17 +129,17 @@ vel("R152A", "T", 384, "Dmass", 504.51, "V", 43.29e-6, 5e-3),
|
||||
vel("R152A", "T", 384, "Dmass", 239.35, "V", 21.01e-6, 10e-3),
|
||||
|
||||
// Huber, JPCRD, 2008 and IAPWS
|
||||
vel("Water", "T", 298.15, "Dmass", 998, "V", 889.735100e-6, 1e-3),
|
||||
vel("Water", "T", 298.15, "Dmass", 1200, "V", 1437.649467e-6, 1e-3),
|
||||
vel("Water", "T", 373.15, "Dmass", 1000, "V", 307.883622e-6, 1e-3),
|
||||
vel("Water", "T", 433.15, "Dmass", 1, "V", 14.538324e-6, 1e-3),
|
||||
vel("Water", "T", 433.15, "Dmass", 1000, "V", 217.685358e-6, 1e-3),
|
||||
vel("Water", "T", 873.15, "Dmass", 1, "V", 32.619287e-6, 1e-3),
|
||||
vel("Water", "T", 873.15, "Dmass", 100, "V", 35.802262e-6, 1e-3),
|
||||
vel("Water", "T", 873.15, "Dmass", 600, "V", 77.430195e-6, 1e-3),
|
||||
vel("Water", "T", 1173.15, "Dmass", 1, "V", 44.217245e-6, 1e-3),
|
||||
vel("Water", "T", 1173.15, "Dmass", 100, "V", 47.640433e-6, 1e-3),
|
||||
vel("Water", "T", 1173.15, "Dmass", 400, "V", 64.154608e-6, 1e-3),
|
||||
vel("Water", "T", 298.15, "Dmass", 998, "V", 889.735100e-6, 1e-8),
|
||||
vel("Water", "T", 298.15, "Dmass", 1200, "V", 1437.649467e-6, 1e-8),
|
||||
vel("Water", "T", 373.15, "Dmass", 1000, "V", 307.883622e-6, 1e-8),
|
||||
vel("Water", "T", 433.15, "Dmass", 1, "V", 14.538324e-6, 1e-8),
|
||||
vel("Water", "T", 433.15, "Dmass", 1000, "V", 217.685358e-6, 1e-8),
|
||||
vel("Water", "T", 873.15, "Dmass", 1, "V", 32.619287e-6, 1e-8),
|
||||
vel("Water", "T", 873.15, "Dmass", 100, "V", 35.802262e-6, 1e-8),
|
||||
vel("Water", "T", 873.15, "Dmass", 600, "V", 77.430195e-6, 1e-8),
|
||||
vel("Water", "T", 1173.15, "Dmass", 1, "V", 44.217245e-6, 1e-8),
|
||||
vel("Water", "T", 1173.15, "Dmass", 100, "V", 47.640433e-6, 1e-8),
|
||||
vel("Water", "T", 1173.15, "Dmass", 400, "V", 64.154608e-6, 1e-8),
|
||||
|
||||
// Quinones-Cisneros, JPCRD, 2012
|
||||
vel("SF6", "T", 300, "Dmass", 1e-14, "V", 15.2887e-6, 1e-4),
|
||||
@@ -346,13 +346,13 @@ vel("R123", "T", 430, "Dmass", 996.35, "L", 45.62e-3, 1e-3),
|
||||
vel("R123", "T", 430, "Dmass", 166.9, "L", 21.03e-3, 1e-3),
|
||||
|
||||
// From Vesovic, JPCRD, 1990
|
||||
vel("CO2", "T", 220, "Dmass", 2.440, "L", 10.90e-3, 1e-2),
|
||||
vel("CO2", "T", 300, "Dmass", 1.773, "L", 16.77e-3, 1e-2),
|
||||
vel("CO2", "T", 800, "Dmass", 0.662, "L", 56.65e-3, 1e-2),
|
||||
vel("CO2", "T", 304, "Dmass", 254.3205, "L", 42.52e-3, 1e-2),
|
||||
vel("CO2", "T", 220, "Dmass", 1194.86, "L", 187.50e-3, 1e-2),
|
||||
vel("CO2", "T", 300, "Dmass", 1029.27, "L", 137.61e-3, 1e-2),
|
||||
vel("CO2", "T", 800, "Dmass", 407.828, "L", 78.47e-3, 1e-2),
|
||||
vel("CO2", "T", 220, "Dmass", 2.440, "L", 10.90e-3, 1e-4),
|
||||
vel("CO2", "T", 300, "Dmass", 1.773, "L", 16.77e-3, 1e-4),
|
||||
vel("CO2", "T", 800, "Dmass", 0.662, "L", 56.65e-3, 1e-4),
|
||||
vel("CO2", "T", 304, "Dmass", 254.3205, "L", 42.52e-3, 1e-4),
|
||||
vel("CO2", "T", 220, "Dmass", 1194.86, "L", 187.50e-3, 1e-4),
|
||||
vel("CO2", "T", 300, "Dmass", 1029.27, "L", 137.61e-3, 1e-4),
|
||||
vel("CO2", "T", 800, "Dmass", 407.828, "L", 78.47e-3, 1e-4),
|
||||
|
||||
// From Friend, JPCRD, 1991
|
||||
vel("Ethane", "T", 100, "Dmass", 1e-13, "L", 3.46e-3, 1e-2),
|
||||
@@ -385,6 +385,20 @@ vel("Air", "T", 100, "Dmolar", 28000, "L", 119.221e-3, 1e-4),
|
||||
vel("Air", "T", 200, "Dmolar", 10000, "L", 35.3185e-3, 1e-4),
|
||||
vel("Air", "T", 300, "Dmolar", 5000, "L", 32.6062e-3, 1e-4),
|
||||
vel("Air", "T", 132.64, "Dmolar", 10400, "L", 75.6231e-3, 1e-4),
|
||||
|
||||
// Huber, JPCRD, 2012
|
||||
vel("Water", "T", 298.15, "Dmass", 1e-14, "L", 18.4341883e-3, 1e-6),
|
||||
vel("Water", "T", 298.15, "Dmass", 998, "L", 607.712868e-3, 1e-6),
|
||||
vel("Water", "T", 298.15, "Dmass", 1200, "L", 799.038144e-3, 1e-6),
|
||||
vel("Water", "T", 873.15, "Dmass", 1e-14, "L", 79.1034659e-3, 1e-6),
|
||||
vel("Water", "T", 647.35, "Dmass", 1, "L", 51.9298924e-3, 1e-6),
|
||||
vel("Water", "T", 647.35, "Dmass", 122, "L", 130.922885e-3, 1e-6),
|
||||
vel("Water", "T", 647.35, "Dmass", 222, "L", 367.787459e-3, 1e-6),
|
||||
vel("Water", "T", 647.35, "Dmass", 272, "L", 757.959776e-3, 1e-6),
|
||||
vel("Water", "T", 647.35, "Dmass", 322, "L", 1443.75556e-3, 1e-6),
|
||||
vel("Water", "T", 647.35, "Dmass", 372, "L", 650.319402e-3, 1e-6),
|
||||
vel("Water", "T", 647.35, "Dmass", 422, "L", 448.883487e-3, 1e-6),
|
||||
vel("Water", "T", 647.35, "Dmass", 750, "L", 600.961346e-3, 1e-6),
|
||||
};
|
||||
|
||||
TEST_CASE_METHOD(TransportValidationFixture, "Compare thermal conductivities against published data", "[conductivity]")
|
||||
|
||||
Reference in New Issue
Block a user