Example #1
0
PropyleneClass::PropyleneClass()
{
	double n[] = {0.0, 4.341002E-02, 1.136592E+00, -8.528611E-01, 5.216669E-01, -1.382953E+00, 1.214347E-01, -5.984662E-01, -1.391883E+00, -1.008434E+00, 1.961249E-01, -3.606930E-01, -2.407175E-03, 7.432121E-01, 1.475162E-01, -2.503391E-02, -2.734409E-01, 6.378889E-03, 1.502940E-02, -3.162971E-02, -4.107194E-02, -1.190241E+00};
	double t[] = {0, 1.0, 0.205, 0.56, 0.676, 1.0, 0.5, 1.0, 1.94, 2.0, 1.0, 2.66, 0.83, 1.6, 2.5, 3.0, 2.5, 2.72, 4.0, 4.0, 1.0, 4.0};
	double d[] = {0, 4., 1., 1., 2., 2., 3., 1., 1., 3., 2., 2., 8., 1., 1., 2., 3., 3., 2., 1., 2., 3.};
	double c[] = {0, 0, 0, 0, 0, 0, 0, 1, 2, 2, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2};
	double eta[] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1.07, 0.66, 1.2, 1.12, 1.47, 1.93, 3.3, 15.4, 6.0};
	double beta[] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.77, 0.83, 0.607, 0.4, 0.66, 0.07, 3.1, 387.0, 41.0};
	double gamma[] = {0,0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1.21, 1.08, 0.83, 0.56, 1.22, 1.81, 1.54, 1.12, 1.4};
	double epsilon[] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.78, 0.82, 1.94, 0.69, 1.96, 1.3, 0.38, 0.91, 0.7};

	//Critical parameters
	crit.rho = 5.457*42.07974; //[kg/m^3]
	crit.p = PressureUnit(4555.0, UNIT_KPA); //[kPa]
	crit.T = 364.211; //[K]
	crit.v = 1/crit.rho; 

	// Other fluid parameters
	params.molemass = 42.07974;
	params.Ttriple = 87.953;
	params.accentricfactor = 0.146;
	params.R_u = 8.314472;
	params.ptriple = 7.5e-7;

	// 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,12,22));
	phirlist.push_back(new phir_gaussian( n,d,t, eta, epsilon, beta, gamma, 13,21,22));

	const double n5 = 4.9916462, n6 = -0.1709449, n0 = 4;
	phi0list.push_back(new phi0_lead(n5,n6));
	phi0list.push_back(new phi0_logtau(n0-1));

	const double u0[] = {0, 324/crit.T, 973/crit.T, 1932/crit.T, 4317/crit.T};
	const double v0[] = {0, 1.544, 4.013, 8.923, 6.020};
	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,4));

	EOSReference.assign("Lemmon, E.W., Overhoff, U., McLinden, M.O., Wagner, W. to be submitted to J. Phys. Chem. Ref. Data, 2010. Coefficients from REFPROP with permission");
	TransportReference.assign("Using ECS in fully predictive mode.  Lennard-Jones parameters from Chichester NISTIR 6650\n\nSurface Tension: Mulero \"Recommended Correlations for the Surface Tension of Common Fluids\", 2012");

	name.assign("Propylene");
	aliases.push_back(std::string("propylene"));
	REFPROPname.assign("PROPYLEN");

	ECSReferenceFluid = "Propane";

	BibTeXKeys.EOS = "Lemmon-PROPYLENE-2013";
	BibTeXKeys.ECS_LENNARD_JONES = "Huber-IECR-2003";
	BibTeXKeys.ECS_FITS = "Huber-IECR-2003";
	BibTeXKeys.SURFACE_TENSION = "Mulero-JPCRD-2012";
}
pXyleneClass::pXyleneClass()
{
	double n[] = {0.0, 0.0010786811, -0.103161822, 0.0421544125, 1.47865376, -2.4266, -0.46575193, 0.190290995, -1.06376565, -0.209934069, 1.25159879, -0.951328356, -0.0269980032, 1.3710318, -0.494160616, -0.0724317468, -3.69464746};
	double t[] = {0, 1, 0.83, 0.83, 0.281, 0.932, 1.1, 0.443, 2.62, 2.5, 1.2, 3, 0.778, 1.13, 4.5, 2.2, 2};
	double d[] = {0, 5, 1, 4, 1, 1, 2, 3, 1, 3, 2, 2, 7, 1, 1, 3, 3};
	double c[] = {0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 1, 2, 1, 0, 0, 0, 0};
	double eta[] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1.179, 1.065, 1.764, 13.675};
	double beta[] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2.445, 1.483, 4.971, 413};
	double gamma[] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1.267, 0.4242, 0.864, 1.1465};
	double epsilon[] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.54944, 0.7234, 0.4926, 0.8459};

	//Critical parameters
	crit.rho = 2.69392*106.165; //[kg/m^3]
	crit.p = PressureUnit(3531.5, UNIT_KPA); //[kPa]
	crit.T = 616.168; //[K]
	crit.v = 1/crit.rho; 

	// Other fluid parameters
	params.molemass = 106.165;
	params.Ttriple = 286.4;
	params.accentricfactor = 0.324;
	params.R_u = 8.314472;
	params.ptriple = 0.580085039148721;

	// 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,12,17));
	phirlist.push_back(new phir_gaussian( n,d,t, eta, epsilon, beta, gamma, 13,16,17));

	const double a1 = 5.9815241, a2 = -0.52477835, c0 = 5.2430504;
	phi0list.push_back(new phi0_lead(a1,a2));
	phi0list.push_back(new phi0_logtau(c0-1));

	const double u0[] = {0, 414/crit.T, 1256/crit.T, 2649/crit.T, 6681/crit.T};
	const double v0[] = {0, 5.2291378, 19.549862, 16.656178, 5.9390291};
	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,4));

	EOSReference.assign("Yong Zhou, Jiangtao Wu, Eric W. Lemmon, \"Thermodynamic Properties of o-Xylene, m-Xylene, p-Xylene, and Ethylbenzene\", J. Phys. Chem. Ref. Data, Vol. 41, No. 2, 2012");
	TransportReference.assign("Using ECS in fully predictive mode");

	name.assign("p-Xylene");
	aliases.push_back("pXylene");
	aliases.push_back("p-xylene");
	aliases.push_back(std::string("P-XYLENE"));
	REFPROPname.assign("PXYLENE");

	ECSReferenceFluid = "Propane";

	BibTeXKeys.EOS = "Zhou-JPCRD-2012";
}
oXyleneClass::oXyleneClass()
{
	double n[] = {0.0, 0.0036765156, -0.13918171, 0.014104203, 1.5398899, -2.3600925, -0.44359159, 0.19596977, -1.0909408, -0.21890801, 1.1179223, -0.93563815, -0.018102996, 1.4172368, -0.57134695, -0.081944041, -40.682878};
	double t[] = {0, 1, 0.6, 0.91, 0.3, 0.895, 1.167, 0.435, 2.766, 3.8, 1.31, 3, 0.77, 1.41, 4.8, 1.856, 2};
	double d[] = {0, 5, 1, 4, 1, 1, 2, 3, 1, 3, 2, 2, 7, 1, 1, 3, 3};
	double c[] = {0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 1, 2, 1, 0, 0, 0, 0};
	double eta[] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1.1723, 1.095, 1.6166, 20.4};
	double beta[] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2.442, 1.342, 3, 450};
	double gamma[] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1.2655, 0.3959, 0.7789, 1.162};
	double epsilon[] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.552, 0.728, 0.498, 0.894};

	//Critical parameters
	crit.rho = 2.6845*106.165; //[kg/m^3]
	crit.p = PressureUnit(3737.5, UNIT_KPA); //[kPa]
	crit.T = 630.259; //[K]
	crit.v = 1/crit.rho; 

	// Other fluid parameters
	params.molemass = 106.165;
	params.Ttriple = 247.985;
	params.accentricfactor = 0.312;
	params.R_u = 8.314472;
	params.ptriple = 0.022805778456334729;

	// 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,12,17));
	phirlist.push_back(new phir_gaussian( n,d,t, eta, epsilon, beta, gamma, 13,16,17));

	const double a1 = 10.137376, a2= -0.91282993, c0 = 3.748798;
	phi0list.push_back(new phi0_lead(a1,a2));
	phi0list.push_back(new phi0_logtau(c0-1));

	const double u0[] = {0, 225/crit.T, 627/crit.T, 1726/crit.T, 4941/crit.T};
	const double v0[] = {0, 4.754892, 6.915052, 25.84813, 10.93886};
	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,4));

	EOSReference.assign("Yong Zhou, Jiangtao Wu, Eric W. Lemmon, \"Thermodynamic Properties of o-Xylene, m-Xylene, p-Xylene, and Ethylbenzene\", J. Phys. Chem. Ref. Data, Vol. 41, No. 2, 2012");
	TransportReference.assign("Using ECS in fully predictive mode");

	ECSReferenceFluid = "Propane";

	name.assign("o-Xylene");
	aliases.push_back("oXylene");
	aliases.push_back("o-xylene");
	aliases.push_back(std::string("O-XYLENE"));
	REFPROPname.assign("OXYLENE");

	BibTeXKeys.EOS = "Zhou-JPCRD-2012";
}
mXyleneClass::mXyleneClass()
{
	double n[] = {0.0, 0.000012791017, 0.041063111, 1.505996, -2.3095875, -0.46969, 0.171031, -1.001728, -0.3945766, 0.6970578, -0.3002876, -0.024311, 0.815488, -0.330647, -0.123393, -0.54661};
	double t[] = {0, 1, 0.91, 0.231, 0.772, 1.205, 0.323, 2.7, 3.11, 0.768, 4.1, 0.818, 2, 2.9, 3.83, 0.5};
	double d[] = {0, 8, 4, 1, 1, 2, 3, 1, 3, 2, 2, 7, 1, 1, 3, 3};
	double c[] = {0, 0, 0, 0, 0, 0, 0, 2, 2, 1, 2, 1, 0, 0, 0, 0};
	double eta[] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1.0244, 1.3788, 0.9806, 6.3563};
	double beta[] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1.66, 1.9354, 1.0323, 78};
	double gamma[] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1.1013, 0.6515, 0.4975, 1.26};
	double epsilon[] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.713, 0.9169, 0.6897, 0.7245};

	//Critical parameters
	crit.rho = 2.665*106.165; //[kg/m^3]
	crit.p = PressureUnit(3534.6, UNIT_KPA); //[kPa]
	crit.T = 616.89; //[K]
	crit.v = 1/crit.rho; 

	// Other fluid parameters
	params.molemass = 106.165;
	params.Ttriple = 225.3;
	params.accentricfactor = 0.326;
	params.R_u = 8.314472;
	params.ptriple = 0.003123267841543599;

	// 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,11,16));
	phirlist.push_back(new phir_gaussian( n,d,t, eta, epsilon, beta, gamma, 12,15,16));

	const double a1 = 12.652887, a2 = 0.45975624, c0 = 2.169909;
	phi0list.push_back(new phi0_lead(a1,a2));
	phi0list.push_back(new phi0_logtau(c0-1));

	const double u0[] = {0, 160/crit.T, 190/crit.T, 1333/crit.T, 3496/crit.T};
	const double v0[] = {0, 4.44312, 2.862794, 24.83298, 16.26077};
	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,4));

	EOSReference.assign("Yong Zhou, Jiangtao Wu, Eric W. Lemmon, \"Thermodynamic Properties of o-Xylene, m-Xylene, p-Xylene, and Ethylbenzene\", J. Phys. Chem. Ref. Data, Vol. 41, No. 2, 2012");
	TransportReference.assign("Using ECS in fully predictive mode");

	name.assign("m-Xylene");
	aliases.push_back("mXylene");
	aliases.push_back("m-xylene");
	aliases.push_back(std::string("M-XYLENE"));
	REFPROPname.assign("MXYLENE");

	ECSReferenceFluid = "Propane";

	BibTeXKeys.EOS = "Zhou-JPCRD-2012";
}
Example #5
0
DimethylCarbonateClass::DimethylCarbonateClass()
{
	double n[] = {0.0, 0.00052683187, 1.353396, -2.649283, -0.2785412, 0.1742554, 0.031606252, 0.399866, 1.178144, -0.0235281, -1.015, -0.7880436, -0.12696, 1.2198, -0.4883, -0.0033293, -0.0035387, -0.51172, -0.16882};
	double t[] = {0, 1, 0.227, 1.05, 1.06, 0.5, 0.78, 1.3, 1.347, 0.706, 2, 2.5, 4.262, 1, 2.124, 0.4, 3.5, 0.5, 2.7};
	double d[] = {0, 5, 1, 1, 2, 3, 4, 1, 2, 7, 1, 2, 3, 1, 1, 2, 2, 3, 3};
	double c[] = {0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 2, 2, 2, 0, 0, 0, 0, 0, 0};
	double eta[] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.9667, 1.5154, 1.0591, 1.6642, 12.4856, 0.9662};
	double beta[] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1.240, 0.821, 15.45, 2.210, 437.0, 0.743};
	double gamma[] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1.2827, 0.4317, 1.1217, 1.1871, 1.1243, 0.4203};
	double epsilon[] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.6734, 0.9239, 0.8636, 1.0507, 0.8482, 0.7522};

	//Critical parameters
	crit.rho = 4*90.0779; //[kg/m^3]
	crit.p = PressureUnit(4908.8, UNIT_KPA); //[kPa]
	crit.T = 557; //[K]
	crit.v = 1/crit.rho; 

	// Other fluid parameters
	params.molemass = 90.0779;
	params.Ttriple = 277.06;
	params.accentricfactor = 0.346;
	params.R_u = 8.314472;
	params.ptriple = 2.2265237265924869;

	// 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,12,19));
	phirlist.push_back(new phir_gaussian( n,d,t, eta, epsilon, beta, gamma, 13,18,19));

	const double n5 = 4.9916462, n6 = -0.1709449, n0 = 9.28421;
	phi0list.push_back(new phi0_lead(n5,n6));
	phi0list.push_back(new phi0_logtau(n0-1));

	const double u0[] = {0, 21/crit.T, 1340/crit.T, 1672/crit.T, 7395/crit.T};
	const double v0[] = {0, 1.48525, 0.822585, 16.2453, 1.15925};
	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,4));

	EOSReference.assign(EOSstr);
	TransportReference.assign("Using ECS in fully predictive mode");

	name.assign("DimethylCarbonate");
	aliases.push_back(std::string("DMC"));
	aliases.push_back(std::string("dimethylcarbonate"));
	aliases.push_back(std::string("DIMETHYLCARBONATE"));
	REFPROPname.assign("DMC");

	ECSReferenceFluid = "Propane";

	BibTeXKeys.EOS = "Zhou-JPCRD-2011";
}
Example #6
0
R236EAClass::R236EAClass()
{
	double n[] = {0.0, 0.051074, 2.5584, -2.9180, -0.71485, 0.15534, -1.5894, -0.784, 0.85767, -0.67235, -0.017953, 1.3165, -0.42023, -0.28053, -1.4134, -0.0000062617};
	double t[] = {0, 1.0, 0.264, 0.5638, 1.306, 0.2062, 2.207, 2.283, 1.373, 2.33, 0.6376, 1.08, 1.67, 3.502, 4.357, 0.6945};
	double d[] = {0, 4, 1, 1, 2, 3, 1, 3, 2, 2, 7, 1, 1, 3, 3, 2};
	double c[] = {0, 0, 0, 0, 0, 0, 2, 2, 1, 2, 1, 0, 0, 0, 0, 0};
	double eta[] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1.019, 1.341, 1.034, 5.264, 24.44};
	double beta[] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1.30, 2.479, 1.068, 79.850, 49.06};
	double gamma[] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1.13, 0.6691, 0.465, 1.280, 0.8781};
	double epsilon[] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.7119, 0.9102, 0.678, 0.7091, 1.727};

	//Critical parameters
	crit.rho = 3.716*152.0384; //[kg/m^3]
	crit.p = PressureUnit(3420, UNIT_KPA); //[kPa]
	crit.T = 412.44; //[K]
	crit.v = 1/crit.rho; 

	// Other fluid parameters
	params.molemass = 152.0384;
	params.Ttriple = 170;
	params.accentricfactor = 0.36878238039914035;
	params.R_u = 8.314472;
	params.ptriple = 17.525807103151166; // At Tmin of 243

	// Limits of EOS
	limits.Tmin = 243;
	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 n5 = -14.1214241350, n6 = 10.2355589225, n0 = 3.762;
	phi0list.push_back(new phi0_lead(n5,n6));
	phi0list.push_back(new phi0_logtau(n0-1));

	const double u0[] = {0, 144/crit.T, 385/crit.T, 1536/crit.T, 7121/crit.T};
	const double v0[] = {0, 0.7762, 10.41, 12.18, 3.332};
	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,4));

	EOSReference.assign("Xinfang Rui and Jiang Pan and Yugang Wang, \"An equation of state for the thermodynamic properties of 1,1,1,2,3,3-hexafluoropropane (R236ea)\", Fluid Phase Equilibria 341 (2013) 78-85\n\nNote: Erratum in paper: a1 should be -17.5983849 and a2 should be 8.87150449\n\nNote: REFPROP 9.0 does not use this EOS, they use thermodynamic corresponding states");
	TransportReference.assign("Using ECS in fully predictive mode.");

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

	BibTeXKeys.EOS = "Rui-FPE-2013";
	BibTeXKeys.ECS_FITS = "Huber-IECR-2003";
	BibTeXKeys.ECS_LENNARD_JONES = "Huber-IECR-2003";
	BibTeXKeys.SURFACE_TENSION = "Mulero-JPCRD-2012";
}
Example #7
0
MethylLinoleateClass::MethylLinoleateClass()
{
	// Typo in the paper, coefficients for n,d,t,c taken from REFPROP
	double n[] = {0.0, 0.3183187e-01, 0.1927286e01, -0.3685053e01, 0.8449312e-01, -0.9766643, -0.4323178, 0.2000470e01, -0.1752030e01, -0.1726895e-01, 0.2116515e01, -0.7884271, -0.3811699};
	double d[] = {0.0, 4, 1, 1, 3, 1, 3, 2, 2, 7, 1, 1, 3};
	double t[] = {0.0, 1, 0.2, 1.2, 1, 2.2, 2.5, 1.8, 1.92, 1.47, 1.7, 2.3, 2.1};
	double c[] = {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,1.1,1.6,1.1};
	static double beta[] = {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,1.14,0.65,0.77};
	static double epsilon[] = {0,0,0,0,0,0,0,0,0,0,0.79,0.90,0.76};

	//Critical parameters
	crit.rho = 0.8084*294.47206; //[kg/m^3]
	crit.p = PressureUnit(1341, UNIT_KPA); //[kPa]
	crit.T = 799; //[K]
	crit.v = 1/crit.rho; 

	// Other fluid parameters
	params.molemass = 294.47206; // From REFPROP, not provided in paper (but should be!!)
	params.Ttriple = 260;
	params.accentricfactor = 0.80540638705564849;
	params.R_u = 8.314472;
	params.ptriple = 1.37170480867e-09;

	// 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,9,13));
	phirlist.push_back(new phir_gaussian(n,d,t,eta,epsilon,beta,gamma,10,12,13));

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

	const double u0[] = {0, 3052.11/crit.T, 746.631/crit.T, 1624.33/crit.T};
	const double v0[] = {0, 437.371/params.R_u, 287.222/params.R_u, 321.956/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(190.986/params.R_u,0.020213,crit.T,298));
	phi0list.push_back(new phi0_Planck_Einstein(v0_v,u0_v,1,3));

	EOSReference.assign("Marcia L. Huber, Eric W. Lemmon, Andrei Kazakov, Lisa S. Ott and Thomas J. Bruno, \"Model for the Thermodynamic Properties of a Biodiesel Fuel\", Energy & Fuels 2009, 23, 3790-3797");
	TransportReference.assign("Using ECS in fully predictive mode");

	name.assign("MethylLinoleate");
	aliases.push_back(std::string("METHYLLINOLEATE"));
	REFPROPname.assign("MLINOLEA");

	ECSReferenceFluid = "Propane";

	BibTeXKeys.EOS = "Huber-EF-2009";
}
EthylBenzeneClass::EthylBenzeneClass()
{
	double n[] = {0.0, 0.0018109418, -0.076824284, 0.041823789, 1.5059649, -2.4122441, -0.47788846, 0.18814732, -1.0657412, -0.20797007, 1.1222031, -0.99300799, -0.027300984, 1.3757894, -0.44477155, -0.07769742, -2.16719};
	double t[] = {0, 1, 1, 0.92, 0.27, 0.962, 1.033, 0.513, 2.31, 3.21, 1.26, 2.29, 1, 0.6, 3.6, 2.1, 0.5};
	double d[] = {0, 5, 1, 4, 1, 1, 2, 3, 1, 3, 2, 2, 7, 1, 1, 3, 3};
	double c[] = {0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 1, 2, 1, 0, 0, 0, 0};
	double eta[] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1.178, 1.07, 1.775, 15.45};
	double beta[] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2.437, 1.488, 4, 418.6};
	double gamma[] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1.2667, 0.4237, 0.8573, 1.15};
	double epsilon[] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.5494, 0.7235, 0.493, 0.8566};

	//Critical parameters
	crit.rho = 2.741016*106.165; //[kg/m^3]
	crit.p = PressureUnit(3622.4, UNIT_KPA); //[kPa]
	crit.T = 617.12; //[K]
	crit.v = 1/crit.rho; 

	// Other fluid parameters
	params.molemass = 106.165;
	params.Ttriple = 178.2;
	params.accentricfactor = 0.304;
	params.R_u = 8.314472;
	params.ptriple = 4.0029622500330704e-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,12,17));
	phirlist.push_back(new phir_gaussian( n,d,t, eta, epsilon, beta, gamma, 13,16,17));

	const double a1 = 5.70409, a2 = -0.52414353, c0 = 5.2557889;
	phi0list.push_back(new phi0_lead(a1,a2));
	phi0list.push_back(new phi0_logtau(c0-1));

	const double u0[] = {0, 585/crit.T, 4420/crit.T, 1673/crit.T};
	const double v0[] = {0, 9.7329909, 11.201832, 25.440749};
	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("Yong Zhou, Jiangtao Wu, Eric W. Lemmon, \"Thermodynamic Properties of o-Xylene, m-Xylene, p-Xylene, and Ethylbenzene\", J. Phys. Chem. Ref. Data, Vol. 41, No. 2, 2012");
	TransportReference.assign("Using ECS in fully predictive mode");

	name.assign("EthylBenzene");
	aliases.push_back("ethylbenzene");
	aliases.push_back(std::string("ETHYLBENZENE"));
	REFPROPname.assign("EBENZENE");

	ECSReferenceFluid = "Propane";

	BibTeXKeys.EOS = "Zhou-JPCRD-2012";
}
Example #9
0
DimethylEtherClass::DimethylEtherClass()
{
	double n[] = {0.0, 0.029814139, 1.43517, -2.64964, -0.29515532, 0.17035607, -0.94642918, -0.099250514, 1.1264071, -0.76936548, -0.020717696, 0.24527037, 1.1863438, -0.49398368, -0.16388716, -0.027583584};
	double t[] = {0, 1, 0.4366, 1.011, 1.137, 0.45, 2.83, 1.5, 1.235, 2.675, 0.7272, 1.816, 1.783, 3.779, 3.282, 1.059};
	double d[] = {0, 4, 1, 1, 2, 3, 1, 3, 2, 2, 7, 1, 1, 1, 3, 3};
	double c[] = {0, 0, 0, 0, 0, 0, 2, 2, 1, 2, 1, 1, 0, 0, 0, 0};
	double eta[] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.965336, 1.50858, 0.963855, 9.72643};
	double beta[] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1.28719, 0.806235, 0.777942, 197.681};
	double gamma[] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1.27772, 0.43075, 0.429607, 1.13849};
	double epsilon[] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.672698, 0.924246, 0.750815, 0.800022};

	//Critical parameters
	crit.rho = 5.940*46.06844; //[kg/m^3]
	crit.p = PressureUnit(5336.8, UNIT_KPA); //[kPa]
	crit.T = 400.378; //[K]
	crit.v = 1/crit.rho; 

	// Other fluid parameters
	params.molemass = 46.06844;
	params.Ttriple = 131.66;
	params.accentricfactor = 0.196;
	params.R_u = 8.314472;
	params.ptriple = 0.0022;

	// 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,11,16));
	phirlist.push_back(new phir_gaussian( n,d,t, eta, epsilon, beta, gamma, 12,15,16));

	const double a1 = -1.980976, a2 = 3.171218, c0 = 4.039;
	phi0list.push_back(new phi0_lead(a1,a2));
	phi0list.push_back(new phi0_logtau(c0-1));

	const double u0[] = {0, 361/crit.T, 974/crit.T, 1916/crit.T, 4150/crit.T};
	const double v0[] = {0, 2.641, 2.123, 8.992, 6.191};
	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,4));

	EOSReference.assign("Jiangtao Wu, Yong Zhou, Eric W. Lemmon, \"An Equation of State for the Thermodynamic Properties of Dimethyl Ether\", J. Phys. Chem. Ref. Data, Vol. 40, No. 2, 2011");
	TransportReference.assign("Viscosity: Xianyang Meng, Jianbo Zhang, Jiangtao Wu, and Zhigang Liu, \" Experimental Measurement and Modeling of the Viscosity of Dimethyl Ether\" J. Chem. Eng.Data 2012, 57, 988-993\n\nErratum: Limits for deltaeta_r sums should be 0-3 and 4-9.  The correct order of terms based on the original indices are 0,1,7,9,2,3,4,5,6,8\n\n"
		"Using ECS in fully predictive mode for viscosity\n\n"
		"Lennard-Jones parameters from Chichester NISTIR 6650");
	name.assign("DimethylEther");
	REFPROPname.assign("DME");

	BibTeXKeys.EOS = "Wu-JPCRD-2011";
	BibTeXKeys.VISCOSITY = "Meng-JCED-2012";
	BibTeXKeys.ECS_LENNARD_JONES = "Chichester-NIST-2008";
	BibTeXKeys.SURFACE_TENSION = "Mulero-JPCRD-2012";
}
Example #10
0
CyclopentaneClass::CyclopentaneClass()
{
	double n[] = {0.0, 0.0536938, 1.60394, -2.41244, -0.474009, 0.203482, -0.965616, -0.344543, 0.353975, -0.231373, -0.0379099, 0.867586, -0.381827, -0.108741, -0.0976984};
	double t[] = {0, 1.0, 0.29, 0.8, 1.14, 0.5, 2.0, 1.5, 1.0, 3.36, 0.95, 1.0, 2.5, 2.5, 1.5};
	double d[] = {0, 4, 1, 1, 2, 3, 1, 3, 2, 2, 7, 1, 1, 3, 3};
	double c[] = {0, 0, 0, 0, 0, 0, 2, 2, 1, 2, 1, 0, 0, 0, 0};
	double eta[] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.82, 1.19, 0.79, 1.52};
	double beta[] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1.15, 1.61, 0.66, 2.72};
	double gamma[] = {0,0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1.08, 0.36, 0.09, 1.48};
	double epsilon[] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.68, 0.97, 0.84, 0.66};

	//Critical parameters
	crit.rho = 3.82*70.1329; //[kg/m^3]
	crit.p = PressureUnit(4571.2, UNIT_KPA); //[kPa]
	crit.T = 511.72; //[K]
	crit.v = 1/crit.rho; 

	// Other fluid parameters
	params.molemass = 70.1329;
	params.Ttriple = 179.7;
	params.accentricfactor = 0.20111257338059896;
	params.R_u = 8.314472;
	params.ptriple = 0.0088542726061155586;

	// 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,15));
	phirlist.push_back(new phir_gaussian( n,d,t, eta, epsilon, beta, gamma, 11,14,15));

	const double n5 = 3.2489131288, n6 = 2.6444166315, n0 = 1.96;
	phi0list.push_back(new phi0_lead(n5,n6));
	phi0list.push_back(new phi0_logtau(n0-1));

	const double u0[] = {0, 120/crit.T, 1300/crit.T, 2700/crit.T, 5300/crit.T};
	const double v0[] = {0, 3.34, 18.6, 13.9, 4.86};
	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,4));

	EOSReference.assign("Holger Gedanitz, Maria J. Davila, Eric W. Lemmon \" Speed of sound measurements and a fundamental equation of state for cyclopentane\" Preprint provided by Eric Lemmon");
	TransportReference.assign("Using ECS in fully predictive mode.");

	name.assign("Cyclopentane");
	aliases.push_back(std::string("CycloPentane"));
	aliases.push_back(std::string("cyclopentane"));
	aliases.push_back(std::string("CYCLOPENTANE"));
	REFPROPname.assign("CYCLOPEN");

	BibTeXKeys.EOS = "Gedanitz-PREPRINT-2013";

}
Example #11
0
MethylOleateClass::MethylOleateClass()
{
	double n[] = {0.0, 0.4596121e-01, 0.2295400e01, -0.3554366e01, -0.2291674, 0.6854534e-01, -0.1535778e01, -0.7334697, 0.1712700e01, -0.1471394e01, -0.1724678e-01, 0.2115470e01, -0.7555374, -0.4134269};
	double d[] = {0.0, 4, 1, 1, 2, 3, 1, 3, 2, 2, 7, 1, 1, 3};
	double t[] = {0.0, 1, 0.34, 1.14, 1.4, 0.6, 3.3, 4.1, 1.9, 3.8, 1.3, 3.4, 3.8, 4};
	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.81285*296.48794; //[kg/m^3]
	crit.p = PressureUnit(1246, UNIT_KPA); //[kPa]
	crit.T = 782; //[K]
	crit.v = 1/crit.rho; 

	// Other fluid parameters
	params.molemass = 296.48794; // From REFPROP, not provided in paper (but should be!!)
	params.Ttriple = 253.47; // From REFPROP, not provided in paper
	params.accentricfactor = 0.90584935998790117;
	params.R_u = 8.314472;
	params.ptriple = 7.283926368e-11;

	// 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, 613.529/crit.T, 1405.31/crit.T, 2867.76/crit.T};
	const double v0[] = {0, 234.797/params.R_u, 335.768/params.R_u, 431.66/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(90.2385/params.R_u,0.146118,crit.T,298));
	phi0list.push_back(new phi0_Planck_Einstein(v0_v,u0_v,1,3));

	EOSReference.assign("Marcia L. Huber, Eric W. Lemmon, Andrei Kazakov, Lisa S. Ott and Thomas J. Bruno, \"Model for the Thermodynamic Properties of a Biodiesel Fuel\", Energy & Fuels 2009, 23, 3790-3797");
	TransportReference.assign("Using ECS in fully predictive mode");

	name.assign("MethylOleate");
	aliases.push_back(std::string("METHYLOLEATE"));
	REFPROPname.assign("MOLEATE");

	ECSReferenceFluid = "Propane";

	BibTeXKeys.EOS = "Huber-EF-2009";
}
Example #12
0
MethylLinolenateClass::MethylLinolenateClass()
{
	double n[] = {0.0, 0.4070829e-01, 0.2412375e01, -0.3756194e01, -0.1526466, 0.4682918e-01, -0.1470958e01, -0.7645500, 0.1908964e01, -0.1629366e01, -0.1242073e-01, 0.2180707e01, -0.7537264, -0.4347781};
	double d[] = {0.0, 4, 1, 1, 2, 3, 1, 3, 2, 2, 7, 1, 1, 3};
	double t[] = {0.0, 1, 0.15, 1.24, 1.6, 1.28, 2.9, 3.15, 2.16, 2.8, 1.4, 2.5, 3, 3.1};
	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.8473*292.45618; //[kg/m^3]
	crit.p = PressureUnit(1369, UNIT_KPA); //[kPa]
	crit.T = 772; //[K]
	crit.v = 1/crit.rho; 

	// Other fluid parameters
	params.molemass = 292.45618; // From REFPROP, not provided in paper (but should be!!)
	params.Ttriple = 260;
	params.accentricfactor = 1.1426052586734956;
	params.R_u = 8.314472;
	params.ptriple = 4.25028035475e-10;

	// 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, 1213.24/crit.T, 578.752/crit.T, 2799.79/crit.T};
	const double v0[] = {0, 290.379/params.R_u, 81.4323/params.R_u, 474.881/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(79.5913/params.R_u,0.214648,crit.T,298));
	phi0list.push_back(new phi0_Planck_Einstein(v0_v,u0_v,1,3));

	EOSReference.assign("Marcia L. Huber, Eric W. Lemmon, Andrei Kazakov, Lisa S. Ott and Thomas J. Bruno, \"Model for the Thermodynamic Properties of a Biodiesel Fuel\", Energy & Fuels 2009, 23, 3790-3797");
	TransportReference.assign("Using ECS in fully predictive mode");

	name.assign("MethylLinolenate");
	aliases.push_back(std::string("METHYLLINOLENATE"));
	REFPROPname.assign("MLINOLEN");

	ECSReferenceFluid = "Propane";

	BibTeXKeys.EOS = "Huber-EF-2009";
}
Example #13
0
MethylPalmitateClass::MethylPalmitateClass()
{
	double n[] = {0.0, 0.4282821e-01, 0.2443162e01, -0.3757540e01, -0.1588526, 0.4055990e-01, -0.1524090e01, -0.7686167, 0.1799950e01, -0.1590967e01, -0.1267681e-01, 0.2198347e01, -0.7737211, -0.4314520};
	double d[] = {0.0, 4, 1, 1, 2, 3, 1, 3, 2, 2, 7, 1, 1, 3};
	double t[] = {0.0, 1, 0.36, 1.22, 1.45, 0.7, 3, 3.9, 2.2, 2.9, 1.25, 2.6, 3.0, 3.2};
	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.897*270.45066; //[kg/m^3]
	crit.p = PressureUnit(1350, UNIT_KPA); //[kPa]
	crit.T = 755; //[K]
	crit.v = 1/crit.rho; 

	// Other fluid parameters
	params.molemass = 270.45066; // http://pubchem.ncbi.nlm.nih.gov/summary/summary.cgi?cid=8181#x27 (not provided in reference paper)
	params.Ttriple = 302.71; // From REFPROP, not provided in paper
	params.accentricfactor = 0.910316178;
	params.R_u = 8.314472;
	params.ptriple = 1.6401417670571351e-005;

	// 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, 2952.37/crit.T, 734.653/crit.T, 1593.55/crit.T};
	const double v0[] = {0, 345.62/params.R_u, 289.038/params.R_u, 301.639/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(120.529/params.R_u,0.0801627,crit.T,298));
	phi0list.push_back(new phi0_Planck_Einstein(v0_v,u0_v,1,3));

	EOSReference.assign("Marcia L. Huber, Eric W. Lemmon, Andrei Kazakov, Lisa S. Ott and Thomas J. Bruno, \"Model for the Thermodynamic Properties of a Biodiesel Fuel\", Energy & Fuels 2009, 23, 3790-3797");
	TransportReference.assign("Using ECS in fully predictive mode");

	ECSReferenceFluid = "Propane";

	name.assign("MethylPalmitate");
	aliases.push_back(std::string("METHYLPALMITATE"));
	REFPROPname.assign("MPALMITA");

	BibTeXKeys.EOS = "Huber-EF-2009";
}
Example #14
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(1350, 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.0548242393764551;
	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));

	EOSReference.assign("Marcia L. Huber, Eric W. Lemmon, Andrei Kazakov, Lisa S. Ott and Thomas J. Bruno, \"Model for the Thermodynamic Properties of a Biodiesel Fuel\", Energy & Fuels 2009, 23, 3790-3797");
	TransportReference.assign("Using ECS in fully predictive mode");

	name.assign("MethylStearate");
	REFPROPname.assign("MSTEARAT");

	ECSReferenceFluid = "Propane";

	BibTeXKeys.EOS = "Huber-EF-2009";
}
Example #15
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";
}
Example #16
0
//D5
DecamethylcyclopentasiloxaneClass::DecamethylcyclopentasiloxaneClass()
{
	const double d[] =
	{
	0,
	1.0, //[1]
	1.0, //[2]
	1.0, //[3]
	2.0, //[4]
	3.0, //[5]
	7.0, //[6]
	2.0, //[7]
	5.0, //[8]
	1.0, //[9]
	4.0, //[10]
	3.0, //[11]
	4.0, //[12]
	};

	const double t[] =
	{
	0,
	0.25,  //[1]
	1.125, //[2]
	1.5,   //[3]
	1.375, //[4]
	0.25,  //[5]
	0.875, //[6]
	0.625, //[7]
	1.75,  //[8]
	3.625, //[9]
	3.625, //[10]
	14.5,  //[11]
	12.0,  //[12]
	};

	const double l[] =
	{
	0,
	0.0, //[1]
	0.0, //[2]
	0.0, //[3]
	0.0, //[4]
	0.0, //[5]
	0.0, //[6]
	1.0, //[7]
	1.0, //[8]
	2.0, //[9]
	2.0, //[10]
	3.0, //[11]
	3.0, //[12]
	};
    const double n[]={0.0,1.40844725,-2.29248044,0.42851607,-0.73506382,0.16103808,0.00029643278,0.82412481,0.15214274,-0.6849589,-0.055703624,0.013055391,-0.031853761};
    // divided by R_u to give cp0/R_u terms like in Lemmon 2000
	const double u0[]={0.0,-4.19725991019033,0.223886736283434,-0.000168790032608204,6.01361096651718E-08};
	const double n0[]={0.0,0,1,2,3};
	std::vector<double> n_v(n,n+sizeof(n)/sizeof(double));
	std::vector<double> u0_v(u0,u0+sizeof(u0)/sizeof(double));
	std::vector<double> n0_v(n0,n0+sizeof(n0)/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));

    // Critical parameters
	crit.rho = 304.90928495748;
	crit.p = PressureUnit(1160, UNIT_KPA);
	crit.T = 619.15;
    crit.v = 1.0/crit.rho;

	// Load up a new structure with reducing parameters
	reduce.rho = 292.570762680819;
	reduce.p = PressureUnit(1161.46, UNIT_KPA);
	reduce.T = 619.23462341;
    reduce.v = 1.0/reduce.rho;
	
	preduce = &reduce;

    // Other fluid parameters
	params.molemass=370.7697;
	params.Ttriple=226;
	params.accentricfactor=0.658;
    params.R_u = 8.314472;

	// Calculated at Tmin
	params.ptriple = 0.0275116653286;

    // Limits of EOS
    limits.Tmin = 300;
    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,12,13));

	double T0 = 484.050286854327,
		   rho0 = 727.981991948461,
		   R_ = params.R_u/params.molemass,
		   m,
		   c,
		   H0 = 115.63073039269375, /// kJ/kmol
		   S0 = 0.14017795179966980, /// kJ/kmol/K
		   tau0=crit.T/T0,
		   delta0=rho0/crit.rho;
	
	// log(delta)+c+m*tau
	
	/// c is the constant term
	c=-S0/R_-1+log(tau0/delta0);/*<< from the leading term*/

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

	phi_BC * phi0_lead_ = new phi0_lead(c,m);
	phi0list.push_back(phi0_lead_);

	phi_BC * phi0_logtau_ = new phi0_logtau(-1.0);
	phi0list.push_back(phi0_logtau_);

	phi0list.push_back(new phi0_cp0_constant(u0_v[1],reduce.T,T0));

	phi_BC * phi0_cp0_poly_ = new phi0_cp0_poly(u0_v,n0_v,reduce.T,T0,2,4);
	phi0list.push_back(phi0_cp0_poly_);

    EOSReference.assign("Colonna, P., N.R. Nannan, A. Guardone, E.W. Lemmon, \"Multiparameter equations of state for selected siloxanes\", Fluid Phase Equilibria 244 (2006) 193-211.");
    TransportReference.assign("Using ECS in fully predictive mode");

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

	ECSReferenceFluid = "Nitrogen";

	BibTeXKeys.EOS = "Colonna-FPE-2006";
	BibTeXKeys.SURFACE_TENSION = "Mulero-JPCRD-2012";
}
Example #17
0
//MD2M
DecamethyltetrasiloxaneClass::DecamethyltetrasiloxaneClass()
{
	const double d[] =
	{
	0,
	1.0, //[1]
	1.0, //[2]
	1.0, //[3]
	2.0, //[4]
	3.0, //[5]
	7.0, //[6]
	2.0, //[7]
	5.0, //[8]
	1.0, //[9]
	4.0, //[10]
	3.0, //[11]
	4.0, //[12]
	};

	const double t[] =
	{
	0,
	0.25,  //[1]
	1.125, //[2]
	1.5,   //[3]
	1.375, //[4]
	0.25,  //[5]
	0.875, //[6]
	0.625, //[7]
	1.75,  //[8]
	3.625, //[9]
	3.625, //[10]
	14.5,  //[11]
	12.0,  //[12]
	};

	const double l[] =
	{
	0,
	0.0, //[1]
	0.0, //[2]
	0.0, //[3]
	0.0, //[4]
	0.0, //[5]
	0.0, //[6]
	1.0, //[7]
	1.0, //[8]
	2.0, //[9]
	2.0, //[10]
	3.0, //[11]
	3.0, //[12]
	};
    const double n[]={0.0,1.33840331,-2.62939393,0.4398383,-0.53496715,0.1818844,0.00040774609,1.13444506,0.05774631,-0.5917498,-0.11020225,-0.034942635,0.007646298};
    const double u0[]={0.0,331.9,777.1,1813.8,521.4,795.1};

	std::vector<double> u0_v(u0,u0+sizeof(u0)/sizeof(double));

    // Critical parameters
    crit.rho=284.171639662027;
	crit.p= PressureUnit(1227, UNIT_KPA);
	crit.T=599.4;
    crit.v = 1.0/crit.rho;

    // Other fluid parameters
	params.molemass=310.685;
	params.Ttriple=205.2;
	params.accentricfactor=0.668;
    params.R_u = 8.314472;
	params.ptriple = 4.79509942923e-07;

    // 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,12,13));

	double T0 = 467.506025761878,
		   rho0 = 666.100681528704,
		   R_ = params.R_u/params.molemass,
		   m,
		   c,
		   H0 = 133.21777124359349, /// kJ/kmol
		   S0 = 0.16466470350893656, /// kJ/kmol/K
		   tau0=crit.T/T0,
		   delta0=rho0/crit.rho;
	
	// log(delta)+c+m*tau
	
	/// c is the constant term
	c=-S0/R_-1+log(tau0/delta0);/*<< from the leading term*/

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

	phi_BC * phi0_lead_ = new phi0_lead(c,m);
	phi0list.push_back(phi0_lead_);

	phi_BC * phi0_logtau_ = new phi0_logtau(-1.0);
	phi0list.push_back(phi0_logtau_);

	phi_BC * phi0_cp0_AlyLee_ = new phi0_cp0_AlyLee(u0_v,crit.T,T0,params.R_u);
	phi0list.push_back(phi0_cp0_AlyLee_);

    EOSReference.assign("Colonna, P., N.R. Nannan, A. Guardone, \"Multiparameter equations of state for siloxanes: [(CH3)3-Si-O1/2]2-[O-Si-(CH3)2]i=1,...,3, and [O-Si-(CH3)2]6,\", Fluid Phase Equilibria 263 (2008) 115-130.");
    TransportReference.assign("Using ECS in fully predictive mode");

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

	ECSReferenceFluid = "Nitrogen";

	BibTeXKeys.EOS = "Colonna-FPE-2008";
	BibTeXKeys.SURFACE_TENSION = "Mulero-JPCRD-2012";
}
Example #18
0
//MD3M
DodecamethylpentasiloxaneClass::DodecamethylpentasiloxaneClass()
{
	const double d[] =
	{
	0,
	1.0, //[1]
	1.0, //[2]
	1.0, //[3]
	2.0, //[4]
	3.0, //[5]
	7.0, //[6]
	2.0, //[7]
	5.0, //[8]
	1.0, //[9]
	4.0, //[10]
	3.0, //[11]
	4.0, //[12]
	};

	const double t[] =
	{
	0,
	0.25,  //[1]
	1.125, //[2]
	1.5,   //[3]
	1.375, //[4]
	0.25,  //[5]
	0.875, //[6]
	0.625, //[7]
	1.75,  //[8]
	3.625, //[9]
	3.625, //[10]
	14.5,  //[11]
	12.0,  //[12]
	};

	const double l[] =
	{
	0,
	0.0, //[1]
	0.0, //[2]
	0.0, //[3]
	0.0, //[4]
	0.0, //[5]
	0.0, //[6]
	1.0, //[7]
	1.0, //[8]
	2.0, //[9]
	2.0, //[10]
	3.0, //[11]
	3.0, //[12]
	};
    const double n[]={0.0,1.20540386,-2.42914797,0.69016432,-0.69268041,0.18506046,0.00031161436,0.99862519,0.074229034,-0.80259136,-0.20865337,-0.036461791,0.019174051};
    const double u0[]={0.0,463.2,957.2,2117.1,738.3,908.5};

	std::vector<double> u0_v(u0,u0+sizeof(u0)/sizeof(double));

    // Critical parameters
    crit.rho=263.921879135305;
	crit.p= PressureUnit(945, UNIT_KPA);
	crit.T=628.36;
    crit.v = 1.0/crit.rho;

    // Other fluid parameters
	params.molemass=384.839;
	params.Ttriple=192;
	params.accentricfactor=0.722;
    params.R_u = 8.314472;
	params.ptriple = 2.05774764356e-10;

    // 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,12,13));

	double T0 = 503.022623775204,
		   rho0 = 653.620754664036,
		   R_ = params.R_u/params.molemass,
		   m,
		   c,
		   H0 = 113.59777719014585, /// kJ/kmol
		   S0 = 0.13288817176242626, /// kJ/kmol/K
		   tau0=crit.T/T0,
		   delta0=rho0/crit.rho;
	
	// log(delta)+c+m*tau
	
	/// c is the constant term
	c=-S0/R_-1+log(tau0/delta0);/*<< from the leading term*/

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

	phi_BC * phi0_lead_ = new phi0_lead(c,m);
	phi0list.push_back(phi0_lead_);

	phi_BC * phi0_logtau_ = new phi0_logtau(-1.0);
	phi0list.push_back(phi0_logtau_);

	phi_BC * phi0_cp0_AlyLee_ = new phi0_cp0_AlyLee(u0_v,crit.T,T0,params.R_u);
	phi0list.push_back(phi0_cp0_AlyLee_);

    EOSReference.assign("Colonna, P., N.R. Nannan, A. Guardone, \"Multiparameter equations of state for siloxanes: [(CH3)3-Si-O1/2]2-[O-Si-(CH3)2]i=1,...,3, and [O-Si-(CH3)2]6,\", Fluid Phase Equilibria 263 (2008) 115-130.");
    TransportReference.assign("Using ECS in fully predictive mode");

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

	ECSReferenceFluid = "Nitrogen";

	BibTeXKeys.EOS = "Colonna-FPE-2008";
	BibTeXKeys.SURFACE_TENSION = "Mulero-JPCRD-2012";
}
Example #19
0
//MD4M
TetradecamethylhexasiloxaneClass::TetradecamethylhexasiloxaneClass()
{
	const double d[] =
	{
	0,
	1.0, //[1]
	1.0, //[2]
	1.0, //[3]
	2.0, //[4]
	3.0, //[5]
	7.0, //[6]
	2.0, //[7]
	5.0, //[8]
	1.0, //[9]
	4.0, //[10]
	3.0, //[11]
	4.0, //[12]
	};

	const double t[] =
	{
	0,
	0.25,  //[1]
	1.125, //[2]
	1.5,   //[3]
	1.375, //[4]
	0.25,  //[5]
	0.875, //[6]
	0.625, //[7]
	1.75,  //[8]
	3.625, //[9]
	3.625, //[10]
	14.5,  //[11]
	12.0,  //[12]
	};

	const double l[] =
	{
	0,
	0.0, //[1]
	0.0, //[2]
	0.0, //[3]
	0.0, //[4]
	0.0, //[5]
	0.0, //[6]
	1.0, //[7]
	1.0, //[8]
	2.0, //[9]
	2.0, //[10]
	3.0, //[11]
	3.0, //[12]
	};
    const double n[]={0.0,1.18492421,-1.87465636,-0.06571351,-0.61812689,0.19535804,0.0005067874,1.23544082,0.049462708,-0.73685283,-0.19991438,-0.055118673,0.028325885};
    // divided by R_u to give cp0/R_u terms like in Lemmon 2000
	const double u0[]={0.0,-2.41398371417933,0.268026640777671,-0.000157724988429812,3.44219091723443E-08};
	const double n0[]={0.0,0,1,2,3};

	std::vector<double> u0_v(u0,u0+sizeof(u0)/sizeof(double));
	std::vector<double> n0_v(n0,n0+sizeof(n0)/sizeof(double));

    // Critical parameters
	crit.rho = 278.177742672768;
	crit.p = PressureUnit(877.0, UNIT_KPA);
	crit.T =653.2;
    crit.v = 1.0/crit.rho;

	// Load up a new structure with reducing parameters
	reduce.rho = 285.657653221363;
	reduce.p = PressureUnit(877.47, UNIT_KPA);
	reduce.T = 653.2;
    reduce.v = 1.0/reduce.rho;
	
	preduce = &reduce;

    // Other fluid parameters
	params.molemass=458.99328;
	params.Ttriple=214.15;
	params.accentricfactor=0.82464714726429245;
    params.R_u = 8.314472;
	// Caution calculated at Tmin
	params.ptriple = 0.00109337696739;


    // Limits of EOS
    limits.Tmin = 300;
    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,12,13));

	double T0 = 532.723355998617,
		   rho0 = 651.644500503887,
		   R_ = params.R_u/params.molemass,
		   m,
		   c,
		   H0 = 103.76393935240931, /// kJ/kmol
		   S0 = 0.11760337078430246, /// kJ/kmol/K
		   tau0=crit.T/T0,
		   delta0=rho0/crit.rho;
	
	// log(delta)+c+m*tau
	
	/// c is the constant term
	c=-S0/R_-1+log(tau0/delta0);/*<< from the leading term*/

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

	phi_BC * phi0_lead_ = new phi0_lead(c,m);
	phi0list.push_back(phi0_lead_);

	phi_BC * phi0_logtau_ = new phi0_logtau(-1.0);
	phi0list.push_back(phi0_logtau_);

	phi0list.push_back(new phi0_cp0_constant(u0_v[1],reduce.T,T0));

	phi_BC * phi0_cp0_poly_ = new phi0_cp0_poly(u0_v,n0_v,reduce.T,T0,2,4);
	phi0list.push_back(phi0_cp0_poly_);

    EOSReference.assign("Colonna, P., N.R. Nannan, A. Guardone, E.W. Lemmon, \"Multiparameter equations of state for selected siloxanes\", Fluid Phase Equilibria 244 (2006) 193-211.");
    TransportReference.assign("Using ECS in fully predictive mode");

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

	ECSReferenceFluid = "Nitrogen";

	BibTeXKeys.EOS = "Colonna-FPE-2006";
	BibTeXKeys.SURFACE_TENSION = "Mulero-JPCRD-2012";
}
Example #20
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";

}
Example #21
0
//D4
OctamethylcyclotetrasiloxaneClass::OctamethylcyclotetrasiloxaneClass()
{
	const double d[] =
	{
	0,
	1.0, //[1]
	1.0, //[2]
	1.0, //[3]
	2.0, //[4]
	3.0, //[5]
	7.0, //[6]
	2.0, //[7]
	5.0, //[8]
	1.0, //[9]
	4.0, //[10]
	3.0, //[11]
	4.0, //[12]
	};

	const double t[] =
	{
	0,
	0.25,  //[1]
	1.125, //[2]
	1.5,   //[3]
	1.375, //[4]
	0.25,  //[5]
	0.875, //[6]
	0.625, //[7]
	1.75,  //[8]
	3.625, //[9]
	3.625, //[10]
	14.5,  //[11]
	12.0,  //[12]
	};

	const double l[] =
	{
	0,
	0.0, //[1]
	0.0, //[2]
	0.0, //[3]
	0.0, //[4]
	0.0, //[5]
	0.0, //[6]
	1.0, //[7]
	1.0, //[8]
	2.0, //[9]
	2.0, //[10]
	3.0, //[11]
	3.0, //[12]
	};
    const double n[]={0.0,1.05392408,-2.22981918,0.77573923,-0.6937405,0.18721557,0.0004219333,0.70301835,0.047851888,-0.8025348,-0.18968872,-0.022211781,0.0060103354};
    // divided by R_u to give cp0/R_u terms like in Lemmon 2000
	const double u0[]={0.0,-2.19568963609475,0.171652511428266,-0.000119093551580906,3.60816657991031E-08};
	const double n0[]={0.0,0,1,2,3};

	std::vector<double> u0_v(u0,u0+sizeof(u0)/sizeof(double));
	std::vector<double> n0_v(n0,n0+sizeof(n0)/sizeof(double));

    // Critical parameters
	crit.rho = 305.78949222528007;
	crit.p = PressureUnit(1332.0, UNIT_KPA);
	crit.T = 586.5;
    crit.v = 1.0/crit.rho;

	// Load up a new structure with reducing parameters
	reduce.rho = 307.033590673606;
	reduce.p = PressureUnit(1332, UNIT_KPA);
	reduce.T = 586.49127187;
    reduce.v = 1.0/reduce.rho;
	
	preduce = &reduce;

    // Other fluid parameters
	params.molemass=296.61576;
	params.Ttriple=290.25;
	params.accentricfactor=0.592;
    params.R_u = 8.314472;
	// Caution calculated at Tmin
	params.ptriple = 0.069609237623675213;

    // 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,12,13));

	double T0 = 448.503917912145,
		   rho0 = 764.965030584005,
		   R_ = params.R_u/params.molemass,
		   m,
		   c,
		   H0 = -230.50524687772113, /// kJ/kmol
		   S0 = -0.86432336859980707, /// kJ/kmol/K
		   tau0=crit.T/T0,
		   delta0=rho0/crit.rho;
	
	// log(delta)+c+m*tau
	
	/// c is the constant term
	c=-S0/R_-1+log(tau0/delta0);/*<< from the leading term*/

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

	phi_BC * phi0_lead_ = new phi0_lead(c,m);
	phi0list.push_back(phi0_lead_);

	phi_BC * phi0_logtau_ = new phi0_logtau(-1.0);
	phi0list.push_back(phi0_logtau_);

	phi0list.push_back(new phi0_cp0_constant(u0_v[1],reduce.T,T0));

	phi_BC * phi0_cp0_poly_ = new phi0_cp0_poly(u0_v,n0_v,reduce.T,T0,2,4);
	phi0list.push_back(phi0_cp0_poly_);

    EOSReference.assign("Colonna, P., N.R. Nannan, A. Guardone, E.W. Lemmon, \"Multiparameter equations of state for selected siloxanes\", Fluid Phase Equilibria 244 (2006) 193-211.");
    TransportReference.assign("Using ECS in fully predictive mode");

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

	ECSReferenceFluid = "Nitrogen";

	BibTeXKeys.EOS = "Colonna-FPE-2006";
	BibTeXKeys.SURFACE_TENSION = "Mulero-JPCRD-2012";
}
Example #22
0
//MDM
OctamethyltrisiloxaneClass::OctamethyltrisiloxaneClass()
{
	const double d[] =
	{
	0,
	1.0, //[1]
	1.0, //[2]
	1.0, //[3]
	2.0, //[4]
	3.0, //[5]
	7.0, //[6]
	2.0, //[7]
	5.0, //[8]
	1.0, //[9]
	4.0, //[10]
	3.0, //[11]
	4.0, //[12]
	};

	const double t[] =
	{
	0,
	0.25,  //[1]
	1.125, //[2]
	1.5,   //[3]
	1.375, //[4]
	0.25,  //[5]
	0.875, //[6]
	0.625, //[7]
	1.75,  //[8]
	3.625, //[9]
	3.625, //[10]
	14.5,  //[11]
	12.0,  //[12]
	};

	const double l[] =
	{
	0,
	0.0, //[1]
	0.0, //[2]
	0.0, //[3]
	0.0, //[4]
	0.0, //[5]
	0.0, //[6]
	1.0, //[7]
	1.0, //[8]
	2.0, //[9]
	2.0, //[10]
	3.0, //[11]
	3.0, //[12]
	};
    const double n[]={0.0,1.19735372,-2.40380622,0.3256564,-0.19971259,0.11206277,0.00015893999,0.51234323,-0.020660361,-0.38978114,-0.1186931,-0.037203537,0.018359984};
    const double u0[]={0.0,275.1,612.9,1829.6,413.0,802.6};

	std::vector<double> u0_v(u0,u0+sizeof(u0)/sizeof(double));

    // Critical parameters
    crit.rho = 256.739908797209;
    crit.p = PressureUnit(1415, UNIT_KPA);
    crit.T = 564.09;
    crit.v = 1.0/crit.rho;

    // Other fluid parameters
    params.molemass = 236.53146;
    params.Ttriple = 187.2;
    params.accentricfactor = 0.5297;
    params.R_u = 8.314472;
	params.ptriple = 7.9911106087e-07;

    // 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,12,13));

	double T0 = 425.676967,
		   R_ = 8.314472/params.molemass,
		   rho0 = 675.2187471,
		   m,
		   c,
		   H0 = 156.46565194801141, /// kJ/kmol
		   S0 = 0.20329670191815147, /// kJ/kmol/K
		   tau0=crit.T/T0,
		   delta0=rho0/crit.rho;
	
	// log(delta)+c+m*tau
	
	/// c is the constant term
	c=-S0/R_-1+log(tau0/delta0);/*<< from the leading term*/

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

	phi_BC * phi0_lead_ = new phi0_lead(c,m);
	phi0list.push_back(phi0_lead_);

	phi_BC * phi0_logtau_ = new phi0_logtau(-1.0);
	phi0list.push_back(phi0_logtau_);

	phi_BC * phi0_cp0_AlyLee_ = new phi0_cp0_AlyLee(u0_v,crit.T,T0,params.R_u);
	phi0list.push_back(phi0_cp0_AlyLee_);

    EOSReference.assign("Colonna, P., N.R. Nannan, A. Guardone, \"Multiparameter equations of state for siloxanes: [(CH3)3-Si-O1/2]2-[O-Si-(CH3)2]i=1,...,3, and [O-Si-(CH3)2]6,\", Fluid Phase Equilibria 263 (2008) 115-130.");
    TransportReference.assign("Using ECS in fully predictive mode");

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

	ECSReferenceFluid = "Nitrogen";

	BibTeXKeys.EOS = "Colonna-FPE-2008";
	BibTeXKeys.SURFACE_TENSION = "Mulero-JPCRD-2012";
}
Example #23
0
//D6
DodecamethylcyclohexasiloxaneClass::DodecamethylcyclohexasiloxaneClass()
{
	const double d[] =
	{
	0,
	1.0, //[1]
	1.0, //[2]
	1.0, //[3]
	2.0, //[4]
	3.0, //[5]
	7.0, //[6]
	2.0, //[7]
	5.0, //[8]
	1.0, //[9]
	4.0, //[10]
	3.0, //[11]
	4.0, //[12]
	};

	const double t[] =
	{
	0,
	0.25,  //[1]
	1.125, //[2]
	1.5,   //[3]
	1.375, //[4]
	0.25,  //[5]
	0.875, //[6]
	0.625, //[7]
	1.75,  //[8]
	3.625, //[9]
	3.625, //[10]
	14.5,  //[11]
	12.0,  //[12]
	};

	const double l[] =
	{
	0,
	0.0, //[1]
	0.0, //[2]
	0.0, //[3]
	0.0, //[4]
	0.0, //[5]
	0.0, //[6]
	1.0, //[7]
	1.0, //[8]
	2.0, //[9]
	2.0, //[10]
	3.0, //[11]
	3.0, //[12]
	};
    const double n[]={0.0,1.69156186,-3.37962568,0.38609039,0.064598995,0.10589012,0.000045456825,0.74169279,-0.088102648,-0.17373336,-0.10951368,-0.062695695,0.037459986};
    const double u0[]={0.0,468.7,981.2,1792.1,686.7,786.8};

	std::vector<double> u0_v(u0,u0+sizeof(u0)/sizeof(double));


    // Critical parameters
	crit.rho=279.095729841367;
	crit.p= PressureUnit(961, UNIT_KPA);
	crit.T=645.78;
    crit.v = 1.0/crit.rho;

    // Other fluid parameters
	params.molemass=444.924;
	params.Ttriple=270.2;
	params.accentricfactor=0.736;
    params.R_u = 8.314472;
	params.ptriple = 0.000159753038201;

    // 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,12,13));

	double T0 = 518.109977174843,
		   rho0 = 704.948896461078,
		   R_ = params.R_u/params.molemass,
		   m,
		   c,
		   H0 = 102.00241183448354, /// kJ/kmol
		   S0 = 0.11646477379595818, /// kJ/kmol/K
		   tau0=crit.T/T0,
		   delta0=rho0/crit.rho;
	
	// log(delta)+c+m*tau
	
	/// c is the constant term
	c=-S0/R_-1+log(tau0/delta0);/*<< from the leading term*/

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

	phi_BC * phi0_lead_ = new phi0_lead(c,m);
	phi0list.push_back(phi0_lead_);

	phi_BC * phi0_logtau_ = new phi0_logtau(-1.0);
	phi0list.push_back(phi0_logtau_);

	phi_BC * phi0_cp0_AlyLee_ = new phi0_cp0_AlyLee(u0_v,crit.T,T0,params.R_u);
	phi0list.push_back(phi0_cp0_AlyLee_);

    EOSReference.assign("Colonna, P., N.R. Nannan, A. Guardone, \"Multiparameter equations of state for siloxanes: [(CH3)3-Si-O1/2]2-[O-Si-(CH3)2]i=1,...,3, and [O-Si-(CH3)2]6,\", Fluid Phase Equilibria 263 (2008) 115-130.");
    TransportReference.assign("Using ECS in fully predictive mode");

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

	ECSReferenceFluid = "Nitrogen";

	BibTeXKeys.EOS = "Colonna-FPE-2008";
	BibTeXKeys.SURFACE_TENSION = "Mulero-JPCRD-2012";
}
Example #24
0
//MM
HexamethyldisiloxaneClass::HexamethyldisiloxaneClass()
{
	const double d[] =
	{
	0,
	1.0, //[1]
	1.0, //[2]
	1.0, //[3]
	2.0, //[4]
	3.0, //[5]
	7.0, //[6]
	2.0, //[7]
	5.0, //[8]
	1.0, //[9]
	4.0, //[10]
	3.0, //[11]
	4.0, //[12]
	};

	const double t[] =
	{
	0,
	0.25,  //[1]
	1.125, //[2]
	1.5,   //[3]
	1.375, //[4]
	0.25,  //[5]
	0.875, //[6]
	0.625, //[7]
	1.75,  //[8]
	3.625, //[9]
	3.625, //[10]
	14.5,  //[11]
	12.0,  //[12]
	};

	const double l[] =
	{
	0,
	0.0, //[1]
	0.0, //[2]
	0.0, //[3]
	0.0, //[4]
	0.0, //[5]
	0.0, //[6]
	1.0, //[7]
	1.0, //[8]
	2.0, //[9]
	2.0, //[10]
	3.0, //[11]
	3.0, //[12]
	};
    const double n[]={0.0,1.01686012,-2.19713029,0.75443188,-0.68003426,0.19082162,0.0010530133,0.6284595,0.030903042,-0.83948727,-0.20262381,-0.035131597,0.025902341};
    // divided by R_u to give cp0/R_u terms like in Lemmon 2000
	const double u0[]={0.0,6.24140654992885,0.0891626070783569,-5.00332432414229E-05,8.41905535312405E-09};
	const double n0[]={0.0,0,1,2,3};

	std::vector<double> u0_v(u0,u0+sizeof(u0)/sizeof(double));
	std::vector<double> n0_v(n0,n0+sizeof(n0)/sizeof(double));

    // Critical parameters
	crit.rho = 258.151840734;
	crit.p = PressureUnit(1939.0, UNIT_KPA);
	crit.T = 518.75;
    crit.v = 1.0/crit.rho;

	// Load up a new structure with reducing parameters
	reduce.rho = 1.87467076*162.37752;
	reduce.p = PressureUnit(1939.39, UNIT_KPA);
	reduce.T = 518.69997204;
    reduce.v = 1.0/reduce.rho;
	
	preduce = &reduce;

    // Other fluid parameters
	params.molemass = 162.37752;
	params.Ttriple = 204.93;
	params.accentricfactor = 0.418;
    params.R_u = 8.314472;
	params.ptriple = 1.3169852229396559;

    // Limits of EOS
    limits.Tmin = 273;
    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,12,13));

	double T0 = 373.400735665744,
		   rho0 = 681.39621296599,
		   R_ = params.R_u/params.molemass,
		   m,
		   c,
		   H0 = -162.96488124949261, /// kJ/kmol
		   S0 = -0.52817673665136178, /// kJ/kmol/K
		   tau0=crit.T/T0,
		   delta0=rho0/crit.rho;
	
	// log(delta)+c+m*tau
	
	/// c is the constant term
	c=-S0/R_-1+log(tau0/delta0);/*<< from the leading term*/

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

	phi_BC * phi0_lead_ = new phi0_lead(c,m);
	phi0list.push_back(phi0_lead_);

	phi0list.push_back(new phi0_logtau(-1.0));

	phi0list.push_back(new phi0_cp0_constant(u0[1],reduce.T,T0));
	
	phi0list.push_back(new phi0_cp0_poly(u0_v,n0_v,reduce.T,T0,2,4));

    EOSReference.assign("Colonna, P., N.R. Nannan, A. Guardone, E.W. Lemmon, \"Multiparameter equations of state for selected siloxanes\", Fluid Phase Equilibria 244 (2006) 193-211.");
    TransportReference.assign("Using ECS in fully predictive mode");

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

	ECSReferenceFluid = "Nitrogen";

	BibTeXKeys.EOS = "Colonna-FPE-2006";
	BibTeXKeys.SURFACE_TENSION = "Mulero-JPCRD-2012";
}