setup_unifac Function

public function setup_unifac(molecules, parameters)

Setup UNIFAC

Instantiate a UNIFAC model

Description

Subroutine used to instantiate a UNIFAC model.

Examples

 ! Instantiate an UNIFAC model with ethanol-water mix and calculate gammas
 use yaeos, only: pr, Groups, setup_unifac, UNIFAC

 type(UNIFAC) :: model
 type(Groups) :: molecules(2)
 real(pr) :: ln_gammas(2)

 ! Ethanol definition [CH3, CH2, OH]
 molecules(1)%groups_ids = [1, 2, 14] ! Subgroups ids
 molecules(1)%number_of_groups = [1, 1, 1] ! Subgroups occurrences

 ! Water definition [H2O]
 molecules(2)%groups_ids = [16]
 molecules(2)%number_of_groups = [1]

 ! Model setup
 model = setup_unifac(molecules)

 ! Calculate ln_gammas
 call model%ln_activity_coefficient([0.5_pr, 0.5_pr], 298.0_pr, ln_gammas)

 print *, ln_gammas ! result: 0.18534142000449058    0.40331395945417559

References

  1. Dortmund Data Bank Software & Separation Technology

Arguments

Type IntentOptional Attributes Name
type(Groups), intent(in) :: molecules(:)

Molecules (Group type) objects

type(GeGCModelParameters), intent(in), optional :: parameters

UNIFAC parameters

Return Value type(UNIFAC)


Calls

proc~~setup_unifac~~CallsGraph proc~setup_unifac setup_unifac proc~check_consistency GeGCModelParameters%check_consistency proc~setup_unifac->proc~check_consistency proc~get_subgroup_q GeGCModelParameters%get_subgroup_Q proc~setup_unifac->proc~get_subgroup_q proc~get_subgroup_r GeGCModelParameters%get_subgroup_R proc~setup_unifac->proc~get_subgroup_r proc~get_subgroups_aij GeGCModelParameters%get_subgroups_aij proc~setup_unifac->proc~get_subgroups_aij proc~thetas_i thetas_i proc~setup_unifac->proc~thetas_i proc~unifacparameters UNIFACParameters proc~setup_unifac->proc~unifacparameters proc~get_subgroup_index GeGCModelParameters%get_subgroup_index proc~get_subgroup_q->proc~get_subgroup_index proc~get_subgroup_r->proc~get_subgroup_index proc~get_maingroup_index GeGCModelParameters%get_maingroup_index proc~get_subgroups_aij->proc~get_maingroup_index proc~get_subgroup_maingroup GeGCModelParameters%get_subgroup_maingroup proc~get_subgroups_aij->proc~get_subgroup_maingroup proc~thetas_i->proc~get_subgroup_q proc~get_subgroup_maingroup->proc~get_subgroup_index

Called by

proc~~setup_unifac~~CalledByGraph proc~setup_unifac setup_unifac proc~setup_dortmund setup_dortmund proc~setup_dortmund->proc~setup_unifac proc~setup_psrk setup_psrk proc~setup_psrk->proc~setup_unifac proc~psrk PSRK proc~psrk->proc~setup_psrk

Variables

Type Visibility Attributes Name Initial
real(kind=pr), public, allocatable :: Aij(:,:)
integer, public :: gi
integer, public :: i
integer, public :: j
integer, public :: k
type(GeGCModelParameters), public :: params
type(UNIFACPsi), public :: psi_function
real(kind=pr), public, allocatable :: qks(:)
type(Groups), public :: soup
integer, public, allocatable :: vij(:,:)