public function saturation_temperature(model, n, p, kind, t0, y0, max_iters)
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
Nodes of different colours represent the following:
Graph Key
Module
Module
Submodule
Submodule
Subroutine
Subroutine
Function
Function
Program
Program
This Page's Entity
This Page's Entity
Solid arrows point from a submodule to the (sub)module which it is
descended from. Dashed arrows point from a module or program unit to
modules which it uses.
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
Intent Optional 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
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
Nodes of different colours represent the following:
Graph Key
Subroutine
Subroutine
Function
Function
Interface
Interface
Type Bound Procedure
Type Bound Procedure
Unknown Procedure Type
Unknown Procedure Type
Program
Program
This Page's Entity
This Page's Entity
Solid arrows point from a procedure to one which it calls. Dashed
arrows point from an interface to procedures which implement that interface.
This could include the module procedures in a generic interface or the
implementation in a submodule of an interface in a parent module.
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))