flash Function

public function flash(model, z, t, v_spec, p_spec, k0, iters)

Uses

    • stdlib_optval

Flash algorithm using sucessive substitutions.

Available specifications:

  • TP (with T and P_spec variables)
  • TV (with T and V_spec variables)

This algorithm assumes that the specified T and P/V correspond to vapor-liquid separation predicted by the provided model (0<beta<1) and solves the equilibria and mass-balance equations with a fixed-point method.

Arguments

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

Thermodynamic model

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

Global composition (molar fractions)

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

Temperature [K]

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

Specified Volume [L/mol]

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

Specified Pressure [bar]

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

Initial K factors (y/x)

integer, intent(out), optional :: iters

Number of iterations

Return Value type(EquilibriumState)


Variables

Type Visibility Attributes Name Initial
real(kind=pr), public, dimension(size(z)) :: K
real(kind=pr), public :: P
real(kind=pr), public :: V
real(kind=pr), public :: Vx
real(kind=pr), public :: Vy
real(kind=pr), public :: beta
real(kind=pr), public :: bmax
real(kind=pr), public :: bmin
real(kind=pr), public, dimension(size(z)) :: dK
real(kind=pr), public, dimension(size(z)) :: dKold
real(kind=pr), public :: g0
real(kind=pr), public :: g1
real(kind=pr), public, dimension(size(z)) :: lnK
real(kind=pr), public, dimension(size(z)) :: lnKold
real(kind=pr), public, dimension(size(z)) :: lnfug_x
real(kind=pr), public, dimension(size(z)) :: lnfug_y
character(len=2), public :: spec

Flash specification [PT | VT]

real(kind=pr), public, dimension(size(z)) :: x
real(kind=pr), public, dimension(size(z)) :: y