CoolProp
AbstractCubic Class Referenceabstract
Inheritance diagram for AbstractCubic: ## 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.

## § 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(), std::vector< double > C2 = std::vector(), std::vector< double > C3 = std::vector() )

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.

## § 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
 delta The reduced density $$\delta = \frac{\rho}{\rho_c}$$ x The 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
 tau The reciprocal reduced temperature $$\tau=T_r/T$$ i The index of the component itau The 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
 tau The reciprocal reduced temperature $$\tau=T_r/T$$ i The first index j The second index itau The 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
 tau The reciprocal reduced temperature $$\tau=T_r/T$$ x The vector of mole fractions itau The 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
 x The 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
 x The 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
 delta The reduced density $$\delta = \frac{\rho}{\rho_c}$$ x The vector of mole fractions i The first index j The second index xN_independent True 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
 tau The reciprocal reduced temperature $$\tau=T_r/T$$ x The vector of mole fractions itau The 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.) i The first index j The second index xN_independent True 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
 x The vector of mole fractions i The first index j The second index xN_independent True 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
 x The vector of mole fractions i The first index j The second index xN_independent True 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
 delta The reduced density $$\delta = \frac{\rho}{\rho_c}$$ x The vector of mole fractions idelta How many derivatives to take with respect to $$\delta$$ i The first index j The second index xN_independent True 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
 delta The reduced density $$\delta = \frac{\rho}{\rho_c}$$ x The vector of mole fractions itau How many derivatives to take with respect to $$\tau$$ idelta How many derivatives to take with respect to $$\delta$$ i The first index j The second index xN_independent True 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
 delta The reduced density $$\delta = \frac{\rho}{\rho_c}$$ x The vector of mole fractions idelta How many derivatives to take with respect to $$\delta$$ i The first index j The second index xN_independent True 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
 tau The reciprocal reduced temperature $$\tau = \frac{T_c}{T}$$ x The vector of mole fractions itau How many derivatives to take with respect to $$\tau$$ i The first index j The second index xN_independent True 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
 delta The reduced density $$\delta = \frac{\rho}{\rho_c}$$ x The vector of mole fractions i The first index j The second index k The third index xN_independent True 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
 tau The reciprocal reduced temperature $$\tau=T_r/T$$ x The vector of mole fractions itau The 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.) i The first index j The second index k The third index xN_independent True 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
 x The vector of mole fractions i The first index j The second index k The third index xN_independent True 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
 x The vector of mole fractions i The first index j The second index k The third index xN_independent True 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
 delta The reduced density $$\delta = \frac{\rho}{\rho_c}$$ x The vector of mole fractions idelta How many derivatives to take with respect to $$\delta$$ i The first index j The second index k The third index xN_independent True 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
 delta The reduced density $$\delta = \frac{\rho}{\rho_c}$$ x The vector of mole fractions itau How many derivatives to take with respect to $$\tau$$ idelta How many derivatives to take with respect to $$\delta$$ i The first index j The second index k The third index xN_independent True 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
 delta The reduced density $$\delta = \frac{\rho}{\rho_c}$$ x The vector of mole fractions idelta How many derivatives to take with respect to $$\delta$$ i The first index j The second index k The third index xN_independent True 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
 tau The reciprocal reduced temperature $$\tau = \frac{T_c}{T}$$ x The vector of mole fractions itau How many derivatives to take with respect to $$\tau$$ i The first index j The second index k The third index xN_independent True 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
 delta The reduced density $$\delta = \frac{\rho}{\rho_c}$$ x The vector of mole fractions i The first index xN_independent True 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
 tau The reciprocal reduced temperature $$\tau=T_r/T$$ x The vector of mole fractions itau The 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.) i The first index xN_independent True 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
 x The vector of mole fractions i The first index xN_independent True 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
 x The vector of mole fractions i The first index xN_independent True 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
 delta The reduced density $$\delta = \frac{\rho}{\rho_c}$$ x The vector of mole fractions idelta How many derivatives to take with respect to $$\delta$$ i The first index xN_independent True 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
 delta The reduced density $$\delta = \frac{\rho}{\rho_c}$$ x The vector of mole fractions itau How many derivatives to take with respect to $$\tau$$ idelta How many derivatives to take with respect to $$\delta$$ i The first index xN_independent True 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
 delta The reduced density $$\delta = \frac{\rho}{\rho_c}$$ x The vector of mole fractions idelta How many derivatives to take with respect to $$\delta$$ i The first index xN_independent True 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
 tau The reciprocal reduced temperature $$\tau = \frac{T_c}{T}$$ x The vector of mole fractions itau How many derivatives to take with respect to $$\tau$$ i The first index xN_independent True 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
 delta The reduced density $$\delta = \frac{\rho}{\rho_c}$$ x The vector of mole fractions idelta How 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
 delta The reduced density $$\delta = \frac{\rho}{\rho_c}$$ x The vector of mole fractions itau How many derivatives to take with respect to $$\tau$$ idelta How 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
 delta The reduced density $$\delta = \frac{\rho}{\rho_c}$$ x The vector of mole fractions idelta How 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
 tau The reciprocal reduced temperature $$\tau = \frac{T_c}{T}$$ x The vector of mole fractions itau How 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
 tau The reciprocal reduced temperature $$\tau=T_r/T$$ i The first index j The first index itau The 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: