pt_mp_flash Function

public function pt_mp_flash(model, z, P, T)

Uses

  • proc~~pt_mp_flash~~UsesGraph proc~pt_mp_flash pt_mp_flash module~yaeos__equilibria_stability yaeos__equilibria_stability proc~pt_mp_flash->module~yaeos__equilibria_stability module~yaeos__constants yaeos__constants module~yaeos__equilibria_stability->module~yaeos__constants module~yaeos__models_ar yaeos__models_ar module~yaeos__equilibria_stability->module~yaeos__models_ar module~yaeos__models_base yaeos__models_base module~yaeos__equilibria_stability->module~yaeos__models_base module~yaeos__models_ge yaeos__models_ge module~yaeos__equilibria_stability->module~yaeos__models_ge iso_fortran_env iso_fortran_env module~yaeos__constants->iso_fortran_env module~yaeos__models_ar->module~yaeos__constants module~yaeos__models_ar->module~yaeos__models_base module~yaeos__substance yaeos__substance module~yaeos__models_base->module~yaeos__substance module~yaeos__models_ge->module~yaeos__constants module~yaeos__models_ge->module~yaeos__models_base module~yaeos__substance->module~yaeos__constants

pt_mp_flash

Perform a multiphase flash calculation at constant zPT.

Description

This method will do stability analysis to detect the possibility of new phases. For each new phase detected it will calculate a multiphase flash and repeat stability analysis until no new phases are detected.

Examples


References

Arguments

Type IntentOptional Attributes Name
class(ArModel), intent(in) :: model
real(kind=pr), intent(in) :: z(:)
real(kind=pr), intent(in) :: P
real(kind=pr), intent(in) :: T

Return Value type(MPEquilibriumState)


Calls

proc~~pt_mp_flash~~CallsGraph proc~pt_mp_flash pt_mp_flash proc~min_tpd min_tpd proc~pt_mp_flash->proc~min_tpd proc~solve_mp_flash_point solve_mp_flash_point proc~pt_mp_flash->proc~solve_mp_flash_point ln_activity_coefficient ln_activity_coefficient proc~min_tpd->ln_activity_coefficient lnphi_pt lnphi_pt proc~min_tpd->lnphi_pt proc~tm tm proc~min_tpd->proc~tm proc~pt_f_np~2 pt_F_NP proc~solve_mp_flash_point->proc~pt_f_np~2 proc~solve_system solve_system proc~solve_mp_flash_point->proc~solve_system proc~lnphi_pt ArModel%lnphi_pt proc~pt_f_np~2->proc~lnphi_pt none~dgesv dgesv proc~solve_system->none~dgesv proc~tm->ln_activity_coefficient proc~tm->lnphi_pt proc~lnphi_vt ArModel%lnphi_vt proc~lnphi_pt->proc~lnphi_vt proc~volume~3 ArModel%volume proc~lnphi_pt->proc~volume~3 residual_helmholtz residual_helmholtz proc~lnphi_vt->residual_helmholtz 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

Variables

Type Visibility Attributes Name Initial
real(kind=pr), public, allocatable :: F(:)
real(kind=pr), public :: K(max_phases,size(z))
real(kind=pr), public :: S1
real(kind=pr), public :: S2
real(kind=pr), public, allocatable :: X(:)
real(kind=pr), public :: all_minima(size(z),size(z))
real(kind=pr), public :: beta0
integer, public :: beta_0_index
real(kind=pr), public, allocatable :: betas(:)
integer, public :: iters
character(len=14), public :: kind_w
character(len=14), public :: kinds_x(max_phases)
logical, public :: less_phases
integer, public :: max_iters
integer, public, parameter :: max_phases = 4
real(kind=pr), public :: mintpd
real(kind=pr), public :: mintpd_w
real(kind=pr), public :: mintpd_xl1
integer, public :: nc
integer, public :: np
integer, public :: ns1
integer, public :: ns2
real(kind=pr), public :: w(size(z))
real(kind=pr), public :: w_stab(size(z))
real(kind=pr), public :: x_l(max_phases,size(z))