teqp 0.22.0
Loading...
Searching...
No Matches
teqp::CriticalTracing< Model, Scalar, VecType > Struct Template Reference

#include <critical_tracing.hpp>

Classes

struct  psi1derivs
 

Static Public Member Functions

static auto sorted_eigen (const Eigen::MatrixXd &H)
 
static auto eigen_problem (const AbstractModel &model, const Scalar T, const VecType &rhovec, const std::optional< VecType > &alignment_v0=std::nullopt)
 
static auto get_minimum_eigenvalue_Psi_Hessian (const AbstractModel &model, const Scalar T, const VecType &rhovec)
 
static auto get_derivs (const AbstractModel &model, const double T, const VecType &rhovec, const std::optional< VecType > &alignment_v0=std::nullopt)
 
template<typename Iterable >
static bool all (const Iterable &foo)
 
template<typename Iterable >
static bool any (const Iterable &foo)
 
static auto get_drhovec_dT_crit (const AbstractModel &model, const Scalar &T, const VecType &rhovec)
 
static auto get_criticality_conditions (const AbstractModel &model, const Scalar T, const VecType &rhovec)
 
static auto EigenVectorPath (const AbstractModel &model, const Scalar T, const VecType &rhovec, const VecType &u1, Scalar drho)
 The EigenVectorPath function of Algorithm 2 from Deiters and Bell: https://dx.doi.org/10.1021/acs.iecr.0c03667.
 
static auto is_locally_stable (const AbstractModel &model, const Scalar T, const VecType &rhovec, const Scalar stability_rel_drho)
 The LocalStability function of Algorithm 2 from Deiters and Bell: https://dx.doi.org/10.1021/acs.iecr.0c03667.
 
static auto critical_polish_fixedmolefrac (const AbstractModel &model, const Scalar T, const VecType &rhovec, const Scalar z0)
 Polish a critical point while keeping the overall composition constant and iterating for temperature and overall density.
 
static auto critical_polish_fixedrho (const AbstractModel &model, const Scalar T, const VecType &rhovec, const int i)
 
static auto critical_polish_fixedT (const AbstractModel &model, const Scalar T, const VecType &rhovec)
 
static auto trace_critical_arclength_binary (const AbstractModel &model, const Scalar &T0, const VecType &rhovec0, const std::optional< std::string > &filename_=std::nullopt, const std::optional< TCABOptions > &options_=std::nullopt) -> nlohmann::json
 
static auto get_dp_dT_crit (const AbstractModel &model, const Scalar &T, const VecType &rhovec)
 Calculate dp/dT along the critical locus at given T, rhovec.
 
template<typename TemplatedModel , typename ... Params, typename = typename std::enable_if<not std::is_base_of<teqp::cppinterface::AbstractModel, TemplatedModel>::value>::type>
static auto get_dp_dT_crit (const TemplatedModel &model, Params &&... params)
 
template<typename TemplatedModel , typename ... Params, typename = typename std::enable_if<not std::is_base_of<teqp::cppinterface::AbstractModel, TemplatedModel>::value>::type>
static auto trace_critical_arclength_binary (const TemplatedModel &model, Params &&... params)
 
template<typename TemplatedModel , typename ... Params, typename = typename std::enable_if<not std::is_base_of<teqp::cppinterface::AbstractModel, TemplatedModel>::value>::type>
static auto critical_polish_fixedmolefrac (const TemplatedModel &model, Params &&... params)
 
template<typename TemplatedModel , typename ... Params, typename = typename std::enable_if<not std::is_base_of<teqp::cppinterface::AbstractModel, TemplatedModel>::value>::type>
static auto get_drhovec_dT_crit (const TemplatedModel &model, Params &&... params)
 
template<typename TemplatedModel , typename ... Params, typename = typename std::enable_if<not std::is_base_of<teqp::cppinterface::AbstractModel, TemplatedModel>::value>::type>
static auto get_derivs (const TemplatedModel &model, Params &&... params)
 
template<typename TemplatedModel , typename ... Params, typename = typename std::enable_if<not std::is_base_of<teqp::cppinterface::AbstractModel, TemplatedModel>::value>::type>
static auto eigen_problem (const TemplatedModel &model, Params &&... params)
 

Detailed Description

template<typename Model, typename Scalar = double, typename VecType = Eigen::ArrayXd>
struct teqp::CriticalTracing< Model, Scalar, VecType >

Definition at line 22 of file critical_tracing.hpp.

Member Function Documentation

◆ all()

template<typename Model , typename Scalar = double, typename VecType = Eigen::ArrayXd>
template<typename Iterable >
static bool teqp::CriticalTracing< Model, Scalar, VecType >::all ( const Iterable & foo)
inlinestatic

Definition at line 197 of file critical_tracing.hpp.

◆ any()

template<typename Model , typename Scalar = double, typename VecType = Eigen::ArrayXd>
template<typename Iterable >
static bool teqp::CriticalTracing< Model, Scalar, VecType >::any ( const Iterable & foo)
inlinestatic

Definition at line 201 of file critical_tracing.hpp.

◆ critical_polish_fixedmolefrac() [1/2]

template<typename Model , typename Scalar = double, typename VecType = Eigen::ArrayXd>
static auto teqp::CriticalTracing< Model, Scalar, VecType >::critical_polish_fixedmolefrac ( const AbstractModel & model,
const Scalar T,
const VecType & rhovec,
const Scalar z0 )
inlinestatic

Polish a critical point while keeping the overall composition constant and iterating for temperature and overall density.

Definition at line 334 of file critical_tracing.hpp.

◆ critical_polish_fixedmolefrac() [2/2]

template<typename Model , typename Scalar = double, typename VecType = Eigen::ArrayXd>
template<typename TemplatedModel , typename ... Params, typename = typename std::enable_if<not std::is_base_of<teqp::cppinterface::AbstractModel, TemplatedModel>::value>::type>
static auto teqp::CriticalTracing< Model, Scalar, VecType >::critical_polish_fixedmolefrac ( const TemplatedModel & model,
Params &&... params )
inlinestatic

Definition at line 768 of file critical_tracing.hpp.

◆ critical_polish_fixedrho()

template<typename Model , typename Scalar = double, typename VecType = Eigen::ArrayXd>
static auto teqp::CriticalTracing< Model, Scalar, VecType >::critical_polish_fixedrho ( const AbstractModel & model,
const Scalar T,
const VecType & rhovec,
const int i )
inlinestatic

Definition at line 354 of file critical_tracing.hpp.

◆ critical_polish_fixedT()

template<typename Model , typename Scalar = double, typename VecType = Eigen::ArrayXd>
static auto teqp::CriticalTracing< Model, Scalar, VecType >::critical_polish_fixedT ( const AbstractModel & model,
const Scalar T,
const VecType & rhovec )
inlinestatic

Definition at line 375 of file critical_tracing.hpp.

◆ eigen_problem() [1/2]

template<typename Model , typename Scalar = double, typename VecType = Eigen::ArrayXd>
static auto teqp::CriticalTracing< Model, Scalar, VecType >::eigen_problem ( const AbstractModel & model,
const Scalar T,
const VecType & rhovec,
const std::optional< VecType > & alignment_v0 = std::nullopt )
inlinestatic

Definition at line 39 of file critical_tracing.hpp.

◆ eigen_problem() [2/2]

template<typename Model , typename Scalar = double, typename VecType = Eigen::ArrayXd>
template<typename TemplatedModel , typename ... Params, typename = typename std::enable_if<not std::is_base_of<teqp::cppinterface::AbstractModel, TemplatedModel>::value>::type>
static auto teqp::CriticalTracing< Model, Scalar, VecType >::eigen_problem ( const TemplatedModel & model,
Params &&... params )
inlinestatic

Definition at line 768 of file critical_tracing.hpp.

◆ EigenVectorPath()

template<typename Model , typename Scalar = double, typename VecType = Eigen::ArrayXd>
static auto teqp::CriticalTracing< Model, Scalar, VecType >::EigenVectorPath ( const AbstractModel & model,
const Scalar T,
const VecType & rhovec,
const VecType & u1,
Scalar drho )
inlinestatic

The EigenVectorPath function of Algorithm 2 from Deiters and Bell: https://dx.doi.org/10.1021/acs.iecr.0c03667.

There is a typo in the paper: the last step should be rho + 2*drho*dir

Definition at line 291 of file critical_tracing.hpp.

◆ get_criticality_conditions()

template<typename Model , typename Scalar = double, typename VecType = Eigen::ArrayXd>
static auto teqp::CriticalTracing< Model, Scalar, VecType >::get_criticality_conditions ( const AbstractModel & model,
const Scalar T,
const VecType & rhovec )
inlinestatic

Definition at line 281 of file critical_tracing.hpp.

◆ get_derivs() [1/2]

template<typename Model , typename Scalar = double, typename VecType = Eigen::ArrayXd>
static auto teqp::CriticalTracing< Model, Scalar, VecType >::get_derivs ( const AbstractModel & model,
const double T,
const VecType & rhovec,
const std::optional< VecType > & alignment_v0 = std::nullopt )
inlinestatic

Definition at line 129 of file critical_tracing.hpp.

◆ get_derivs() [2/2]

template<typename Model , typename Scalar = double, typename VecType = Eigen::ArrayXd>
template<typename TemplatedModel , typename ... Params, typename = typename std::enable_if<not std::is_base_of<teqp::cppinterface::AbstractModel, TemplatedModel>::value>::type>
static auto teqp::CriticalTracing< Model, Scalar, VecType >::get_derivs ( const TemplatedModel & model,
Params &&... params )
inlinestatic

Definition at line 768 of file critical_tracing.hpp.

◆ get_dp_dT_crit() [1/2]

template<typename Model , typename Scalar = double, typename VecType = Eigen::ArrayXd>
static auto teqp::CriticalTracing< Model, Scalar, VecType >::get_dp_dT_crit ( const AbstractModel & model,
const Scalar & T,
const VecType & rhovec )
inlinestatic

Calculate dp/dT along the critical locus at given T, rhovec.

\[ \rmderivsub{Y}{T}{\CRL} = \deriv{Y}{T}{\vec\rho} + \sum_j \deriv{Y}{\rho_j}{T,\rho_{k\neq j}} \rmderivsub{\rho_j}{T}{\CRL} \]

where the derivatives on the RHS without the subscript CRL are homogeneous derivatives taken at the mixture statepoint, and are NOT along the critical curve.

Definition at line 747 of file critical_tracing.hpp.

◆ get_dp_dT_crit() [2/2]

template<typename Model , typename Scalar = double, typename VecType = Eigen::ArrayXd>
template<typename TemplatedModel , typename ... Params, typename = typename std::enable_if<not std::is_base_of<teqp::cppinterface::AbstractModel, TemplatedModel>::value>::type>
static auto teqp::CriticalTracing< Model, Scalar, VecType >::get_dp_dT_crit ( const TemplatedModel & model,
Params &&... params )
inlinestatic

Definition at line 768 of file critical_tracing.hpp.

◆ get_drhovec_dT_crit() [1/2]

template<typename Model , typename Scalar = double, typename VecType = Eigen::ArrayXd>
static auto teqp::CriticalTracing< Model, Scalar, VecType >::get_drhovec_dT_crit ( const AbstractModel & model,
const Scalar & T,
const VecType & rhovec )
inlinestatic

Definition at line 205 of file critical_tracing.hpp.

◆ get_drhovec_dT_crit() [2/2]

template<typename Model , typename Scalar = double, typename VecType = Eigen::ArrayXd>
template<typename TemplatedModel , typename ... Params, typename = typename std::enable_if<not std::is_base_of<teqp::cppinterface::AbstractModel, TemplatedModel>::value>::type>
static auto teqp::CriticalTracing< Model, Scalar, VecType >::get_drhovec_dT_crit ( const TemplatedModel & model,
Params &&... params )
inlinestatic

Definition at line 768 of file critical_tracing.hpp.

◆ get_minimum_eigenvalue_Psi_Hessian()

template<typename Model , typename Scalar = double, typename VecType = Eigen::ArrayXd>
static auto teqp::CriticalTracing< Model, Scalar, VecType >::get_minimum_eigenvalue_Psi_Hessian ( const AbstractModel & model,
const Scalar T,
const VecType & rhovec )
inlinestatic

Definition at line 125 of file critical_tracing.hpp.

◆ is_locally_stable()

template<typename Model , typename Scalar = double, typename VecType = Eigen::ArrayXd>
static auto teqp::CriticalTracing< Model, Scalar, VecType >::is_locally_stable ( const AbstractModel & model,
const Scalar T,
const VecType & rhovec,
const Scalar stability_rel_drho )
inlinestatic

The LocalStability function of Algorithm 2 from Deiters and Bell: https://dx.doi.org/10.1021/acs.iecr.0c03667.

Definition at line 316 of file critical_tracing.hpp.

◆ sorted_eigen()

template<typename Model , typename Scalar = double, typename VecType = Eigen::ArrayXd>
static auto teqp::CriticalTracing< Model, Scalar, VecType >::sorted_eigen ( const Eigen::MatrixXd & H)
inlinestatic

Definition at line 34 of file critical_tracing.hpp.

◆ trace_critical_arclength_binary() [1/2]

template<typename Model , typename Scalar = double, typename VecType = Eigen::ArrayXd>
static auto teqp::CriticalTracing< Model, Scalar, VecType >::trace_critical_arclength_binary ( const AbstractModel & model,
const Scalar & T0,
const VecType & rhovec0,
const std::optional< std::string > & filename_ = std::nullopt,
const std::optional< TCABOptions > & options_ = std::nullopt ) -> nlohmann::json
inlinestatic

Definition at line 391 of file critical_tracing.hpp.

◆ trace_critical_arclength_binary() [2/2]

template<typename Model , typename Scalar = double, typename VecType = Eigen::ArrayXd>
template<typename TemplatedModel , typename ... Params, typename = typename std::enable_if<not std::is_base_of<teqp::cppinterface::AbstractModel, TemplatedModel>::value>::type>
static auto teqp::CriticalTracing< Model, Scalar, VecType >::trace_critical_arclength_binary ( const TemplatedModel & model,
Params &&... params )
inlinestatic

Definition at line 768 of file critical_tracing.hpp.


The documentation for this struct was generated from the following file: