From f6a4f7e2398524a617565141db1aa59cd563f813 Mon Sep 17 00:00:00 2001 From: Ian Bell Date: Tue, 26 Aug 2014 13:30:41 +0200 Subject: [PATCH] Added tests for new outputs Signed-off-by: Ian Bell --- .../REFPROP/REFPROPMixtureBackend.cpp | 27 ++++++++++++++++--- src/Backends/REFPROP/REFPROPMixtureBackend.h | 7 +---- 2 files changed, 24 insertions(+), 10 deletions(-) diff --git a/src/Backends/REFPROP/REFPROPMixtureBackend.cpp b/src/Backends/REFPROP/REFPROPMixtureBackend.cpp index ad0ba02e..be068859 100644 --- a/src/Backends/REFPROP/REFPROPMixtureBackend.cpp +++ b/src/Backends/REFPROP/REFPROPMixtureBackend.cpp @@ -659,6 +659,13 @@ long double REFPROPMixtureBackend::calc_Ttriple(){ INFOdll(&icomp, &wmm, &ttrp, &tnbpt, &tc, &pc, &Dc, &Zc, &acf, &dip, &Rgas); return static_cast(ttrp); }; +long double REFPROPMixtureBackend::calc_molar_mass(void) +{ + double wmm_kg_kmol; + WMOLdll(&(mole_fractions[0]), &wmm_kg_kmol); // returns mole mass in kg/kmol + _molar_mass = wmm_kg_kmol/1000; // kg/mol + return static_cast(_molar_mass.pt()); +}; double REFPROPMixtureBackend::calc_melt_Tmax() { @@ -1320,11 +1327,11 @@ TEST_CASE("Check REFPROP and CoolProp values agree","[REFPROP]") shared_ptr S1(CoolProp::AbstractState::factory("HEOS", (*it))); double Tr = S1->T_critical(); - S1->update(CoolProp::QT_INPUTS, 0, Tr*0.9); + CHECK_NOTHROW(S1->update(CoolProp::QT_INPUTS, 0, Tr*0.9);); double rho_CP = S1->rhomolar(); shared_ptr S2(CoolProp::AbstractState::factory("REFPROP", RPName)); - S2->update(CoolProp::QT_INPUTS, 0, Tr*0.9); + CHECK_NOTHROW(S2->update(CoolProp::QT_INPUTS, 0, Tr*0.9);); double rho_RP = S2->rhomolar(); CAPTURE(Name); @@ -1381,12 +1388,12 @@ TEST_CASE("Check REFPROP and CoolProp values agree","[REFPROP]") shared_ptr S1(CoolProp::AbstractState::factory("HEOS", (*it))); double Tr = S1->T_critical(); - S1->update(CoolProp::QT_INPUTS, 0, 0.9*Tr); + CHECK_NOTHROW(S1->update(CoolProp::QT_INPUTS, 0, 0.9*Tr);); double h_CP = S1->hmass(); double s_CP = S1->smass(); shared_ptr S2(CoolProp::AbstractState::factory("REFPROP", RPName)); - S2->update(CoolProp::QT_INPUTS, 0, 0.9*Tr); + CHECK_NOTHROW(S2->update(CoolProp::QT_INPUTS, 0, 0.9*Tr);); double h_RP = S2->hmass(); double s_RP = S2->smass(); @@ -1405,4 +1412,16 @@ TEST_CASE("Check REFPROP and CoolProp values agree","[REFPROP]") } } +TEST_CASE("Check some inputs for REFPROP work","[REFPROP]") +{ + SECTION("Critical parameters","") + { + CHECK(ValidNumber(CoolProp::PropsSI("PCRIT","P",0,"T",0,"REFPROP::R245FA"))); + CHECK(ValidNumber(CoolProp::PropsSI("TCRIT","P",0,"T",0,"REFPROP::R245FA"))); + CHECK(ValidNumber(CoolProp::PropsSI("RHOCRIT","P",0,"T",0,"REFPROP::R245FA"))); + CHECK(ValidNumber(CoolProp::PropsSI("MOLEMASS","P",0,"T",0,"REFPROP::R245FA"))); + } +} + + #endif diff --git a/src/Backends/REFPROP/REFPROPMixtureBackend.h b/src/Backends/REFPROP/REFPROPMixtureBackend.h index f719d863..abecd5ca 100644 --- a/src/Backends/REFPROP/REFPROPMixtureBackend.h +++ b/src/Backends/REFPROP/REFPROPMixtureBackend.h @@ -51,12 +51,7 @@ public: double value2 ); - long double calc_molar_mass(void){ - if (!_molar_mass){ - calc_molar_mass(); - } - return _molar_mass.pt(); - }; + long double calc_molar_mass(void); /// Returns true if REFPROP is supported on this platform bool REFPROP_supported(void);