yaeos__models_ge_uniquac Module

UNIQUAC module

UNIQUAC (universal quasichemical) Excess Gibbs free energy model.

References

  1. Maurer, G., & Prausnitz, J. M. (1978). On the derivation and extension of the UNIQUAC equation. Fluid Phase Equilibria, 2(2), 91-99.
  2. Gmehling, Jurgen, Barbel Kolbe, Michael Kleiber, and Jurgen Rarey. Chemical Thermodynamics for Process Simulation. 1st edition. Weinheim: Wiley-VCH, 2012.
  3. Caleb Bell and Contributors (2016-2024). Thermo: Chemical properties component of Chemical Engineering Design Library (ChEDL) https://github.com/CalebBell/thermo.


Derived Types

type, public, extends(GeModel) ::  UNIQUAC

UNIQUAC (universal quasichemical) Excess Gibbs free energy model.

Read more…

Components

Type Visibility Attributes Name Initial
real(kind=pr), public, allocatable :: aij(:,:)

Interaction parameters matrix

real(kind=pr), public, allocatable :: bij(:,:)

Interaction parameters matrix

real(kind=pr), public, allocatable :: cij(:,:)

Interaction parameters matrix

type(Substances), public :: components

Substances contained in the module

real(kind=pr), public, allocatable :: dij(:,:)

Interaction parameters matrix

real(kind=pr), public, allocatable :: eij(:,:)

Interaction parameters matrix

real(kind=pr), public, allocatable :: qs(:)

Molecule’s relative areas

real(kind=pr), public, allocatable :: rs(:)

Molecule’s relative volumes

real(kind=pr), public :: z = 10.0_pr

Model coordination number

Type-Bound Procedures

procedure, public :: excess_gibbs
procedure, public :: ln_activity_coefficient
procedure, public :: taus

Functions

public function setup_uniquac(qs, rs, aij, bij, cij, dij, eij)

Instantiate a UNIQUAC model.

Read more…

Arguments

Type IntentOptional Attributes Name
real(kind=pr), intent(in) :: qs(:)

Molecule’s relative volumes

real(kind=pr), intent(in) :: rs(size(qs))

Molecule’s relative areas

real(kind=pr), intent(in), optional :: aij(size(qs),size(qs))

Interaction parameters matrix , zero matrix if no provided.

real(kind=pr), intent(in), optional :: bij(size(qs),size(qs))

Interaction parameters matrix , zero matrix if no provided.

real(kind=pr), intent(in), optional :: cij(size(qs),size(qs))

Interaction parameters matrix , zero matrix if no provided.

real(kind=pr), intent(in), optional :: dij(size(qs),size(qs))

Interaction parameters matrix , zero matrix if no provided.

real(kind=pr), intent(in), optional :: eij(size(qs),size(qs))

Interaction parameters matrix , zero matrix if no provided.

Return Value type(UNIQUAC)


Subroutines

public subroutine excess_gibbs(self, n, T, Ge, GeT, GeT2, Gen, GeTn, Gen2)

Calculate the excess Gibbs free energy and its derivatives of the UNIQUAC model.

Arguments

Type IntentOptional Attributes Name
class(UNIQUAC), intent(in) :: self

UNIQUAC model

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

Moles vector [mol]

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

Temperature [K]

real(kind=pr), intent(out), optional :: Ge

Excess Gibbs energy

real(kind=pr), intent(out), optional :: GeT

real(kind=pr), intent(out), optional :: GeT2

real(kind=pr), intent(out), optional :: Gen(size(n))

real(kind=pr), intent(out), optional :: GeTn(size(n))

real(kind=pr), intent(out), optional :: Gen2(size(n),size(n))

public subroutine taus(self, T, tau, tauT, tauT2)

Calculate the temperature dependence term of the UNIQUAC model.

Arguments

Type IntentOptional Attributes Name
class(UNIQUAC), intent(in) :: self

UNIQUAC model

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

Temperature [K]

real(kind=pr), intent(out), optional :: tau(size(self%qs),size(self%qs))

UNIQUAC temperature dependence term

real(kind=pr), intent(out), optional :: tauT(size(self%qs),size(self%qs))

real(kind=pr), intent(out), optional :: tauT2(size(self%qs),size(self%qs))