PTEnvelMP Derived Type

type, public :: PTEnvelMP

Multiphase PT envelope.


Components

Type Visibility Attributes Name Initial
type(MPPoint), public, allocatable :: points(:)

Array of converged points.


Type-Bound Procedures

procedure, public, nopass :: get_values_from_X

  • private subroutine get_values_from_X(X, np, z, x_l, w, betas, P, T)

    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) :: z(:)

    Mixture composition.

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

    Mole fractions of the main phases.

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

    Mole fractions of the incipient phase.

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

    Fractions of the main phases.

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

    Pressure [bar].

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

    Temperature [K].

procedure, public, nopass :: solve_point

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

    Arguments

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

    Model to use.

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

    Mixture global composition.

    integer, intent(in) :: np

    Number of main phases

    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

    Number of iterations to solve the current point

    integer, intent(in) :: max_iterations

    Maximum number of iterations to solve the point

procedure, public :: write => write_envelope_PT_MP

  • private subroutine write_envelope_PT_MP(env, unit)

    Arguments

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