yaeos__models_ar_gerg2008 Module

Ideal gas constants used on yaeos


Uses

  • module~~yaeos__models_ar_gerg2008~~UsesGraph module~yaeos__models_ar_gerg2008 yaeos__models_ar_gerg2008 module~hyperdual_mod hyperdual_mod module~yaeos__models_ar_gerg2008->module~hyperdual_mod module~yaeos__adiff_hyperdual_ar_api yaeos__adiff_hyperdual_ar_api module~yaeos__models_ar_gerg2008->module~yaeos__adiff_hyperdual_ar_api module~yaeos__constants yaeos__constants module~yaeos__models_ar_gerg2008->module~yaeos__constants module~yaeos__models_ar_cubic_implementations yaeos__models_ar_cubic_implementations module~yaeos__models_ar_gerg2008->module~yaeos__models_ar_cubic_implementations module~yaeos__models_ar_genericcubic yaeos__models_ar_genericcubic module~yaeos__models_ar_gerg2008->module~yaeos__models_ar_genericcubic module~yaeos__models_ar_multifluid_parameters_gerg2008 yaeos__models_ar_multifluid_parameters_gerg2008 module~yaeos__models_ar_gerg2008->module~yaeos__models_ar_multifluid_parameters_gerg2008 module~hyperdual_mod->module~yaeos__constants module~yaeos__adiff_hyperdual_ar_api->module~hyperdual_mod module~yaeos__adiff_hyperdual_ar_api->module~yaeos__constants module~yaeos__models_ar yaeos__models_ar module~yaeos__adiff_hyperdual_ar_api->module~yaeos__models_ar iso_fortran_env iso_fortran_env module~yaeos__constants->iso_fortran_env module~yaeos__models_ar_cubic_implementations->module~yaeos__constants module~yaeos__models_ar_cubic_implementations->module~yaeos__models_ar_genericcubic module~yaeos__substance yaeos__substance module~yaeos__models_ar_cubic_implementations->module~yaeos__substance module~yaeos__models_ar_genericcubic->module~yaeos__constants module~yaeos__models_ar_genericcubic->module~yaeos__models_ar module~yaeos__models_ar_genericcubic->module~yaeos__substance module~yaeos__models_ar_multifluid_parameters_gerg2008->module~yaeos__constants module~yaeos__models_base yaeos__models_base module~yaeos__models_ar_multifluid_parameters_gerg2008->module~yaeos__models_base module~yaeos__models_ar->module~yaeos__constants module~yaeos__models_ar->module~yaeos__models_base module~yaeos__models_base->module~yaeos__substance module~yaeos__substance->module~yaeos__constants

Used by

  • module~~yaeos__models_ar_gerg2008~~UsedByGraph module~yaeos__models_ar_gerg2008 yaeos__models_ar_gerg2008 module~yaeos__models yaeos__models module~yaeos__models->module~yaeos__models_ar_gerg2008 module~yaeos yaeos module~yaeos->module~yaeos__models

Variables

Type Visibility Attributes Name Initial
type(GERG2008Selector), public :: G2008Components

Derived Types

type, public, extends(ArModelAdiff) ::  Gerg2008

Components

Type Visibility Attributes Name Initial
type(Gerg2008Binary), public, allocatable :: binaries(:,:)
type(Substances), public :: components

Substances contained in the module

character(len=:), public, allocatable :: name

Name of the model

type(Gerg2008Pure), public, allocatable :: pures(:)
type(CubicEoS), public :: srk

Type-Bound Procedures

procedure, public :: Cp_residual_vt
procedure, public :: Cv_residual_vt
procedure, public :: Psat_pure
procedure, public :: ar => arfun
procedure, public :: enthalpy_residual_vt
procedure, public :: entropy_residual_vt
procedure, public :: get_v0 => volume_initalizer
procedure, public :: gibbs_residual_vt
procedure, public :: internal_energy_residual_vt
procedure, public :: lnfug_vt
procedure, public :: lnphi_pt
procedure, public :: lnphi_vt
procedure, public :: pressure
procedure, public :: residual_helmholtz
procedure, public :: volume

type, private ::  GERG2008Selector

Components

Type Visibility Attributes Name Initial
integer, public :: argon = 21
integer, public :: carbon_dioxide = 3
integer, public :: carbon_monoxide = 17
integer, public :: decane = 14
integer, public :: ethane = 4
integer, public :: helium = 20
integer, public :: hydrogen = 15
integer, public :: hydrogen_sulfide = 19
integer, public :: isobutane = 7
integer, public :: isopentane = 9
integer, public :: methane = 1
integer, public :: nbutane = 6
integer, public :: nheptane = 11
integer, public :: nhexane = 10
integer, public :: nitrogen = 2
integer, public :: noctane = 12
integer, public :: nonane = 13
integer, public :: npentane = 8
integer, public :: oxygen = 16
integer, public :: propane = 5
integer, public :: water = 18

Functions

public function arfun(self, n, v, t) result(arval)

Arguments

Type IntentOptional Attributes Name
class(Gerg2008) :: self
type(hyperdual), intent(in) :: n(:)
type(hyperdual), intent(in) :: v
type(hyperdual), intent(in) :: t

Return Value type(hyperdual)

public function gerg_2008(ids)

Arguments

Type IntentOptional Attributes Name
integer, intent(in) :: ids(:)

Return Value type(Gerg2008)

public function volume_initalizer(self, n, p, t) result(v0)

Arguments

Type IntentOptional Attributes Name
class(Gerg2008), intent(in) :: self
real(kind=pr), intent(in) :: n(:)
real(kind=pr), intent(in) :: p
real(kind=pr), intent(in) :: t

Return Value real(kind=pr)


Subroutines

public subroutine ar_ij(delta, tau, binary, aij)

Arguments

Type IntentOptional Attributes Name
type(hyperdual), intent(in) :: delta
type(hyperdual), intent(in) :: tau
type(Gerg2008Binary), intent(in) :: binary
type(hyperdual), intent(out) :: aij

public subroutine ar_pure(pure, delta, tau, ar)

Arguments

Type IntentOptional Attributes Name
type(Gerg2008Pure), intent(in) :: pure
type(hyperdual), intent(in) :: delta
type(hyperdual), intent(in) :: tau
type(hyperdual), intent(out) :: ar

public subroutine reducing_functions(self, n, Vr, Tr)

Arguments

Type IntentOptional Attributes Name
class(Gerg2008), intent(in) :: self
type(hyperdual), intent(in) :: n(:)
type(hyperdual), intent(out) :: Vr
type(hyperdual), intent(out) :: Tr

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

Volume solver routine for the GERG2008.

Read more…

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"]