saturation_temperature Function

public function saturation_temperature(model, n, p, kind, t0, y0, max_iters)

Uses

  • proc~~saturation_temperature~~UsesGraph proc~saturation_temperature saturation_temperature module~yaeos__auxiliar yaeos__auxiliar proc~saturation_temperature->module~yaeos__auxiliar module~yaeos__m_s_sp yaeos__m_s_sp proc~saturation_temperature->module~yaeos__m_s_sp module~yaeos__constants yaeos__constants module~yaeos__auxiliar->module~yaeos__constants module~yaeos__m_s_sp->module~yaeos__constants module~yaeos__models_ar yaeos__models_ar module~yaeos__m_s_sp->module~yaeos__models_ar iso_fortran_env iso_fortran_env module~yaeos__constants->iso_fortran_env module~yaeos__models_ar->module~yaeos__constants module~yaeos__models_base yaeos__models_base module~yaeos__models_ar->module~yaeos__models_base module~yaeos__substance yaeos__substance module~yaeos__models_base->module~yaeos__substance module~yaeos__substance->module~yaeos__constants

Saturation temperature calculation function.

Calculates the saturation pressure of a multicomponent mixture with a given molar composition n. It is possible to calculate:

  • Bubble point: kind="bubble"
  • Dew point: kind="dew"
  • Liquid-Liquid point: kind="liquid-liquid" It will first try to converge a solution using a Newton method to solve the equation

updating at each step as the ratio of fugacities of the phases. If the solution does not converge, it will use a full Newton method to solve the system of equations using the variables and .

Arguments

Type IntentOptional Attributes Name
class(ArModel), intent(in), target :: model
real(kind=pr), intent(in) :: n(:)

Composition vector [moles / molar fraction]

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

Pressure [bar]

character(len=*), intent(in) :: kind

[bubble|dew|liquid-liquid]

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

Initial temperature [K]

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

Initial composition

integer, intent(in), optional :: max_iters

Maximum number of iterations

Return Value type(EquilibriumState)


Calls

proc~~saturation_temperature~~CallsGraph proc~saturation_temperature saturation_temperature interface~optval optval proc~saturation_temperature->interface~optval proc~k_wilson k_wilson proc~saturation_temperature->proc~k_wilson proc~lnphi_pt ArModel%lnphi_pt proc~saturation_temperature->proc~lnphi_pt proc~solve_tp solve_TP proc~saturation_temperature->proc~solve_tp proc~volume~3 ArModel%volume proc~saturation_temperature->proc~volume~3 x x proc~saturation_temperature->x proc~optval_character optval_character interface~optval->proc~optval_character proc~optval_integer optval_integer interface~optval->proc~optval_integer proc~optval_real optval_real interface~optval->proc~optval_real proc~lnphi_pt->proc~volume~3 proc~lnphi_vt ArModel%lnphi_vt proc~lnphi_pt->proc~lnphi_vt none~wrap~2 wrap proc~solve_tp->none~wrap~2 proc~newton newton proc~solve_tp->proc~newton 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~saturation_tp saturation_TP none~wrap~2->proc~saturation_tp residual_helmholtz residual_helmholtz proc~lnphi_vt->residual_helmholtz proc~solve_system solve_system proc~newton->proc~solve_system proc~saturation_tp->proc~lnphi_pt none~dgesv dgesv proc~solve_system->none~dgesv

Variables

Type Visibility Attributes Name Initial
real(kind=pr), public :: T1
real(kind=pr), public :: T2
real(kind=pr), public :: dlnphi_dt_y(size(n))
real(kind=pr), public :: dlnphi_dt_z(size(n))
real(kind=pr), public :: f
real(kind=pr), public :: f1
real(kind=pr), public :: f2
character(len=50), public :: incipient
logical, public :: is_incipient(size(n))
integer, public :: iterations
integer, public :: its
real(kind=pr), public :: k(size(n))
real(kind=pr), public :: lnfug_y(size(n))
real(kind=pr), public :: lnfug_z(size(n))
real(kind=pr), public :: lnk(size(n))
character(len=50), public :: main
real(kind=pr), public :: step
real(kind=pr), public :: t
real(kind=pr), public :: vy
real(kind=pr), public :: vz
real(kind=pr), public :: y(size(n))
real(kind=pr), public :: z(size(n))