Added ammonia conductivity

Signed-off-by: Ian Bell <ian.h.bell@gmail.com>
This commit is contained in:
Ian Bell
2014-05-27 11:49:46 +02:00
parent c2a1fa7317
commit bb4035467e
7 changed files with 104 additions and 3 deletions

View File

@@ -580,6 +580,9 @@ protected:
if (!target.compare("R123")){
fluid.transport.conductivity_critical.type = CoolProp::ConductivityCriticalVariables::CONDUCTIVITY_CRITICAL_R123; return;
}
else if (!target.compare("Ammonia")){
fluid.transport.conductivity_critical.type = CoolProp::ConductivityCriticalVariables::CONDUCTIVITY_CRITICAL_AMMONIA; return;
}
else{
throw ValueError(format("critical conductivity term [%s] is not understood for fluid %s",target.c_str(), fluid.name.c_str()));
}

View File

@@ -264,6 +264,8 @@ long double HelmholtzEOSMixtureBackend::calc_conductivity(void)
lambda_critical = TransportRoutines::conductivity_critical_simplified_Olchowy_Sengers(*this); break;
case ConductivityCriticalVariables::CONDUCTIVITY_CRITICAL_R123:
lambda_critical = TransportRoutines::conductivity_critical_hardcoded_R123(*this); break;
case ConductivityCriticalVariables::CONDUCTIVITY_CRITICAL_AMMONIA:
lambda_critical = TransportRoutines::conductivity_critical_hardcoded_ammonia(*this); break;
default:
throw ValueError(format("critical conductivity type [%d] is invalid for fluid %s", components[0]->transport.viscosity_dilute.type, name().c_str()));
}

View File

@@ -710,4 +710,38 @@ long double TransportRoutines::conductivity_hardcoded_R23(HelmholtzEOSMixtureBac
return (pow((rhoL-rhobar)/rhoL,C1)*lambda_DG+pow(rhobar/rhoL,C1)*lambda_L+DELTAlambda_c)/1e3;
}
long double TransportRoutines::conductivity_critical_hardcoded_ammonia(HelmholtzEOSMixtureBackend &HEOS){
/*
From "Thermal Conductivity of Ammonia in a Large
Temperature and Pressure Range Including the Critical Region"
by R. Tufeu, D.Y. Ivanov, Y. Garrabos, B. Le Neindre,
Bereicht der Bunsengesellschaft Phys. Chem. 88 (1984) 422-427
*/
double T = HEOS.T(), Tc = 405.4, rhoc = 235, rho;
double LAMBDA=1.2, nu=0.63, gamma =1.24, DELTA=0.50,t,zeta_0_plus=1.34e-10,a_zeta=1,GAMMA_0_plus=0.423e-8;
double pi=3.141592654,a_chi,k_B=1.3806504e-23,X_T,DELTA_lambda,dPdT,eta_B,DELTA_lambda_id,DELTA_lambda_i;
rho = HEOS.keyed_output(CoolProp::iDmass);
t = fabs((T-Tc)/Tc);
a_chi = a_zeta/0.7;
eta_B = (2.60+1.6*t)*1e-5;
dPdT = (2.18-0.12/exp(17.8*t))*1e5; // [Pa-K]
X_T = 0.61*rhoc+16.5*log(t);
// Along the critical isochore (only a function of temperature) (Eq. 9)
DELTA_lambda_i = LAMBDA*(k_B*T*T)/(6*pi*eta_B*(zeta_0_plus*pow(t,-nu)*(1+a_zeta*pow(t,DELTA))))*dPdT*dPdT*GAMMA_0_plus*pow(t,-gamma)*(1+a_chi*pow(t,DELTA));
DELTA_lambda_id = DELTA_lambda_i*exp(-36*t*t);
if (rho < 0.6*rhoc)
{
DELTA_lambda = DELTA_lambda_id*(X_T*X_T)/(X_T*X_T+powInt(0.6*rhoc-0.96*rhoc,2))*powInt(rho,2)/powInt(0.6*rhoc,2);
}
else
{
DELTA_lambda = DELTA_lambda_id*(X_T*X_T)/(X_T*X_T+powInt(rho-0.96*rhoc,2));
}
return DELTA_lambda;
}
}; /* namespace CoolProp */

View File

@@ -169,6 +169,8 @@ public:
static long double conductivity_hardcoded_water(HelmholtzEOSMixtureBackend &HEOS);
static long double conductivity_hardcoded_R23(HelmholtzEOSMixtureBackend &HEOS);
static long double conductivity_critical_hardcoded_ammonia(HelmholtzEOSMixtureBackend &HEOS);
}; /* class TransportRoutines */

View File

@@ -407,9 +407,12 @@ 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),
// From Shan, ASHRAE, 2000
vel("R23", "T", 180, "Dmolar", 21097, "V", 143.19e-3, 1e-4),
vel("R23", "T", 420, "Dmolar", 7564, "V", 50.19e-3, 1e-4),
vel("R23", "T", 370, "Dmolar", 32.62, "V", 17.455e-3, 1e-4),
vel("R23", "T", 180, "Dmolar", 21097, "L", 143.19e-3, 1e-4),
vel("R23", "T", 420, "Dmolar", 7564, "L", 50.19e-3, 1e-4),
vel("R23", "T", 370, "Dmolar", 32.62, "L", 17.455e-3, 1e-4),
vel("Ammonia", "T", 310, "Dmolar", 34320, "L", 0.45223303481784971, 1e-4),
vel("Ammonia", "T", 395, "Q", 0, "L", 0.2264480769301, 1e-4),
};