|
virtual | ~AbstractModel ()=default |
|
virtual const std::type_index & | get_type_index () const =0 |
|
virtual double | get_R (const EArrayd &) const =0 |
|
double | R (const EArrayd &x) const |
|
virtual double | get_Arxy (const int, const int, const double, const double, const EArrayd &) const =0 |
|
virtual double | get_Ar00 (const double T, const double rho, const REArrayd &molefrac) const =0 |
|
virtual double | get_Ar01 (const double T, const double rho, const REArrayd &molefrac) const =0 |
|
virtual double | get_Ar02 (const double T, const double rho, const REArrayd &molefrac) const =0 |
|
virtual double | get_Ar03 (const double T, const double rho, const REArrayd &molefrac) const =0 |
|
virtual double | get_Ar04 (const double T, const double rho, const REArrayd &molefrac) const =0 |
|
virtual double | get_Ar10 (const double T, const double rho, const REArrayd &molefrac) const =0 |
|
virtual double | get_Ar11 (const double T, const double rho, const REArrayd &molefrac) const =0 |
|
virtual double | get_Ar12 (const double T, const double rho, const REArrayd &molefrac) const =0 |
|
virtual double | get_Ar13 (const double T, const double rho, const REArrayd &molefrac) const =0 |
|
virtual double | get_Ar14 (const double T, const double rho, const REArrayd &molefrac) const =0 |
|
virtual double | get_Ar20 (const double T, const double rho, const REArrayd &molefrac) const =0 |
|
virtual double | get_Ar21 (const double T, const double rho, const REArrayd &molefrac) const =0 |
|
virtual double | get_Ar22 (const double T, const double rho, const REArrayd &molefrac) const =0 |
|
virtual double | get_Ar23 (const double T, const double rho, const REArrayd &molefrac) const =0 |
|
virtual double | get_Ar24 (const double T, const double rho, const REArrayd &molefrac) const =0 |
|
virtual EArrayd | get_Ar01n (const double T, const double rho, const REArrayd &molefrac) const =0 |
|
virtual EArrayd | get_Ar02n (const double T, const double rho, const REArrayd &molefrac) const =0 |
|
virtual EArrayd | get_Ar03n (const double T, const double rho, const REArrayd &molefrac) const =0 |
|
virtual EArrayd | get_Ar04n (const double T, const double rho, const REArrayd &molefrac) const =0 |
|
virtual EArrayd | get_Ar05n (const double T, const double rho, const REArrayd &molefrac) const =0 |
|
virtual EArrayd | get_Ar06n (const double T, const double rho, const REArrayd &molefrac) const =0 |
|
virtual EArrayd | get_Ar10n (const double T, const double rho, const REArrayd &molefrac) const =0 |
|
virtual EArrayd | get_Ar20n (const double T, const double rho, const REArrayd &molefrac) const =0 |
|
virtual EArrayd | get_Ar30n (const double T, const double rho, const REArrayd &molefrac) const =0 |
|
virtual EArrayd | get_Ar40n (const double T, const double rho, const REArrayd &molefrac) const =0 |
|
virtual double | get_Ar01ep (const double, const double, const EArrayd &) const =0 |
|
virtual double | get_Ar02ep (const double, const double, const EArrayd &) const =0 |
|
virtual double | get_Ar03ep (const double, const double, const EArrayd &) const =0 |
|
virtual double | get_B2vir (const double T, const EArrayd &z) const =0 |
|
virtual std::map< int, double > | get_Bnvir (const int Nderiv, const double T, const EArrayd &z) const =0 |
|
virtual double | get_B12vir (const double T, const EArrayd &z) const =0 |
|
virtual double | get_dmBnvirdTm (const int Nderiv, const int NTderiv, const double T, const EArrayd &z) const =0 |
|
virtual double | get_ATrhoXi (const double T, const int NT, const double rhomolar, int ND, const EArrayd &molefrac, const int i, const int NXi) const =0 |
|
virtual double | get_ATrhoXiXj (const double T, const int NT, const double rhomolar, int ND, const EArrayd &molefrac, const int i, const int NXi, const int j, const int NXj) const =0 |
|
virtual double | get_ATrhoXiXjXk (const double T, const int NT, const double rhomolar, int ND, const EArrayd &molefrac, const int i, const int NXi, const int j, const int NXj, const int k, const int NXk) const =0 |
|
virtual double | get_AtaudeltaXi (const double tau, const int Ntau, const double delta, int Ndelta, const EArrayd &molefrac, const int i, const int NXi) const =0 |
|
virtual double | get_AtaudeltaXiXj (const double tau, const int Ntau, const double delta, int Ndelta, const EArrayd &molefrac, const int i, const int NXi, const int j, const int NXj) const =0 |
|
virtual double | get_AtaudeltaXiXjXk (const double tau, const int Ntau, const double delta, int Ndelta, const EArrayd &molefrac, const int i, const int NXi, const int j, const int NXj, const int k, const int NXk) const =0 |
|
virtual double | get_pr (const double T, const EArrayd &rhovec) const =0 |
|
virtual double | get_splus (const double T, const EArrayd &rhovec) const =0 |
|
virtual double | get_dpdT_constrhovec (const double T, const EArrayd &rhovec) const =0 |
|
virtual EArrayd | build_Psir_gradient_autodiff (const double T, const EArrayd &rhovec) const =0 |
|
virtual EArrayd | get_chempotVLE_autodiff (const double T, const EArrayd &rhovec) const =0 |
|
virtual EArrayd | get_dchempotdT_autodiff (const double T, const EArrayd &rhovec) const =0 |
|
virtual EArrayd | get_fugacity_coefficients (const double T, const EArrayd &rhovec) const =0 |
|
virtual EArrayd | get_partial_molar_volumes (const double T, const EArrayd &rhovec) const =0 |
|
virtual EArrayd | build_d2PsirdTdrhoi_autodiff (const double T, const EArrayd &rhovec) const =0 |
|
virtual EArrayd | get_dpdrhovec_constT (const double T, const EArrayd &rhovec) const =0 |
|
virtual EMatrixd | build_Psir_Hessian_autodiff (const double T, const EArrayd &rhovec) const =0 |
|
virtual EMatrixd | build_Psi_Hessian_autodiff (const double T, const EArrayd &rhovec) const =0 |
|
virtual std::tuple< double, Eigen::ArrayXd, Eigen::MatrixXd > | build_Psir_fgradHessian_autodiff (const double T, const EArrayd &rhovec) const =0 |
|
virtual Eigen::ArrayXd | get_Psir_sigma_derivs (const double T, const EArrayd &rhovec, const EArrayd &v) const =0 |
|
double | get_neff (const double, const double, const EArrayd &) const |
|
virtual EArray33d | get_deriv_mat2 (const double T, double rho, const EArrayd &z) const =0 |
|
std::tuple< double, double > | solve_pure_critical (const double T, const double rho, const std::optional< nlohmann::json > &=std::nullopt) const |
|
EArray2 | extrapolate_from_critical (const double Tc, const double rhoc, const double Tgiven, const std::optional< Eigen::ArrayXd > &molefracs=std::nullopt) const |
|
std::tuple< EArrayd, EMatrixd > | get_pure_critical_conditions_Jacobian (const double T, const double rho, const std::optional< std::size_t > &alternative_pure_index, const std::optional< std::size_t > &alternative_length) const |
|
EArray2 | pure_VLE_T (const double T, const double rhoL, const double rhoV, int maxiter, const std::optional< Eigen::ArrayXd > &molefracs=std::nullopt) const |
|
double | dpsatdT_pure (const double T, const double rhoL, const double rhoV) const |
|
virtual std::tuple< EArrayd, EArrayd > | get_drhovecdp_Tsat (const double T, const REArrayd &rhovecL, const REArrayd &rhovecV) const |
|
virtual std::tuple< EArrayd, EArrayd > | get_drhovecdT_psat (const double T, const REArrayd &rhovecL, const REArrayd &rhovecV) const |
|
virtual double | get_dpsat_dTsat_isopleth (const double T, const REArrayd &rhovecL, const REArrayd &rhovecV) const |
|
virtual nlohmann::json | trace_VLE_isotherm_binary (const double T0, const EArrayd &rhovec0, const EArrayd &rhovecV0, const std::optional< TVLEOptions > &=std::nullopt) const |
|
virtual nlohmann::json | trace_VLE_isobar_binary (const double p, const double T0, const EArrayd &rhovecL0, const EArrayd &rhovecV0, const std::optional< PVLEOptions > &=std::nullopt) const |
|
virtual std::tuple< VLE_return_code, EArrayd, EArrayd > | mix_VLE_Tx (const double T, const REArrayd &rhovecL0, const REArrayd &rhovecV0, const REArrayd &xspec, const double atol, const double reltol, const double axtol, const double relxtol, const int maxiter) const |
|
virtual MixVLEReturn | mix_VLE_Tp (const double T, const double pgiven, const REArrayd &rhovecL0, const REArrayd &rhovecV0, const std::optional< MixVLETpFlags > &flags=std::nullopt) const |
|
virtual std::tuple< VLE_return_code, double, EArrayd, EArrayd > | mixture_VLE_px (const double p_spec, const REArrayd &xmolar_spec, const double T0, const REArrayd &rhovecL0, const REArrayd &rhovecV0, const std::optional< MixVLEpxFlags > &flags=std::nullopt) const |
|
std::tuple< VLLE::VLLE_return_code, EArrayd, EArrayd, EArrayd > | mix_VLLE_T (const double T, const REArrayd &rhovecVinit, const REArrayd &rhovecL1init, const REArrayd &rhovecL2init, const double atol, const double reltol, const double axtol, const double relxtol, const int maxiter) const |
|
std::vector< nlohmann::json > | find_VLLE_T_binary (const std::vector< nlohmann::json > &traces, const std::optional< VLLE::VLLEFinderOptions > options=std::nullopt) const |
|
std::vector< nlohmann::json > | find_VLLE_p_binary (const std::vector< nlohmann::json > &traces, const std::optional< VLLE::VLLEFinderOptions > options=std::nullopt) const |
|
nlohmann::json | trace_VLLE_binary (const double T, const REArrayd &rhovecV, const REArrayd &rhovecL1, const REArrayd &rhovecL2, const std::optional< VLLE::VLLETracerOptions > options) const |
|
virtual nlohmann::json | trace_critical_arclength_binary (const double T0, const EArrayd &rhovec0, const std::optional< std::string > &=std::nullopt, const std::optional< TCABOptions > &=std::nullopt) const |
|
virtual EArrayd | get_drhovec_dT_crit (const double T, const REArrayd &rhovec) const |
|
virtual double | get_dp_dT_crit (const double T, const REArrayd &rhovec) const |
|
virtual EArray2 | get_criticality_conditions (const double T, const REArrayd &rhovec) const |
|
virtual EigenData | eigen_problem (const double T, const REArrayd &rhovec, const std::optional< REArrayd > &=std::nullopt) const |
|
virtual double | get_minimum_eigenvalue_Psi_Hessian (const double T, const REArrayd &rhovec) const |
|
This class defines the public interface for a model. Only native C++ types are passed through this inferface (as well as Eigen types and JSON data structures). Thus all the advanced derivative things can be hidden behind the C++ wall, yielding an interface that is still powerful, and very fast, but compilation times can be reduced to something more reasonable. Also, interfacing with other programming languages becomes much more convenient with this layer. All the complicated routines are still available in the lower-level C++ code.
Not allowed are: Templated arguments to functions Other numerical types (complex, multicomplex, autodiff, etc.)
X-Macros can be used to wrap functions that take template arguments and expand them as multiple functions
Definition at line 94 of file teqpcpp.hpp.