Пример #1
0
R161Class::R161Class()
{
	double n[] = {0.0, 1.511, -2.3, -0.457, 0.1683, 0.04133, 0.62187, -0.0265, -1.03, -0.285, -0.476, 0.82, -0.3532, -0.116, -0.0220583, -1.63148};
	double t[] = {0, 0.37, 0.97, 1.14, 0.744, 1, 1.26, 1, 1.8, 3, 2.25, 1, 1.2, 5.3, 1, 4};
	double d[] = {0, 1, 1, 2, 3, 4, 2, 7, 1, 2, 3, 1, 1, 3, 3, 3};
	double c[] = {0, 0, 0, 0, 0, 0, 1, 1, 2, 2, 2, 0, 0, 0, 0, 0};
	double eta[] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.96, 1.35, 1.26, 1.23, 16.8};
	double beta[] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2.7, 5.2, 3.9, 4.7, 413};
	double gamma[] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.9, 0.69, 0.67, 0.67, 1.15};
	double epsilon[] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.683, 0.892, 0.785, 1.33, 0.86};

	//Critical parameters
	crit.rho = 6.28*48.0595; //[kg/m^3]
	crit.p = PressureUnit(5010, UNIT_KPA); //[kPa]
	crit.T = 375.25; //[K]
	crit.v = 1/crit.rho; 

	// Other fluid parameters
	params.molemass = 48.0595;
	params.Ttriple = 130;
	params.accentricfactor = 0.21624284106618674;
	params.R_u = 8.314472;
	params.ptriple = 0.005512;

	// Limits of EOS
	limits.Tmin = 130;
	limits.Tmax = 500.0;
	limits.pmax = 100000.0;
	limits.rhomax = 1000000.0*params.molemass;

	phirlist.push_back(new phir_power( n,d,t,c,1,10,16));
	phirlist.push_back(new phir_gaussian( n,d,t, eta, epsilon, beta, gamma, 11,15,16));

	const double a0 = -6.9187, a1 = 5.4788, n0 = 4;
	phi0list.push_back(new phi0_lead(a0, a1));
	phi0list.push_back(new phi0_logtau(n0-1));

	const double u0[] = {0, 420/crit.T, 1548/crit.T, 3882/crit.T};
	const double v0[] = {0, 2.059, 9.253, 6.088};
	std::vector<double> u0_v(u0,u0+sizeof(u0)/sizeof(double));
	std::vector<double> v0_v(v0,v0+sizeof(v0)/sizeof(double));

	phi0list.push_back(new phi0_Planck_Einstein(v0_v,u0_v,1,3));

	EOSReference.assign("Jiangtao Wu and Yong Zhou, \"An Equation of State for Fluoroethane (R161)\", Int J Thermophys (2012) 33:220–234");
	TransportReference.assign("Using ECS in fully predictive mode.");

	name.assign("R161");
	aliases.push_back(std::string("R161"));
	REFPROPname.assign("R161");

	BibTeXKeys.EOS = "Wu-IJT-2012";
	BibTeXKeys.SURFACE_TENSION = "Mulero-JPCRD-2012";
}
Пример #2
0
R125Class::R125Class()
{
	double n[] = {0.0, 5.280760, -8.676580, 0.7501127, 0.7590023, 0.01451899, 4.777189, -3.330988, 3.775673, -2.290919, 0.8888268, -0.6234864, -0.04127263, -0.08455389, -0.1308752, 0.008344962, -1.532005, -0.05883649, 0.02296658};
	double t[] = {0, 0.669, 1.05, 2.75, 0.956, 1.00, 2.00, 2.75, 2.38, 3.37, 3.47, 2.63, 3.45, 0.72, 4.23, 0.20, 4.5, 29.0, 24.0};
	double d[] = {0, 1, 1, 1, 2, 4, 1, 1, 2, 2, 3, 4, 5, 1, 5, 1, 2, 3, 5};
	double l[] = {0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 2, 2, 3, 2, 3, 3};
	double m[] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1.7, 7.0, 6.0};

	//Critical parameters
	crit.rho = 4.779*120.0214; //[kg/m^3]
	crit.p = PressureUnit(3617.7, UNIT_KPA); //[kPa]
	crit.T = 339.173; //[K]
	crit.v = 1/crit.rho; 

	// Other fluid parameters
	params.molemass = 120.0214;
	params.Ttriple = 172.52;
	params.accentricfactor = 0.3052;
	params.R_u = 8.314472;
	params.ptriple = 2.914;

	// Limits of EOS
	limits.Tmin = params.Ttriple;
	limits.Tmax = 500.0;
	limits.pmax = 100000.0;
	limits.rhomax = 1000000.0*params.molemass;

	phirlist.push_back(new phir_Lemmon2005( n,d,t,l,m,1,18,19));

	const double a1 = 37.2674, a2 = 8.88404, a3 = -49.8651;
	phi0list.push_back(new phi0_lead(a1,a2));
	phi0list.push_back(new phi0_logtau(-1));
	phi0list.push_back(new phi0_power(a3,-0.1));

	double a[] = {0,0,0,0, 2.303, 5.086, 7.3};
	double b[] = {0,0,0,0, 0.92578, 2.22895, 5.03283};

	std::vector<double> a_v(a,a+sizeof(a)/sizeof(double));
	std::vector<double> b_v(b,b+sizeof(b)/sizeof(double));

	phi0list.push_back(new phi0_Planck_Einstein(a_v,b_v,4,6));

	EOSReference.assign("Lemmon-JPCRD-2005");
	TransportReference.assign("Viscosity: Huber IECR 2006\n\n Conductivity: Perkins JCED 2006");
	name.assign("R125");
	REFPROPname.assign("R125");

	BibTeXKeys.EOS = "Lemmon-JPCRD-2005";
	BibTeXKeys.VISCOSITY = "Huber-IECR-2006";
	BibTeXKeys.CONDUCTIVITY = "Perkins-JCED-2006";
	BibTeXKeys.ECS_LENNARD_JONES = "Huber-IECR-2006";
	BibTeXKeys.SURFACE_TENSION = "Mulero-JPCRD-2012";
}
Пример #3
0
UndecaneClass::UndecaneClass()
{
	double n[] = {0.0, -0.66172706, 1.3375396, -2.5608399, 0.10678910, 0.28873614e-3, 0.49587209e-1, 0.55407101e-7, 0.99754712, 1.5774025, 0.13108354e-2, -0.59326961, -0.93001876e-1, -0.17960228, -0.22560853e-1};
	double t[] = {0, 1.5,0.25,1.25,0.25,0.875,1.375,0,2.375,2.0,2.125,3.5,6.5,4.75,12.5};
	double d[] = {0, 1, 1, 1, 3, 7, 2, 1, 1, 2, 5, 1, 1, 4, 2};
	double c[] = {0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 2, 2, 2, 3};

	//Critical parameters
	crit.rho = 1.5149*156.31; //[kg/m^3]
	crit.p = PressureUnit(1990.4, UNIT_KPA); //[kPa]
	crit.T = 638.8; //[K]
	crit.v = 1/crit.rho; 

	// Other fluid parameters
	params.molemass = 156.30826;
	params.Ttriple = 247.541;
	params.accentricfactor = 0.53903710137185668;
	params.R_u = 8.314472;
	params.ptriple = 0.00044605108038132317;

	// Limits of EOS
	limits.Tmin = params.Ttriple;
	limits.Tmax = 500.0;
	limits.pmax = 100000.0;
	limits.rhomax = 1000000.0*params.molemass;

	phirlist.push_back(new phir_power( n,d,t,c,1,14,15));

	phi0list.push_back(new phi0_lead(0, 0));
	phi0list.push_back(new phi0_logtau(-1));

	double alpha[] = {-1158848, 20321.8, -119.4274, 0.4284215, -4.157728e-4, 1.61828e-7};
	double beta[] = {-2, -1, 0, 1, 2, 3};

	std::vector<double> alpha_v(alpha, alpha+sizeof(alpha)/sizeof(double));
	std::vector<double> beta_v(beta, beta+sizeof(beta)/sizeof(double));

	phi0list.push_back(new phi0_cp0_poly(alpha_v, beta_v, crit.T, 298.15, 0, 5));

	EOSReference.assign("Aleksandrov, I. S. and A. A. Gerasimov and B. A. Grigor'ev \"Using Fundamental Equations of State for Calculating the Thermodynamic Properties of Normal Undecane\" Thermal Engineering, 2011, Vol. 58, No. 8, pp. 691-698");
	TransportReference.assign("Using ECS in fully predictive mode.");

	name.assign("n-Undecane");
	aliases.push_back("Undecane");
	aliases.push_back(std::string("UNDECANE"));
	aliases.push_back(std::string("N-UNDECANE"));
	aliases.push_back("C11");
	REFPROPname.assign("C11");
	
	ECSReferenceFluid = "n-Dodecane";

	BibTeXKeys.EOS = "Aleksandrov-TE-2011";
}
Пример #4
0
MethylStearateClass::MethylStearateClass()
{
	double n[] = {0.0, 0.3959635e-01, 0.2466654e01, -0.3895950e01, -0.1167375, 0.4127229e-01, -0.1403734e01, -0.6465264, 0.1934675e01, -0.1608124e01, -0.1113813e-01, 0.2125325e01, -0.7772671, -0.4183684};
	double d[] = {0.0, 4, 1, 1, 2, 3, 1, 3, 2, 2, 7, 1, 1, 3};
	double t[] = {0.0, 1, 0.3, 1.25, 1.65, 0.8, 3.1, 3.4, 2.3, 3.8, 1.2, 3.2, 3.8, 3.8};
	double c[] = {0.0, 0, 0, 0, 0, 0, 2, 2, 1, 2, 1, 2, 2, 2};
	static double eta[] = {0,0,0,0,0,0,0,0,0,0,0,1.1,1.6,1.1};
	static double beta[] = {0,0,0,0,0,0,0,0,0,0,0,0.9,0.65,0.75};
	static double _gamma[] = {0,0,0,0,0,0,0,0,0,0,0,1.14,0.65,0.77};
	static double epsilon[] = {0,0,0,0,0,0,0,0,0,0,0,0.79,0.90,0.76};

	//Critical parameters
	crit.rho = 0.7943*298.50382; //[kg/m^3]
	crit.p = PressureUnit(1239, UNIT_KPA); //[kPa]
	crit.T = 775; //[K]
	crit.v = 1/crit.rho; 

	// Other fluid parameters
	params.molemass = 298.50382; // From REFPROP, not provided in paper (but should be!!)
	params.Ttriple = 311.84; // From REFPROP, not provided in paper
	params.accentricfactor = 1.01756;
	params.R_u = 8.314472;
	params.ptriple = 6.0109170319097108e-006;

	// Limits of EOS
	limits.Tmin = params.Ttriple;
	limits.Tmax = 500.0;
	limits.pmax = 100000.0;
	limits.rhomax = 1000000.0*params.molemass;

	phirlist.push_back(new phir_power( n,d,t,c,1,10,14));
	phirlist.push_back(new phir_gaussian(n,d,t,eta,epsilon,beta,_gamma,11,13,14));

	phi0list.push_back(new phi0_lead(-1,0));
	phi0list.push_back(new phi0_logtau(-1));

	const double u0[] = {0, 556.17/crit.T, 1311.85/crit.T, 2825.71/crit.T};
	const double v0[] = {0, 276.94/params.R_u, 408.997/params.R_u, 472.702/params.R_u};
	std::vector<double> u0_v(u0,u0+sizeof(u0)/sizeof(double));
	std::vector<double> v0_v(v0,v0+sizeof(v0)/sizeof(double));

	phi0list.push_back(new phi0_cp0_poly(247.115/params.R_u,-0.0916606,crit.T,298));
	phi0list.push_back(new phi0_Planck_Einstein(v0_v,u0_v,1,3));

	name.assign("MethylStearate");
	aliases.push_back(std::string("METHYLSTEARATE"));
	REFPROPname.assign("MSTEARAT");

	ECSReferenceFluid = "Propane";

	BibTeXKeys.EOS = "Huber-EF-2009";
}
Пример #5
0
DeuteriumClass::DeuteriumClass()
{
	double n[] = {0, 0.006267958, 10.53609, -10.14149, 0.356061, 0.1824472, -1.129638, -0.0549812, -0.6791329, 1.347918, -0.8657582, 1.719146, -1.917977, 0.1233365, -0.07936891, 1.686617, -4.240326, 1.857114, -0.5903705, 1.520171, 2.361373, -2.297315};
	double t[] = {0, 1, 0.462, 0.5584, 0.627, 1.201, 0.309, 1.314, 1.1166, 1.25, 1.25, 1.395, 1.627, 1, 2.5, 0.635, 0.664, 0.7082, 2.25, 1.524, 0.67, 0.709};
	double d[] = {0, 4, 1, 1, 2, 3, 1, 3, 2, 2, 2, 1, 1, 3, 2, 1, 1, 2, 3, 3, 1, 3};
	double c[] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0};
	double alpha[] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.868, 0.636, 0.668, 0.65, 0.745, 0.782, 0.693}; // phi from paper
	double epsilon[] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1.46, 1.7864, 1.647, 0.541, 0.969, 1.892, 1.076}; // D from paper
	double beta[] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.613, 0.584, 0.57, 1.056, 1.01, 1.025, 1.029};
	double gamma[] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.6306, 0.711, 0.6446, 0.8226, 0.992, 1.2184, 1.203};

	//Constants for ideal gas expression
	double a0[] = {0, -3.54145, 3.0326, -3.52422, -1.73421, -3.57135, 2.14858, 6.23107, -3.30425, 6.23098, -3.57137, 3.32901, 0.97782};
	double n0[] = {0, 7174.1/38.34, 8635/38.34, 902.7/38.34, 181.1/38.34, 438.5/38.34, 5034.2/38.34, 269.9/38.34, 229.9/38.34, 666.4/38.34, 452.8/38.34, 192/38.34, 1187.6/38.34};

	phirlist.push_back(new phir_power(n,d,t,c,1,14,22));
	phirlist.push_back(new phir_gaussian(n,d,t,alpha,epsilon,beta,gamma,15,21,22));

	//lead term of the form log(delta)+a1+a2*tau
	phi0list.push_back(new phi0_lead(-2.0677351753,2.4237151502));
	phi0list.push_back(new phi0_logtau(1.5));
	phi0list.push_back(new phi0_Planck_Einstein(a0,n0,1,12,13));

	// Critical parameters
	crit.rho = 17.23*4.0282;
	crit.p = PressureUnit(1679.6, UNIT_KPA);
	crit.T = 38.34;
	crit.v = 1.0/crit.rho;

	// Other fluid parameters
	params.molemass = 4.0282;
	params.Ttriple = 18.724;
	params.ptriple = 17.202;
	params.accentricfactor = -0.136290274128;
	params.R_u = 8.3144621;

	// Limits of EOS
	limits.Tmin = params.Ttriple;
	limits.Tmax = 1000.0;
	limits.pmax = 2000000.0;
	limits.rhomax = 102.0*params.molemass;

	name.assign("Deuterium");
	aliases.push_back("deuterium");
	aliases.push_back("D2");
	REFPROPname.assign("D2");

	BibTeXKeys.EOS = "Richardson-JPCRD-2013";
	BibTeXKeys.SURFACE_TENSION = "Mulero-JPCRD-2012";
}
Пример #6
0
ParaDeuteriumClass::ParaDeuteriumClass()
{
	double n[] = {0, 0.006267958, 10.53609, -10.14149, 0.356061, 0.1824472, -1.129638, -0.0549812, -0.6791329, 1.347918, -0.8657582, 1.719146, -1.917977, 0.1233365, -0.07936891, 1.686617, -4.240326, 1.857114, -0.5903705, 1.520171, 2.361373, -2.297315};
	double t[] = {0, 1, 0.462, 0.5584, 0.627, 1.201, 0.309, 1.314, 1.1166, 1.25, 1.25, 1.395, 1.627, 1, 2.5, 0.635, 0.664, 0.7082, 2.25, 1.524, 0.67, 0.709};
	double d[] = {0, 4, 1, 1, 2, 3, 1, 3, 2, 2, 2, 1, 1, 3, 2, 1, 1, 2, 3, 3, 1, 3};
	double c[] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0};
	double alpha[] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.868, 0.636, 0.668, 0.65, 0.745, 0.782, 0.693}; // phi from paper
	double epsilon[] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1.46, 1.7864, 1.647, 0.541, 0.969, 1.892, 1.076}; // D from paper
	double beta[] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.613, 0.584, 0.57, 1.056, 1.01, 1.025, 1.029};
	double gamma[] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.6306, 0.711, 0.6446, 0.8226, 0.992, 1.2184, 1.203};

	//Constants for ideal gas expression
	double a0[] = {0, 1.28527, 1.11376, -2.491, 6.38763, 6.17406, -3.13698, -3.14254, -2.29511, -3.37, 1.13634, 0.72512};
	double n0[] = {0, 5068/38.34, 1000.8/38.34, 261.5/38.34, 437.2/38.34, 312.3/38.34, 382.8/38.34, 356.8/38.34, 294.7/38.34, 682.4/38.34, 246/38.34, 277.1/38.34};

	phirlist.push_back(new phir_power(n,d,t,c,1,14,22));
	phirlist.push_back(new phir_gaussian(n,d,t,alpha,epsilon,beta,gamma,15,21,22));

	//lead term of the form log(delta)+a1+a2*tau
	phi0list.push_back(new phi0_lead(-2.0683998716, 2.4241000701));
	phi0list.push_back(new phi0_logtau(1.5));
	phi0list.push_back(new phi0_Planck_Einstein(a0,n0,1,11,12));

	// Critical parameters
	crit.rho = 17.23*4.0282;
	crit.p = PressureUnit(1679.6, UNIT_KPA);
	crit.T = 38.34;
	crit.v = 1.0/crit.rho;

	// Other fluid parameters
	params.molemass = 4.0282;
	params.Ttriple = 18.724;
	params.ptriple = 17.202;
	params.accentricfactor = -0.136290274128;
	params.R_u = 8.3144621;

	// Limits of EOS
	limits.Tmin = params.Ttriple;
	limits.Tmax = 1000.0;
	limits.pmax = 2000000.0;
	limits.rhomax = 102.0*params.molemass;

	name.assign("ParaDeuterium");
	aliases.push_back("paradeuterium");
	REFPROPname = "N/A";

	BibTeXKeys.EOS = "Richardson-JPCRD-2013";
}
Пример #7
0
MethanolClass::MethanolClass()
{
	double n[] = {0, 0.96352729792779e-1, -0.10848826325874e1, 0.29919647090261e-1, -0.17963419593895e-2, 0.47354317752015e-4, 0.10013578850486e+1, -0.12555691488591e+1, 0.85469725717500e0, -0.58295570793694e-1, 0.26935675584229e-1, 0.11504892676606e0, -0.51081766133636e-2, 0.19167368789348e-2, -0.28618221186953e0, 0.48168213019845e0, -0.33081091251828e0, 0.92842083313630e-1, -0.35936470747247e-1};
	double d[] = {0, 1, 1, 4, 5, 7, 1, 1, 3, 4, 5, 1, 7, 9, 2, 3, 4, 6, 7};
	double t[] = {0, -0.125, 1.500, 0.000, -0.875, 1.250, 0.250, 2.000, 1.750, 2.500, 2.375, 6.875, 5.875, 5.000, 18.500, 19.000, 17.500, 14.000, 12.000};
	double l[] = {0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 2, 2, 2, 3, 3, 3, 3, 3};

    // Critical parameters
    crit.rho = 273;
    crit.p = PressureUnit(8103.5, UNIT_KPA);
    crit.T = 512.50;
    crit.v = 1.0/crit.rho;

    // Other fluid parameters
    params.molemass = 32.04216;
    params.Ttriple = 175.61;
	params.ptriple = 0.00018629;
    params.accentricfactor = 0.5625;
    params.R_u = 8.314472;

    // Limits of EOS
	limits.Tmin = params.Ttriple;
    limits.Tmax = 500.0;
    limits.pmax = 100000.0;
    limits.rhomax = 1000000.0*params.molemass;

	// Residual part
    phirlist.push_back(new phir_power(n,d,t,l,1,18,19));
	double m = 0.977118832, epsilonbar = 5.46341463, vbarn = 0.204481952, kappabar = 0.148852832e-2;
	phirlist.push_back(new phir_SAFT_associating_2B(m, epsilonbar, vbarn, kappabar));

	// Ideal-gas part
	phi0list.push_back(new phi0_lead(13.9864114647, 3.2006369296e3));
	phi0list.push_back(new phi0_logtau(3.1950423807804));
	phi0list.push_back(new phi0_power(-1.14289818828912e-3*crit.T, -1));
	phi0list.push_back(new phi0_power(-2.62687155181005e-7*pow(crit.T,2), -2));
	phi0list.push_back(new phi0_power(6.42610441977784e-11*pow(crit.T,3), -3));
	phi0list.push_back(new phi0_Planck_Einstein( 4.70118076896145, 3.7664265756));

    name.assign("Methanol");
    aliases.push_back("methanol");
    aliases.push_back(std::string("METHANOL"));
    REFPROPname.assign("METHANOL");

	BibTeXKeys.EOS = "Piazza-FPE-2013";
	BibTeXKeys.SURFACE_TENSION = "Mulero-JPCRD-2012";
}
Пример #8
0
R143AClass::R143AClass()
{
	double n [] = {0, 7.7736443, -8.7018500, -0.27779799, 0.14609220, 0.0089581616, -0.20552116, 0.10653258, 0.023270816, -0.013247542, -0.042793870, 0.36221685, -0.25671899, -0.092326113, 0.083774837, 0.017128445, -0.017256110, 0.0049080492};
	double d [] = {0, 1, 1, 1, 2, 5, 1, 3, 5, 7, 1, 2, 2, 3, 4, 2, 3, 5};
	double t [] = {0, 0.67, 0.833, 1.7, 1.82, 0.35, 3.9, 0.95, 0.0, 1.19, 7.2, 5.9, 7.65, 7.5, 7.45, 15.5, 22.0, 19.0};
	double l [] = {0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 2, 2, 2, 2, 2, 3, 3, 3};

	//Critical parameters
	crit.rho = 5.12845*84.041; //[kg/m^3]
	crit.p = PressureUnit(3761, UNIT_KPA); //[kPa]
	crit.T = 345.857; //[K]
	crit.v = 1/crit.rho;

	// Other fluid parameters
	params.molemass = 84.041;
	params.Ttriple = 161.34;
	params.ptriple = 1.077;
	params.accentricfactor = 0.261489646224;
	params.R_u = 8.314472;

	// Limits of EOS
	limits.Tmin = params.Ttriple;
	limits.Tmax = 500.0;
	limits.pmax = 100000.0;
	limits.rhomax = 1000000.0*params.molemass;

	phirlist.push_back(new phir_power( n,d,t,l,1,17,18));
	
	// lead term: log(delta)+c+m*tau
	phi0list.push_back(new phi0_lead(5.903087, 7.307253));
	phi0list.push_back(new phi0_logtau(-1));
	phi0list.push_back(new phi0_cp0_poly(1.0578,0.33,crit.T,273.15));
	phi0list.push_back(new phi0_Planck_Einstein(4.4402, 1791/crit.T));
	phi0list.push_back(new phi0_Planck_Einstein(3.7515, 823/crit.T));

	EOSReference.assign("Eric W. Lemmon and Richard T. Jacobsen, \"An International Standard Formulation for the Thermodynamic Properties of 1,1,1-Trifluoroethane (HFC-143a) for Temperatures From 161 to 450 K and Pressures to 50 MPa,\" J. Phys. Chem. Ref. Data, Vol. 29, No. 4, 2000");
	TransportReference.assign("Using ECS in fully predictive mode");

	name.assign("R143a");
	aliases.push_back("R143A");
	REFPROPname.assign("R143A");

	BibTeXKeys.EOS = "LemmonJacobsen-JPCRD-2000";
	BibTeXKeys.ECS_LENNARD_JONES = "McLinden-IJR-2000";
	BibTeXKeys.SURFACE_TENSION = "Mulero-JPCRD-2012";
}
Пример #9
0
R124Class::R124Class()
{
	double n[] = {0.0, -0.1262962e-1, 0.2168373e1, -0.3330033e1, 0.1610361e0, -0.9666145e-4, 0.1191310e-1, -0.2880217e-2, 0.1681346e-2, 0.1594968e-4, 0.1289674e0, 0.1182213e-4, -0.4713997e0, -0.2412873e0, 0.6868066e0, -0.8621095e-1, 0.4728645e-5, 0.1487933e-1, -0.3001338e-1, 0.1849606e-2, 0.4126073e-3};
	double t[] = {0, 2, 0.5, 1, 0.5, 2.5, -1, 1, 0, -0.5, 1.5, 1, 2.5, -0.25, 1, 5, 2, 15, 20, 15, 45};
	double d[] = {0, 1, 1, 1, 2, 2, 3, 5, 6, 8, 2, 12, 1, 1, 1, 1, 15, 3, 3, 4, 9};
	double c[] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 2, 2, 2, 2, 2, 3, 3, 4, 4};

	//Critical parameters
	crit.rho = 560; //[kg/m^3]
	crit.p = PressureUnit(3624.295, UNIT_KPA); //[kPa]
	crit.T = 395.425; //[K]
	crit.v = 1/crit.rho; 

	// Other fluid parameters
	params.molemass = 136.4762;
	params.Ttriple = 75;
	params.accentricfactor = 0.28809508422142915;
	params.R_u = 8.314471;
	params.ptriple = 2.67380659624e-05;

	// Limits of EOS
	limits.Tmin = 120;
	limits.Tmax = 500.0;
	limits.pmax = 100000.0;
	limits.rhomax = 1000000.0*params.molemass;

	phirlist.push_back(new phir_power( n,d,t,c,1,20,21));

	double a0[] = {0, -11.669406, 9.8760443, 2.175638, -7.389735, 0.8736831, -0.1115133};
	double t0[] = {0, 0, 0, 0, -1, -2, -3};
	phi0list.push_back(new phi0_lead(a0[1],a0[2]));
	phi0list.push_back(new phi0_logtau(a0[3]));
	phi0list.push_back(new phi0_power(a0,t0,4,7,8));

	name.assign("R124");
	REFPROPname.assign("R124");

	ECSReferenceFluid = "Propane";

	BibTeXKeys.EOS = "deVries-ICR-1995";
	BibTeXKeys.ECS_FITS = "Huber-IECR-2003";
	BibTeXKeys.ECS_LENNARD_JONES = "Huber-IECR-2003";
	BibTeXKeys.SURFACE_TENSION = "Mulero-JPCRD-2012";
}
Пример #10
0
R113Class::R113Class()
{
	double n[] = {0, 8.432092286E-01, -2.019185967E+00, 2.920612996E-01, 5.323107661E-02, 3.214971931E-03, 4.667858574E-05, -1.227522799E-06, 8.167288718E-01, -1.340790803E+00, 4.065752705E-01, -1.534754634E-01, -2.414435149E-02, -2.113056197E-02, -3.565436205E-02, 1.364654968E-03, -1.251838755E-02, -1.385761351E-03, 7.206335486E-04};
	double t[] = {0, 0.5, 1.5, 1.5, -0.5, 2, 0, 3, -0.5, 0, 2, 1.5, 6, 2, 10, 6, 18, 15, 33};
	double d[] = {0, 1, 1, 2, 3, 4, 8, 8, 3, 3, 3, 5, 1, 2, 2, 9, 3, 7, 8};
	double c[] = {0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 2, 2, 2, 2, 3, 3, 4};

	//Critical parameters
	crit.rho = 560; //[kg/m^3]
	crit.p = PressureUnit(3.3922e+006, UNIT_PA); //[Pa]
	crit.T = 487.21; //[K]
	crit.v = 1/crit.rho; 

	// Other fluid parameters
	params.molemass = 187.375;
	params.Ttriple = 236.93;
	params.accentricfactor = 0.252535;
	params.R_u = 8.314471;
	params.ptriple = 1.87;

	// Limits of EOS
	limits.Tmin = params.Ttriple;
	limits.Tmax = 500.0;
	limits.pmax = 100000.0;
	limits.rhomax = 1000000.0*params.molemass;

	phirlist.push_back(new phir_power(n,d,t,c,1,18,19));


	const double a0[] = {0, 0.131479282e2, -0.540537150e1, 0.299999660e1, 0.124464495e2, 0.272181845e1, 0.692712415, 0.332248298e1};
	const double n0[] = {0, 0, 0, 0, 0.104971737e1, 0.329788641e1, 0.862650812e1, 0.329670446e1};
	phi0list.push_back(new phi0_lead(a0[1],a0[2]));
	phi0list.push_back(new phi0_logtau(a0[3]));
	phi0list.push_back(new phi0_Planck_Einstein(a0,n0,4,7,8));

	name.assign("R113");
	REFPROPname.assign("R113");
  
	ECSReferenceFluid = "R134a";

	BibTeXKeys.EOS = "Marx-BOOK-1992";
	BibTeXKeys.SURFACE_TENSION = "Mulero-JPCRD-2012";
}
Пример #11
0
NeonClass::NeonClass()
{
	double n[] = {0, 3.532653449, -4.513954384, -0.1524027959, 2.188568609, -7.44299997, 7.755627402, -3.122553128, 1.014206899, -0.05289214086, 0.1566849239, -0.2228527050, -0.01410150942, 0.07036229719, -0.05882048367, 0.01571172741, 0.001292202769, 0.0007902035603, -0.0003794403616, 0.04652799333, 0.04524001818, -0.2383421991, 0.00629359013, -0.001272313644, -1.75235256E-07, 0.007188419232, -0.05403006914, 0.07578222187, -0.03808588254, 0.006034022431};
	double d[] = {0, 1, 1, 1, 2, 2, 2, 2, 2, 3, 3, 3, 4, 4, 4, 4, 6, 6, 6, 1, 2, 2, 2, 2, 2, 4, 8, 8, 8, 8};
	double t[] = {0, 0.5, 0.75, 3.5, 0.5, 0.75, 1, 1.5, 2.5, 0.25, 0.5, 2.5, 1, 3, 4, 5, 1, 5, 6, 4, 1, 5, 8, 12, 32, 10, 6, 7, 8, 9};
	double c[] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 2, 2, 4, 6, 6, 2, 2, 2, 2, 2};

	phirlist.push_back(new phir_power(n,d,t,c,1,29,30));

	// Critical parameters
	crit.rho = 23.882*20.179;
	crit.p = PressureUnit(2680.0, UNIT_KPA);
	crit.T = 44.4918;
	crit.v = 1.0/crit.rho;

	// Other fluid parameters
	params.molemass = 20.179;
	params.Ttriple = 24.56;
	params.ptriple = 43.432339578188873;
	params.accentricfactor = -0.038449299273685900;
	params.R_u = 8.31434;

	// Limits of EOS
	limits.Tmin = params.Ttriple;
	limits.Tmax = 2000.0;
	limits.pmax = 1000000.0;
	limits.rhomax = 50.65*params.molemass;

	//Constants for ideal gas expression
	phi0list.push_back(new phi0_lead(0,0));
	phi0list.push_back(new phi0_logtau(1.5));

	name.assign("Neon");
	aliases.push_back("neon");
	aliases.push_back(std::string("NEON"));
	REFPROPname.assign("Neon");

	ECSReferenceFluid = "Nitrogen";

	BibTeXKeys.EOS = "Katti-ACE-1986";
	BibTeXKeys.ECS_LENNARD_JONES = "Poling-BOOK-2001";
	BibTeXKeys.SURFACE_TENSION = "Mulero-JPCRD-2012";
}
Пример #12
0
R12Class::R12Class()
{
	double n[] = {0, 2.075343402E+00, -2.962525996E+00, 1.001589616E-02, 1.781347612E-02, 2.556929157E-02, 2.352142637E-03, -8.495553314E-05, -1.535945599E-02, -2.108816776E-01, -1.654228806E-02, -1.181316130E-02, -4.160295830E-05, 2.784861664E-05, 1.618686433E-06, -1.064614686E-01, 9.369665207E-04, 2.590095447E-02, -4.347025025E-02, 1.012308449E-01, -1.100003438E-01, -3.361012009E-03, 3.789190008E-04};
	double t[] = {0, 0.5, 1, 2, 2.5, -0.5, 0, 0, -0.5, 1.5, 2.5, -0.5, 0, 0.5, -0.5, 4, 4, 2, 4, 12, 14, 0, 14};
	double d[] = {0, 1, 1, 1, 2, 4, 6, 8, 1, 1, 5, 7, 12, 12, 14, 1, 9, 1, 1, 3, 3, 5, 9};
	double c[] = {0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 2, 2, 3, 3, 3, 3, 3, 4};

	//Critical parameters
	crit.rho = 565; //[kg/m^3]
	crit.p = PressureUnit(4136.1, UNIT_KPA); //[kPa]
	crit.T = 385.12; //[K]
	crit.v = 1/crit.rho; 

	// Other fluid parameters
	params.molemass = 120.913;
	params.Ttriple = 116.099;
	params.accentricfactor = 0.17947831734355124;
	params.R_u = 8.314471;
	params.ptriple = 0.000242549651843;

	// Limits of EOS
	limits.Tmin = params.Ttriple;
	limits.Tmax = 500.0;
	limits.pmax = 100000.0;
	limits.rhomax = 1000000.0*params.molemass;

	phirlist.push_back(new phir_power(n,d,t,c,1,22,23));

	const double a0[] = {0, 0.100100905e2, -0.466434985e1, 0.300361975e1, 0.316062357e1, 0.371258136, 0.356226039e1, 0.212152336e1};
	const double n0[] = {0, 0, 0, 0, 0.372204562e1, 0.630985083e1, 0.178037889e1, 0.107087607e1};
	phi0list.push_back(new phi0_lead(a0[1],a0[2]));
	phi0list.push_back(new phi0_logtau(a0[3]));
	phi0list.push_back(new phi0_Planck_Einstein(a0,n0,4,7,8));

	name.assign("R12");
	REFPROPname.assign("R12");
  
	ECSReferenceFluid = "R134a";

	BibTeXKeys.EOS = "Marx-BOOK-1992";
	BibTeXKeys.SURFACE_TENSION = "Mulero-JPCRD-2012";
}
Пример #13
0
HFE143mClass::HFE143mClass()
{
    double n[] = {0.0, 0.77715884e+01, -0.87042570e+01, -0.28095049e+00, 0.14540153e+00, 0.92291277e-02, -0.21416510e+00, 0.99475155e-01, 0.23247135e-01, -0.12873573e-01, -0.57366549e-01, 0.36504650e+00, -0.25433763e+00, -0.90896436e-01, 0.83503619e-01, 0.15477603e-01, -0.16641941e-01, 0.52410163e-02};
    double t[] = {0, 0.682, 0.851, 1.84, 1.87, 0.353, 3.92, 1.14, 0.104, 1.19, 6.58, 6.73, 7.99, 7.31, 7.45, 16.5, 24.8, 10.5};
    double d[] = {0, 1, 1, 1, 2, 5, 1, 3, 5, 7, 1, 2, 2, 3, 4, 2, 3, 5};
    double l[] = {0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 2, 2, 2, 2, 2, 3, 3, 3};

    //Critical parameters
    crit.rho = 4.648140744*100.04; //[kg/m^3]
    crit.p = PressureUnit(3635, UNIT_KPA); //[kPa]
    crit.T = 377.921; //[K]
    crit.v = 1/crit.rho;

    // Other fluid parameters
    params.molemass = 100.04;
    params.Ttriple = 240;
    params.accentricfactor = 0.28887136567003235;
    params.R_u = 8.314472;
    params.ptriple = 65.359393007;

    // Limits of EOS
    limits.Tmin = 240;
    limits.Tmax = 500.0;
    limits.pmax = 100000.0;
    limits.rhomax = 1000000.0*params.molemass;

    phirlist.push_back(new phir_power( n,d,t,l,1,17,18));

    double T0 = 273.15,
           p0 = 256.64,
           R_u = 8.314472,
           R_= R_u/params.molemass,
           rho0=p0/(R_*T0),
           m,
           c,
           H0 = 40617.6, /// kJ/kmol
           S0 = 174.758, /// kJ/kmol/K
           tau0=crit.T/T0,
           delta0=rho0/crit.rho;

    // log(delta)+c+m*tau

    /// c is the constant term
    c=-S0/R_u-1+log(tau0/delta0);/*<< from the leading term*/

    /// m multiplies the tau term in the leading term (slope)
    m=H0/(R_u*crit.T); /*<< from the leading term */

    double N[] = {20.37, 0.2918, -1.950e-4, 4.650e-8};
    phi0list.push_back(new phi0_lead(c,m));
    phi0list.push_back(new phi0_logtau(-1.0));
    phi0list.push_back(new phi0_cp0_constant(N[0]/R_u,crit.T,T0));
    phi0list.push_back(new phi0_cp0_poly(N[1]/R_u,1,crit.T,T0));
    phi0list.push_back(new phi0_cp0_poly(N[2]/R_u,2,crit.T,T0));
    phi0list.push_back(new phi0_cp0_poly(N[3]/R_u,3,crit.T,T0));

    EOSReference.assign("Ryo Akasaka and Yohei Kayukawa \" A fundamental equation of state for trifluoromethyl methyl ether (HFE-143m) and its application to refrigeration cycle analysis \" International Journal of Refrigeration 35 (2012) 1003-1013 ");
    TransportReference.assign("Using ECS in fully predictive mode.");

    name.assign("HFE143m");
    aliases.push_back("HFE-143m");
    aliases.push_back("HFE143M");
    aliases.push_back("HFE-143M");
    aliases.push_back("RE143A");
    aliases.push_back("RE143a");
    REFPROPname.assign("RE143A");

    BibTeXKeys.EOS = "Akasaka-IJR-2012";
}
Пример #14
0
MethaneClass::MethaneClass()
{
	double _n[] = {0, 4.367901028E-02, 6.709236199E-01, -1.765577859E+00, 8.582330241E-01, -1.206513052E+00, 5.120467220E-01, -4.000010791E-04, -1.247842423E-02, 3.100269701E-02, 1.754748522E-03, -3.171921605E-06, -2.240346840E-06, 2.947056156E-07, 1.830487909E-01, 1.511883679E-01, -4.289363877E-01, 6.894002446E-02, -1.408313996E-02, -3.063054830E-02, -2.969906708E-02, -1.932040831E-02, -1.105739959E-01, 9.952548995E-02, 8.548437825E-03, -6.150555662E-02, -4.291792423E-02, -1.813207290E-02, 3.445904760E-02, -2.385919450E-03, -1.159094939E-02, 6.641693602E-02, -2.371549590E-02, -3.961624905E-02, -1.387292044E-02, 3.389489599E-02, -2.927378753E-03, 9.324799946E-05, -6.287171518E+00, 1.271069467E+01, -6.423953466E+00};
	double _d[] = {0, 1, 1, 1, 2, 2, 2, 2, 3, 4, 4, 8, 9, 10, 1, 1, 1, 2, 4, 5, 6, 1, 2, 3, 4, 4, 3, 5, 5, 8, 2, 3, 4, 4, 4, 5, 6, 2, 0, 0, 0};
	double _t[] = {0, -0.5, 0.5, 1, 0.5, 1, 1.5, 4.5, 0, 1, 3, 1, 3, 3, 0, 1, 2, 0, 0, 2, 2, 5, 5, 5, 2, 4, 12, 8, 10, 10, 10, 14, 12, 18, 22, 18, 14, 2, 0, 1, 2};
	double _l[] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 3, 3, 3, 3, 4, 4, 4, 4, 4, 4, 4, 2, 2, 2, 2};
	double _eta[] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20, 40, 40, 40};
	double _epsilon[] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1};
	double _beta[] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 200, 250, 250, 250};
	double _gamma[] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1.07, 1.11, 1.11, 1.11};

	std::vector<double> n_v(_n,_n+sizeof(_n)/sizeof(double));
	std::vector<double> d_v(_d,_d+sizeof(_d)/sizeof(double));
	std::vector<double> t_v(_t,_t+sizeof(_t)/sizeof(double));
	std::vector<double> l_v(_l,_l+sizeof(_l)/sizeof(double));
	std::vector<double> eta_v(_eta,_eta+sizeof(_eta)/sizeof(double));
	std::vector<double> epsilon_v(_epsilon,_epsilon+sizeof(_epsilon)/sizeof(double));
	std::vector<double> beta_v(_beta,_beta+sizeof(_beta)/sizeof(double));
	std::vector<double> gamma_v(_gamma,_gamma+sizeof(_gamma)/sizeof(double));

	//Critical parameters
	crit.rho = 10.139128*16.0428; //[kg/m^3]
	crit.p = PressureUnit(4599.2,UNIT_KPA); //[kPa]
	crit.T = 190.564; //[K]
	crit.v = 1/crit.rho; 

	// Reducing parameters used in EOS
	reduce.p = PressureUnit(4599.2, UNIT_KPA);
	reduce.T = 190.564; //[K]
	reduce.rho = 10.139128*16.0428; //[kg/m^3]
	reduce.v = 1.0/reduce.rho;

	preduce = &reduce;

	// Other fluid parameters
	params.molemass = 16.0428;
	params.Ttriple = 90.6941;
	params.ptriple = 11.696;
	params.accentricfactor = 0.01142;
	params.R_u = 8.31451;

	// Limits of EOS
	limits.Tmin = params.Ttriple;
	limits.Tmax = 500.0;
	limits.pmax = 100000.0;
	limits.rhomax = 1000000.0*params.molemass;

	phirlist.push_back(new phir_power( n_v,d_v,t_v,l_v,1,36));
	phirlist.push_back(new phir_gaussian( n_v,d_v,t_v,eta_v,epsilon_v,beta_v,gamma_v,37,40));

	double _theta [] ={0,0,0,0,3.400432401,10.26951575,20.43932747,29.93744884,79.13351945};
	std::vector<double> theta_v (_theta,_theta+sizeof(_theta)/sizeof(double));
	double _n0 [] ={0,9.91243972,-6.33270087,3.0016,0.008449,4.6942,3.4865,1.6572,1.4115};
	std::vector<double> n0_v (_n0,_n0+sizeof(_n0)/sizeof(double));
	
	// lead term: log(delta)+c+m*tau
	phi0list.push_back(new phi0_lead(n0_v[1], n0_v[2]));
	phi0list.push_back(new phi0_logtau(n0_v[3]));
	phi0list.push_back(new phi0_Planck_Einstein(n0_v,theta_v,4,8));

	EOSReference.assign("Setzmann, U. and Wagner, W., \"A New Equation of State and Tables of Thermodynamic Properties for Methane Covering the Range from the Melting Line to 625 K at Pressures up to 1000 MPa,\" J. Phys. Chem. Ref. Data, 20(6):1061-1151, 1991.");
	TransportReference.assign("Using ECS in fully predictive mode");

	name.assign("Methane");
	aliases.push_back("CH4");
	aliases.push_back("methane");
	aliases.push_back("METHANE");
	REFPROPname.assign("METHANE");

	BibTeXKeys.EOS = "Setzmann-JPCRD-1991";
	BibTeXKeys.SURFACE_TENSION = "Mulero-JPCRD-2012";
}
Пример #15
0
IsoButaneClass::IsoButaneClass()
{
	double _n [] = {0, 2.0686820727966E+00, -3.6400098615204E+00, 5.1968754427244E-01, 1.7745845870123E-01, -1.2361807851599E-01, 4.5145314010528E-02, 3.0476479965980E-02, 7.5508387706302E-01, -8.5885381015629E-01, 3.6324009830684E-02, -1.9548799450550E-02, -4.4452392904960E-03, 4.6410763666460E-03, -7.1444097992825E-02, -8.0765060030713E-02, 1.5560460945053E-01, 2.0318752160332E-03, -1.0624883571689E-01, 3.9807690546305E-02, 1.6371431292386E-02, 5.3212200682628E-04, -7.8681561156387E-03, -3.0981191888963E-03, -4.2276036810382E-02, -5.3001044558079E-03};
	double _l[]= {0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 3, 3, 0, 0};
	double _d[]= {0, 1, 1, 1, 2, 3, 4, 4, 1, 1, 2, 7, 8, 8, 1, 2, 3, 3, 4, 5, 5, 10, 2, 6, 1, 2};
	double _t[]= {0, 0.5, 1, 1.5, 0, 0.5, 0.5, 0.75, 2, 2.5, 2.5, 1.5, 1, 1.5, 4, 7, 3, 7, 3, 1, 6, 0, 6, 13, 2, 0};
	double _eta[] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 10};
	double _epsilon[] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.85, 1};
	double _beta[] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 150, 200};
	double _gamma[] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1.16, 1.13};
	std::vector<double> n_v(_n,_n+sizeof(_n)/sizeof(double));
	std::vector<double> d_v(_d,_d+sizeof(_d)/sizeof(double));
	std::vector<double> t_v(_t,_t+sizeof(_t)/sizeof(double));
	std::vector<double> l_v(_l,_l+sizeof(_l)/sizeof(double));
	std::vector<double> eta_v(_eta,_eta+sizeof(_eta)/sizeof(double));
	std::vector<double> epsilon_v(_epsilon,_epsilon+sizeof(_epsilon)/sizeof(double));
	std::vector<double> beta_v(_beta,_beta+sizeof(_beta)/sizeof(double));
	std::vector<double> gamma_v(_gamma,_gamma+sizeof(_gamma)/sizeof(double));

	//Critical parameters
	crit.rho = 225.5; //[kg/m^3]
	crit.p = PressureUnit(3629,UNIT_KPA); //[kPa]
	crit.T = 407.817; //[K]
	crit.v = 1/crit.rho; 

	// Other fluid parameters
	params.molemass = 58.12220;
	params.Ttriple = 113.73;
	params.ptriple = 2.28968758984e-05;
	params.accentricfactor = 0.183531783208;
	params.R_u = 8.314472;

	// Limits of EOS
	limits.Tmin = params.Ttriple;
	limits.Tmax = 500.0;
	limits.pmax = 100000.0;
	limits.rhomax = 1000000.0*params.molemass;

	phirlist.push_back(new phir_power( n_v,d_v,t_v,l_v,1,23));
	phirlist.push_back(new phir_gaussian( n_v,d_v,t_v,eta_v,epsilon_v,beta_v,gamma_v,24,25));

	double _theta [] ={0,0,0,0,0.951277902,2.387895885,4.346904269,10.36885864};
	std::vector<double> theta_v (_theta,_theta+sizeof(_theta)/sizeof(double));
	double _n0 [] ={0,11.60865546,-5.29450411,3.05956619,4.94641014,4.09475197,15.6632824,9.73918122};
	std::vector<double> n0_v (_n0,_n0+sizeof(_n0)/sizeof(double));
	
	// lead term: log(delta)+c+m*tau
	phi0list.push_back(new phi0_lead(n0_v[1], n0_v[2]));
	phi0list.push_back(new phi0_logtau(n0_v[3]));
	phi0list.push_back(new phi0_Planck_Einstein(n0_v,theta_v,4,7));

	EOSReference.assign("Buecker, D. and Wagner, W. \"Reference Equations of State for the Thermodynamic Properties of Fluid Phase n-Butane and Isobutane,\" J. Phys. Chem. Ref. Data, Vol. 35, No. 2, 2006, 929-1019.");
	TransportReference.assign("Using ECS in fully predictive mode");

	name.assign("IsoButane");
	aliases.push_back("isobutane");
	aliases.push_back("Isobutane");
	aliases.push_back("ISOBUTANE");
	aliases.push_back("R600A");
	aliases.push_back("R600a");
	REFPROPname.assign("ISOBUTAN");

	// Adjust to the IIR reference state (h=200 kJ/kg, s = 1 kJ/kg for sat. liq at 0C)
    params.HSReferenceState = "IIR";

	BibTeXKeys.EOS = "Buecker-JPCRD-2006B";
	BibTeXKeys.VISCOSITY = "Vogel-IJT-2000";
	BibTeXKeys.ECS_LENNARD_JONES = "Vogel-IJT-2000";
	BibTeXKeys.CONDUCTIVITY = "Perkins-JCED-2002B";
	BibTeXKeys.SURFACE_TENSION = "Mulero-JPCRD-2012";
}
Пример #16
0
EthaneClass::EthaneClass()
{

double n[] = 
{0.0,
0.83440745735241, //[1]
-1.4287360607171, //[2]
0.34430242210927, //[3]
-0.42096677920265, //[4]
0.012094500886549, //[5]
-0.57976201597341, //[6]
-0.033127037870838, //[7]
-0.1175165489413, //[8]
-0.11160957833067, //[9]
0.062181592654406, //[10]
0.098481795434443, //[11]
-0.098268582682358, //[12]
-0.00023977831007049, //[13]
0.00069885663328821, //[14]
0.000019665987803305, //[15]
-0.014586152207928, //[16]
0.046354100536781, //[17]
0.0060764622180645, //[18]
-0.0026447330147828, //[19]
-0.042931872689904, //[20]
0.0029987786517263, //[21]
0.005291933517501, //[22]
-0.0010383897798198, //[23]
-0.054260348214694, //[24]
-0.21959362918493, //[25]
0.35362456650354, //[26]
-0.12477390173714, //[27]
0.18425693591517, //[28]
-0.16192256436754, //[29]
-0.082770876149064, //[30]
0.050160758096437, //[31]
0.0093614326336655, //[32]
-0.00027839186242864, //[33]
0.000023560274071481, //[34]
0.0039238329738527, //[35]
-0.00076488325813618, //[36]
-0.004994430444073, //[37]
0.0018593386407186, //[38]
-0.00061404353331199, //[39]
-0.0023312179367924, //[40]
0.002930104790876, //[41]
-0.00026912472842883, //[42]
184.13834111814, //[43]
-10.397127984854, //[44]
};

double d[] =
{0,
1, //[1]
1, //[2]
2, //[3]
2, //[4]
4, //[5]
1, //[6]
1, //[7]
2, //[8]
2, //[9]
3, //[10]
6, //[11]
6, //[12]
7, //[13]
9, //[14]
10, //[15]
2, //[16]
4, //[17]
4, //[18]
5, //[19]
5, //[20]
6, //[21]
8, //[22]
9, //[23]
2, //[24]
3, //[25]
3, //[26]
3, //[27]
4, //[28]
4, //[29]
5, //[30]
5, //[31]
6, //[32]
11, //[33]
14, //[34]
3, //[35]
3, //[36]
4, //[37]
8, //[38]
10, //[39]
1, //[40]
1, //[41]
3, //[42]
3, //[43]
2 //[44]
};

double t[] =
{0,
0.25, //[1]
1, //[2]
0.25, //[3]
0.75, //[4]
0.75, //[5]
2, //[6]
4.25, //[7]
0.75, //[8]
2.25, //[9]
3, //[10]
1, //[11]
1.25, //[12]
2.75, //[13]
1, //[14]
2, //[15]
2.5, //[16]
5.5, //[17]
7, //[18]
0.5, //[19]
5.5, //[20]
2.5, //[21]
4, //[22]
2, //[23]
10, //[24]
16, //[25]
18, //[26]
20, //[27]
14, //[28]
18, //[29]
12, //[30]
19, //[31]
7, //[32]
15, //[33]
9, //[34]
26, //[35]
28, //[36]
28, //[37]
22, //[38]
13, //[39]
0, //[40]
3, //[41]
3, //[42]
0, //[43]
3, //[44]
};

double l[] =
{0,
0, //[1]
0, //[2]
0, //[3]
0, //[4]
0, //[5]
1, //[6]
1, //[7]
1, //[8]
1, //[9]
1, //[10]
1, //[11]
1, //[12]
1, //[13]
1, //[14]
1, //[15]
2, //[16]
2, //[17]
2, //[18]
2, //[19]
2, //[20]
2, //[21]
2, //[22]
2, //[23]
3, //[24]
3, //[25]
3, //[26]
3, //[27]
3, //[28]
3, //[29]
3, //[30]
3, //[31]
3, //[32]
3, //[33]
3, //[34]
4, //[35]
4, //[36]
4, //[37]
4, //[38]
4, //[39]
0, //[40]
0, //[41]
0, //[42]
0, //[43]
0, //[44]
};

double eta [] =
{0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, //[indices 0-39]
15, //[40]
15, //[41]
15, //[42]
20, //[43]
20, //[44]
};

double epsilon [] =
{0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, //[indices 0-39]
1, //[40]
1, //[41]
1, //[42]
1, //[43]
1, //[44]
};

double beta [] =
{0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, //[indices 0-39]
150, //[40]
150, //[41]
150, //[42]
275, //[43]
400, //[44]
};

double gamma [] =
{0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, //[indices 0-39]
1.05, //[40]
1.05, //[41]
1.05, //[42]
1.22, //[43]
1.16, //[44]
};


	std::vector<double> n_v(n,n+sizeof(n)/sizeof(double));
	std::vector<double> d_v(d,d+sizeof(d)/sizeof(double));
	std::vector<double> t_v(t,t+sizeof(t)/sizeof(double));
	std::vector<double> l_v(l,l+sizeof(l)/sizeof(double));
	std::vector<double> eta_v(eta,eta+sizeof(eta)/sizeof(double));
	std::vector<double> epsilon_v(epsilon,epsilon+sizeof(epsilon)/sizeof(double));
	std::vector<double> beta_v(beta,beta+sizeof(beta)/sizeof(double));
	std::vector<double> gamma_v(gamma,gamma+sizeof(gamma)/sizeof(double));

	//Critical parameters
	crit.rho = 6.856886685*30.06904;// 206.18; //[kg/m^3]
	crit.p = PressureUnit(4872.2,UNIT_KPA); //[kPa]
	crit.T = 305.322; //[K]
	crit.v = 1/crit.rho; 

	// Other fluid parameters
	params.molemass = 30.06904;
	params.Ttriple = 90.368;
	params.ptriple = 0.00114240920349;
	params.accentricfactor = 0.099;
	params.R_u = 8.314472;

	// Limits of EOS
	limits.Tmin = params.Ttriple;
	limits.Tmax = 500.0;
	limits.pmax = 100000.0;
	limits.rhomax = 1000000.0*params.molemass;

	phirlist.push_back(new phir_power( n_v,d_v,t_v,l_v,1,39));
	phirlist.push_back(new phir_gaussian( n_v,d_v,t_v,eta_v,epsilon_v,beta_v,gamma_v,40,44));

	double _theta [] ={0,0,0,0,1.409105233,4.009917071,6.596709834,13.97981027};
	std::vector<double> theta_v (_theta,_theta+sizeof(_theta)/sizeof(double));
	double _n0 [] ={0,9.212802589,-4.68224855,3.003039265,1.117433359,3.467773215,6.94194464,5.970850948};
	std::vector<double> n0_v (_n0,_n0+sizeof(_n0)/sizeof(double));
	
	// lead term: log(delta)+c+m*tau
	phi0list.push_back(new phi0_lead(n0_v[1], n0_v[2]));
	phi0list.push_back(new phi0_logtau(n0_v[3]));
	phi0list.push_back(new phi0_Planck_Einstein(n0_v,theta_v,4,7));

	EOSReference.assign("Buecker, D. and Wagner, W. \"A Reference Equation of State for the Thermodynamic Properties of Ethane for Temperatures from the Melting Line to 675 K and Pressures up to 900 MPa,\" J. Phys. Chem. Ref. Data, 35(1):205-266, 2006.");
	TransportReference.assign("Using ECS in fully predictive mode");

	name.assign("Ethane");
	aliases.push_back("ethane");
	aliases.push_back("ETHANE");
	REFPROPname.assign("ETHANE");

	BibTeXKeys.EOS = "Buecker-JPCRD-2006";
	BibTeXKeys.VISCOSITY = "Friend-JPCRD-1991";
	BibTeXKeys.CONDUCTIVITY = "Friend-JPCRD-1991";
	BibTeXKeys.ECS_LENNARD_JONES = "Friend-JPCRD-1991";
	BibTeXKeys.SURFACE_TENSION = "Mulero-JPCRD-2012";
}
Пример #17
0
nButaneClass::nButaneClass()
{
	double _n [] = {0, 2.5536998241635E+00, -4.4585951806696E+00, 8.2425886369063E-01, 1.1215007011442E-01, -3.5910933680333E-02, 1.6790508518103E-02, 3.2734072508724E-02, 9.5571232982005E-01, -1.0003385753419E+00, 8.5581548803855E-02, -2.5147918369616E-02, -1.5202958578918E-03, 4.7060682326420E-03, -9.7845414174006E-02, -4.8317904158760E-02, 1.7841271865468E-01, 1.8173836739334E-02, -1.1399068074953E-01, 1.9329896666669E-02, 1.1575877401010E-03, 1.5253808698116E-04, -4.3688558458471E-02, -8.2403190629989E-03, -2.8390056949441E-02, 1.4904666224681E-03};
	double _l[]= {0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 3, 3, 0, 0};
	double _d[]= {0, 1, 1, 1, 2, 3, 4, 4, 1, 1, 2, 7, 8, 8, 1, 2, 3, 3, 4, 5, 5, 10, 2, 6, 1, 2};
	double _t[]= {0, 0.5, 1, 1.5, 0, 0.5, 0.5, 0.75, 2, 2.5, 2.5, 1.5, 1, 1.5, 4, 7, 3, 7, 3, 1, 6, 0, 6, 13, 2, 0};
	double _eta[] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 10};
	double _epsilon[] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.85, 1};
	double _beta[] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 150, 200};
	double _gamma[] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1.16, 1.13};
	std::vector<double> n_v(_n,_n+sizeof(_n)/sizeof(double));
	std::vector<double> d_v(_d,_d+sizeof(_d)/sizeof(double));
	std::vector<double> t_v(_t,_t+sizeof(_t)/sizeof(double));
	std::vector<double> l_v(_l,_l+sizeof(_l)/sizeof(double));
	std::vector<double> eta_v(_eta,_eta+sizeof(_eta)/sizeof(double));
	std::vector<double> epsilon_v(_epsilon,_epsilon+sizeof(_epsilon)/sizeof(double));
	std::vector<double> beta_v(_beta,_beta+sizeof(_beta)/sizeof(double));
	std::vector<double> gamma_v(_gamma,_gamma+sizeof(_gamma)/sizeof(double));

	//Critical parameters
	crit.rho = 228; //[kg/m^3]
	crit.p = PressureUnit(3796,UNIT_KPA); //[kPa]
	crit.T = 425.125; //[K]
	crit.v = 1/crit.rho; 

	// Other fluid parameters
	params.molemass = 58.12220;
	params.Ttriple = 134.895;
	params.ptriple = 0.000665785834101;
	params.accentricfactor = 0.200810094644;
	params.R_u = 8.314472;

	// Limits of EOS
	limits.Tmin = params.Ttriple;
	limits.Tmax = 500.0;
	limits.pmax = 100000.0;
	limits.rhomax = 1000000.0*params.molemass;

	phirlist.push_back(new phir_power( n_v,d_v,t_v,l_v,1,23));
	phirlist.push_back(new phir_gaussian( n_v,d_v,t_v,eta_v,epsilon_v,beta_v,gamma_v,24,25));

	double _theta [] ={0,0,0,0,0.774840445,3.340602552,4.970513096,9.975553778};
	std::vector<double> theta_v (_theta,_theta+sizeof(_theta)/sizeof(double));
	double _n0 [] ={0, 12.54882924,-5.46976878,3.24680487,5.54913289,11.4648996,7.59987584,9.66033239};
	std::vector<double> n0_v (_n0,_n0+sizeof(_n0)/sizeof(double));
	
	// lead term: log(delta)+c+m*tau
	phi0list.push_back(new phi0_lead(n0_v[1], n0_v[2]));
	phi0list.push_back(new phi0_logtau(n0_v[3]));
	phi0list.push_back(new phi0_Planck_Einstein(n0_v,theta_v,4,7));

	EOSReference.assign("Buecker, D. and Wagner, W. \"Reference Equations of State for the Thermodynamic Properties of Fluid Phase n-Butane and Isobutane,\" J. Phys. Chem. Ref. Data, Vol. 35, No. 2, 2006, 929-1019.");
	TransportReference.assign("Using ECS in fully predictive mode");

	name.assign("n-Butane");
	aliases.push_back("nButane");
	aliases.push_back("butane");
	aliases.push_back("BUTANE");
	aliases.push_back("N-BUTANE");
	REFPROPname.assign("BUTANE");

	BibTeXKeys.EOS = "Buecker-JPCRD-2006B";
	BibTeXKeys.VISCOSITY = "Vogel-HTHP-1999";
	BibTeXKeys.CONDUCTIVITY = "Perkins-JCED-2002A";
	BibTeXKeys.SURFACE_TENSION = "Mulero-JPCRD-2012";
	BibTeXKeys.ECS_LENNARD_JONES = "Vogel-HTHP-1999";
}
Пример #18
0
R1234yfClass::R1234yfClass()
{
	static const double n[]={
		 0, //[0]
		 0.04592563, //[1]
		 1.546958, //[2]
		-2.355237, //[3]
		-0.4827835, //[4]
		 0.1758022, //[5]
		-1.210006, //[6]
		-0.6177084, //[7]
		 0.6805262, //[8]
		-0.6968555, //[9]
		-0.02695779, //[10]
		 1.389966, //[11]
		-0.4777136, //[12]
		-0.1975184, //[13]
		-1.147646, //[14]
		 0.0003428541 //[15]
	};

	static const double d[]={
		0, //[0]
		4, //[1]
		1, //[2]
		1, //[3]
		2, //[4]
		3, //[5]
		1, //[6]
		3, //[7]
		2, //[8]
		2, //[9]
		7, //[10]
		1, //[11]
		1, //[12]
		3, //[13]
		3, //[14]
		2, //[15]
	};

	static const double t[]={
		0, //[0]
		1, //[1]
		0.32, //[2]
		0.929, //[3]
		0.94, //[4]
		0.38, //[5]
		2.28, //[6]
		1.76, //[7]
		0.97, //[8]
		2.44, //[9]
		1.05, //[10]
		1.4, //[11]
		3, //[12]
		3.5, //[13]
		1, //[14]
		3.5 //[15]
	};

	static const double c[]={
	0, //[0]
	0, //[1]
	0, //[2]
	0, //[3]
	0, //[4]
	0, //[5]
	2, //[6]
	2, //[7]
	1, //[8]
	2, //[9]
	1, //[10]
	};

	static const double alpha[]={
	0, //[0]
	0, //[1]
	0, //[2]
	0, //[3]
	0, //[4]
	0, //[5]
	0, //[6]
	0, //[7]
	0, //[8]
	0, //[9]
	0, //[10]
	1.02, //[11]
	1.336, //[12]
	1.055, //[13]
	5.84, //[14]
	16.2, //[15]
	};

	static const double beta[]={
	0, //[0]
	0, //[1]
	0, //[2]
	0, //[3]
	0, //[4]
	0, //[5]
	0, //[6]
	0, //[7]
	0, //[8]
	0, //[9]
	0, //[10]
	1.42, //[11]
	2.31, //[12]
	0.89, //[13]
	80, //[14]
	108, //[15]
	};

	static const double gamma[]={
	0, //[0]
	0, //[1]
	0, //[2]
	0, //[3]
	0, //[4]
	0, //[5]
	0, //[6]
	0, //[7]
	0, //[8]
	0, //[9]
	0, //[10]
	1.13, //[11]
	0.67, //[12]
	0.46, //[13]
	1.28, //[14]
	1.2 //[15]
	};

	static const double epsilon[]={
	0, //[0]
	0, //[1]
	0, //[2]
	0, //[3]
	0, //[4]
	0, //[5]
	0, //[6]
	0, //[7]
	0, //[8]
	0, //[9]
	0, //[10]
	0.712, //[11]
	0.91, //[12]
	0.677, //[13]
	0.718, //[14]
	1.64 //[15]
	};

	static const double v0[]={
		0.0,	//[0]
		7.549,	//[1]
		1.537,	//[2]
		2.030,	//[3]
		7.455,	//[4]
	};
	static const double u0[]={
		// each of the ui terms are divided by the critical temp {fie on you Mr. EOS-maker}
		0.0,		//[0]
		718/367.85,	//[1]
		877/367.85,	//[2]
		4465/367.85,//[3]
		1755/367.85,//[4]
	};

	std::vector<double> u0_v(u0,u0+sizeof(u0)/sizeof(double));
	std::vector<double> v0_v(v0,v0+sizeof(v0)/sizeof(double));
	
	phirlist.push_back(new phir_power(n,d,t,c,1,10,11));
    phirlist.push_back(new phir_gaussian(n,d,t,alpha,epsilon,beta,gamma,11,15,16));

	phi0list.push_back(new phi0_lead(-12.837928,8.042605));
	phi0list.push_back(new phi0_logtau(4.944));
	phi0list.push_back(new phi0_Planck_Einstein(v0_v,u0_v,1,4));

	// Critical parameters
	crit.rho = 475.553441976;
	crit.p = PressureUnit(3382.2, UNIT_KPA);
	crit.T = 367.85;
	crit.v = 1.0/crit.rho;

	// Other fluid parameters
	params.molemass = 114.0415928;
	params.Ttriple = 220;
	params.ptriple = 31.5093083629;
	params.accentricfactor = 0.276;
	params.R_u = 8.314472;

	// Limits of EOS
	limits.Tmin = 220;
	limits.Tmax = 410.0;
	limits.pmax = 30000.0;
	limits.rhomax = 11.64*params.molemass;
	
	EOSReference.assign("Richter, M. and M.O. McLinden and E.W. Lemmon, \"Thermodynamic Properties of 2,3,3,3-Tetrafluoroprop-1-ene"
						"(R1234yf): Vapor Pressure and p-rho-T Measurements and an Equation of State\""
						", J. Chem. Eng. Data, v. 56, 2011, pp 3254-3264");
	TransportReference.assign("Surface Tension: Katsuyuki Tanaka, Yukihiro Higashi, \"Thermodynamic properties of HFO-1234yf (2,3,3,3-tetrafluoropropene)\", International Journal of Refrigeration 33 (2010) 474-479");
	aliases.push_back("R1234YF");
	name.assign("R1234yf");

	BibTeXKeys.EOS = "Richter-JCED-2011";
	BibTeXKeys.SURFACE_TENSION = "Mulero-JPCRD-2012";
	BibTeXKeys.CONDUCTIVITY = "Perkins-JCED-2011";

}
Пример #19
0
R410AClass::R410AClass()
{
	static double a[]={
		36.8871,		//[0]
		7.15807,		//[1]
		-46.87575,		//[2]
		2.0623,			//[3]
		5.9751,			//[4]
		1.5612			//[5]
	};

	static double b[]={
		0,				//[0]
		0,				//[1]
		-0.1,			//[2]
		2.02326,		//[3]
		5.00154,		//[4]
		11.2484			//[5]
	};

	static double N[]={
		 0.0,			//[0]
		 0.987252,		//[1]
		-1.03017,		//[2]
		 1.17666,		//[3]
		-0.138991,		//[4]
		 0.00302373,	//[5]
		-2.53639,		//[6]
		-1.96680,		//[7]
		-0.830480,		//[8]
		 0.172477,		//[9]
		-0.261116,		//[10]
		-0.0745473,		//[11]
		 0.679757,		//[12]
		-0.652431,		//[13]
		 0.0553849,		//[14]
		-0.0710970,		//[15]
		-0.000875332,	//[16]
		 0.0200760,		//[17]
		-0.0139761,		//[18]
		-0.0185110,		//[19]
		 0.0171939,		//[20]
		-0.00482049		//[21]
	};

	static double t[]={
		0.0,			//[0]
		0.44,			//[1]
		1.2,			//[2]
		2.97,			//[3]
		2.95,			//[4]
		0.2,			//[5]
		1.93,			//[6]
		1.78,			//[7]
		3.0,			//[8]
		0.2,			//[9]
		0.74,			//[10]
		3.0,			//[11]
		2.1,			//[12]
		4.3,			//[13]
		0.25,			//[14]
		7.0,			//[15]
		4.7,			//[16]
		13.0,			//[17]
		16.0,			//[18]
		25.0,			//[19]
		17.0,			//[20]
		7.4				//[21]
	};

	static double d[]={
		0,				//[0]
		1,				//[1]
		1,				//[2]
		1,				//[3]
		2,				//[4]
		5,				//[5]
		1,				//[6]
		2,				//[7]
		3,				//[8]
		5,				//[9]
		5,				//[10]
		5,				//[11]
		1,				//[12]
		1,				//[13]
		4,				//[14]
		4,				//[15]
		9,				//[16]
		2,				//[17]
		2,				//[18]
		4,				//[19]
		5,				//[20]
		6				//[21]
	};

	static double l[]={
		0,				//[0]
		0,				//[1]
		0,				//[2]
		0,				//[3]
		0,				//[4]
		0,				//[5]
		1,				//[6]
		1,				//[7]
		1,				//[8]
		1,				//[9]
		1,				//[10]
		1,				//[11]
		2,				//[12]
		2,				//[13]
		2,				//[14]
		2,				//[15]
		2,				//[16]
		3,				//[17]
		3,				//[18]
		3,				//[19]
		3,				//[20]
		3				//[21]
	};

	phirlist.push_back(new phir_power(N,d,t,l,1,21,22));

	/*
	sum=log(delta)-log(tau)+a[0]+a[1]*tau+a[2]*pow(tau,b[2]);
	for(k=3;k<=5;k++)
	{
		sum+=a[k]*log(1.0-exp(-b[k]*tau));
	}
	*/
	phi0list.push_back(new phi0_lead(a[0],a[1]));
	phi0list.push_back(new phi0_logtau(-1.0));
	phi0list.push_back(new phi0_power(a[2],b[2]));
	phi0list.push_back(new phi0_Planck_Einstein(a,b,3,5,6));

	// Other fluid parameters
	params.molemass = 72.5854;
	params.Ttriple = 200.0;
	params.ptriple = 29.0116613767;
	params.accentricfactor = 0.296;
	params.R_u = 8.314472;
	isPure = false;
	
	// Critical parameters
	crit.rho = 459.0300696;
	crit.p = PressureUnit(4901.2,UNIT_KPA);
	crit.T = 344.494;
	crit.v = 1.0/crit.rho;

	// Limits of EOS
	limits.Tmin = params.Ttriple;
	limits.Tmax = 500.0;
	limits.pmax = 50000.0;
	limits.rhomax = 19.51*params.molemass;
	
	EOSReference.assign("E.W. Lemmon, \"Pseudo-pure fluid Equations of State for the Refrigerant Blends R410A, R404A, R507C and R407C\"" 
						",Int. J. Thermophys. v. 24, n4, 2003");
	TransportReference.assign("Viscosity: V. Geller, \"Viscosity of Mixed Refrigerants R404A,R407C,"
							"R410A, and R507A\", 2000 Purdue Refrigeration conferences\n\n"
							"Thermal Conductivity: V.Z. Geller, B.Z. Nemzer, and U.V. Cheremnykh \"Thermal Conductivity "
							"of the Refrigerant mixtures R404A,R407C,R410A, and R507A\" "
							"Int. J. Thermophysics, v. 22, n 4 2001");

	name.assign("R410A");
	aliases.push_back("R410a");

	BibTeXKeys.EOS = "Lemmon-IJT-2003";
	BibTeXKeys.VISCOSITY = "Geller-PURDUE-2000";
	BibTeXKeys.CONDUCTIVITY = "Geller-IJT-2001";
}
Пример #20
0
R717Class::R717Class()
{

	static const double n[]={
		 0.0,			//[0]
		 0.4554431e-1, 	//[1]
		 0.7238548e+0,	//[2]
		 0.1229470e-1,	//[3]
		-0.1858814e+1,	//[4]
		 0.2141882e-10,	//[5]
		-0.1430020e-1,	//[6]
		 0.3441324e+0,	//[7]
		-0.2873571e+0,	//[8]
		 0.2352589e-4,	//[9]
		-0.3497111e-1,	//[10]
		 0.2397852e-1,	//[11]
		 0.1831117e-2,	//[12]
		-0.4085375e-1,	//[13]
		 0.2379275e+0,	//[14]
 		-0.3548972e-1,	//[15]
		-0.1823729e+0,	//[16]
		 0.2281556e-1,	//[17]
		-0.6663444e-2,	//[18]
		-0.8847486e-2,	//[19]
		 0.2272635e-2,	//[20]
		-0.5588655e-3,	//[21]
	};

	static const double d[]={
		0,			//[0]
		2, 			//[1]
		1, 			//[2]
		4, 			//[3]
		1, 			//[4]
		15, 		//[5]
		3, 			//[6]
		3, 			//[7]
		1, 			//[8]
		8, 			//[9]
		2, 			//[10]
		1, 			//[11]
		8, 			//[12]
		1, 			//[13]
		2, 			//[14]
		3, 			//[15]
		2, 			//[16]
		4, 			//[17]
		3, 			//[18]
		1, 			//[19]
		2, 			//[20]
		4 			//[21]
	};

	static const double t[]={
		0.0,		//[0]
		-1.0/2.0,	//[1]
		1.0/2.0,	//[2]
		1.0,		//[3]
		3.0/2.0,	//[4]
		3.0,		//[5]
		0.0,		//[6]
		3.0,		//[7]
		4.0,		//[8]
		4.0,		//[9]
		5.0,		//[10]
		3.0,		//[11]
		5.0,		//[12]
		6.0, 		//[13]
		8.0,		//[14]
		8.0,		//[15]
		10.0,		//[16]
		10.0,		//[17]
		5.0,		//[18]
		15.0/2.0,	//[19]
		15.0,		//[20]
		30.0		//[21]
	};

	static const double c[]={
		0.0,		//[0]
		0.0,		//[1]
		0.0,		//[2]
		0.0,		//[3]
		0.0,		//[4]
		0.0,		//[5]
		1.0,		//[6]
		1.0,		//[7]
		1.0,		//[8]
		1.0,		//[9]
		1.0,		//[10]
		2.0,		//[11]
		2.0,		//[12]
		2.0, 		//[13]
		2.0,		//[14]
		2.0,		//[15]
		2.0,		//[16]
		2.0,		//[17]
		3.0,		//[18]
		3.0,		//[19]
		3.0,		//[20]
		3.0			//[21]
	};

	static const double a0[]={
		0.0,		//[0]
		-15.815020,	//[1]
		4.255726,	//[2]
		11.474340,	//[3]
		-1.296211,	//[4]
		0.5706757	//[5]
	};
	static const double t0[]={
		0.0,		//[0]
		0.0,		//[1]
		0.0,		//[2]
		1.0/3.0,	//[3]
		-3.0/2.0,	//[4]
		-7.0/4.0	//[5]
	};

	std::vector<double> a0_v(a0,a0+sizeof(a0)/sizeof(double));
	std::vector<double> t0_v(t0,t0+sizeof(t0)/sizeof(double));

	phirlist.push_back(new phir_power(n,d,t,c,1,21,22));

	// phi0=log(delta)+a0[1]+a0[2]*tau-log(tau)+a0[3]*pow(tau,1.0/3.0)+a0[4]*pow(tau,-3.0/2.0)+a0[5]*pow(tau,-7.0/4.0);
	phi0list.push_back(new phi0_lead(a0[1],a0[2]));
	phi0list.push_back(new phi0_logtau(-1));
	phi0list.push_back(new phi0_power(a0_v,t0_v,3,5));

	// Critical parameters
	crit.rho = 225;
	crit.p = PressureUnit(11333, UNIT_KPA);
	crit.T = 405.40;
	crit.v = 1.0/crit.rho;

	// Other fluid parameters
	params.molemass = 17.03026;
	params.Ttriple = 195.495;
	params.ptriple = 6.09170982378;
	params.accentricfactor = 0.25601;
	params.R_u = 8.314471;

	// Limits of EOS
	limits.Tmin = 195.495;
	limits.Tmax = 700.0;
	limits.pmax = 1000000.0;
	limits.rhomax = 52.915*params.molemass;
	
	EOSReference.assign("\"Eine neue Fundamentalgleichung fur Ammoniak (A new Equation of State for Ammonia)\""
						" R. Tillner-Roth and F. Harms-Watzenberg and H.D. Baehr, "
						"Deutscher Kaelte- und Klimatechnischer Verein Tagung 1993");
	TransportReference.assign("Viscosity: \"The Viscosity of Ammonia\", "
							"A. Fenghour and W.A. Wakeham and V. Vesovic and J.T.R. Watson and J. Millat and E. Vogel"
							"J. Phys. Chem. Ref. Data, Vol. 24, No. 5, 1995 \n\n"
							"Conductivity: \"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\n\n"
							"Does not include the critical enhancement.  Comparison of EES (without enhancement) and Refprop (with enhancement) give "
							"errors in saturated liquid and saturated vapor conductivities of \n\n"
							"T < 325K, error < 0.1%\n"
							"325K < T < 355 K, error <1%\n\n"
							"Most practical conditions will be in the <325K range\n"
							"Surface tension:  Michael Kleiber and Ralph Joh, \"VDI Heat Atlas 2010 Chapter D3.1 Liquids and Gases\" ");

	name.assign("Ammonia");
	aliases.push_back("NH3");
	aliases.push_back("ammonia");
	aliases.push_back("R717");
	aliases.push_back(std::string("AMMONIA"));
	REFPROPname.assign("AMMONIA");

	BibTeXKeys.EOS = "TillnerRoth-DKV-1993";
	BibTeXKeys.VISCOSITY = "Fenghour-JPCRD-1995";
	BibTeXKeys.CONDUCTIVITY = "Tufeu-BBPC-1984";
	BibTeXKeys.SURFACE_TENSION = "Mulero-JPCRD-2012";
}
Пример #21
0
R22Class::R22Class()
{
	static const double n[]={0,
	0.0695645445236, //[1]
	25.2275419999, //[2]
	-202.351148311, //[3]
	350.063090302, //[4]
	-223.134648863, //[5]
	48.8345904592, //[6]
	0.0108874958556, //[7]
	0.590315073614, //[8]
	-0.689043767432, //[9]
	0.284224445844, //[10]
	0.125436457897, //[11]
	-0.0113338666416, //[12]
	-0.063138895917, //[13]
	0.00974021015232, //[14]
	-0.000408406844722, //[15]
	0.00074194877357, //[16]
	0.000315912525922, //[17]
	0.00000876009723338, //[18]
	-0.000110343340301, //[19]
	-0.0000705323356879, //[20]
	0.23585073151, //[21]
	-0.192640494729, //[22]
	0.00375218008557, //[23]
	-0.0000448926036678, //[24]
	0.0198120520635, //[25]
	-0.0356958425255, //[26]
	0.0319594161562, //[27]
	0.00000260284291078, //[28]
	-0.00897629021967, //[29]
	0.0345482791645, //[30]
	-0.00411831711251, //[31]
	0.00567428536529, //[32]
	-0.00563368989908, //[33]
	0.00191384919423, //[34]
	-0.00178930036389 //[35]
	};

	static const double d[]={0,
	1, //[1]
	1, //[2]
	1, //[3]
	1, //[4]
	1, //[5]
	1, //[6]
	1, //[7]
	2, //[8]
	2, //[9]
	2, //[10]
	3, //[11]
	3, //[12]
	4, //[13]
	5, //[14]
	6, //[15]
	7, //[16]
	7, //[17]
	7, //[18]
	8, //[19]
	8, //[20]
	2, //[21]
	2, //[22]
	2, //[23]
	2, //[24]
	3, //[25]
	4, //[26]
	4, //[27]
	4, //[28]
	4, //[29]
	6, //[30]
	6, //[31]
	6, //[32]
	8, //[33]
	8, //[34]
	8, //[35]
	};

	static const double t[]={0,
		-1, //[1]
		1.75, //[2]
		2.25, //[3]
		2.5, //[4]
		2.75, //[5]
		3, //[6]
		5.5, //[7]
		1.5, //[8]
		1.75, //[9]
		3.5, //[10]
		1, //[11]
		4.5, //[12]
		1.5, //[13]
		0.5, //[14]
		4.5, //[15]
		1, //[16]
		4, //[17]
		5, //[18]
		-0.5, //[19]
		3.5, //[20]
		5, //[21]
		7, //[22]
		12, //[23]
		15, //[24]
		3.5, //[25]
		3.5, //[26]
		8, //[27]
		15, //[28]
		25, //[29]
		3, //[30]
		9, //[31]
		19, //[32]
		2, //[33]
		7, //[34]
		13 //[35]
	};

	static const double l[]={0,
		0, //[1]
		0, //[2]
		0, //[3]
		0, //[4]
		0, //[5]
		0, //[6]
		0, //[7]
		0, //[8]
		0, //[9]
		0, //[10]
		0, //[11]
		0, //[12]
		0, //[13]
		0, //[14]
		0, //[15]
		0, //[16]
		0, //[17]
		0, //[18]
		0, //[19]
		0, //[20]
		2, //[21]
		2, //[22]
		2, //[23]
		2, //[24]
		3, //[25]
		2, //[26]
		2, //[27]
		2, //[28]
		4, //[29]
		2, //[30]
		2, //[31]
		4, //[32]
		2, //[33]
		2, //[34]
		4 //[35]
	};

	static const double B[]={0,
	4352.3095, //[1]
	1935.1591, //[2]
	1887.67936, //[3]
	1694.88284, //[4]
	1605.67848, //[5]
	1162.53424, //[6]
	857.51288, //[7]
	605.72638, //[8]
	530.90982, //[9]
	5.26140446e-3, //[10] 
	1.20662553e-4 //[11]
	};

	std::vector<double> B_v(B,B+sizeof(B)/sizeof(double));
	std::vector<double> b_v(10,1.0);

	phirlist.push_back(new phir_power(n,d,t,l,1,35,36));

	double T0=273.15, 
		   p0=1.0, 
		   R_=8.31451/86.549,
		   rho0=p0/(R_*T0),
		   m,
		   c,
		   R_u=8.31451,
		   Tc=369.295,
		   H0 = 35874.80, /// kJ/kmol
		   S0 = 205.2925, /// kJ/kmol/K
		   tau0=Tc/T0, 
		   delta0=rho0/523.84216696;
	
	// log(delta)+c+m*tau
	
	/// c is the constant term
	c=-S0/R_u-1+log(tau0/delta0);/*<< from the leading term*/

	/// m multiplies the tau term in the leading term (slope)
	m=H0/(R_u*Tc); /*<< from the leading term */

	for (unsigned int i=1; i<=9; i++){B_v[i]/=Tc;}

	phi_BC * phi0_lead_ = new phi0_lead(c,m);
	phi_BC * phi0_logtau_ = new phi0_logtau(-1.0);
	phi_BC * phi0_cp0_constant_ = new phi0_cp0_constant(B[10]+4,Tc,T0);/// checked - good
	phi_BC * phi0_cp0_poly_ = new phi0_cp0_poly(B[11],1,Tc,T0);/// checked - good
	//phi_BC * phi0_cp0_exponential_ = new phi0_cp0_exponential(b_v,B_v,Tc,T0,1,9);/// checked - good

	phi0list.push_back(phi0_lead_);
	phi0list.push_back(phi0_logtau_);
	phi0list.push_back(phi0_cp0_constant_);
	phi0list.push_back(phi0_cp0_poly_);
	//phi0list.push_back(phi0_cp0_exponential_);
	phi0list.push_back(new phi0_Planck_Einstein(b_v,B_v,1,9));
	
	
	// Other fluid parameters
	params.molemass = 86.468;
	params.Ttriple = 115.73;
	params.ptriple = 0.00037947;
	params.accentricfactor = 0.22082;
	params.R_u = 8.314510;

	// Critical parameters
	crit.rho = 6.05822*params.molemass;
	crit.p = PressureUnit(4990, UNIT_KPA);
	crit.T = 369.295;
	crit.v = 1.0/crit.rho;

	// Limits of EOS
	limits.Tmin = params.Ttriple;
	limits.Tmax = 550.0;
	limits.pmax = 60000.0;
	limits.rhomax = 19.91*params.molemass;
	
	EOSReference.assign("Kamei, A., and S. W. Beyerlein, and R. T Jacobsen "
						"\"Application of Nonlinear Regression in the "
						"Development of a Wide Range Formulation "
						"for HCFC-22\""
						"International Journal of Thermophysics, Vol 16, No. 5, 1995 ");
	TransportReference.assign("Using ECS");
	name.assign("R22");

	BibTeXKeys.EOS = "Kamei-IJT-1995";
	BibTeXKeys.ECS_LENNARD_JONES = "McLinden-IJR-2000";
	BibTeXKeys.ECS_FITS = "McLinden-IJR-2000";
	BibTeXKeys.SURFACE_TENSION = "Mulero-JPCRD-2012";

}
Пример #22
0
SulfurHexafluorideClass::SulfurHexafluorideClass()
{
	double _n [] = {0, 0.54958259132835, -0.87905033269396, -0.84656969731452, 0.27692381593529, -0.49864958372345e1, 0.48879127058055e1, 0.36917081634281e-1, 0.37030130305087e-3, 0.39389132911585e-1, 0.42477413690006e-3, -0.24150013863890e-1, 0.59447650642255e-1, -0.38302880142267, 0.32606800951983, -0.29955940562031e-1, -0.86579186671173e-1, 0.41600684707562e1, -0.41398128855814e1, -0.55842159922714, 0.56531382776891, 0.82612463415545e-2, -0.10200995338080e-1, -0.21662523861406e-1, 0.34650943893908e-1, -0.28694281385812e-1, 0.84007238998053e-2, -0.26969359922498, 0.90415215646344e1, -0.37233103557977e1, -0.27524670823704e4, 0.57711861697319e4, -0.30234003119748e4, 0.22252778435360e7, -0.23056065559032e7, 0.63918852944475e7, -0.60792091415592e7};
	double _l [] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
	double _d [] = {0, 1, 1, 1, 2, 2, 2, 3, 3, 4, 6, 1, 2, 2, 2, 3, 6, 2, 2, 4, 4, 2, 2, 1, 3, 4, 1, 1, 4, 3, 4, 4, 4, 1, 1, 3, 3};
	double _t [] = {0, 0.125, 1.25, 1.875, 0.125, 1.5, 1.625, 1.5, 5.625, 0.625, 0.25, 6, 0.25, 4.75, 5.375, 5.875, 2, 5.875, 6, 5.625, 5.75, 0, 0.5, 4, 1, 3, 2, 4, 3, 4, 1, 2, 3, 3, 4, 3, 4};
	double _eta [] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 10, 10, 10, 11, 25, 30, 30, 30, 30, 30, 30, 30, 30};
	double _beta [] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 150, 150, 150, 150, 225, 300, 350, 350, 350, 350, 400, 400, 400, 400};
	double _gamma [] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1.13, 1.13, 1.13, 1.16, 1.19, 1.19, 1.16, 1.16, 1.16, 1.16, 1.22, 1.22, 1.22, 1.22};
	double _epsilon [] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.85, 0.85, 0.85, 0.85, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1};

	std::vector<double> n_v(_n,_n+sizeof(_n)/sizeof(double));
	std::vector<double> d_v(_d,_d+sizeof(_d)/sizeof(double));
	std::vector<double> t_v(_t,_t+sizeof(_t)/sizeof(double));
	std::vector<double> l_v(_l,_l+sizeof(_l)/sizeof(double));
	std::vector<double> eta_v(_eta,_eta+sizeof(_eta)/sizeof(double));
	std::vector<double> epsilon_v(_epsilon,_epsilon+sizeof(_epsilon)/sizeof(double));
	std::vector<double> beta_v(_beta,_beta+sizeof(_beta)/sizeof(double));
	std::vector<double> gamma_v(_gamma,_gamma+sizeof(_gamma)/sizeof(double));

	//Critical parameters
	crit.rho = 742.3; //[kg/m^3]
	crit.p = PressureUnit(3754.983, UNIT_KPA); //[kPa]
	crit.T = 318.7232; //[K]
	crit.v = 1/crit.rho; 

	// Other fluid parameters
	params.molemass = 146.0554192;
	params.Ttriple = 223.555;
	params.ptriple = 231.42447394906830;
	params.accentricfactor = 0.21;
	params.R_u = 8.314472;

	// Limits of EOS
	limits.Tmin = params.Ttriple;
	limits.Tmax = 500.0;
	limits.pmax = 100000.0;
	limits.rhomax = 1000000.0*params.molemass;

	phirlist.push_back(new phir_power( n_v,d_v,t_v,l_v,1,22));
	phirlist.push_back(new phir_gaussian( n_v,d_v,t_v,eta_v,epsilon_v,beta_v,gamma_v,23,36));

	double _theta [] ={0, 0, 0, 0, 1.617282065, 2.747115139, 4.232907175};
	std::vector<double> theta_v (_theta,_theta+sizeof(_theta)/sizeof(double));
	double _n0 [] ={0, 11.638611086, -6.392241811, 3.000000000, 3.661182320, 7.878851030, 3.459816790};
	std::vector<double> n0_v (_n0,_n0+sizeof(_n0)/sizeof(double));
	
	// lead term: log(delta)+c+m*tau
	phi0list.push_back(new phi0_lead(n0_v[1], n0_v[2]));
	phi0list.push_back(new phi0_logtau(n0_v[3]));
	phi0list.push_back(new phi0_Planck_Einstein(n0_v,theta_v,4,6));

	EOSReference.assign("Guder C., and W. Wagner, \"A Reference Equation of State for the Thermodynamic Properties of Sulfur Hexafluoride SF6 for Temperatures from the Melting Line to 625 K and Pressures up to 150 MPa,\" J. Phys. Chem. Ref. Data, Vol. 38, No. 1, 2009");
	TransportReference.assign("Using ECS in fully predictive mode");

	name.assign("SulfurHexafluoride");
	aliases.push_back("SF6");
	REFPROPname.assign("SF6");
	
	BibTeXKeys.EOS = "Guder-JPCRD-2009";
	BibTeXKeys.VISCOSITY = "QuinonesCisneros-JPCRD-2012";
	BibTeXKeys.CONDUCTIVITY = "Assael-JPCRD-2012";
	BibTeXKeys.SURFACE_TENSION = "Mulero-JPCRD-2012";
	BibTeXKeys.ECS_LENNARD_JONES = "QuinonesCisneros-JPCRD-2012";
}
Пример #23
0
R744Class::R744Class()
{

	static double alpha[40],beta[43],GAMMA[40],epsilon[40],a[43],b[43],A[43],B[43],C[43],D[43],a0[9],theta0[9];
	static double n[]={0,    
	 0.388568232032E+00,
	 0.293854759427E+01,
	-0.558671885350E+01,
	-0.767531995925E+00,
	 0.317290055804E+00,
	 0.548033158978E+00,
	 0.122794112203E+00,
	 
	 0.216589615432E+01,
	 0.158417351097E+01,
	-0.231327054055E+00,
	 0.581169164314E-01,
	-0.553691372054E-00,
	 0.489466159094E-00,
	-0.242757398435E-01,
	 0.624947905017E-01,
	-0.121758602252E+00,
	-0.370556852701E+00,
	-0.167758797004E-01,
	-0.119607366380E+00,
	-0.456193625088E-01,
	 0.356127892703E-01, 
	-0.744277271321E-02,
	-0.173957049024E-02,
	-0.218101212895E-01,
	 0.243321665592E-01,
	-0.374401334235E-01,
	 0.143387157569E-00,
	-0.134919690833E-00,
	-0.231512250535E-01,
	 0.123631254929E-01,
	 0.210583219729E-02,
	-0.339585190264E-03,
	 0.559936517716E-02,
	-0.303351180556E-03,

	-0.213654886883E+03,
	 0.266415691493E+05,
	-0.240272122046E+05,
	-0.283416034240E+03,
	 0.212472844002E+03,
	 
	-0.666422765408E+00,
	 0.726086323499E+00,
	 0.550686686128E-01};

	static double d[]={0,
	1,
	1,
	1,
	1,
	2,
	2,
	3,
	1,
	2,
	4,
	5,
	5,
	5,
	6,
	6,
	6,
	1,
	1,
	4,
	4,
	4,
	7,
	8,
	2,
	3,
	3,
	5,
	5,
	6,
	7,
	8,
	10,
	4,
	8,
	2,
	2,
	2,
	3,
	3};

	static double t[]={0.00,
	0.00,
	0.75,
	1.00,
	2.00,
	0.75,
	2.00,
	0.75,
	1.50,
	1.50,
	2.50,
	0.00,
	1.50,
	2.00,
	0.00,
	1.00,
	2.00,
	3.00,
	6.00,
	3.00,
	6.00,
	8.00,
	6.00,
	0.00,
	7.00,
	12.00,
	16.00,
	22.00,
	24.00,
	16.00,
	24.00,
	8.00,
	2.00,
	28.00,
	14.00,
	1.00,
	0.00,
	1.00,
	3.00,
	3.00};

	static double c[]={0,0,0,0,0,0,0,0,
	1,
	1,
	1,
	1,
	1,
	1,
	1,
	1,
	1,
	2,
	2,
	2,
	2,
	2,
	2,
	2,
	3,
	3,
	3,
	4,
	4,
	4,
	4,
	4,
	4,
	5,
	6};

	alpha[35]=25.0;
	alpha[36]=25.0;
	alpha[37]=25.0;
	alpha[38]=15.0;
	alpha[39]=20.0;

	beta[35]=325.0;
	beta[36]=300.0;
	beta[37]=300.0;
	beta[38]=275.0;
	beta[39]=275.0;

	GAMMA[35]=1.16;
	GAMMA[36]=1.19;
	GAMMA[37]=1.19;
	GAMMA[38]=1.25;
	GAMMA[39]=1.22;

	epsilon[35]=1.00;
	epsilon[36]=1.00;
	epsilon[37]=1.00;
	epsilon[38]=1.00;
	epsilon[39]=1.00;

	a[40]=3.5;
	a[41]=3.5;
	a[42]=3.0;

	b[40]=0.875;
	b[41]=0.925;
	b[42]=0.875;

	beta[40]=0.300;
	beta[41]=0.300;
	beta[42]=0.300;

	A[40]=0.700;
	A[41]=0.700;
	A[42]=0.700;

	B[40]=0.3;
	B[41]=0.3;
	B[42]=1.0;

	C[40]=10.0;
	C[41]=10.0;
	C[42]=12.5;

	D[40]=275.0;
	D[41]=275.0;
	D[42]=275.0;

	//Constants for ideal gas expression
	a0[1]=8.37304456;
	a0[2]=-3.70454304;
	a0[3]=2.500000;
	a0[4]=1.99427042;
	a0[5]=0.62105248;
	a0[6]=0.41195293;
	a0[7]=1.04028922;
	a0[8]=0.08327678;

	theta0[4]=3.15163;
	theta0[5]=6.11190;
	theta0[6]=6.77708;
	theta0[7]=11.32384;
	theta0[8]=27.08792;

	std::vector<double> a_v(a,a+sizeof(a)/sizeof(double));
	std::vector<double> b_v(b,b+sizeof(b)/sizeof(double));
	std::vector<double> A_v(A,A+sizeof(A)/sizeof(double));
	std::vector<double> B_v(B,B+sizeof(B)/sizeof(double));
	std::vector<double> C_v(C,C+sizeof(C)/sizeof(double));
	std::vector<double> D_v(D,D+sizeof(D)/sizeof(double));

	phirlist.push_back(new phir_power(n,d,t,c,1,34,35));
	phirlist.push_back(new phir_gaussian(n,d,t,alpha,epsilon,beta,GAMMA,35,39,40));
	phirlist.push_back(new phir_critical(n,d,t,a,b,beta,A,B,C,D,40,42,43));

	std::vector<double> a0_v(a0,a0+sizeof(a0)/sizeof(double));
	std::vector<double> theta0_v(theta0,theta0+sizeof(theta0)/sizeof(double));
	
	phi0list.push_back(new phi0_lead(a0[1],a0[2]));
	phi0list.push_back(new phi0_logtau(a0[3]));
	phi0list.push_back(new phi0_Planck_Einstein(a0,theta0,4,8,9));

	// Critical parameters
	crit.rho = 44.0098*10.6249063;
	crit.p = PressureUnit(7377.3, UNIT_KPA);
	crit.T = 304.1282;
	crit.v = 1.0/crit.rho;

	// Other fluid parameters
	params.molemass = 44.0098;
	params.Ttriple = 216.592;
	params.ptriple = 517.996380545;
	params.R_u = 8.31451;
	params.accentricfactor = 0.22394;

	// Limit parameters
	limits.Tmin = 216.592;
	limits.Tmax = 2000.0;
	limits.pmax = 800000.0;
	limits.rhomax = 37.24 * params.molemass;
	
	EOSReference.assign("\"A New Equation of State for Carbon Dioxide Covering the Fluid Region from the "
						"Triple Point Temperature to 1100 K at Pressures up to 800 MPa\", "
						"R. Span and W. Wagner, J. Phys. Chem. Ref. Data, v. 25, 1996");
		
	TransportReference.assign("\"The Transport Properties of Carbon Dioxide\","
							  " V. Vesovic and W.A. Wakeham and G.A. Olchowy and "
							  "J.V. Sengers and J.T.R. Watson and J. Millat"
							  "J. Phys. Chem. Ref. Data, v. 19, 1990");

	name.assign("CarbonDioxide");
	aliases.push_back("R744");
	aliases.push_back("co2");
	aliases.push_back("CO2");
	aliases.push_back("carbondioxide");
	REFPROPname.assign("CO2");

	// Adjust to the IIR reference state (h=200 kJ/kg, s = 1 kJ/kg for sat. liq at 0C)
    params.HSReferenceState = "IIR";

	BibTeXKeys.EOS = "Span-JPCRD-1996";
	BibTeXKeys.SURFACE_TENSION = "Mulero-JPCRD-2012";
	BibTeXKeys.VISCOSITY = "Vesovic-JPCRD-1990";
	BibTeXKeys.CONDUCTIVITY = "Vesovic-JPCRD-1990";
}
Пример #24
0
SES36Class::SES36Class()
{
	//Constants for ideal gas expression
	static const double a0[]={0.0,13.09,85.26};
	static const double b0 = 2197;

	static const double n[]={0,    
	0.0675748, //[1]
	1.76939, //[2]
	-2.7609, //[3]
	-0.566938, //[4]
	0.243576, //[5]
	-1.50937, //[6]
	-0.774081, //[7]
	0.953907, //[8]
	-1.43736, //[9]
	-0.0458514, //[10]
	2.46053, //[11]
	-0.903158, //[12]
	-0.288664, //[13]
	0.061038, //[14]
	};

	// d used for consistency with CO2 correlation (corresponds to i from Span)
	static const double d[]={0,
	4, //[1]
	1, //[2]
	1, //[3]
	2, //[4]
	3, //[5]
	1, //[6]
	3, //[7]
	2, //[8]
	2, //[9]
	7, //[10]
	1, //[11]
	1, //[12]
	3, //[13]
	3, //[14]
	};

	// t used for consistency with CO2 correlation (corresponds to j from Span)
	static const double t[]={0.00,
	1, //[1]
	0.3, //[2]
	0.947, //[3]
	1.08, //[4]
	0.44, //[5]
	1.7, //[6]
	1.5, //[7]
	1.35, //[8]
	2.1, //[9]
	0.97, //[10]
	0.8, //[11]
	2, //[12]
	2.5, //[13]
	4, //[14]
	};

	// c used for consistency with CO2 correlation (corresponds to l from Span)
	static const double c[]={0,
	0, //[1]
	0, //[2]
	0, //[3]
	0, //[4]
	0, //[5]
	2, //[6]
	2, //[7]
	1, //[8]
	2, //[9]
	1, //[10]
	};

	// alpha is used here for consistency with the definitions in R744.c upon which Nitrogen.c is based
	// is phi_k from Span
	static const double eta[]={
	0,0,0,0,0,0,0,0,0,0,0, // indices [0-10]
	1.023, //[11]
	1.383, //[12]
	1, //[13]
	7, //[14]
	};

	static const double GAMMA[]={
	0,0,0,0,0,0,0,0,0,0,0, // indices [0-10]
	1.1, //[11]
	0.64, //[12]
	0.5, //[13]
	1.26, //[14]
	};

	// epsilon is used here for consistency with the definitions in R744.c upon which Nitrogen.c is based
	// is the value unity in Span
	static const double beta[]={
	0,0,0,0,0,0,0,0,0,0,0, // indices [0-10]
	1.7, //[11]
	1.55, //[12]
	1.07, //[13]
	87, //[14]
	};

	// GAMMA is used here for consistency with the definitions in R744.c upon which Nitrogen.c is based
	static const double epsilon[]={
	0,0,0,0,0,0,0,0,0,0,0, // indices [0-10]
	0.713, //[11]
	0.917, //[12]
	0.69, //[13]
	0.748, //[14]
	};

	std::vector<double> eta_v(eta,eta+sizeof(eta)/sizeof(double));
	std::vector<double> epsilon_v(epsilon,epsilon+sizeof(epsilon)/sizeof(double));
	std::vector<double> beta_v(beta,beta+sizeof(beta)/sizeof(double));
	std::vector<double> gamma_v(GAMMA,GAMMA+sizeof(GAMMA)/sizeof(double));

	phirlist.push_back(new phir_power(n,d,t,c,1,10,11));
	phirlist.push_back(new phir_gaussian(n,d,t,eta,epsilon,beta,GAMMA,11,14,15));

	// phi0=log(delta)+a0[1]*log(tau)+a0[2]*log(1-exp(-b0*tau));
	phi0list.push_back(new phi0_lead(0,0)); // phi0_lead is like log(delta)+a1+a2*tau with a1=0, a2=0
	phi0list.push_back(new phi0_logtau(a0[1]-1)); // -1 value needed to yield the correct values for the ideal gas part
	phi0list.push_back(new phi0_Planck_Einstein(a0[2],b0/450.7));

	// Critical parameters
	crit.rho = 2.8*184.85;
	crit.p = PressureUnit(2849,UNIT_KPA);
	crit.T = 450.7;
	crit.v = 1.0/crit.rho;

	// Other fluid parameters
	params.molemass = 184.85;
	params.Ttriple = 200; // No value given, taken from PPF Refprop file
	params.ptriple = 0.573325755702; //Evaluated at 200 K
	params.accentricfactor = 0.352;
	params.R_u = 8.314472;
	isPure = false;

	// Limits of EOS
	limits.Tmin = params.Ttriple;
	limits.Tmax = 2000.0;
	limits.pmax = 2200000.0;
	limits.rhomax = 53.15*params.molemass;
	
	EOSReference.assign("Unpublished report: Monika Thol, Eric W. Lemmon, Roland Span, \"Equation of State for a Refrigerant Mixture of R365mfc (1,1,1,3,3-Pentafluorobutane) and Galden® HT 55 (Perfluoropolyether)\",  ");
	TransportReference.assign("Using ECS in predictive mode\n\n"
		                      "Surface Tension: A. P. Fröba, H. Kremer, A. Leipertz, F. Flohr and C. Meurer, "
		                      "\"Thermophysical Properties of a Refrigerant Mixture of R365mfc (1,1,1,3,3-Pentafluorobutane) "
							  "and Galden® HT 55 (Perfluoropolyether)\", International Journal of Thermophysics, Volume 28, "
							  "Number 2 (2007), 449-480, DOI: 10.1007/s10765-007-0178-y");

	name.assign("SES36");
    
    BibTeXKeys.EOS = "Thol-2012";
}
Пример #25
0
HydrogenClass::HydrogenClass()
{
	static const double n[]={0,
	-6.93643,
	0.01,
	2.1101,
	4.52059,
	0.732564,
	-1.34086,
	0.130985,
	-0.777414,
	0.351944,
	-0.0211716,
	0.0226312,
	0.032187,
	-0.0231752,
	0.0557346
	};

	static const double d[]={0,
	1, //[ 1]
	4, //[ 2]
	1, //[ 3]
	1, //[ 4]
	2, //[ 5]
	2, //[ 6]
	3, //[ 7]
	1, //[ 8]
	3, //[ 9]
	2, //[10]
	1, //[11]
	3, //[12]
	1, //[13]
	1, //[14]
	};

	static const double t[]={0.00, //offset for natural indices
	0.6844,
	1.0,
	0.989,
	0.489,
	0.803,
	1.1444,
	1.409,
	1.754,
	1.311,
	4.187,
	5.646,
	0.791,
	7.249,
	2.986
	};

	static const double c[]={
	0,0,0,0,0,0,0,0, // indices [0-7]
	1,
	1
	};

	// alpha instead of eta is used here for consistency with the definitions in R744.c upon which R290.c is based
	static const double alpha[]={ // phi from paper
	0,0,0,0,0,0,0,0,0,0, // indices [0-9]
	1.685,
	0.489,
	0.103,
	2.506,
	1.607
	};

	static const double beta[]={
	0,0,0,0,0,0,0,0,0,0, // indices [0-9]
	0.171,
	0.2245,
	0.1304,
	0.2785,
	0.3967
	};

	static const double GAMMA[]={
	0,0,0,0,0,0,0,0,0,0, // indices [0-9]
	0.7164,
	1.3444,
	1.4517,
	0.7204,
	1.5445
	};

	static const double epsilon[]={ // D from paper
	0,0,0,0,0,0,0,0,0,0, // indices [0-9]
	1.506,
	0.156,
	1.736,
	0.67,
	1.662
	};

	//Constants for ideal gas expression
	static const double a0[]={0.0,
		-1.4579856475,
		1.888076782,
		1.616,
		-0.4117,
		-0.792,
		0.758,
		1.217
	};

	static const double b0[]={0.0,
		0,0, //[1 and 2 are not used]
		16.0205159149,
		22.6580178006,
		60.0090511389,
		74.9434303817,
		206.9392065168
	};

	phirlist.push_back(new phir_power(n,d,t,c,1,9,10));
	phirlist.push_back(new phir_gaussian(n,d,t,alpha,epsilon,beta,GAMMA,10,14,15));

	/* phi0=log(delta)+1.5*log(tau)+a0[1]+a0[2]*tau
        +a0[3]*log(1-exp(-b0[3]*tau))
        +a0[4]*log(1-exp(-b0[4]*tau))
        +a0[5]*log(1-exp(-b0[5]*tau))
        +a0[6]*log(1-exp(-b0[6]*tau))
        +a0[7]*log(1-exp(-b0[7]*tau));
	*/

	//lead term of the form log(delta)+a1+a2*tau
	phi0list.push_back(new phi0_lead(a0[1],a0[2]));
	phi0list.push_back(new phi0_logtau(1.5));
	phi0list.push_back(new phi0_Planck_Einstein(a0,b0,3,7,8));

	// Critical parameters
	crit.rho = 15.508*2.01588;
	crit.p = PressureUnit(1296.4, UNIT_KPA);
	crit.T = 33.145;
	crit.v = 1.0/crit.rho;

	// Other fluid parameters
	params.molemass = 2.01588;
	params.Ttriple = 13.957;
	params.ptriple = 7.36205784168;
	params.accentricfactor = -0.219;
	params.R_u = 8.314472;

	// Limits of EOS
	limits.Tmin = 13.957;
	limits.Tmax = 1000.0;
	limits.pmax = 2000000.0;
	limits.rhomax = 102.0*params.molemass;
	
	EOSReference.assign("\"Fundamental Equations of State for Parahydrogen, Normal Hydrogen, and Orthohydrogen\""
						"by J.W. Leachman and R.T. Jacobsen and S.G. Penoncello and E.W. Lemmon"
						", J. Phys. Chem. Ref. Data, Vol. 38, No. 3, 2009, pp 721-748");
	TransportReference.assign("Conductivity: Assael, JPCRD, 2011");

	name.assign("Hydrogen");
	aliases.push_back("hydrogen");
	aliases.push_back("H2");
	aliases.push_back("R702");
	REFPROPname.assign("hydrogen");

	BibTeXKeys.EOS = "Leachman-JPCRD-2009";
	BibTeXKeys.VISCOSITY = "Muzny-JCED-2013";
	BibTeXKeys.CONDUCTIVITY = "Assael-JPCRD-2011";
	BibTeXKeys.ECS_LENNARD_JONES = "Poling-BOOK-2001";
	BibTeXKeys.SURFACE_TENSION = "Mulero-JPCRD-2012";
}
Пример #26
0
R404AClass::R404AClass()
{
	static const double a[]={
		7.00407,		//[0]
		7.98695,		//[1]
		-18.8664,		//[2]
		0.63078,		//[3]
		3.5979,			//[4]
		5.0335			//[5]
	};

	static const double b[]={
		0,				//[0]
		0,				//[1]
		-0.3,			//[2]
		1.19617,		//[3]
		2.32861,		//[4]
		5.00188			//[5]
	};

	static const double N[]={
		 0.0,			//[0]
		 6.10984,		//[1]
		-7.79453,		//[2]
		 0.0183377,		//[3]
		 0.262270,		//[4]
		-0.00351688,	//[5]
		 0.0116181,		//[6]
		 0.00105992,	//[7]
		 0.850922,		//[8]
		-0.520084,		//[9]
		-0.0464225,		//[10]
		 0.621190,		//[11]
		-0.195505,		//[12]
		 0.336159,		//[13]
		-0.0376062,		//[14]
		-0.00636579,	//[15]
		-0.0758262,		//[16]
		-0.0221041,		//[17]
		 0.0310441,		//[18]
		 0.0132798,		//[19]
		 0.0689437,		//[20]
		-0.0507525,		//[21]
		 0.0161382,		//[22]
	};

	static const double t[]={
		0.0,			//[0]
		0.67,			//[1]
		0.91,			//[2]
		5.96,			//[3]
		0.7,			//[4]
		6.0,			//[5]
		0.3,			//[6]
		0.7,			//[7]
		1.7,			//[8]
		3.3,			//[9]
		7.0,			//[10]
		2.05,			//[11]
		4.3,			//[12]
		2.7,			//[13]
		1.8,			//[14]
		1.25,			//[15]
		12.0,			//[16]
		6.0,			//[17]
		8.7,			//[18]
		11.6,			//[19]
		13.0,			//[20]
		17.0,			//[21]
		16.0			//[22]
	};

	static const int d[]={
		0,				//[0]
		1,				//[1]
		1,				//[2]
		1,				//[3]
		2,				//[4]
		2,				//[5]
		4,				//[6]
		6,				//[7]
		1,				//[8]
		1,				//[9]
		1,				//[10]
		2,				//[11]
		2,				//[12]
		3,				//[13]
		4,				//[14]
		7,				//[15]
		2,				//[16]
		3,				//[17]
		4,				//[18]
		4,				//[19]
		2,				//[20]
		3,				//[21]
		5				//[22]
	};

	static const int l[]={
		0,				//[0]
		0,				//[1]
		0,				//[2]
		0,				//[3]
		0,				//[4]
		0,				//[5]
		0,				//[6]
		0,				//[7]
		1,				//[8]
		1,				//[9]
		1,				//[10]
		1,				//[11]
		1,				//[12]
		1,				//[13]
		1,				//[14]
		1,				//[15]
		2,				//[16]
		2,				//[17]
		2,				//[18]
		2,				//[19]
		3,				//[20]
		3,				//[21]
		3				//[22]
	};

	std::vector<double> n_v(N,N+sizeof(N)/sizeof(double));
	std::vector<double> d_v(d,d+sizeof(d)/sizeof(int));
	std::vector<double> t_v(t,t+sizeof(t)/sizeof(double));
	std::vector<double> l_v(l,l+sizeof(l)/sizeof(int));
	std::vector<double> a0(a,a+sizeof(a)/sizeof(double));
	std::vector<double> n0(b,b+sizeof(b)/sizeof(double));

	phi_BC * phir_ = new phir_power(n_v,d_v,t_v,l_v,1,22);
	phirlist.push_back(phir_);

	/*
	sum=log(delta)-log(tau)+a[0]+a[1]*tau+a[2]*pow(tau,b[2]);
	for(k=3;k<=5;k++)
	{
		sum+=a[k]*log(1.0-exp(-b[k]*tau));
	}
	*/
	phi_BC * phi0_lead_ = new phi0_lead(a0[0],a0[1]);
	phi_BC * phi0_logtau_ = new phi0_logtau(-1.0);
	phi_BC * phi0_power_ = new phi0_power(a0[2],n0[2]);
	phi_BC * phi0_Planck_Einstein_ = new phi0_Planck_Einstein(a0,n0,3,5);

	phi0list.push_back(phi0_lead_);
	phi0list.push_back(phi0_logtau_);
	phi0list.push_back(phi0_power_);
	phi0list.push_back(phi0_Planck_Einstein_);

	// Critical parameters (max condensing temperature)
	crit.rho = 482.162772;
	crit.p = PressureUnit(3734.8,UNIT_KPA);
	crit.T = 345.27;
	crit.v = 1.0/crit.rho;

	// Other fluid parameters
	params.molemass = 97.6038;
	params.Ttriple = 200.0;
	params.ptriple = 21.2656766151;
	params.accentricfactor = 0.293;
	params.R_u = 8.314472;
	isPure = false;

	// Limits of EOS
	limits.Tmin = params.Ttriple;
	limits.Tmax = 500.0;
	limits.pmax = 50000.0;
	limits.rhomax = 14.21*params.molemass;
	
	EOSReference.assign("E.W. Lemmon, \"Pseudo-pure fluid Equations of State for the Refrigerant Blends R410A, R404A, R507C and R407C\"" 
						",Int. J. Thermophys. v. 24, n4, 2003");
	TransportReference.assign("Viscosity: V. Geller, \"Viscosity of Mixed Refrigerants R404A,R407C,"
							"R410A, and R507A\", 2000 Purdue Refrigeration conferences\n\n"
							"Thermal Conductivity: V.Z. Geller, B.Z. Nemzer, and U.V. Cheremnykh \"Thermal Conductivity "
							"of the Refrigerant mixtures R404A,R407C,R410A, and R507A\" "
							"Int. J. Thermophysics, v. 22, n 4 2001\n\n"
							"Surface Tension: R. Heide, \"The surface tension of HFC refrigerants and mixtures\", Int J. Refrig. Vol. 20, No. 7, pp. 496-503, 1997");

	name.assign("R404A");
	aliases.push_back("R404a");

	BibTeXKeys.EOS = "Lemmon-IJT-2003";
	BibTeXKeys.VISCOSITY = "Geller-PURDUE-2000";
	BibTeXKeys.CONDUCTIVITY = "Geller-IJT-2001";
	BibTeXKeys.SURFACE_TENSION ="Heide-IJR-1997";
}
Пример #27
0
ParaHydrogenClass::ParaHydrogenClass()
{
	double n [] = {0, -7.33375, 0.01, 2.60375, 4.66279, 0.68239, -1.47078, 0.135801, -1.05327, 0.328239, -0.0577833, 0.0449743, 0.0703464, -0.0401766, 0.11951};
	double t [] = {0, 0.6855, 1, 1, 0.489, 0.774, 1.133, 1.386, 1.619, 1.162, 3.96, 5.276, 0.99, 6.791, 3.19};
	double d [] = {0, 1, 4, 1, 1, 2, 2, 3, 1, 3, 2, 1, 3, 1, 1};
	double c [] = {0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0};
	double a0 [] = {0, -1.4485891134, 1.884521239, 4.30256, 13.0289, -47.7365, 50.0013, -18.6261, 0.993973, 0.536078};
	double b0 [] = {0, 0, 0, 15.14967511472, 25.0925982148, 29.4735563787, 35.4059141417, 40.724998482, 163.7925799988, 309.2173173842};
	double alpha[] = {0,0,0,0,0,0,0,0,0,0,1.7437, 0.5516, 0.0634, 2.1341, 1.777}; // phi from paper
	double beta[] = {0,0,0,0,0,0,0,0,0,0,0.194, 0.2019, 0.0301, 0.2383, 0.3253};
	double GAMMA[] = {0,0,0,0,0,0,0,0,0,0,0.8048, 1.5248, 0.6648, 0.6832, 1.493};
	double epsilon[] = {0,0,0,0,0,0,0,0,0,0,1.5487, 0.1785, 1.28, 0.6319, 1.7104}; // D from paper

	phirlist.push_back(new phir_power(n,d,t,c,1,9,10));
	phirlist.push_back(new phir_gaussian(n,d,t,alpha,epsilon,beta,GAMMA,10,14,15));

	/* phi0=log(delta)+1.5*log(tau)+a0[1]+a0[2]*tau
        +a0[3]*log(1-exp(-b0[3]*tau))
        +a0[4]*log(1-exp(-b0[4]*tau))
        +a0[5]*log(1-exp(-b0[5]*tau))
        +a0[6]*log(1-exp(-b0[6]*tau))
        +a0[7]*log(1-exp(-b0[7]*tau));
	*/

	//lead term of the form log(delta)+a1+a2*tau
	phi_BC * phi0_lead_ = new phi0_lead(a0[1],a0[2]);
	phi_BC * phi0_logtau_ = new phi0_logtau(1.5);
	phi_BC * phi0_Planck_Einstein_ = new phi0_Planck_Einstein(a0,b0,3,9,10);

	phi0list.push_back(phi0_lead_);
	phi0list.push_back(phi0_logtau_);
	phi0list.push_back(phi0_Planck_Einstein_);

	// Critical parameters
	crit.rho = 15.538*2.01588;
	crit.p = PressureUnit(1285.8, UNIT_KPA);
	crit.T = 32.938;
	crit.v = 1.0/crit.rho;

	// Other fluid parameters
	params.molemass = 2.01588;
	params.Ttriple = 13.8033;
	params.ptriple = 7.041;
	params.accentricfactor = -0.219;
	params.R_u = 8.314472;

	// Limits of EOS
	limits.Tmin = params.Ttriple;
	limits.Tmax = 1000.0;
	limits.pmax = 2000000.0;
	limits.rhomax = 102.0*params.molemass;
	
	EOSReference.assign("\"Fundamental Equations of State for Parahydrogen, Normal Hydrogen, and Orthohydrogen\""
						"by J.W. Leachman and R.T. Jacobsen and S.G. Penoncello and E.W. Lemmon"
						", J. Phys. Chem. Ref. Data, Vol. 38, No. 3, 2009, pp 721-748");
	TransportReference.assign("Viscosity & Surface Tension: McCarty, R.D. and Weber, L.A., "
							  "\"Thermophysical properties of parahydrogen from the freezing liquid line to "
							  "5000 R for pressures to 10,000 psia,\" "
                              "Natl. Bur. Stand., Tech. Note 617, 1972.");

	name.assign("ParaHydrogen");
	aliases.push_back("Parahydrogen");
	aliases.push_back("parahydrogen");
	REFPROPname.assign("PARAHYD");

	BibTeXKeys.EOS = "Leachman-JPCRD-2009";
	BibTeXKeys.CONDUCTIVITY = "Assael-JPCRD-2011";
	BibTeXKeys.SURFACE_TENSION = "Mulero-JPCRD-2012";
}
Пример #28
0
R507AClass::R507AClass()
{
	std::vector<double> n_v(N,N+sizeof(N)/sizeof(double));
	std::vector<double> d_v(d,d+sizeof(d)/sizeof(int));
	std::vector<double> t_v(t,t+sizeof(t)/sizeof(double));
	std::vector<double> l_v(l,l+sizeof(l)/sizeof(int));
	std::vector<double> a0(a,a+sizeof(a)/sizeof(double));
	std::vector<double> n0(b,b+sizeof(b)/sizeof(double));

	phi_BC * phir_ = new phir_power(n_v,d_v,t_v,l_v,1,22);
	phirlist.push_back(phir_);

	/*
	sum=log(delta)-log(tau)+a[0]+a[1]*tau+a[2]*pow(tau,b[2]);
	for(k=3;k<=5;k++)
	{
		sum+=a[k]*log(1.0-exp(-b[k]*tau));
	}
	*/
	phi_BC * phi0_lead_ = new phi0_lead(a0[0],a0[1]);
	phi_BC * phi0_logtau_ = new phi0_logtau(-1.0);
	phi_BC * phi0_power_ = new phi0_power(a0[2],n0[2]);
	phi_BC * phi0_Planck_Einstein_ = new phi0_Planck_Einstein(a0,n0,3,5);

	phi0list.push_back(phi0_lead_);
	phi0list.push_back(phi0_logtau_);
	phi0list.push_back(phi0_power_);
	phi0list.push_back(phi0_Planck_Einstein_);

	// Critical parameters (max condensing temperature)
	crit.rho = 490.74;
	crit.p = PressureUnit(3704.9,UNIT_KPA);
	crit.T = 343.765;
	crit.v = 1.0/crit.rho;

	// Other fluid parameters
	params.molemass = 98.8592;
	params.Ttriple = 200.0;
	params.ptriple = 23.2234432758;
	params.accentricfactor = 0.286;
	params.R_u = 8.314472;
	isPure = false;

	// Limits of EOS
	limits.Tmin = params.Ttriple;
	limits.Tmax = 500.0;
	limits.pmax = 50000.0;
	limits.rhomax = 14.13*params.molemass;
	
	EOSReference.assign("E.W. Lemmon, \"Pseudo-pure fluid Equations of State for the Refrigerant Blends R410A, R404A, R507C and R407C\"" 
						",Int. J. Thermophys. v. 24, n4, 2003");
	TransportReference.assign("Viscosity: V. Geller, \"Viscosity of Mixed Refrigerants R404A,R407C,"
							"R410A, and R507A\", 2000 Purdue Refrigeration conferences\n\n"
							"Thermal Conductivity: V.Z. Geller, B.Z. Nemzer, and U.V. Cheremnykh \"Thermal Conductivity "
							"of the Refrigerant mixtures R404A,R407C,R410A, and R507A\" "
							"Int. J. Thermophysics, v. 22, n 4 2001");

	name.assign("R507A");
	aliases.push_back("R507a");

	BibTeXKeys.EOS = "Lemmon-IJT-2003";
	BibTeXKeys.VISCOSITY = "Geller-PURDUE-2000";
	BibTeXKeys.CONDUCTIVITY = "Geller-IJT-2001";
	
}
Пример #29
0
AirClass::AirClass()
{
	static const double N[]={0,
	 0.118160747229,//[1]
	 0.713116392079,//[2]
	-0.161824192067e1,//[3]
	 0.714140178971e-1,//[4]
	-0.865421396646e-1,//[5]
	 0.134211176704,//[6]
	 0.112626704218e-1,//[7]
	-0.420533228842e-1,//[8]
	 0.349008431982e-1,//[9]
	 0.164957183186e-3,//[10]
	-0.101365037912,//[11]
	-0.173813690970,//[12]
	-0.472103183731e-1,//[13]
	-0.122523554253e-1,//[14]
	-0.146629609713,//[15]
	-0.316055879821e-1,//[16]
	 0.233594806142e-3,//[17]
	 0.148287891978e-1,//[18]
	-0.938782884667e-2//[19]
	};

	static const double d[]={0,
	1,//[1]
	1,//[2]
	1,//[3]
	2,//[4]
	3,//[5]
	3,//[6]
	4,//[7]
	4,//[8]
	4,//[9]
	6,//[10]
	1,//[11]
	3,//[12]
	5,//[13]
	6,//[14]
	1,//[15]
	3,//[16]
	11,//[17]
	1,//[18]
	3//[19]
	};

	static const double t[]={0.00,
	0,//[1]
	0.33,//[2]
	1.01,//[3]
	0,//[4]
	0,//[5]
	0.15,//[6]
	0,//[7]
	0.2,//[8]
	0.35,//[9]
	1.35,//[10]
	1.6,//[11]
	0.8,//[12]
	0.95,//[13]
	1.25,//[14]
	3.6,//[15]
	6,//[16]
	3.25,//[17]
	3.5,//[18]
	15//[19]
	};

	static const double l[]={
	0,0,0,0,0,0,0,0,0,0,0, // indices [0-10]
	1,//[11]
	1,//[12]
	1,//[13]
	1,//[14]
	2,//[15]
	2,//[16]
	2,//[17]
	3,//[18]
	3,//[19]
	};

	//Constants for ideal gas expression
	static const double N0[]={0.0,
	 0.605719400e-7,//[1]
	-0.210274769e-4,//[2]
	-0.158860716e-3,//[3]
	-13.841928076,//[4]
	 17.275266575,//[5]
	-0.195363420e-3,//[6]
	 2.490888032,//[7]
	 0.791309509,//[8]
	 0.212236768,//[9]
	-0.197938904,//[10]
	 25.36365,//[11]
	 16.90741,//[12]
	 87.31279//[13]
	};

	phirlist.push_back(new phir_power(N,d,t,l,1,19,20));
	
	/*
	phi0=log(delta);
    for (k=1;k<=5;k++)
    {
        phi0=phi0+N0[k]*powInt(tau,k-4);
    }
    phi0+=N0[6]*pow(tau,1.5)+N0[7]*log(tau);
    for (k=8;k<=9;k++)
    {
        phi0+=N0[k]*log(1.0-exp(-N0[k+3]*tau));
    }
    phi0+=N0[10]*log(2.0/3.0+exp(N0[13]*tau));
	*/
	std::vector<double> N0_v(N0,N0+sizeof(N0)/sizeof(double));
	std::vector<double> theta0_v(N0,N0+sizeof(N0)/sizeof(double));
	// Set some constants
	theta0_v[1]=1-4;
	theta0_v[2]=2-4;
	theta0_v[3]=3-4;
	theta0_v[4]=4-4;
	theta0_v[5]=5-4;
	theta0_v[6]=1.5;
	theta0_v[8]=N0_v[11];
	theta0_v[9]=N0_v[12];
	theta0_v[10]=N0_v[13];

	phi0list.push_back(new phi0_lead(0.0,0.0));
	phi0list.push_back(new phi0_power(N0_v,theta0_v,1,5));
	phi0list.push_back(new phi0_power(N0_v[6],1.5));
	phi0list.push_back(new phi0_logtau(N0_v[7]));
	phi0list.push_back(new phi0_Planck_Einstein(N0_v,theta0_v,8,9));
	phi0list.push_back(new phi0_Planck_Einstein2(N0_v[10],theta0_v[10],2.0/3.0));
	
	// Critical parameters (max condensing temperature)
	crit.rho = 11.8308*28.96546;
	crit.p = PressureUnit(3786.0,UNIT_KPA);
	crit.T = 132.5306;
	crit.v = 1.0/crit.rho;

	maxcondT.rho = 10.4477*28.96546;
	maxcondT.p = PressureUnit(3785.02,UNIT_KPA);
	maxcondT.T = 132.6312;
	maxcondT.v = 1.0/maxcondT.rho;

	// Other fluid parameters
	params.molemass = 28.96546;
	params.Ttriple = 59.75;
	params.ptriple = 2.44582352329;
	params.accentricfactor = 0.0335;
	params.R_u = 8.31451;
	isPure = false;
	preduce = &maxcondT;

	// Limits of EOS
	limits.Tmin = params.Ttriple;
	limits.Tmax = 2000.0;
	limits.pmax = 2000000.0;
	limits.rhomax = 14.21*params.molemass;
	
	EOSReference.assign("Lemmon, E.W., Jacobsen, R.T, Penoncello, S.G., and Friend, D.G.,"
						"\"Thermodynamic Properties of Air and Mixtures of Nitrogen, Argon, and"
						" Oxygen from 60 to 2000 K at Pressures to 2000 MPa,"
						" J. Phys. Chem. Ref. Data, 29(3):331-385, 2000.");
	TransportReference.assign("E.W. Lemmon and R. T. Jacobsen, \"Viscosity and Thermal Conductivity Equations for "
							  "Nitrogen, Oxygen, Argon, and Air\", "
							  "International Journal of Thermophysics, Vol. 25, No. 1, January 2004");

	name.assign("Air");
	aliases.push_back("air");

	BibTeXKeys.EOS = "Lemmon-JPCRD-2000";
	BibTeXKeys.VISCOSITY = "Lemmon-IJT-2004";
	BibTeXKeys.CONDUCTIVITY = "Lemmon-IJT-2004";
	BibTeXKeys.SURFACE_TENSION = "Mulero-JPCRD-2012";
}
Пример #30
0
OrthoHydrogenClass::OrthoHydrogenClass()
{
	double n [] = {0, -6.83148, 0.01, 2.11505, 4.38353, 0.211292, -1.00939, 0.142086, -0.87696, 0.804927, -0.710775, 0.0639688, 0.0710858, -0.087654, 0.647088};
	double t [] = {0, 0.7333, 1, 1.1372, 0.5136, 0.5638, 1.6248, 1.829, 2.404, 2.105, 4.1, 7.658, 1.259, 7.589, 3.946};
	double d [] = {0, 1, 4, 1, 1, 2, 2, 3, 1, 3, 2, 1, 3, 1, 1};
	double l [] = {0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0};
	
    double alpha[] = {0,0,0,0,0,0,0,0,0,0,1.169, 0.894, 0.04, 2.072, 1.306}; // Originally phi in the paper
    double beta[] = {0,0,0,0,0,0,0,0,0,0,0.4555, 0.4046, 0.0869, 0.4415, 0.5743};
    double gamma[] = {0,0,0,0,0,0,0,0,0,0,1.5444, 0.6627, 0.763, 0.6587, 1.4327};
    double epsilon[] = {0,0,0,0,0,0,0,0,0,0,0.6366, 0.3876, 0.9437, 0.3976, 0.9626}; // Originally D in the paper	

	phirlist.push_back(new phir_power(n,d,t,l,1,9,15));
	phirlist.push_back(new phir_gaussian(n,d,t,alpha,epsilon,beta,gamma,10,14,15));

	/* phi0=log(delta)+1.5*log(tau)+a0[1]+a0[2]*tau
        +a0[3]*log(1-exp(-b0[3]*tau))
        +a0[4]*log(1-exp(-b0[4]*tau))
        +a0[5]*log(1-exp(-b0[5]*tau))
        +a0[6]*log(1-exp(-b0[6]*tau))
        +a0[7]*log(1-exp(-b0[7]*tau));
	*/

	double a0 [] = {0, -1.4675442336, 1.8845068862, 2.54151, -2.3661, 1.00365, 1.22447};
	double b0 [] = {0, 0, 0, 25.7676098736, 43.4677904877, 66.0445514750, 209.7531607465};

	//lead term of the form log(delta)+a1+a2*tau
	phi0list.push_back(new phi0_lead(a0[1],a0[2]));
	phi0list.push_back(new phi0_logtau(1.5));
	phi0list.push_back(new phi0_Planck_Einstein(a0,b0,3,6,7));

	// Critical parameters
	crit.rho = 15.445*2.01588;
	crit.p = PressureUnit(1310.65, UNIT_KPA);
	crit.T = 33.22;
	crit.v = 1.0/crit.rho;

	// Other fluid parameters
	params.molemass = 2.01594;
	params.Ttriple = 14.008;
	params.ptriple = 7.5598823410394012;
	params.accentricfactor = -0.219;
	params.R_u = 8.314472;

	// Limits of EOS
	limits.Tmin = params.Ttriple;
	limits.Tmax = 1000.0;
	limits.pmax = 2000000.0;
	limits.rhomax = 102.0*params.molemass;
	
	EOSReference.assign("\"Fundamental Equations of State for Parahydrogen, Normal Hydrogen, and Orthohydrogen\""
						"by J.W. Leachman and R.T. Jacobsen and S.G. Penoncello and E.W. Lemmon"
						", J. Phys. Chem. Ref. Data, Vol. 38, No. 3, 2009, pp 721-748");
	TransportReference.assign("Viscosity & Surface Tension: McCarty, R.D. and Weber, L.A., "
							  "\"Thermophysical properties of parahydrogen from the freezing liquid line to "
							  "5000 R for pressures to 10,000 psia,\" "
                              "Natl. Bur. Stand., Tech. Note 617, 1972.");

	name.assign("OrthoHydrogen");
	aliases.push_back("Orthohydrogen");
	aliases.push_back("orthohydrogen");
	REFPROPname.assign("ORTHOHYD");

	BibTeXKeys.EOS = "Leachman-JPCRD-2009";
}