TXEnvelMP Derived Type

type, public :: TXEnvelMP

Multiphase PT envelope.


Components

Type Visibility Attributes Name Initial
real(kind=pr), public, allocatable :: alpha(:)
type(MPPoint), public, allocatable :: points(:)

Array of converged points.

real(kind=pr), public, allocatable :: z0(:)
real(kind=pr), public, allocatable :: zi(:)

Type-Bound Procedures

procedure, public, nopass :: get_values_from_X

  • private subroutine get_values_from_X(X, np, z0, zi, beta_w, x_l, w, betas, T, alpha)

    Extract the values of the variables from the vector X.

    Read more…

    Arguments

    Type IntentOptional Attributes Name
    real(kind=pr), intent(in) :: X(:)

    Vector of variables.

    integer, intent(in) :: np

    Number of main phases.

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

    Initial mixture composition.

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

    Second mixture composition.

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

    Reference phase beta.

    real(kind=pr), intent(out) :: x_l(np,size(z0))

    Mole fractions of the main phases.

    real(kind=pr), intent(out) :: w(size(z0))

    Mole fractions of the incipient phase.

    real(kind=pr), intent(out) :: betas(np)

    Fractions of the main phases.

    real(kind=pr), intent(out) :: T

    Pressure [bar].

    real(kind=pr), intent(out) :: alpha

    .

procedure, public, nopass :: solve_point

  • private subroutine solve_point(model, z0, zi, np, P, beta_w, X, ns, S, dXdS, F, df, iters, max_iterations)

    Arguments

    Type IntentOptional Attributes Name
    class(ArModel), intent(in) :: model
    real(kind=pr), intent(in) :: z0(:)
    real(kind=pr), intent(in) :: zi(:)
    integer, intent(in) :: np

    Number of main phases

    real(kind=pr), intent(in) :: P
    real(kind=pr), intent(in) :: beta_w

    Fraction of the reference (incipient) phase

    real(kind=pr), intent(inout) :: X(:)

    Vector of variables

    integer, intent(in) :: ns

    Number of specification

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

    Specification value

    real(kind=pr), intent(in) :: dXdS(size(X))
    real(kind=pr), intent(out) :: F(size(X))

    Vector of functions valuated

    real(kind=pr), intent(out) :: df(size(X),size(X))

    Jacobian matrix

    integer, intent(out) :: iters
    integer, intent(in) :: max_iterations

procedure, public :: write => write_envelope_TX_MP

  • private subroutine write_envelope_TX_MP(env, unit)

    Arguments

    Type IntentOptional Attributes Name
    class(TXEnvelMP), intent(in) :: env
    integer, intent(in) :: unit