critical_line Function

public function critical_line(model, a0, z0, zi, ns0, S0, dS0, v0, t0, p0, max_points, maxP, first_point, stability_analysis)

Uses

  • proc~~critical_line~~UsesGraph proc~critical_line critical_line module~yaeos__equilibria_equilibrium_state yaeos__equilibria_equilibrium_state proc~critical_line->module~yaeos__equilibria_equilibrium_state module~yaeos__math yaeos__math proc~critical_line->module~yaeos__math module~yaeos__math_continuation yaeos__math_continuation proc~critical_line->module~yaeos__math_continuation module~yaeos__constants yaeos__constants module~yaeos__equilibria_equilibrium_state->module~yaeos__constants module~yaeos__math->module~yaeos__math_continuation module~yaeos__math->module~yaeos__constants module~yaeos__math_linalg yaeos__math_linalg module~yaeos__math->module~yaeos__math_linalg module~yaeos__math_continuation->module~yaeos__constants module~yaeos__math_continuation->module~yaeos__math_linalg iso_fortran_env iso_fortran_env module~yaeos__constants->iso_fortran_env module~yaeos__math_linalg->module~yaeos__constants

critical_line

Description

Calculates the critical line between two mixtures using the continuation method. The two mixtures compositions are restricted to the relation between them, by a parameter , which represents the molar fraction of the second fluid with respect to the whole mixture. Avoid compositions with negative values

Arguments

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

Equation of state model

real(kind=pr), intent(in) :: a0

Initial value

real(kind=pr), intent(in) :: z0(:)

Molar fractions of the first fluid

real(kind=pr), intent(in) :: zi(:)

Molar fractions of the second fluid

integer, intent(in) :: ns0

Position of the specification variable

real(kind=pr), intent(in) :: S0

Specified value

real(kind=pr), intent(in) :: dS0

Initial step size

real(kind=pr), intent(in), optional :: v0

Initial volume [L/mol]

real(kind=pr), intent(in), optional :: t0

Initial temperature [K]

real(kind=pr), intent(in), optional :: p0

Initial pressure [bar]

integer, intent(in), optional :: max_points

Maximum number of points

real(kind=pr), intent(in), optional :: maxP

Maximum pressure

type(EquilibriumState), intent(in), optional :: first_point
logical, optional :: stability_analysis

Return Value type(CriticalLine)


Calls

proc~~critical_line~~CallsGraph proc~critical_line critical_line df df proc~critical_line->df dfds dfds proc~critical_line->dfds dx dx proc~critical_line->dx dxds dxds proc~critical_line->dxds f f proc~critical_line->f proc~df_critical df_critical proc~critical_line->proc~df_critical proc~f_critical F_critical proc~critical_line->proc~f_critical proc~get_a get_a proc~critical_line->proc~get_a proc~lambda1 lambda1 proc~critical_line->proc~lambda1 proc~look_for_cep look_for_cep proc~critical_line->proc~look_for_cep proc~set_a set_a proc~critical_line->proc~set_a proc~solve_system solve_system proc~critical_line->proc~solve_system proc~volume~3 ArModel%volume proc~critical_line->proc~volume~3 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 proc~look_for_cep->proc~get_a proc~look_for_cep->proc~set_a proc~look_for_cep->proc~solve_system proc~df_cep df_cep proc~look_for_cep->proc~df_cep proc~f_cep F_cep proc~look_for_cep->proc~f_cep proc~pressure ArModel%pressure proc~look_for_cep->proc~pressure proc~stability_check stability_check proc~look_for_cep->proc~stability_check 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 proc~df_cep->proc~get_a proc~df_cep->proc~f_cep none~dsyev dsyev proc~eigen->none~dsyev proc~f_cep->proc~get_a proc~f_cep->proc~lambda1 proc~f_cep->proc~lnfug_vt residual_helmholtz residual_helmholtz proc~lnfug_vt->residual_helmholtz proc~pressure->residual_helmholtz proc~stability_check->proc~volume~3 proc~stability_check->proc~lnfug_vt

Variables

Type Visibility Attributes Name Initial
real(kind=pr), private :: P
real(kind=pr), private :: S
real(kind=pr), private :: T
real(kind=pr), private :: V
real(kind=pr), private :: V_cep
real(kind=pr), private :: X0(4)
real(kind=pr), private, allocatable :: XS(:,:)

Full set of solved points

real(kind=pr), private, allocatable :: XS_i(:)

Full set of solved points

real(kind=pr), private :: a
logical, private :: found_cep
integer, private :: i
real(kind=pr), private :: max_P
integer, private :: nc
integer, private :: npoints
integer, private :: ns
logical, private :: stab_anal
real(kind=pr), private :: u(size(z0))

eigen-vector

real(kind=pr), private :: u_new(size(z0))

eigen-vector

real(kind=pr), private :: y_cep(size(z0))
real(kind=pr), private :: z(size(z0))