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~2 ArModel%volume proc~critical_point->proc~volume~2 proc~psat_pure->proc~pressure proc~solve_point_psat solve_point_psat proc~psat_pure->proc~solve_point_psat proc~psat_pure->proc~volume~2 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 proc~solve_point_psat->proc~solve_system get_v0 get_v0 proc~solve_point_psat->get_v0 none~isofugacity~2 isofugacity proc~solve_point_psat->none~isofugacity~2 none~dgesv dgesv proc~solve_system->none~dgesv proc~volume~2->get_v0 interface~newton newton proc~volume~2->interface~newton proc~newton_1d newton_1d interface~newton->proc~newton_1d none~isofugacity~2->proc~lnfug_vt none~dsyev dsyev proc~eigen->none~dsyev proc~lnfug_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))