From 779ef0e8c3aaeebde6e6400701c4daed644201b2 Mon Sep 17 00:00:00 2001 From: Ian Bell Date: Tue, 23 Aug 2016 20:01:49 -0600 Subject: [PATCH] First tests for derivatives of am for VTPR @JonWel, looks like there is some more debugging to be done here :( --- src/Backends/Cubics/VTPRBackend.cpp | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/src/Backends/Cubics/VTPRBackend.cpp b/src/Backends/Cubics/VTPRBackend.cpp index ea454037..98f86ae8 100644 --- a/src/Backends/Cubics/VTPRBackend.cpp +++ b/src/Backends/Cubics/VTPRBackend.cpp @@ -77,3 +77,31 @@ const UNIFAQLibrary::UNIFAQParameterLibrary & CoolProp::VTPRBackend::LoadLibrary } return lib; } + +#ifdef ENABLE_CATCH +#include "catch.hpp" + +#include "Backends/Cubics/CubicBackend.h" + +using namespace CoolProp; + +TEST_CASE("VTPR test","[VTPR]") +{ + shared_ptr VTPR(new VTPRBackend(strsplit("Ethane&n-Propane&n-Butane",'&'))); + std::vector z(3); z[0] = 0.1; z[1] = 0.2; z[2] = 0.7; + VTPR->set_mole_fractions(z); + + SECTION("dam_dxi"){ + shared_ptr cubic = VTPR->get_cubic(); + double tau = 0.001, dz = 1e-6; + std::vector zp = z, zm = z; + zp[0] += dz; zm[0] -= dz; + + double dam_dxi_num = (cubic->am_term(tau, zp, 0) - cubic->am_term(tau, zm, 0))/(2*dz); + double dam_dxi_ana = cubic->d_am_term_dxi(tau, z, 0, 0, XN_INDEPENDENT); + double diff = dam_dxi_num-dam_dxi_ana; + CHECK(std::abs(diff)<1e-6); + } +} + +#endif