F_critical Function

public function F_critical(model, X, ns, S, z0, zi, u)

F_critical

Description

Function that should be equal to zero at a critical point is found. The second criticality condition is calculated as a numerical derivative with eps=1e-4.

The vector of varibles is

Including internally the extra equation:

Arguments

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

Equation of state model

real(kind=pr), intent(in) :: X(4)

Vector of variables

integer, intent(in) :: ns

Position of the specification variable

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

Specification variable value

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

Molar fractions of the first fluid

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

Molar fractions of the second fluid

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

Eigen-vector

Return Value real(kind=pr), (4)


Calls

proc~~f_critical~~CallsGraph proc~f_critical F_critical proc~get_a get_a proc~f_critical->proc~get_a proc~lambda1 lambda1 proc~f_critical->proc~lambda1 proc~lambda1->proc~get_a proc~eigen eigen proc~lambda1->proc~eigen proc~lnfug_vt ArModel%lnfug_vt proc~lambda1->proc~lnfug_vt none~dsyev dsyev proc~eigen->none~dsyev residual_helmholtz residual_helmholtz proc~lnfug_vt->residual_helmholtz

Called by

proc~~f_critical~~CalledByGraph proc~f_critical F_critical proc~critical_line critical_line proc~critical_line->proc~f_critical proc~df_critical df_critical proc~critical_line->proc~df_critical proc~critical_point critical_point proc~critical_point->proc~f_critical proc~critical_point->proc~df_critical proc~df_critical->proc~f_critical proc~get_critical_constants get_critical_constants proc~get_critical_constants->proc~critical_point proc~init_pcsaft init_pcsaft proc~init_pcsaft->proc~get_critical_constants

Variables

Type Visibility Attributes Name Initial
real(kind=pr), private :: F1(4)
real(kind=pr), private :: F2(4)
real(kind=pr), private :: P
real(kind=pr), private :: T
real(kind=pr), private :: V
real(kind=pr), private :: a
real(kind=pr), private :: dx(4)
real(kind=pr), private, parameter :: eps = 1e-4_pr
real(kind=pr), private :: eps_df
integer, private :: i
integer, private :: nc
real(kind=pr), private :: u_new(size(u))
real(kind=pr), private :: z(size(u))