Exemplo n.º 1
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";
}
Exemplo n.º 2
0
R1234zeClass::R1234zeClass()
{

	static const double n[]={0,4.434245E-02, 1.646369E+00, -2.437488E+00, -5.170560E-01, 1.815626E-01, -1.210104E+00, -5.944653E-01, 7.521992E-01, -6.747216E-01, -2.448183E-02, 1.379434E+00, -4.697024E-01, -2.036158E-01, -8.407447E-02, 5.109529E-04};

	// 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]
	2, //[15
	};

	static const double t[]={0.00, 1.00,0.31,0.923,1.06,0.44,2.08,2.32,1.25,2.0,1.0,0.93,1.93,2.69,1.0,2.0};

	// 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]
	};

	static const double eta[]={
	0,0,0,0,0,0,0,0,0,0,0, // indices [0-10]
	1.0, //[11]
	1.4, //[12]
	1.134, //[13]
	7.68, //[14]
	24 //[15]
	};

	// 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.64, //[11]
	1.57, //[12]
	1.49, //[13]
	257.0, //[14]
	45, //[15]
	};

	static const double GAMMA[]={
	0,0,0,0,0,0,0,0,0,0,0, // indices [0-10]
	1.130, //[11]
	0.61, //[12]
	0.65, //[13]
	1.13, //[14]
	1.34 //[15]
	};

	// 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.711, //[11]
	0.856, //[12]
	0.753, //[13]
	0.772, //[14]
	1.88 //[15]
	};

	//Constants for ideal gas expression
	static const double a0[] = {0.0,6.259,7.303,8.597,2.333};
	static const double b0[] = {0.0,0.0,691/382.52,1705/382.520,4216/382.52}; // Terms divided by critical temp

	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));

	// 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]));
	std::vector<double> a0_v(a0,a0+sizeof(a0)/sizeof(double));
	std::vector<double> b0_v(b0,b0+sizeof(b0)/sizeof(double));
	phi0list.push_back(new phi0_Planck_Einstein(a0_v,b0_v,2,4));

	// Critical parameters
	crit.rho = 4.29*114.0415928;
	crit.p = PressureUnit(3636.25, UNIT_KPA);
	crit.T = 382.52;
	crit.v = 1.0/crit.rho;

	// Other fluid parameters
	params.molemass = 114.0415928;
	params.Ttriple = 168.62;
	params.ptriple = 0.23;
	params.accentricfactor = 0.313;
	params.R_u = 8.314472;

	// Limits of EOS
	limits.Tmin = params.Ttriple;
	limits.Tmax = 2000.0;
	limits.pmax = 2200000.0;
	limits.rhomax = 53.15*params.molemass;
	
	EOSReference.assign("Mark O. McLinden, Monika Thol, Eric W. Lemmon, \"Thermodynamic Properties of trans-1,3,3,3-tetrafluoropropene [R1234ze(E)]: Measurements of Density and Vapor Pressure and a Comprehensive Equation of State\", International Refrigeration and Air Conditioning Conference at Purdue, July 12-15, 2010");
	TransportReference.assign("Using ECS in fully predictive mode");

	
	name.assign("R1234ze(E)");
	aliases.push_back("R1234ZEE");
	aliases.push_back("R1234zeE");
	aliases.push_back(std::string("R1234ZE(E)"));
	REFPROPname.assign("R1234ZE");

	BibTeXKeys.EOS = "McLinden-PURDUE-2010";
	BibTeXKeys.CONDUCTIVITY = "Perkins-JCED-2011";
}
Exemplo n.º 3
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";
}
Exemplo n.º 4
0
R32Class::R32Class()
{
	static const double n[]={
		 0.0,			//[0]
		 0.1046634e+1, 	//[1]
		-0.5451165,		//[2]
		-0.2448595e-2,	//[3]
		-0.4877002e-1,	//[4]
		 0.3520158e-1,	//[5]
		 0.1622750e-2,	//[6]
		 0.2377225e-4,	//[7]
		 0.29149e-1,	//[8]
		 0.3386203e-2,	//[9]
		-0.4202444e-2,	//[10]
		 0.4782025e-3,	//[11]
		-0.5504323e-2,	//[12]
		-0.2418396e-1,	//[13]
		 0.4209034,		//[14]
 		-0.4616537,		//[15]
		-0.1200513e+1,	//[16]
		-0.2591550e+1,	//[17]
		-0.1400145e+1,	//[18]
		 0.8263017		//[19]
	};

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

	static const double t[]={
		0.0,		//[0]
		1.0/4.0,	//[1]
		1.0,		//[2]
		-1.0/4.0,	//[3]
		-1.0,		//[4]
		2.0,		//[5]
		2.0,		//[6]
		3.0/4.0,	//[7]
		1.0/4.0,	//[8]
		18.0,		//[9]
		26.0,		//[10]
		-1.0,		//[11]
		25.0, 		//[12]
		7.0/4.0,	//[13]
		4.0,		//[14]
		5.0,		//[15]
		1.0,		//[16]
		3.0/2.0,	//[17]
		1.0,		//[18]
		1.0/2.0		//[19]
	};

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

	static const double a0[]={
		-8.258096,	//[0]
		6.353098,	//[1]
		3.004486,	//[2]
		1.160761,	//[3]
		2.645151,	//[4]
		5.794987,	//[5]
		1.129475	//[6]
	};
	static const double n0[]={
		0.0,		//[0]
		0.0,		//[1]
		0.0,		//[2]
		2.2718538,	//[3]
		11.9144210,	//[4]
		5.1415638,	//[5]
		32.7682170	//[6]
	};

	std::vector<double> a0_v(a0,a0+sizeof(a0)/sizeof(double));
	std::vector<double> n0_v(n0,n0+sizeof(n0)/sizeof(double));

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

	// return log(delta)+a0[0]+a0[1]*tau+a0[2]*log(tau)+a0[3]*log(1-exp(-n0[3]*tau))+a0[4]*log(1-exp(-n0[4]*tau))+a0[5]*log(1-exp(-n0[5]*tau))+a0[6]*log(1-exp(-n0[6]*tau));
	phi0list.push_back(new phi0_lead(a0[0],a0[1]));
	phi0list.push_back(new phi0_logtau(a0[2]));
	phi0list.push_back(new phi0_Planck_Einstein(a0_v,n0_v,3,6));

	// Critical parameters
	crit.rho = 8.1500846*52.024;
	crit.p = PressureUnit(5782, UNIT_KPA);
	crit.T = 351.255;
	crit.v = 1.0/crit.rho;

	// Other fluid parameters
	params.molemass = 52.024;
	params.Ttriple = 136.34;
	params.ptriple = 0.0480073825051;
	params.accentricfactor = 0.2769;
	params.R_u = 8.314471;

	// Limits of EOS
	limits.Tmin = params.Ttriple;
	limits.Tmax = 435.0;
	limits.pmax = 70000.0;
	limits.rhomax = 27.4734*params.molemass;
	
	EOSReference.assign("Tillner-Roth, R. and Yokozeki, A.,"
						" \"An international standard equation of state for difluoromethane (R-32)"
						" for temperatures from the triple point at 136.34 K to 435 K and pressures"
						" up to 70 MPa,\""
						" J. Phys. Chem. Ref. Data, 26(6):1273-1328, 1997.");
	TransportReference.assign("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("R32");

	ECSReferenceFluid = "Propane";

	BibTeXKeys.EOS = "TillnerRoth-JPCRD-1997";
	BibTeXKeys.ECS_LENNARD_JONES = "Huber-IECR-2003";
	BibTeXKeys.ECS_FITS = "Huber-IECR-2003";
	BibTeXKeys.SURFACE_TENSION = "Mulero-JPCRD-2012";
}