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

1     !vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv!
2     !                                                                         !
3     !  Subrourtine: DES_INIT_ARRAYS                                           !
4     !  Author: Jay Boyalakuntla                              Date: 12-Jun-04  !
5     !                                                                         !
6     !  Purpose: Initialize arrays at the start of the simulation. Note that   !
7     !  arrays based on the number of particles (MAX_PIP) should be added to   !
8     !  the DES_INIT_PARTICLE_ARRAYS as they need to be reinitialized after    !
9     !  particle arrays are grown (see PARTICLE_GROW).                         !
10     !                                                                         !
11     !^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^!
12           SUBROUTINE DES_INIT_ARRAYS
13     
14           USE param
15           USE param1
16           USE discretelement
17           USE indices
18           USE geometry
19           USE compar
20           USE physprop
21           USE des_bc
22           USE run
23           use desgrid
24           use desmpi
25           USE des_thermo
26           USE des_rxns
27     
28           IMPLICIT NONE
29     
30     !-----------------------------------------------
31     
32           PINC(:) = ZERO
33     
34           P_FORCE(:,:) = ZERO
35     
36           IF(allocated(DRAG_AM)) DRAG_AM = ZERO
37           IF(allocated(DRAG_BM)) DRAG_BM = ZERO
38     
39           F_GDS = ZERO
40           VXF_GDS = ZERO
41     
42           IF (DES_CONTINUUM_HYBRID) THEN
43              F_SDS = ZERO
44              VXF_SDS = ZERO
45              SDRAG_AM = ZERO
46              SDRAG_BM = ZERO
47           ENDIF
48     
49           GRAV(:) = ZERO
50     
51           IF(allocated(avgDES_T_s)) avgDES_T_s = ZERO
52           IF(allocated(CONV_Sp))   CONV_Sp = ZERO
53           IF(allocated(CONV_Sc))   CONV_Sc = ZERO
54     
55           CALL DES_INIT_PARTICLE_ARRAYS(1,MAX_PIP)
56     
57           RETURN
58           END SUBROUTINE DES_INIT_ARRAYS
59     
60     !vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv!
61     !                                                                         !
62     !  Subrourtine: DES_INIT_PARTICLE_ARRAYS                                  !
63     !  Author: Jay Boyalakuntla                              Date: 12-Jun-04  !
64     !                                                                         !
65     !  Purpose: Initialize particle arrays. The upper and lower bounds are    !
66     !  passed so that after resizing particle arrays (see GROW_PARTICLE) the  !
67     !  new portions of the arrays can be initialized.                         !
68     !                                                                         !
69     !^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^!
70           SUBROUTINE DES_INIT_PARTICLE_ARRAYS(LB,UB)
71     
72     !-----------------------------------------------
73     ! Modules
74     !-----------------------------------------------
75           use des_rxns
76           use des_thermo
77           use desgrid
78           use desmpi
79           use discretelement
80           use functions
81           use mfix_pic, only: AVGSOLVEL_P, EPG_P
82           use mfix_pic, only: MPPIC, DES_STAT_WT, PS_GRAD
83           use param1, only: zero
84           use particle_filter, only: FILTER_CELL, FILTER_WEIGHT
85           use particle_filter, only: FILTER_SIZE
86           use run, only: ANY_SPECIES_EQ
87           use run, only: ENERGY_EQ
88           use des_thermo_cond, only: DES_QW_cond
89     
90           IMPLICIT NONE
91     
92           INTEGER, INTENT(IN) :: LB, UB
93           INTEGER :: II
94     
95           IGLOBAL_ID(LB:UB) = 0
96     
97     ! Physical properties:
98           DES_RADIUS(LB:UB) = ZERO
99           RO_Sol(LB:UB) = ZERO
100           PVOL(LB:UB) = HUGE(0.0)
101           PMASS(LB:UB) = HUGE(0.0)
102           OMOI(LB:UB) = ZERO
103     
104           ! Particle position, velocity, etc
105           DES_POS_NEW(LB:UB,:) = ZERO
106           DES_VEL_NEW(LB:UB,:) = ZERO
107           OMEGA_NEW(LB:UB,:) = ZERO
108           PPOS(LB:UB,:) = ZERO
109           IF(PARTICLE_ORIENTATION) THEN
110              ORIENTATION(1,:) = INIT_ORIENTATION(1)
111              ORIENTATION(2,:) = INIT_ORIENTATION(2)
112              ORIENTATION(3,:) = INIT_ORIENTATION(3)
113           ENDIF
114     
115     ! Particle state flag
116           DO II = LB, UB
117              call set_nonexistent(II)
118           ENDDO
119           NEIGHBOR_INDEX(:) = 0
120     
121     ! DES grid bin information
122           DG_PIJK(LB:UB) = -1
123           DG_PIJKPRV(LB:UB) = -1
124           IGHOST_UPDATED(LB:UB) = .false.
125     
126     ! Fluid cell bin information
127           PIJK(LB:UB,:) = 0
128     
129     ! Translation and rotational forces
130           FC(LB:UB,:) = ZERO
131           TOW(LB:UB,:) = ZERO
132     
133     ! Collision data
134           WALL_COLLISION_FACET_ID(:,LB:UB) = -1
135           WALL_COLLISION_PFT(:,:,LB:UB) = ZERO
136     
137     ! Initializing user defined array
138           IF(DES_USR_VAR_SIZE > 0) &
139              DES_USR_VAR(:,LB:UB) = ZERO
140     
141     ! Particle center drag coefficient and explicit drag force
142           F_GP(LB:UB) = ZERO
143           DRAG_FC(LB:UB,:) = ZERO
144     
145     ! Interpolation variables.
146           IF(FILTER_SIZE > 0)THEN
147              FILTER_CELL(:,LB:UB) = -1
148              FILTER_WEIGHT(:,LB:UB) = ZERO
149           ENDIF
150     
151     ! MPPIC variables
152           IF(MPPIC) THEN
153              DES_STAT_WT(LB:UB) = ZERO
154              PS_GRAD(:,LB:UB) = ZERO
155              AVGSOLVEL_P(:,LB:UB) = ZERO
156              EPG_P(LB:UB) = ZERO
157           ENDIF
158     
159     ! Higher order time integration variables.
160           IF (DO_OLD) THEN
161              DES_POS_OLD(LB:UB,:) = ZERO
162              DES_VEL_OLD(LB:UB,:) = ZERO
163              DES_ACC_OLD(LB:UB,:) = ZERO
164              OMEGA_OLD(LB:UB,:) = ZERO
165              ROT_ACC_OLD(LB:UB,:) = ZERO
166           ENDIF
167     
168     ! Energy equation variables.
169           IF(ENERGY_EQ)THEN
170              DES_T_s(LB:UB) = ZERO
171              DES_C_PS(LB:UB) = ZERO
172              DES_X_s(LB:UB,:) = ZERO
173     
174              IF(ALLOCATED(Q_Source)) Q_Source(LB:UB) = ZERO
175              IF(ALLOCATED(CONV_Qs)) CONV_Qs(LB:UB) = ZERO
176              IF(ALLOCATED(GAMMAxSA)) GAMMAxSA(LB:UB) = ZERO
177              IF (INTG_ADAMS_BASHFORTH) &
178                 Q_Source0(LB:UB) = ZERO
179              IF (ALLOCATED(DES_QW_Cond)) &
180                 DES_QW_Cond(:,:) = ZERO
181           ENDIF
182     
183     ! Chemical reaction variables.
184           IF(ANY_SPECIES_EQ)THEN
185              DES_R_s(LB:UB,:) = ZERO
186              IF (INTG_ADAMS_BASHFORTH) THEN
187                 dMdt_OLD(LB:UB) = ZERO
188                 dXdt_OLD(LB:UB,:) = ZERO
189              ENDIF
190              RXNS_Qs(LB:UB) = ZERO
191           ENDIF
192     
193     
194     ! Cohesion VDW forces
195           IF(USE_COHESION) THEN
196              PostCohesive (LB:UB) = ZERO
197           ENDIF
198     
199     
200           RETURN
201           END SUBROUTINE DES_INIT_PARTICLE_ARRAYS
202     
203     
204     
205