diff --git a/include/teqp/cpp/teqpcpp.hpp b/include/teqp/cpp/teqpcpp.hpp index ca0cac427e7da0ba4e6ba6c395697dac3bf4388d..b1981235274304f7613177a8c260c7a99061499e 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 017d76127ddab417e610097bb497f70e98ec03be..91be45db837653c24104a13b6c0af5adf376606e 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 d23eaa9ef9a7d5c9d21fc53111c78d489c8db34a..11e268b7a293a6fa7b5f7846f9518beab035baaa 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;