CoolProp  6.6.0
An open-source fluid property and humid air property database
Public Member Functions | List of all members
PengRobinson Class Reference

Detailed Description

Definition at line 612 of file GeneralizedCubic.h.

#include <GeneralizedCubic.h>

Inheritance diagram for PengRobinson:
AbstractCubic VTPRCubic

Public Member Functions

 PengRobinson (std::vector< double > Tc, std::vector< double > pc, std::vector< double > acentric, double R_u, std::vector< double > C1=std::vector< double >(), std::vector< double > C2=std::vector< double >(), std::vector< double > C3=std::vector< double >())
 
 PengRobinson (double Tc, double pc, double acentric, double R_u)
 
double a0_ii (std::size_t i)
 
double b0_ii (std::size_t i)
 
double m_ii (std::size_t i)
 Get the m_ii variable in the alpha term inculuded in the attractive part. More...
 
- Public Member Functions inherited from 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. More...
 
virtual ~AbstractCubic ()
 
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. More...
 
shared_ptr< AbstractCubicAlphaFunctionget_alpha_function (std::size_t i)
 Get the alpha function for the i-th component. More...
 
const std::vector< shared_ptr< AbstractCubicAlphaFunction > > & get_all_alpha_functions ()
 Get all the alpha functions. More...
 
void set_all_alpha_functions (const std::vector< shared_ptr< AbstractCubicAlphaFunction >> &alpha)
 Set all the alpha functions. More...
 
const std::vector< std::vector< double > > & get_kmat ()
 Get the entire kij matrix in one shot. More...
 
void set_kmat (const std::vector< std::vector< double >> &k)
 Set the entire kij matrix in one shot. More...
 
void set_kij (std::size_t i, std::size_t j, double val)
 Set the kij factor for the ij pair. More...
 
double get_kij (std::size_t i, std::size_t j)
 Get the kij factor for the ij pair. More...
 
std::vector< double > & get_Tc ()
 Get the vector of critical temperatures (in K) More...
 
std::vector< double > & get_pc ()
 Get the vector of critical pressures (in Pa) More...
 
std::vector< double > & get_acentric ()
 Get the vector of acentric factors. More...
 
double get_Delta_1 ()
 Read-only accessor for value of Delta_1. More...
 
double get_Delta_2 ()
 Read-only accessor for value of Delta_2. More...
 
double get_R_u ()
 Read-only accessor for value of R_u (universal gas constant) More...
 
void set_Tr (double Tr)
 Set the reducing temperature to be used. More...
 
void set_rhor (double rhor)
 Set the reducing density to be used. More...
 
double get_Tr ()
 Get the reducing temperature to be used. More...
 
double get_rhor ()
 Get the reducing density to be used. More...
 
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. More...
 
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. More...
 
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\). More...
 
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\). More...
 
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\). More...
 
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\). More...
 
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) More...
 
void set_cm (double val)
 Set the volume translation parameter. More...
 
double get_cm ()
 Get the volume translation parameter. More...
 
virtual void set_Q_k (const size_t sgi, const double value)
 Modify the surface parameter Q_k of the sub group sgi. More...
 
virtual double get_Q_k (const size_t sgi) const
 Retrieve the surface parameter Q_k of the sub group sgi. More...
 
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)
 
double aii_term (double tau, std::size_t i, std::size_t itau)
 
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)
 

Additional Inherited Members

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

Constructor & Destructor Documentation

◆ PengRobinson() [1/2]

PengRobinson::PengRobinson ( std::vector< double >  Tc,
std::vector< double >  pc,
std::vector< double >  acentric,
double  R_u,
std::vector< double >  C1 = std::vector<double>(),
std::vector< double >  C2 = std::vector<double>(),
std::vector< double >  C3 = std::vector<double>() 
)
inline

Definition at line 615 of file GeneralizedCubic.h.

◆ PengRobinson() [2/2]

PengRobinson::PengRobinson ( double  Tc,
double  pc,
double  acentric,
double  R_u 
)
inline

Definition at line 622 of file GeneralizedCubic.h.

Member Function Documentation

◆ a0_ii()

double PengRobinson::a0_ii ( std::size_t  i)
virtual

Get the leading constant in the expression for the pure fluid attractive energy term (must be implemented by derived classes)

Implements AbstractCubic.

Definition at line 653 of file GeneralizedCubic.cpp.

◆ b0_ii()

double PengRobinson::b0_ii ( std::size_t  i)
virtual

Get the leading constant in the expression for the pure fluid covolume term (must be implemented by derived classes)

Implements AbstractCubic.

Definition at line 657 of file GeneralizedCubic.cpp.

◆ m_ii()

double PengRobinson::m_ii ( std::size_t  i)
virtual

Get the m_ii variable in the alpha term inculuded in the attractive part.

Implements AbstractCubic.

Definition at line 661 of file GeneralizedCubic.cpp.


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