From bf3cd4a614a994656a58f9748ae735db2bf77050 Mon Sep 17 00:00:00 2001 From: Ian Bell Date: Wed, 10 Dec 2014 23:00:28 -0500 Subject: [PATCH] Update the ECS solver, all transport tests pass Signed-off-by: Ian Bell --- src/Backends/Helmholtz/TransportRoutines.cpp | 11 +++++++---- src/Tests/CoolProp-Tests.cpp | 16 ++++++++-------- 2 files changed, 15 insertions(+), 12 deletions(-) diff --git a/src/Backends/Helmholtz/TransportRoutines.cpp b/src/Backends/Helmholtz/TransportRoutines.cpp index 7f2d0992..f4853977 100644 --- a/src/Backends/Helmholtz/TransportRoutines.cpp +++ b/src/Backends/Helmholtz/TransportRoutines.cpp @@ -942,7 +942,7 @@ void TransportRoutines::conformal_state_solver(HelmholtzEOSMixtureBackend &HEOS, Eigen::Vector2d r; Eigen::Matrix2d J; // Update the reference fluid with the conformal state - HEOS_Reference.update(DmolarT_INPUTS, rhomolar0, T0); + HEOS_Reference.update_DmolarT_direct(rhomolar0, T0); do{ long double dtau_dT = -HEOS_Reference.T_critical()/(T0*T0); long double ddelta_drho = 1/HEOS_Reference.rhomolar_critical(); @@ -969,7 +969,7 @@ void TransportRoutines::conformal_state_solver(HelmholtzEOSMixtureBackend &HEOS, double T_new = T0_init + frac*v(0); double rhomolar_new = rhomolar0_init + frac*v(1); // Update state with step - HEOS_Reference.update(DmolarT_INPUTS, rhomolar_new, T_new); + HEOS_Reference.update_DmolarT_direct(rhomolar_new, T_new); resid = sqrt(POW2(HEOS_Reference.alphar() - alphar) + POW2(HEOS_Reference.keyed_output(iZ) - Z)); if (resid > resid_old){ continue; @@ -1033,10 +1033,13 @@ long double TransportRoutines::viscosity_ECS(HelmholtzEOSMixtureBackend &HEOS, H // Solver for conformal state // ************************** + // + HEOS_Reference.specify_phase(iphase_gas); // something homogeneous + conformal_state_solver(HEOS, HEOS_Reference, T0, rhomolar0); - + // Update the reference fluid with the updated conformal state - HEOS_Reference.update(DmolarT_INPUTS, rhomolar0*psi, T0); + HEOS_Reference.update_DmolarT_direct(rhomolar0*psi, T0); // Recalculate ESRR f = HEOS.T()/T0; diff --git a/src/Tests/CoolProp-Tests.cpp b/src/Tests/CoolProp-Tests.cpp index acb1dce6..db6cb598 100644 --- a/src/Tests/CoolProp-Tests.cpp +++ b/src/Tests/CoolProp-Tests.cpp @@ -241,10 +241,10 @@ vel("Benzene", "T", 400, "Dmass", 760, "V", 211.74e-6, 1e-4), vel("Benzene", "T", 550, "Dmass", 500, "V", 60.511e-6, 1e-4), // From Mylona, JPCRD, 2014 -vel("o-Xylene", "T", 635, "Dmass", 270, "V", 28.59e-6, 1e-4), -vel("m-Xylene", "T", 616, "Dmass", 220, "V", 36.41e-6, 1e-4), -vel("p-Xylene", "T", 620, "Dmass", 287, "V", 23.98e-6, 1e-4), -vel("EthylBenzene", "T", 617, "Dmass", 316, "V", 33.22e-6, 1e-4), +vel("o-Xylene", "T", 635, "Dmass", 270, "V", 28.59e-6, 1e-2), +vel("m-Xylene", "T", 616, "Dmass", 220, "V", 41.6424e-6, 1e-2), // CoolProp is correct, paper is incorrect (it seems) +vel("p-Xylene", "T", 620, "Dmass", 287, "V", 23.98e-6, 1e-2), +vel("EthylBenzene", "T", 617, "Dmass", 316, "V", 33.22e-6, 1e-2), }; @@ -492,10 +492,10 @@ vel("R134a", "T", 330, "Q", 0, "L", 0.06746432253 , 1e-4), vel("R134a", "T", 240, "Q", 1, "L", 0.00873242359, 1e-4), // Mylona, JPCRD, 2014 -vel("o-Xylene", "T", 635, "D", 270, "L", 96.4e-3 , 1e-4), -vel("m-Xylene", "T", 616, "D", 220, "L", 82.8e-3 , 1e-4), -vel("p-Xylene", "T", 620, "D", 287, "L", 107.7e-3 , 1e-4), -vel("EthylBenzene", "T", 617, "D", 316, "L", 140.2e-3, 1e-4), +vel("o-Xylene", "T", 635, "D", 270, "L", 96.4e-3 , 1e-2), +vel("m-Xylene", "T", 616, "D", 220, "L", 79.5232e-3 , 1e-2), // CoolProp is correct, paper is incorrect (it seems) +vel("p-Xylene", "T", 620, "D", 287, "L", 107.7e-3 , 1e-2), +vel("EthylBenzene", "T", 617, "D", 316, "L", 140.2e-3, 1e-2), // dilute values vel("o-Xylene", "T", 300, "D", 1e-12, "L", 13.68e-3 , 1e-3), vel("o-Xylene", "T", 600, "D", 1e-12, "L", 41.6e-3 , 1e-3),