solve_point_psat Subroutine

private subroutine solve_point_psat(model, ncomp, nc, X, ns, S, F, dF, dFdS, its)

Uses

  • proc~~solve_point_psat~~UsesGraph proc~solve_point_psat solve_point_psat module~yaeos__math yaeos__math proc~solve_point_psat->module~yaeos__math module~yaeos__constants yaeos__constants module~yaeos__math->module~yaeos__constants module~yaeos__math_continuation yaeos__math_continuation module~yaeos__math->module~yaeos__math_continuation module~yaeos__math_linalg yaeos__math_linalg module~yaeos__math->module~yaeos__math_linalg iso_fortran_env iso_fortran_env module~yaeos__constants->iso_fortran_env module~yaeos__math_continuation->module~yaeos__constants module~yaeos__math_continuation->module~yaeos__math_linalg module~yaeos__math_linalg->module~yaeos__constants

Solve point

Solve a saturation point for a pure component.

Description

The set of equations to solve is:

Where is an specification function defined as:

The vector of variables is equal to .

Arguments

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

Thermodynamic model

integer, intent(in) :: ncomp

Component index

integer, intent(in) :: nc

Total number of components

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

Variables

integer, intent(in) :: ns

Variable index to solve. If the

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

Variable value specified to solve

real(kind=pr), intent(out) :: F(3)

Function

real(kind=pr), intent(out) :: dF(3,3)

Jacobian

real(kind=pr), intent(out) :: dFdS(3)

Derivative of the function with respect to S

integer, intent(out) :: its

Number of iterations


Calls

proc~~solve_point_psat~~CallsGraph proc~solve_point_psat solve_point_psat get_v0 get_v0 proc~solve_point_psat->get_v0 none~isofugacity~2 isofugacity proc~solve_point_psat->none~isofugacity~2 proc~solve_system solve_system proc~solve_point_psat->proc~solve_system proc~lnfug_vt ArModel%lnfug_vt none~isofugacity~2->proc~lnfug_vt none~dgesv dgesv proc~solve_system->none~dgesv residual_helmholtz residual_helmholtz proc~lnfug_vt->residual_helmholtz

Called by

proc~~solve_point_psat~~CalledByGraph proc~solve_point_psat solve_point_psat proc~psat_pure ArModel%Psat_pure proc~psat_pure->proc~solve_point_psat proc~get_critical_constants get_critical_constants proc~get_critical_constants->proc~psat_pure proc~refit_rkpr_k refit_rkpr_k proc~refit_rkpr_k->proc~psat_pure proc~init_pcsaft init_pcsaft proc~init_pcsaft->proc~get_critical_constants proc~rkpr RKPR proc~rkpr->proc~refit_rkpr_k

Variables

Type Visibility Attributes Name Initial
real(kind=pr), private :: B
real(kind=pr), private :: Py
real(kind=pr), private :: Pz
real(kind=pr), private :: T
real(kind=pr), private :: Vy
real(kind=pr), private :: Vz
real(kind=pr), private :: Xnew(3)
real(kind=pr), private :: dPdTy
real(kind=pr), private :: dPdTz
real(kind=pr), private :: dPdVy
real(kind=pr), private :: dPdVz
real(kind=pr), private :: dX(3)
real(kind=pr), private :: dlnfdt_y(nc)
real(kind=pr), private :: dlnfdt_z(nc)
real(kind=pr), private :: dlnfdv_y(nc)
real(kind=pr), private :: dlnfdv_z(nc)
integer, private :: i
real(kind=pr), private :: lnfug_y(nc)
real(kind=pr), private :: lnfug_z(nc)
real(kind=pr), private :: z(nc)

Subroutines

subroutine isofugacity(X, F, dF, dFdS)

Arguments

Type IntentOptional Attributes Name
real(kind=pr), intent(inout) :: X(3)
real(kind=pr), intent(out) :: F(3)
real(kind=pr), intent(out) :: dF(3,3)
real(kind=pr), intent(out) :: dFdS(3)