groups.f90 Source File


Source Code

module yaeos__models_ge_group_contribution_groups
   use yaeos__constants, only: pr
   implicit none

   type :: Groups
      !! # Groups
      !! Derived type used to represent a molecule and its UNIFAC groups.
      !!
      !! # Description
      !! Derived type used to represent a molecule and its UNIFAC groups. Is
      !! necessary to specify the subgroups ids and the subgroups on each
      !! molecule as shown in the example.
      !!
      !! # Examples
      !!
      !! ```fortran
      !!  ! Define toluene molecule groups
      !!  use yaeos, only: Groups
      !!
      !!  type(Groups) :: toluene
      !!
      !!  ! Toluene [ACH, ACCH3]
      !!  toluene%groups_ids = [9, 11] ! Subgroups ids
      !!  toluene%number_of_groups = [5, 1] ! Subgroups occurrences
      !! ```
      !!
      !! # References
      !! 1. [Dortmund Data Bank Software & Separation Technology](https://www.ddbst
      !! .com/published-parameters-unifac.html)
      integer, allocatable :: groups_ids(:)
      !! Indexes (ids) of each subgroup in the main group matrix
      integer, allocatable :: number_of_groups(:)
      !! Occurrences of each subgroup in the molecule
      real(pr) :: surface_area
      !! Molecule surface area \(q\)
      real(pr) :: volume
      !! Molecule volume \(r\)
   end type Groups
end module yaeos__models_ge_group_contribution_groups