get_critical_constants Subroutine

public subroutine get_critical_constants(model)

get_critical_constants

Calculate the critical constants for each pure component.

Description

Calculates the critical temperature, pressure and acentric factor for each pure component in the model. The critical points are calculated using the critical_point function from the yaeos__equilibria_critical module. The acentric factor is calculated using the saturation pressure at 0.7 of the critical temperature. It updates the Tc, Pc and w attributes of each component in the model.

Note

This subroutine assumes that the pure component constants for each component are already allocated.

Arguments

Type IntentOptional Attributes Name
class(ArModel), intent(inout) :: model

Thermodynamic model.


Calls

proc~~get_critical_constants~~CallsGraph proc~get_critical_constants get_critical_constants proc~critical_point critical_point proc~get_critical_constants->proc~critical_point proc~psat_pure ArModel%Psat_pure proc~get_critical_constants->proc~psat_pure proc~df_critical df_critical proc~critical_point->proc~df_critical proc~f_critical F_critical proc~critical_point->proc~f_critical proc~get_a get_a proc~critical_point->proc~get_a proc~lambda1 lambda1 proc~critical_point->proc~lambda1 proc~pressure ArModel%pressure proc~critical_point->proc~pressure proc~set_a set_a proc~critical_point->proc~set_a proc~solve_system solve_system proc~critical_point->proc~solve_system proc~volume~3 ArModel%volume proc~critical_point->proc~volume~3 none~diff~3 diff proc~psat_pure->none~diff~3 proc~lnphi_pt ArModel%lnphi_pt none~diff~3->proc~lnphi_pt proc~df_critical->proc~f_critical proc~df_critical->proc~get_a proc~f_critical->proc~get_a proc~f_critical->proc~lambda1 proc~lambda1->proc~get_a proc~eigen eigen proc~lambda1->proc~eigen proc~lnfug_vt ArModel%lnfug_vt proc~lambda1->proc~lnfug_vt residual_helmholtz residual_helmholtz proc~pressure->residual_helmholtz none~dgesv dgesv proc~solve_system->none~dgesv get_v0 get_v0 proc~volume~3->get_v0 interface~newton newton proc~volume~3->interface~newton proc~newton_1d newton_1d interface~newton->proc~newton_1d none~dsyev dsyev proc~eigen->none~dsyev proc~lnfug_vt->residual_helmholtz proc~lnphi_pt->proc~volume~3 proc~lnphi_vt ArModel%lnphi_vt proc~lnphi_pt->proc~lnphi_vt proc~lnphi_vt->residual_helmholtz

Called by

proc~~get_critical_constants~~CalledByGraph proc~get_critical_constants get_critical_constants proc~init_pcsaft init_pcsaft proc~init_pcsaft->proc~get_critical_constants

Variables

Type Visibility Attributes Name Initial
real(kind=pr), private :: Psat_i
type(EquilibriumState), private :: cp
integer, private :: i
integer, private :: nc
real(kind=pr), private :: z(size(model%components%Tc))