public function RKPR(tc, pc, w, zc, kij, lij, delta_1, k) result(model)
proc~~rkpr~~UsesGraph
proc~rkpr
RKPR
module~yaeos__models_ar_cubic_alphas
yaeos__models_ar_cubic_alphas
proc~rkpr->module~yaeos__models_ar_cubic_alphas
module~yaeos__models_ar_cubic_quadratic_mixing
yaeos__models_ar_cubic_quadratic_mixing
proc~rkpr->module~yaeos__models_ar_cubic_quadratic_mixing
module~yaeos__constants
yaeos__constants
module~yaeos__models_ar_cubic_alphas->module~yaeos__constants
module~yaeos__models_ar_genericcubic
yaeos__models_ar_genericcubic
module~yaeos__models_ar_cubic_alphas->module~yaeos__models_ar_genericcubic
module~yaeos__substance
yaeos__substance
module~yaeos__models_ar_cubic_alphas->module~yaeos__substance
module~yaeos__models_ar_cubic_quadratic_mixing->module~yaeos__constants
module~yaeos__models_ar_cubic_mixing_base
yaeos__models_ar_cubic_mixing_base
module~yaeos__models_ar_cubic_quadratic_mixing->module~yaeos__models_ar_cubic_mixing_base
module~yaeos__models_ar_cubic_quadratic_mixing->module~yaeos__models_ar_genericcubic
module~yaeos__models_ar_cubic_quadratic_mixing->module~yaeos__substance
iso_fortran_env
iso_fortran_env
module~yaeos__constants->iso_fortran_env
module~yaeos__models_ar_cubic_mixing_base->module~yaeos__constants
module~yaeos__models_ar_genericcubic->module~yaeos__constants
module~yaeos__models_ar_genericcubic->module~yaeos__substance
module~yaeos__models_ar
yaeos__models_ar
module~yaeos__models_ar_genericcubic->module~yaeos__models_ar
module~yaeos__substance->module~yaeos__constants
module~yaeos__models_ar->module~yaeos__constants
module~yaeos__models_base
yaeos__models_base
module~yaeos__models_ar->module~yaeos__models_base
module~yaeos__models_base->module~yaeos__substance
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.
RKPR Equation of State
The RKPR EoS extends the classical formulation of Cubic Equations
of State by freeing the parameter . This extra degree
provides extra ways of implementing the equation in comparison
of other Cubic EoS (like PR and SRK) which are limited to definition
of their critical constants.
Besides that extra parameter, the RKRR includes another
function:
In this implementation we take the simplest form which correlates
the extra parameter to the critical compressibility factor and
the parameter of the function to and :
Arguments
Type
Intent Optional Attributes
Name
real(kind=pr),
intent(in)
::
tc (:)
Critical Temperature [K]
real(kind=pr),
intent(in)
::
pc (:)
Critical Pressure [bar]
real(kind=pr),
intent(in)
::
w (:)
Acentric Factor
real(kind=pr),
intent(in)
::
zc (:)
Critical compressibility
real(kind=pr),
intent(in),
optional
::
kij (:,:)
k_{ij} matrix
real(kind=pr),
intent(in),
optional
::
lij (:,:)
l_{ij} matrix
real(kind=pr),
intent(in),
optional
::
delta_1 (:)
real(kind=pr),
intent(in),
optional
::
k (:)
Return Value
type(CubicEoS )
proc~~rkpr~~CallsGraph
proc~rkpr
RKPR
proc~get_oma_omb
get_OMa_OMb
proc~rkpr->proc~get_oma_omb
proc~refit_rkpr_k
refit_rkpr_k
proc~rkpr->proc~refit_rkpr_k
proc~get_p
PurePsat%get_P
proc~refit_rkpr_k->proc~get_p
proc~psat_pure
ArModel%Psat_pure
proc~refit_rkpr_k->proc~psat_pure
proc~pure_saturation_line
pure_saturation_line
proc~refit_rkpr_k->proc~pure_saturation_line
evaluate
evaluate
proc~get_p->evaluate
none~diff~3
diff
proc~psat_pure->none~diff~3
initialize
initialize
proc~pure_saturation_line->initialize
proc~solve_point~6
solve_point
proc~pure_saturation_line->proc~solve_point~6
proc~solve_system
solve_system
proc~pure_saturation_line->proc~solve_system
proc~volume~3
ArModel%volume
proc~pure_saturation_line->proc~volume~3
proc~lnphi_pt
ArModel%lnphi_pt
none~diff~3->proc~lnphi_pt
proc~solve_point~6->proc~solve_system
get_v0
get_v0
proc~solve_point~6->get_v0
none~isofugacity
isofugacity
proc~solve_point~6->none~isofugacity
none~dgesv
dgesv
proc~solve_system->none~dgesv
proc~volume~3->get_v0
interface~newton
newton
proc~volume~3->interface~newton
proc~newton_1d
newton_1d
interface~newton->proc~newton_1d
proc~lnfug_vt
ArModel%lnfug_vt
none~isofugacity->proc~lnfug_vt
proc~lnphi_pt->proc~volume~3
proc~lnphi_vt
ArModel%lnphi_vt
proc~lnphi_pt->proc~lnphi_vt
residual_helmholtz
residual_helmholtz
proc~lnfug_vt->residual_helmholtz
proc~lnphi_vt->residual_helmholtz
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),
private,
parameter
::
A0
=
0.0017
real(kind=pr),
private,
parameter
::
A1
=
-2.4407
real(kind=pr),
private,
parameter
::
B0
=
1.9681
real(kind=pr),
private,
parameter
::
B1
=
7.4513
real(kind=pr),
private,
parameter
::
C0
=
-2.6238
real(kind=pr),
private,
parameter
::
C1
=
12.504
real(kind=pr),
private
::
OMa (size(pc))
real(kind=pr),
private
::
OMb (size(pc))
real(kind=pr),
private
::
Psat_i
real(kind=pr),
private
::
Zc_eos (size(pc))
type(AlphaRKPR ),
private
::
alpha
type(Substances ),
private
::
composition
real(kind=pr),
private,
parameter
::
d1
=
0.428364
real(kind=pr),
private,
parameter
::
d2
=
18.496215
real(kind=pr),
private,
parameter
::
d3
=
0.338426
real(kind=pr),
private,
parameter
::
d4
=
0.66
real(kind=pr),
private,
parameter
::
d5
=
789.723105
real(kind=pr),
private,
parameter
::
d6
=
2.512392
real(kind=pr),
private
::
diff
integer,
private
::
i
type(QMR ),
private
::
mixrule
integer,
private
::
nc