Ethane conductivity

Signed-off-by: Ian Bell <ian.h.bell@gmail.com>
This commit is contained in:
Ian Bell
2014-05-26 11:25:21 +02:00
parent 1281f52d8a
commit e143f05ee3
8 changed files with 107 additions and 23 deletions

View File

@@ -489,6 +489,9 @@ protected:
if (!target.compare("CO2")){
fluid.transport.conductivity_dilute.type = CoolProp::ConductivityDiluteVariables::CONDUCTIVITY_DILUTE_CO2; return;
}
else if (!target.compare("Ethane")){
fluid.transport.conductivity_dilute.type = CoolProp::ConductivityDiluteVariables::CONDUCTIVITY_DILUTE_ETHANE; return;
}
else{
throw ValueError(format("hardcoded dilute conductivity term [%s] is not understood for fluid %s",target.c_str(), fluid.name.c_str()));
}

View File

@@ -128,6 +128,34 @@ long double HelmholtzEOSMixtureBackend::calc_surface_tension(void)
throw NotImplementedError(format("surface tension not implemented for mixtures"));
}
}
long double HelmholtzEOSMixtureBackend::calc_viscosity_dilute(void)
{
if (is_pure_or_pseudopure)
{
long double eta_dilute;
switch(components[0]->transport.viscosity_dilute.type)
{
case ViscosityDiluteVariables::VISCOSITY_DILUTE_KINETIC_THEORY:
eta_dilute = TransportRoutines::viscosity_dilute_kinetic_theory(*this); break;
case ViscosityDiluteVariables::VISCOSITY_DILUTE_COLLISION_INTEGRAL:
eta_dilute = TransportRoutines::viscosity_dilute_collision_integral(*this); break;
case ViscosityDiluteVariables::VISCOSITY_DILUTE_POWERS_OF_T:
eta_dilute = TransportRoutines::viscosity_dilute_powers_of_T(*this); break;
case ViscosityDiluteVariables::VISCOSITY_DILUTE_COLLISION_INTEGRAL_POWERS_OF_TSTAR:
eta_dilute = TransportRoutines::viscosity_dilute_collision_integral_powers_of_T(*this); break;
case ViscosityDiluteVariables::VISCOSITY_DILUTE_ETHANE:
eta_dilute = TransportRoutines::viscosity_dilute_ethane(*this); break;
default:
throw ValueError(format("dilute viscosity type [%d] is invalid for fluid %s", components[0]->transport.viscosity_dilute.type, name().c_str()));
}
return eta_dilute;
}
else
{
throw NotImplementedError(format("dilute viscosity not implemented for mixtures"));
}
}
long double HelmholtzEOSMixtureBackend::calc_viscosity(void)
{
if (is_pure_or_pseudopure)
@@ -147,22 +175,7 @@ long double HelmholtzEOSMixtureBackend::calc_viscosity(void)
}
}
// Dilute part
long double eta_dilute;
switch(components[0]->transport.viscosity_dilute.type)
{
case ViscosityDiluteVariables::VISCOSITY_DILUTE_KINETIC_THEORY:
eta_dilute = TransportRoutines::viscosity_dilute_kinetic_theory(*this); break;
case ViscosityDiluteVariables::VISCOSITY_DILUTE_COLLISION_INTEGRAL:
eta_dilute = TransportRoutines::viscosity_dilute_collision_integral(*this); break;
case ViscosityDiluteVariables::VISCOSITY_DILUTE_POWERS_OF_T:
eta_dilute = TransportRoutines::viscosity_dilute_powers_of_T(*this); break;
case ViscosityDiluteVariables::VISCOSITY_DILUTE_COLLISION_INTEGRAL_POWERS_OF_TSTAR:
eta_dilute = TransportRoutines::viscosity_dilute_collision_integral_powers_of_T(*this); break;
case ViscosityDiluteVariables::VISCOSITY_DILUTE_ETHANE:
eta_dilute = TransportRoutines::viscosity_dilute_ethane(*this); break;
default:
throw ValueError(format("dilute viscosity type [%d] is invalid for fluid %s", components[0]->transport.viscosity_dilute.type, name().c_str()));
}
long double eta_dilute = calc_viscosity_dilute();
// Residual part
long double B_eta_initial = TransportRoutines::viscosity_initial_density_dependence_Rainwater_Friend(*this);
@@ -221,6 +234,8 @@ long double HelmholtzEOSMixtureBackend::calc_conductivity(void)
lambda_dilute = TransportRoutines::conductivity_dilute_ratio_polynomials(*this); break;
case ConductivityDiluteVariables::CONDUCTIVITY_DILUTE_CO2:
lambda_dilute = TransportRoutines::conductivity_dilute_hardcoded_CO2(*this); break;
case ConductivityDiluteVariables::CONDUCTIVITY_DILUTE_ETHANE:
lambda_dilute = TransportRoutines::conductivity_dilute_hardcoded_ethane(*this); break;
default:
throw ValueError(format("dilute conductivity type [%d] is invalid for fluid %s", components[0]->transport.conductivity_dilute.type, name().c_str()));
}

View File

@@ -118,6 +118,7 @@ public:
long double calc_surface_tension(void);
long double calc_viscosity(void);
long double calc_viscosity_dilute(void);
long double calc_conductivity(void);
long double calc_Tmax(void);

View File

@@ -572,4 +572,14 @@ long double TransportRoutines::conductivity_dilute_hardcoded_CO2(HelmholtzEOSMix
return lambda_0;
}
long double TransportRoutines::conductivity_dilute_hardcoded_ethane(HelmholtzEOSMixtureBackend &HEOS){
double e_k = 245.0;
double tau = 305.33/HEOS.T(), Tstar = HEOS.T()/e_k;
double fint = 1.7104147-0.6936482/Tstar;
double lambda_0 = 0.276505e-3*(HEOS.calc_viscosity_dilute()*1e6)*(3.75-fint*(tau*tau*HEOS.d2alpha0_dTau2()+1.5)); //[W/m/K]
return lambda_0;
}
}; /* namespace CoolProp */

View File

@@ -161,6 +161,7 @@ public:
static long double conductivity_critical_hardcoded_R123(HelmholtzEOSMixtureBackend &HEOS);
static long double conductivity_dilute_hardcoded_CO2(HelmholtzEOSMixtureBackend &HEOS);
static long double conductivity_dilute_hardcoded_ethane(HelmholtzEOSMixtureBackend &HEOS);
}; /* class TransportRoutines */

View File

@@ -347,14 +347,19 @@ 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-3),
vel("CO2", "T", 300, "Dmass", 1.773, "L", 16.77e-3, 1e-3),
vel("CO2", "T", 800, "Dmass", 0.662, "L", 56.65e-3, 1e-3),
vel("CO2", "T", 304, "Dmass", 254.3205, "L", 42.52e-3, 1e-3),
vel("CO2", "T", 220, "Dmass", 1194.86, "L", 187.50e-3, 1e-3),
vel("CO2", "T", 300, "Dmass", 1029.27, "L", 137.61e-3, 1e-3),
vel("CO2", "T", 800, "Dmass", 407.828, "L", 78.47e-3, 1e-3),
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),
// From Friend, JPCRD, 1991
vel("Ethane", "T", 100, "Dmass", 1e-13, "L", 3.46e-3, 1e-2),
vel("Ethane", "T", 230, "Dmolar", 16020, "L", 126.2e-3, 1e-2),
vel("Ethane", "T", 440, "Dmolar", 1520, "L", 45.9e-3, 1e-2),
vel("Ethane", "T", 310, "Dmolar", 4130, "L", 45.4e-3, 1e-2),
};
TEST_CASE_METHOD(TransportValidationFixture, "Compare thermal conductivities against published data", "[conductivity]")