CoolProp
Public Member Functions | Protected Attributes | List of all members
AbstractCubic Class Referenceabstract
Inheritance diagram for AbstractCubic:
PengRobinson SRK VTPRCubic

Public Member Functions

 AbstractCubic (std::vector< double > Tc, std::vector< double > pc, std::vector< double > acentric, double R_u, double Delta_1, double Delta_2, std::vector< double > C1=std::vector< double >(), std::vector< double > C2=std::vector< double >(), std::vector< double > C3=std::vector< double >())
 The abstract base clase for the concrete implementations of the cubic equations of state. More...
 
void set_alpha (const std::vector< double > &C1, const std::vector< double > &C2, const std::vector< double > &C3)
 Set the constants for the Mathias-Copeman alpha function, or if C1,C2,C3 are all empty, set the default alpha model. More...
 
void set_alpha_function (std::size_t i, shared_ptr< AbstractCubicAlphaFunction > &acaf)
 Set the alpha function for the i-th component.
 
shared_ptr< AbstractCubicAlphaFunctionget_alpha_function (std::size_t i)
 Get the alpha function for the i-th component.
 
const std::vector< shared_ptr< AbstractCubicAlphaFunction > > & get_all_alpha_functions ()
 Get all the alpha functions.
 
void set_all_alpha_functions (const std::vector< shared_ptr< AbstractCubicAlphaFunction > > &alpha)
 Set all the alpha functions.
 
const std::vector< std::vector< double > > & get_kmat ()
 Get the entire kij matrix in one shot.
 
void set_kmat (const std::vector< std::vector< double > > &k)
 Set the entire kij matrix in one shot.
 
void set_kij (std::size_t i, std::size_t j, double val)
 Set the kij factor for the ij pair.
 
double get_kij (std::size_t i, std::size_t j)
 Get the kij factor for the ij pair.
 
std::vector< double > & get_Tc ()
 Get the vector of critical temperatures (in K)
 
std::vector< double > & get_pc ()
 Get the vector of critical pressures (in Pa)
 
std::vector< double > & get_acentric ()
 Get the vector of acentric factors.
 
double get_Delta_1 ()
 Read-only accessor for value of Delta_1.
 
double get_Delta_2 ()
 Read-only accessor for value of Delta_2.
 
double get_R_u ()
 Read-only accessor for value of R_u (universal gas constant)
 
void set_Tr (double Tr)
 Set the reducing temperature to be used.
 
void set_rhor (double rhor)
 Set the reducing density to be used.
 
double get_Tr ()
 Get the reducing temperature to be used.
 
double get_rhor ()
 Get the reducing density to be used.
 
void set_C_MC (std::size_t i, double c1, double c2, double c3)
 Set the three Mathias-Copeman constants in one shot for the component i of a mixture.
 
void set_C_Twu (std::size_t i, double L, double M, double N)
 Set the three Twu constants in one shot for the component i of a mixture.
 
virtual double a0_ii (std::size_t i)=0
 Get the leading constant in the expression for the pure fluid attractive energy term (must be implemented by derived classes)
 
virtual double b0_ii (std::size_t i)=0
 Get the leading constant in the expression for the pure fluid covolume term (must be implemented by derived classes)
 
virtual double m_ii (std::size_t i)=0
 Get the m_ii variable in the alpha term inculuded in the attractive part.
 
virtual double alphar (double tau, double delta, const std::vector< double > &x, std::size_t itau, std::size_t idelta)
 The residual non-dimensionalized Helmholtz energy \(\alpha^r\).
 
virtual double d_alphar_dxi (double tau, double delta, const std::vector< double > &x, std::size_t itau, std::size_t idelta, std::size_t i, bool xN_independent)
 The first composition derivative of \(\alpha^r\) as well as derivatives with respect to \(\tau\) and \(\delta\).
 
virtual double d2_alphar_dxidxj (double tau, double delta, const std::vector< double > &x, std::size_t itau, std::size_t idelta, std::size_t i, std::size_t j, bool xN_independent)
 The second composition derivative of \(\alpha^r\) as well as derivatives with respect to \(\tau\) and \(\delta\).
 
virtual double d3_alphar_dxidxjdxk (double tau, double delta, const std::vector< double > &x, std::size_t itau, std::size_t idelta, std::size_t i, std::size_t j, std::size_t k, bool xN_independent)
 The third composition derivative of \(\alpha^r\) as well as derivatives with respect to \(\tau\) and \(\delta\).
 
virtual double am_term (double tau, const std::vector< double > &x, std::size_t itau)
 The n-th derivative of \(a_m\) with respect to \(\tau\). More...
 
virtual double d_am_term_dxi (double tau, const std::vector< double > &x, std::size_t itau, std::size_t i, bool xN_independent)
 The first composition derivative of \(a_m\) as well as derivatives with respect to \(\tau\). More...
 
virtual double d2_am_term_dxidxj (double tau, const std::vector< double > &x, std::size_t itau, std::size_t i, std::size_t j, bool xN_independent)
 The second composition derivative of \(a_m\) as well as derivatives with respect to \(\tau\). More...
 
virtual double d3_am_term_dxidxjdxk (double tau, const std::vector< double > &x, std::size_t itau, std::size_t i, std::size_t j, std::size_t k, bool xN_independent)
 The third composition derivative of \(a_m\) as well as derivatives with respect to \(\tau\). More...
 
virtual double bm_term (const std::vector< double > &x)
 The term \(b_{\rm m}\) (mixture co-volume) More...
 
virtual double d_bm_term_dxi (const std::vector< double > &x, std::size_t i, bool xN_independent)
 The first composition derivative of \(b_m\). More...
 
virtual double d2_bm_term_dxidxj (const std::vector< double > &x, std::size_t i, std::size_t j, bool xN_independent)
 The second composition derivative of \(b_m\). More...
 
virtual double d3_bm_term_dxidxjdxk (const std::vector< double > &x, std::size_t i, std::size_t j, std::size_t k, bool xN_independent)
 The third composition derivative of \(b_m\). More...
 
virtual double cm_term ()
 The term \(c_{\rm m}\) (volume translation)
 
void set_cm (double val)
 Set the volume translation parameter.
 
double get_cm ()
 Get the volume translation parameter.
 
virtual void set_Q_k (const size_t sgi, const double value)
 Modify the surface parameter Q_k of the sub group sgi.
 
virtual double get_Q_k (const size_t sgi) const
 Retrieve the surface parameter Q_k of the sub group sgi.
 
double aij_term (double tau, std::size_t i, std::size_t j, std::size_t itau)
 The n-th \(\tau\) derivative of \(a_{ij}(\tau)\). More...
 
double u_term (double tau, std::size_t i, std::size_t j, std::size_t itau)
 The n-th tau derivative of \(u(\tau)\), the argument of sqrt in the cross aij term. More...
 
double aii_term (double tau, std::size_t i, std::size_t itau)
 Take the n-th tau derivative of the \(a_{ii}(\tau)\) pure fluid contribution. More...
 
double psi_minus (double delta, const std::vector< double > &x, std::size_t itau, std::size_t idelta)
 The term \( \psi^{(-)}\) and its \(\tau\) and \( \delta \) derivatives. More...
 
double d_psi_minus_dxi (double delta, const std::vector< double > &x, std::size_t itau, std::size_t idelta, std::size_t i, bool xN_independent)
 The third composition derivative of \( \psi^{(-)}\) and its \( \delta \) derivatives. More...
 
double d2_psi_minus_dxidxj (double delta, const std::vector< double > &x, std::size_t itau, std::size_t idelta, std::size_t i, std::size_t j, bool xN_independent)
 The second composition derivative of \( \psi^{(-)}\) and its \( \delta \) derivatives. More...
 
double d3_psi_minus_dxidxjdxk (double delta, const std::vector< double > &x, std::size_t itau, std::size_t idelta, std::size_t i, std::size_t j, std::size_t k, bool xN_independent)
 The third composition derivative of \( \psi^{(-)}\) and its \( \delta \) derivatives. More...
 
double PI_12 (double delta, const std::vector< double > &x, std::size_t idelta)
 The term \( \Pi_{12}\) and its \( \delta \) derivatives. More...
 
double d_PI_12_dxi (double delta, const std::vector< double > &x, std::size_t idelta, std::size_t i, bool xN_independent)
 The first composition derivative of \( \Pi_{12}\) and its \( \delta \) derivatives. More...
 
double d2_PI_12_dxidxj (double delta, const std::vector< double > &x, std::size_t idelta, std::size_t i, std::size_t j, bool xN_independent)
 The second composition derivative of \( \Pi_{12}\) and its \( \delta \) derivatives. More...
 
double d3_PI_12_dxidxjdxk (double delta, const std::vector< double > &x, std::size_t idelta, std::size_t i, std::size_t j, std::size_t k, bool xN_independent)
 The third composition derivative of \( \Pi_{12}\) and its \( \delta \) derivatives. More...
 
double tau_times_a (double tau, const std::vector< double > &x, std::size_t itau)
 The term \( \tau\cdot a_m(\tau)\) and its \( \tau \) derivatives. More...
 
double d_tau_times_a_dxi (double tau, const std::vector< double > &x, std::size_t itau, std::size_t i, bool xN_independent)
 The first composition derivative of \( \tau\cdot a_m(\tau)\) and its \( \tau \) derivatives. More...
 
double d2_tau_times_a_dxidxj (double tau, const std::vector< double > &x, std::size_t itau, std::size_t i, std::size_t j, bool xN_independent)
 The second composition derivative of \( \tau\cdot a_m(\tau)\) and its \( \tau \) derivatives. More...
 
double d3_tau_times_a_dxidxjdxk (double tau, const std::vector< double > &x, std::size_t itau, std::size_t i, std::size_t j, std::size_t k, bool xN_independent)
 The third composition derivative of \( \tau\cdot a_m(\tau)\) and its \( \tau \) derivatives. More...
 
double psi_plus (double delta, const std::vector< double > &x, std::size_t idelta)
 The term \( \psi^{(+)}\) and its \( \delta \) derivatives. More...
 
double d_psi_plus_dxi (double delta, const std::vector< double > &x, std::size_t idelta, std::size_t i, bool xN_independent)
 The first composition derivative of \( \psi^{(+)}\) and its \( \delta \) derivatives. More...
 
double d2_psi_plus_dxidxj (double delta, const std::vector< double > &x, std::size_t idelta, std::size_t i, std::size_t j, bool xN_independent)
 The second composition derivative of \( \psi^{(+)}\) and its \( \delta \) derivatives. More...
 
double d3_psi_plus_dxidxjdxk (double delta, const std::vector< double > &x, std::size_t idelta, std::size_t i, std::size_t j, std::size_t k, bool xN_independent)
 The third composition derivative of \( \psi^{(+)}\) and its \( \delta \) derivatives. More...
 
double c_term (const std::vector< double > &x)
 The term \(c\) used in the pure composition partial derivatives of \(\psi^{(+)}\). More...
 
double d_c_term_dxi (const std::vector< double > &x, std::size_t i, bool xN_independent)
 The first composition derivative of the term \(c\) used in the pure composition partial derivatives of \(\psi^{(+)}\). More...
 
double d2_c_term_dxidxj (const std::vector< double > &x, std::size_t i, std::size_t j, bool xN_independent)
 The second composition derivative of the term \(c\) used in the pure composition partial derivatives of \(\psi^{(+)}\). More...
 
double d3_c_term_dxidxjdxk (const std::vector< double > &x, std::size_t i, std::size_t j, std::size_t k, bool xN_independent)
 The third composition derivative of the term \(c\) used in the pure composition partial derivatives of \(\psi^{(+)}\). More...
 
double A_term (double delta, const std::vector< double > &x)
 The term \(A\) used in the pure composition partial derivatives of \(\psi^{(+)}\). More...
 
double d_A_term_dxi (double delta, const std::vector< double > &x, std::size_t i, bool xN_independent)
 The first composition derivative of the term \(A\) used in the pure composition partial derivatives of \(\psi^{(+)}\). More...
 
double d2_A_term_dxidxj (double delta, const std::vector< double > &x, std::size_t i, std::size_t j, bool xN_independent)
 The second composition derivative of the term \(A\) used in the pure composition partial derivatives of \(\psi^{(+)}\). More...
 
double d3_A_term_dxidxjdxk (double delta, const std::vector< double > &x, std::size_t i, std::size_t j, std::size_t k, bool xN_independent)
 The third composition derivative of the term \(A\) used in the pure composition partial derivatives of \(\psi^{(+)}\). More...
 
virtual void set_interaction_parameter (const std::size_t mgi1, const std::size_t mgi2, const std::string &parameter, const double value)
 
virtual double get_interaction_parameter (const std::size_t mgi1, const std::size_t mgi2, const std::string &parameter)
 

Protected Attributes

double rho_r
 The reducing density to be used [mol/m3].
 
double T_r
 The reducing temperature to be used [K].
 
std::vector< double > Tc
 Vector of critical temperatures (in K)
 
std::vector< double > pc
 Vector of critical pressures (in Pa)
 
std::vector< double > acentric
 Vector of acentric factors (unitless)
 
double R_u
 The universal gas constant in J/(mol*K)
 
double Delta_1
 The first cubic constant.
 
double Delta_2
 The second cubic constant.
 
int N
 Number of components in the mixture.
 
std::vector< std::vector< double > > k
 The interaction parameters (k_ii = 0)
 
double cm
 The volume translation parameter.
 
std::vector< shared_ptr< AbstractCubicAlphaFunction > > alpha
 The vector of alpha functions for the pure components.
 

Constructor & Destructor Documentation

§ AbstractCubic()

AbstractCubic::AbstractCubic ( std::vector< double >  Tc,
std::vector< double >  pc,
std::vector< double >  acentric,
double  R_u,
double  Delta_1,
double  Delta_2,
std::vector< double >  C1 = std::vector<double>(),
std::vector< double >  C2 = std::vector<double>(),
std::vector< double >  C3 = std::vector<double>() 
)

The abstract base clase for the concrete implementations of the cubic equations of state.

This abstract base class describes the structure that must be implemented by concrete implementations of the cubic equations of state (SRK, PR, etc.). The virtual functions must be implemented by the derived classes, the remaining functions are generic and are not dependent on the equation of state, so long as it has the formulation given in this work.

Member Function Documentation

§ A_term()

double AbstractCubic::A_term ( double  delta,
const std::vector< double > &  x 
)
inline

The term \(A\) used in the pure composition partial derivatives of \(\psi^{(+)}\).

\[ A = \log\left(\frac{\Delta_1\delta\rho_r b_m+1}{\Delta_2\delta\rho_r b+1}\right) \]

Parameters
deltaThe reduced density \(\delta = \frac{\rho}{\rho_c}\)
xThe vector of mole fractions

§ aii_term()

double AbstractCubic::aii_term ( double  tau,
std::size_t  i,
std::size_t  itau 
)

Take the n-th tau derivative of the \(a_{ii}(\tau)\) pure fluid contribution.

Parameters
tauThe reciprocal reduced temperature \(\tau=T_r/T\)
iThe index of the component
itauThe number of derivatives of \(u\) to take with respect to \(\tau\) (itau=0 is just a_{ij}, itau=1 is d(a_ij)/d(tau), etc.)

§ aij_term()

double AbstractCubic::aij_term ( double  tau,
std::size_t  i,
std::size_t  j,
std::size_t  itau 
)

The n-th \(\tau\) derivative of \(a_{ij}(\tau)\).

Parameters
tauThe reciprocal reduced temperature \(\tau=T_r/T\)
iThe first index
jThe second index
itauThe number of derivatives of \(a_{ij}\) to take with respect to \(\tau\) (itau=0 is just a_{ij}, itau=1 is d(a_ij)/d(tau), etc.)

§ am_term()

double AbstractCubic::am_term ( double  tau,
const std::vector< double > &  x,
std::size_t  itau 
)
virtual

The n-th derivative of \(a_m\) with respect to \(\tau\).

Parameters
tauThe reciprocal reduced temperature \(\tau=T_r/T\)
xThe vector of mole fractions
itauThe number of derivatives of \(a_m\) to take with respect to \(\tau\) (itau=0 is just a_m, itau=1 is d(a_m)/d(tau), etc.)

Reimplemented in VTPRCubic.

§ bm_term()

double AbstractCubic::bm_term ( const std::vector< double > &  x)
virtual

The term \(b_{\rm m}\) (mixture co-volume)

Parameters
xThe vector of mole fractions

Reimplemented in VTPRCubic.

§ c_term()

double AbstractCubic::c_term ( const std::vector< double > &  x)
inline

The term \(c\) used in the pure composition partial derivatives of \(\psi^{(+)}\).

\(c\) is given by

\[ c = \frac{1}{b_m} \]

Parameters
xThe vector of mole fractions

§ d2_A_term_dxidxj()

double AbstractCubic::d2_A_term_dxidxj ( double  delta,
const std::vector< double > &  x,
std::size_t  i,
std::size_t  j,
bool  xN_independent 
)
inline

The second composition derivative of the term \(A\) used in the pure composition partial derivatives of \(\psi^{(+)}\).

Parameters
deltaThe reduced density \(\delta = \frac{\rho}{\rho_c}\)
xThe vector of mole fractions
iThe first index
jThe second index
xN_independentTrue if \(x_N\) is an independent variable, false otherwise (dependent on other \(N-1\) mole fractions)

§ d2_am_term_dxidxj()

double AbstractCubic::d2_am_term_dxidxj ( double  tau,
const std::vector< double > &  x,
std::size_t  itau,
std::size_t  i,
std::size_t  j,
bool  xN_independent 
)
virtual

The second composition derivative of \(a_m\) as well as derivatives with respect to \(\tau\).

Parameters
tauThe reciprocal reduced temperature \(\tau=T_r/T\)
xThe vector of mole fractions
itauThe number of derivatives of \(a_m\) to take with respect to \(\tau\) (itau=0 is just a_m, itau=1 is d(a_m)/d(tau), etc.)
iThe first index
jThe second index
xN_independentTrue if \(x_N\) is an independent variable, false otherwise (dependent on other \(N-1\) mole fractions)

Reimplemented in VTPRCubic.

§ d2_bm_term_dxidxj()

double AbstractCubic::d2_bm_term_dxidxj ( const std::vector< double > &  x,
std::size_t  i,
std::size_t  j,
bool  xN_independent 
)
virtual

The second composition derivative of \(b_m\).

Parameters
xThe vector of mole fractions
iThe first index
jThe second index
xN_independentTrue if \(x_N\) is an independent variable, false otherwise (dependent on other \(N-1\) mole fractions)

Reimplemented in VTPRCubic.

§ d2_c_term_dxidxj()

double AbstractCubic::d2_c_term_dxidxj ( const std::vector< double > &  x,
std::size_t  i,
std::size_t  j,
bool  xN_independent 
)
inline

The second composition derivative of the term \(c\) used in the pure composition partial derivatives of \(\psi^{(+)}\).

Parameters
xThe vector of mole fractions
iThe first index
jThe second index
xN_independentTrue if \(x_N\) is an independent variable, false otherwise (dependent on other \(N-1\) mole fractions)

§ d2_PI_12_dxidxj()

double AbstractCubic::d2_PI_12_dxidxj ( double  delta,
const std::vector< double > &  x,
std::size_t  idelta,
std::size_t  i,
std::size_t  j,
bool  xN_independent 
)

The second composition derivative of \( \Pi_{12}\) and its \( \delta \) derivatives.

Parameters
deltaThe reduced density \(\delta = \frac{\rho}{\rho_c}\)
xThe vector of mole fractions
ideltaHow many derivatives to take with respect to \(\delta\)
iThe first index
jThe second index
xN_independentTrue if \(x_N\) is an independent variable, false otherwise (dependent on other \(N-1\) mole fractions)

§ d2_psi_minus_dxidxj()

double AbstractCubic::d2_psi_minus_dxidxj ( double  delta,
const std::vector< double > &  x,
std::size_t  itau,
std::size_t  idelta,
std::size_t  i,
std::size_t  j,
bool  xN_independent 
)

The second composition derivative of \( \psi^{(-)}\) and its \( \delta \) derivatives.

Parameters
deltaThe reduced density \(\delta = \frac{\rho}{\rho_c}\)
xThe vector of mole fractions
itauHow many derivatives to take with respect to \(\tau\)
ideltaHow many derivatives to take with respect to \(\delta\)
iThe first index
jThe second index
xN_independentTrue if \(x_N\) is an independent variable, false otherwise (dependent on other \(N-1\) mole fractions)

§ d2_psi_plus_dxidxj()

double AbstractCubic::d2_psi_plus_dxidxj ( double  delta,
const std::vector< double > &  x,
std::size_t  idelta,
std::size_t  i,
std::size_t  j,
bool  xN_independent 
)

The second composition derivative of \( \psi^{(+)}\) and its \( \delta \) derivatives.

Parameters
deltaThe reduced density \(\delta = \frac{\rho}{\rho_c}\)
xThe vector of mole fractions
ideltaHow many derivatives to take with respect to \(\delta\)
iThe first index
jThe second index
xN_independentTrue if \(x_N\) is an independent variable, false otherwise (dependent on other \(N-1\) mole fractions)

§ d2_tau_times_a_dxidxj()

double AbstractCubic::d2_tau_times_a_dxidxj ( double  tau,
const std::vector< double > &  x,
std::size_t  itau,
std::size_t  i,
std::size_t  j,
bool  xN_independent 
)

The second composition derivative of \( \tau\cdot a_m(\tau)\) and its \( \tau \) derivatives.

Parameters
tauThe reciprocal reduced temperature \(\tau = \frac{T_c}{T}\)
xThe vector of mole fractions
itauHow many derivatives to take with respect to \(\tau\)
iThe first index
jThe second index
xN_independentTrue if \(x_N\) is an independent variable, false otherwise (dependent on other \(N-1\) mole fractions)

§ d3_A_term_dxidxjdxk()

double AbstractCubic::d3_A_term_dxidxjdxk ( double  delta,
const std::vector< double > &  x,
std::size_t  i,
std::size_t  j,
std::size_t  k,
bool  xN_independent 
)
inline

The third composition derivative of the term \(A\) used in the pure composition partial derivatives of \(\psi^{(+)}\).

Parameters
deltaThe reduced density \(\delta = \frac{\rho}{\rho_c}\)
xThe vector of mole fractions
iThe first index
jThe second index
kThe third index
xN_independentTrue if \(x_N\) is an independent variable, false otherwise (dependent on other \(N-1\) mole fractions)

§ d3_am_term_dxidxjdxk()

double AbstractCubic::d3_am_term_dxidxjdxk ( double  tau,
const std::vector< double > &  x,
std::size_t  itau,
std::size_t  i,
std::size_t  j,
std::size_t  k,
bool  xN_independent 
)
virtual

The third composition derivative of \(a_m\) as well as derivatives with respect to \(\tau\).

Parameters
tauThe reciprocal reduced temperature \(\tau=T_r/T\)
xThe vector of mole fractions
itauThe number of derivatives of \(a_m\) to take with respect to \(\tau\) (itau=0 is just a_m, itau=1 is d(a_m)/d(tau), etc.)
iThe first index
jThe second index
kThe third index
xN_independentTrue if \(x_N\) is an independent variable, false otherwise (dependent on other \(N-1\) mole fractions)

Reimplemented in VTPRCubic.

§ d3_bm_term_dxidxjdxk()

double AbstractCubic::d3_bm_term_dxidxjdxk ( const std::vector< double > &  x,
std::size_t  i,
std::size_t  j,
std::size_t  k,
bool  xN_independent 
)
virtual

The third composition derivative of \(b_m\).

Parameters
xThe vector of mole fractions
iThe first index
jThe second index
kThe third index
xN_independentTrue if \(x_N\) is an independent variable, false otherwise (dependent on other \(N-1\) mole fractions)

Reimplemented in VTPRCubic.

§ d3_c_term_dxidxjdxk()

double AbstractCubic::d3_c_term_dxidxjdxk ( const std::vector< double > &  x,
std::size_t  i,
std::size_t  j,
std::size_t  k,
bool  xN_independent 
)
inline

The third composition derivative of the term \(c\) used in the pure composition partial derivatives of \(\psi^{(+)}\).

Parameters
xThe vector of mole fractions
iThe first index
jThe second index
kThe third index
xN_independentTrue if \(x_N\) is an independent variable, false otherwise (dependent on other \(N-1\) mole fractions)

§ d3_PI_12_dxidxjdxk()

double AbstractCubic::d3_PI_12_dxidxjdxk ( double  delta,
const std::vector< double > &  x,
std::size_t  idelta,
std::size_t  i,
std::size_t  j,
std::size_t  k,
bool  xN_independent 
)

The third composition derivative of \( \Pi_{12}\) and its \( \delta \) derivatives.

Parameters
deltaThe reduced density \(\delta = \frac{\rho}{\rho_c}\)
xThe vector of mole fractions
ideltaHow many derivatives to take with respect to \(\delta\)
iThe first index
jThe second index
kThe third index
xN_independentTrue if \(x_N\) is an independent variable, false otherwise (dependent on other \(N-1\) mole fractions)

§ d3_psi_minus_dxidxjdxk()

double AbstractCubic::d3_psi_minus_dxidxjdxk ( double  delta,
const std::vector< double > &  x,
std::size_t  itau,
std::size_t  idelta,
std::size_t  i,
std::size_t  j,
std::size_t  k,
bool  xN_independent 
)

The third composition derivative of \( \psi^{(-)}\) and its \( \delta \) derivatives.

Parameters
deltaThe reduced density \(\delta = \frac{\rho}{\rho_c}\)
xThe vector of mole fractions
itauHow many derivatives to take with respect to \(\tau\)
ideltaHow many derivatives to take with respect to \(\delta\)
iThe first index
jThe second index
kThe third index
xN_independentTrue if \(x_N\) is an independent variable, false otherwise (dependent on other \(N-1\) mole fractions)

§ d3_psi_plus_dxidxjdxk()

double AbstractCubic::d3_psi_plus_dxidxjdxk ( double  delta,
const std::vector< double > &  x,
std::size_t  idelta,
std::size_t  i,
std::size_t  j,
std::size_t  k,
bool  xN_independent 
)

The third composition derivative of \( \psi^{(+)}\) and its \( \delta \) derivatives.

Parameters
deltaThe reduced density \(\delta = \frac{\rho}{\rho_c}\)
xThe vector of mole fractions
ideltaHow many derivatives to take with respect to \(\delta\)
iThe first index
jThe second index
kThe third index
xN_independentTrue if \(x_N\) is an independent variable, false otherwise (dependent on other \(N-1\) mole fractions)

§ d3_tau_times_a_dxidxjdxk()

double AbstractCubic::d3_tau_times_a_dxidxjdxk ( double  tau,
const std::vector< double > &  x,
std::size_t  itau,
std::size_t  i,
std::size_t  j,
std::size_t  k,
bool  xN_independent 
)

The third composition derivative of \( \tau\cdot a_m(\tau)\) and its \( \tau \) derivatives.

Parameters
tauThe reciprocal reduced temperature \(\tau = \frac{T_c}{T}\)
xThe vector of mole fractions
itauHow many derivatives to take with respect to \(\tau\)
iThe first index
jThe second index
kThe third index
xN_independentTrue if \(x_N\) is an independent variable, false otherwise (dependent on other \(N-1\) mole fractions)

§ d_A_term_dxi()

double AbstractCubic::d_A_term_dxi ( double  delta,
const std::vector< double > &  x,
std::size_t  i,
bool  xN_independent 
)
inline

The first composition derivative of the term \(A\) used in the pure composition partial derivatives of \(\psi^{(+)}\).

Parameters
deltaThe reduced density \(\delta = \frac{\rho}{\rho_c}\)
xThe vector of mole fractions
iThe first index
xN_independentTrue if \(x_N\) is an independent variable, false otherwise (dependent on other \(N-1\) mole fractions)

§ d_am_term_dxi()

double AbstractCubic::d_am_term_dxi ( double  tau,
const std::vector< double > &  x,
std::size_t  itau,
std::size_t  i,
bool  xN_independent 
)
virtual

The first composition derivative of \(a_m\) as well as derivatives with respect to \(\tau\).

Parameters
tauThe reciprocal reduced temperature \(\tau=T_r/T\)
xThe vector of mole fractions
itauThe number of derivatives of \(a_m\) to take with respect to \(\tau\) (itau=0 is just a_m, itau=1 is d(a_m)/d(tau), etc.)
iThe first index
xN_independentTrue if \(x_N\) is an independent variable, false otherwise (dependent on other \(N-1\) mole fractions)

Reimplemented in VTPRCubic.

§ d_bm_term_dxi()

double AbstractCubic::d_bm_term_dxi ( const std::vector< double > &  x,
std::size_t  i,
bool  xN_independent 
)
virtual

The first composition derivative of \(b_m\).

Parameters
xThe vector of mole fractions
iThe first index
xN_independentTrue if \(x_N\) is an independent variable, false otherwise (dependent on other \(N-1\) mole fractions)

Reimplemented in VTPRCubic.

§ d_c_term_dxi()

double AbstractCubic::d_c_term_dxi ( const std::vector< double > &  x,
std::size_t  i,
bool  xN_independent 
)
inline

The first composition derivative of the term \(c\) used in the pure composition partial derivatives of \(\psi^{(+)}\).

Parameters
xThe vector of mole fractions
iThe first index
xN_independentTrue if \(x_N\) is an independent variable, false otherwise (dependent on other \(N-1\) mole fractions)

§ d_PI_12_dxi()

double AbstractCubic::d_PI_12_dxi ( double  delta,
const std::vector< double > &  x,
std::size_t  idelta,
std::size_t  i,
bool  xN_independent 
)

The first composition derivative of \( \Pi_{12}\) and its \( \delta \) derivatives.

Parameters
deltaThe reduced density \(\delta = \frac{\rho}{\rho_c}\)
xThe vector of mole fractions
ideltaHow many derivatives to take with respect to \(\delta\)
iThe first index
xN_independentTrue if \(x_N\) is an independent variable, false otherwise (dependent on other \(N-1\) mole fractions)

§ d_psi_minus_dxi()

double AbstractCubic::d_psi_minus_dxi ( double  delta,
const std::vector< double > &  x,
std::size_t  itau,
std::size_t  idelta,
std::size_t  i,
bool  xN_independent 
)

The third composition derivative of \( \psi^{(-)}\) and its \( \delta \) derivatives.

Parameters
deltaThe reduced density \(\delta = \frac{\rho}{\rho_c}\)
xThe vector of mole fractions
itauHow many derivatives to take with respect to \(\tau\)
ideltaHow many derivatives to take with respect to \(\delta\)
iThe first index
xN_independentTrue if \(x_N\) is an independent variable, false otherwise (dependent on other \(N-1\) mole fractions)

§ d_psi_plus_dxi()

double AbstractCubic::d_psi_plus_dxi ( double  delta,
const std::vector< double > &  x,
std::size_t  idelta,
std::size_t  i,
bool  xN_independent 
)

The first composition derivative of \( \psi^{(+)}\) and its \( \delta \) derivatives.

Parameters
deltaThe reduced density \(\delta = \frac{\rho}{\rho_c}\)
xThe vector of mole fractions
ideltaHow many derivatives to take with respect to \(\delta\)
iThe first index
xN_independentTrue if \(x_N\) is an independent variable, false otherwise (dependent on other \(N-1\) mole fractions)

§ d_tau_times_a_dxi()

double AbstractCubic::d_tau_times_a_dxi ( double  tau,
const std::vector< double > &  x,
std::size_t  itau,
std::size_t  i,
bool  xN_independent 
)

The first composition derivative of \( \tau\cdot a_m(\tau)\) and its \( \tau \) derivatives.

Parameters
tauThe reciprocal reduced temperature \(\tau = \frac{T_c}{T}\)
xThe vector of mole fractions
itauHow many derivatives to take with respect to \(\tau\)
iThe first index
xN_independentTrue if \(x_N\) is an independent variable, false otherwise (dependent on other \(N-1\) mole fractions)

§ PI_12()

double AbstractCubic::PI_12 ( double  delta,
const std::vector< double > &  x,
std::size_t  idelta 
)

The term \( \Pi_{12}\) and its \( \delta \) derivatives.

Parameters
deltaThe reduced density \(\delta = \frac{\rho}{\rho_c}\)
xThe vector of mole fractions
ideltaHow many derivatives to take with respect to \(\delta\)

\[ \Pi_{12} = (1+\Delta_1\bm\rhor \delta)(1+\Delta_2\bm\rhor \delta) \]

§ psi_minus()

double AbstractCubic::psi_minus ( double  delta,
const std::vector< double > &  x,
std::size_t  itau,
std::size_t  idelta 
)

The term \( \psi^{(-)}\) and its \(\tau\) and \( \delta \) derivatives.

Parameters
deltaThe reduced density \(\delta = \frac{\rho}{\rho_c}\)
xThe vector of mole fractions
itauHow many derivatives to take with respect to \(\tau\)
ideltaHow many derivatives to take with respect to \(\delta\)

§ psi_plus()

double AbstractCubic::psi_plus ( double  delta,
const std::vector< double > &  x,
std::size_t  idelta 
)

The term \( \psi^{(+)}\) and its \( \delta \) derivatives.

Parameters
deltaThe reduced density \(\delta = \frac{\rho}{\rho_c}\)
xThe vector of mole fractions
ideltaHow many derivatives to take with respect to \(\delta\)

\[ \psi^{(+)} = \dfrac{\ln\left(\dfrac{\Delta_1\bm\rhor \delta+1}{\Delta_2\bm\rhor \delta+1}\right)}{\bm(\Delta_1-\Delta_2)} \]

§ set_alpha()

void AbstractCubic::set_alpha ( const std::vector< double > &  C1,
const std::vector< double > &  C2,
const std::vector< double > &  C3 
)

Set the constants for the Mathias-Copeman alpha function, or if C1,C2,C3 are all empty, set the default alpha model.

Resize the vector of alpha functions

If no Mathias-Copeman coefficients are passed in (all empty vectors), use the predictive scheme for m_ii

Use the Mathias-Copeman constants passed in to initialize Mathias-Copeman alpha functions

§ tau_times_a()

double AbstractCubic::tau_times_a ( double  tau,
const std::vector< double > &  x,
std::size_t  itau 
)

The term \( \tau\cdot a_m(\tau)\) and its \( \tau \) derivatives.

Parameters
tauThe reciprocal reduced temperature \(\tau = \frac{T_c}{T}\)
xThe vector of mole fractions
itauHow many derivatives to take with respect to \(\tau\)

§ u_term()

double AbstractCubic::u_term ( double  tau,
std::size_t  i,
std::size_t  j,
std::size_t  itau 
)

The n-th tau derivative of \(u(\tau)\), the argument of sqrt in the cross aij term.

Parameters
tauThe reciprocal reduced temperature \(\tau=T_r/T\)
iThe first index
jThe first index
itauThe number of derivatives of \(a_{ij}\) to take with respect to \(\tau\) (itau=0 is just a_{ij}, itau=1 is d(a_ij)/d(tau), etc.)

The documentation for this class was generated from the following files: