Skip to content
Snippets Groups Projects
Commit 2592ceb7 authored by Ian Bell's avatar Ian Bell
Browse files

Last pure critical method

parent 6b59eccd
No related branches found
No related tags found
No related merge requests found
......@@ -120,6 +120,7 @@ namespace teqp {
virtual std::tuple<double, double> solve_pure_critical(const double T, const double rho, const std::optional<nlohmann::json>&) const = 0;
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 std::tuple<EArrayd, EArrayd> get_drhovecdp_Tsat(const double T, const REArrayd& rhovecL, const REArrayd& rhovecV) const = 0;
......
......@@ -85,6 +85,11 @@ namespace teqp {
return teqp::solve_pure_critical(model, T, rho, flags.value());
}, m_model);
}
std::tuple<EArrayd, EMatrixd> get_pure_critical_conditions_Jacobian(const double T, const double rho, int alternative_pure_index, int alternative_length) const override {
return std::visit([&](const auto& model) {
return teqp::get_pure_critical_conditions_Jacobian(model, T, rho, alternative_pure_index, alternative_length);
}, m_model);
}
std::tuple<double, double> extrapolate_from_critical(const double Tc, const double rhoc, const double Tnew) const override {
return std::visit([&](const auto& model) {
auto mat = teqp::extrapolate_from_critical(model, Tc, rhoc, Tnew);
......
......@@ -221,7 +221,7 @@ void init_teqp(py::module& m) {
.def("get_deriv_mat2", &am::get_deriv_mat2, "T"_a, "rho"_a, "molefrac"_a.noconvert())
// Routines related to pure fluid critical point calculation
// .def("get_pure_critical_conditions_Jacobian", &am::get_pure_critical_conditions_Jacobian, "T"_a, "rho"_a, py::arg_v("alternative_pure_index", -1), py::arg_v("alternative_length", 2))
.def("get_pure_critical_conditions_Jacobian", &am::get_pure_critical_conditions_Jacobian, "T"_a, "rho"_a, py::arg_v("alternative_pure_index", -1), py::arg_v("alternative_length", 2))
.def("solve_pure_critical", &am::solve_pure_critical, "T"_a, "rho"_a, py::arg_v("flags", std::nullopt, "None"))
.def("extrapolate_from_critical", &am::extrapolate_from_critical, "Tc"_a, "rhoc"_a, "T"_a)
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment