volume Subroutine

public subroutine volume(eos, n, P, T, V, root_type)

Volume solver routine for the GERG2008.

Solves volume roots using newton method. Given pressure and temperature. It will use the SRK equation of state to initialize the volume values.

Description

This subroutine solves the volume using a newton method. The variable root_type is used to specify the desired root to solve. The options are: ["liquid", "vapor", "stable"]

Examples

eos = PengRobinson76(Tc, Pc, w)

n = [1.0_pr, 1.0_pr]
T = 300.0_pr
P = 1.0_pr

call eos%volume(n, P, T, V, root_type="liquid")
call eos%volume(n, P, T, V, root_type="vapor")
call eos%volume(n, P, T, V, root_type="stable")

Type Bound

Gerg2008

Arguments

Type IntentOptional Attributes Name
class(Gerg2008), intent(in) :: eos

Model

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

Moles number vector

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

Pressure [bar]

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

Temperature [K]

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

Volume [L]

character(len=*), intent(in) :: root_type

Desired root-type to solve. Options are: ["liquid", "vapor", "stable"]


Variables

Type Visibility Attributes Name Initial
real(kind=pr), public :: Gr
real(kind=pr), public :: GrL
real(kind=pr), public :: GrV
real(kind=pr), public :: Vliq
real(kind=pr), public :: Vvap
logical, public :: failed
integer, public :: max_iters = 30
real(kind=pr), public :: tol = 1e-8
real(kind=pr), public :: totnRT

Subroutines

subroutine foo(x, f, df)

Arguments

Type IntentOptional Attributes Name
real(kind=pr), intent(in) :: x
real(kind=pr), intent(out) :: f
real(kind=pr), intent(out) :: df