From 254882b768d2ce378a6514169bee257a2532a4c3 Mon Sep 17 00:00:00 2001 From: Ian Bell <ian.bell@nist.gov> Date: Wed, 25 Jan 2023 15:23:05 -0500 Subject: [PATCH] Add dp/dT to C++ interface --- include/teqp/cpp/teqpcpp.hpp | 1 + interface/CPP/teqp_impl_VLE.cpp | 6 ++++++ interface/CPP/teqpcpp.cpp | 1 + 3 files changed, 8 insertions(+) diff --git a/include/teqp/cpp/teqpcpp.hpp b/include/teqp/cpp/teqpcpp.hpp index ca0cac4..b198123 100644 --- a/include/teqp/cpp/teqpcpp.hpp +++ b/include/teqp/cpp/teqpcpp.hpp @@ -125,6 +125,7 @@ namespace teqp { virtual std::tuple<double, double> extrapolate_from_critical(const double Tc, const double rhoc, const double Tgiven) const = 0; virtual std::tuple<EArrayd, EMatrixd> get_pure_critical_conditions_Jacobian(const double T, const double rho, int alternative_pure_index=-1, int alternative_length=2) const = 0; virtual EArray2 pure_VLE_T(const double T, const double rhoL, const double rhoV, int maxiter) const = 0; + virtual double dpsatdT_pure(const double T, const double rhoL, const double rhoV) const = 0; virtual std::tuple<EArrayd, EArrayd> get_drhovecdp_Tsat(const double T, const REArrayd& rhovecL, const REArrayd& rhovecV) const = 0; virtual std::tuple<EArrayd, EArrayd> get_drhovecdT_psat(const double T, const REArrayd& rhovecL, const REArrayd& rhovecV) const = 0; diff --git a/interface/CPP/teqp_impl_VLE.cpp b/interface/CPP/teqp_impl_VLE.cpp index 017d761..91be45d 100644 --- a/interface/CPP/teqp_impl_VLE.cpp +++ b/interface/CPP/teqp_impl_VLE.cpp @@ -50,3 +50,9 @@ EArray2 MI::pure_VLE_T(const double T, const double rhoL, const double rhoV, int return teqp::pure_VLE_T(model, T, rhoL, rhoV, maxiter); }, m_model); } + +double MI::dpsatdT_pure(const double T, const double rhoL, const double rhoV) const { + return std::visit([&](const auto& model) { + return teqp::dpsatdT_pure(model, T, rhoL, rhoV); + }, m_model); +} diff --git a/interface/CPP/teqpcpp.cpp b/interface/CPP/teqpcpp.cpp index d23eaa9..11e268b 100644 --- a/interface/CPP/teqpcpp.cpp +++ b/interface/CPP/teqpcpp.cpp @@ -84,6 +84,7 @@ namespace teqp { double get_neff(const double T, const double rho, const EArrayd& molefracs) const override; EArray2 pure_VLE_T(const double T, const double rhoL, const double rhoV, int maxiter) const override; + double dpsatdT_pure(const double T, const double rhoL, const double rhoV) const override; std::tuple<EArrayd, EArrayd> get_drhovecdp_Tsat(const double T, const REArrayd& rhovecL, const REArrayd& rhovecV) const override; std::tuple<EArrayd, EArrayd> get_drhovecdT_psat(const double T, const REArrayd& rhovecL, const REArrayd& rhovecV) const override; double get_dpsat_dTsat_isopleth(const double T, const REArrayd& rhovecL, const REArrayd& rhovecV) const override; -- GitLab