File: N:\mfix\model\des\derived_types_mod.f

1     ! -*- f90 -*-
2     !vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvC
3     !                                                                      C
4     !   Module name: DERIVED_TYPES                                         C
5     !   Purpose: contains derived type definitions and enum definitions    C
6     !                                                                      C
7     !^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^C
8     
9     MODULE DERIVED_TYPES
10     
11     !-----------------------------------------------
12     ! Modules
13     !-----------------------------------------------
14       USE multi_sweep_and_prune, only: multisap_t, boxhandlelist_t
15       IMPLICIT NONE
16     !-----------------------------------------------
17       ! the global multisap
18       type(multisap_t) multisap
19     
20       type(boxhandlelist_t), DIMENSION(:),  ALLOCATABLE :: boxhandle         !(PARTICLES)
21     
22     ! Dynamic information related to computational (eulerian) fluid grid
23     !----------------------------------------------------------------->>>
24     ! Dynamic variable. for each ijk computational fluid cell store the
25     ! total number of particles and the id's of the particles in that cell
26       TYPE iap1
27          INTEGER, DIMENSION(:), POINTER:: p
28       END TYPE iap1
29     
30       ! in order to facilitate the parallel processing the PIC is defined
31       ! as single array IJK
32       TYPE(iap1), DIMENSION(:), ALLOCATABLE:: pic  ! (DIMENSION_3)
33     
34     ! particle in cell related variable
35       type iap2
36          integer :: isize
37          integer, dimension(:), pointer:: p
38       end type iap2
39     
40       type(iap2), dimension(:),allocatable:: dg_pic
41     
42     ! Drag model options (see drag_gs for full details)
43     ! default is syam_obrien (may enforce a corrected Umf by defining
44     ! drag_c1 and drag_d1 accordingly)
45       CHARACTER(64) :: DRAG_TYPE
46       INTEGER :: DRAG_TYPE_ENUM
47     
48       ENUM, BIND(C)
49          ENUMERATOR :: SYAM_OBRIEN=0
50          ENUMERATOR :: GIDASPOW=1
51          ENUMERATOR :: GIDASPOW_PCF=2
52          ENUMERATOR :: GIDASPOW_BLEND=3
53          ENUMERATOR :: GIDASPOW_BLEND_PCF=4
54          ENUMERATOR :: WEN_YU=5
55          ENUMERATOR :: WEN_YU_PCF=6
56          ENUMERATOR :: KOCH_HILL=7
57          ENUMERATOR :: KOCH_HILL_PCF=8
58          ENUMERATOR :: BVK=9
59          ENUMERATOR :: HYS=10
60          ENUMERATOR :: USER_DRAG=11
61       END ENUM
62     
63     ! filtered/subgrid corrections to the drag coefficient & granular
64     ! stress terms including granular viscosity and solids pressure
65     ! current options are 'igci' and 'milioli'
66       CHARACTER(64) :: SUBGRID_TYPE
67     
68       INTEGER :: SUBGRID_TYPE_ENUM
69       ENUM, BIND(C)
70          ENUMERATOR :: UNDEFINED_SUBGRID_TYPE=0
71          ENUMERATOR :: IGCI=1
72          ENUMERATOR :: MILIOLI=2
73       END ENUM
74     
75       ! Kinetic theory model options (see calc_mu_s for details)
76       ! for m > 1 : IA_nonep, GHD, LUN_1984
77       ! for m = 1 : LUN_1984, simonin, ahmadi, or
78       !             GD_99 for granular flow or GTSH for gas-solids flow
79       CHARACTER(64) :: KT_TYPE
80       INTEGER :: KT_TYPE_ENUM
81       ENUM, BIND(C)
82          ENUMERATOR :: LUN_1984=0
83          ENUMERATOR :: SIMONIN_1996=1
84          ENUMERATOR :: AHMADI_1995=2
85          ENUMERATOR :: GD_1999=3
86          ENUMERATOR :: GTSH_2012=4
87          ENUMERATOR :: IA_2005=5
88          ENUMERATOR :: GHD_2007=6
89       END ENUM
90     
91       ! Radial distribution function options (see g_0 for details)
92       ! for m > 1 options are lebowitz, modified_lebowitz,
93       ! mansoori, modified_mansoori.  default = lebowitz
94       ! for m = 1 then carnahan and starling rdf used
95       CHARACTER(64) :: RDF_TYPE
96       INTEGER :: RDF_TYPE_ENUM
97       ENUM, BIND(C)
98          ENUMERATOR :: LEBOWITZ=0
99          ENUMERATOR :: MODIFIED_LEBOWITZ=1
100          ENUMERATOR :: MANSOORI=2
101          ENUMERATOR :: MODIFIED_MANSOORI=3
102          ENUMERATOR :: CARNAHAN_STARLING=4
103       END ENUM
104     
105      END MODULE DERIVED_TYPES
106