File: RELATIVE:/../../../mfix.git/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           DES_U_s(:,:) = ZERO
35           DES_V_s(:,:) = ZERO
36           DES_W_s(:,:) = ZERO
37           DES_ROP_S(:,:) = ZERO
38           DES_ROP_SO(:,:) = ZERO
39     
40           P_FORCE(:,:) = ZERO
41     
42           IF(allocated(DRAG_AM)) DRAG_AM = ZERO
43           IF(allocated(DRAG_BM)) DRAG_BM = ZERO
44     
45           F_GDS = ZERO
46           VXF_GDS = ZERO
47     
48           IF (DES_CONTINUUM_HYBRID) THEN
49              F_SDS = ZERO
50              VXF_SDS = ZERO
51              SDRAG_AM = ZERO
52              SDRAG_BM = ZERO
53           ENDIF
54     
55           GRAV(:) = ZERO
56     
57           IF(ENERGY_EQ)THEN
58              avgDES_T_s(:) = ZERO
59              DES_ENERGY_SOURCE(:) = ZERO
60           ENDIF
61     
62           CALL DES_INIT_PARTICLE_ARRAYS(1,MAX_PIP)
63     
64           RETURN
65           END SUBROUTINE DES_INIT_ARRAYS
66     
67     !vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv!
68     !                                                                         !
69     !  Subrourtine: DES_INIT_PARTICLE_ARRAYS                                  !
70     !  Author: Jay Boyalakuntla                              Date: 12-Jun-04  !
71     !                                                                         !
72     !  Purpose: Initialize particle arrays. The upper and lower bounds are    !
73     !  passed so that after resizing particle arrays (see GROW_PARTICLE) the  !
74     !  new portions of the arrays can be initialized.                         !
75     !                                                                         !
76     !^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^!
77           SUBROUTINE DES_INIT_PARTICLE_ARRAYS(LB,UB)
78     
79     !-----------------------------------------------
80     ! Modules
81     !-----------------------------------------------
82           use des_rxns
83           use des_thermo
84           use desgrid
85           use desmpi
86           use discretelement
87           use functions
88           use mfix_pic, only: AVGSOLVEL_P, EPG_P
89           use mfix_pic, only: MPPIC, DES_STAT_WT, PS_GRAD
90           use particle_filter, only: FILTER_CELL, FILTER_WEIGHT
91           use particle_filter, only: FILTER_SIZE
92           use run, only: ANY_SPECIES_EQ
93           use run, only: ENERGY_EQ
94     
95           IMPLICIT NONE
96     
97           INTEGER, INTENT(IN) :: LB, UB
98           INTEGER :: II
99     
100           IGLOBAL_ID(LB:UB) = 0
101     
102     ! Physical properties:
103           DES_RADIUS(LB:UB) = ZERO
104           RO_Sol(LB:UB) = ZERO
105           PVOL(LB:UB) = ZERO
106           PMASS(LB:UB) = ZERO
107           OMOI(LB:UB) = ZERO
108     
109     ! Particle position, velocity, etc
110           DES_POS_NEW(:,LB:UB) = ZERO
111           DES_VEL_NEW(:,LB:UB) = ZERO
112           OMEGA_NEW(:,LB:UB) = ZERO
113           IF(PARTICLE_ORIENTATION) THEN
114              ORIENTATION(1,:) = INIT_ORIENTATION(1)
115              ORIENTATION(2,:) = INIT_ORIENTATION(2)
116              ORIENTATION(3,:) = INIT_ORIENTATION(3)
117           ENDIF
118     
119     ! Particle state flag
120           DO II = LB, UB
121              call set_nonexistent(II)
122           ENDDO
123           NEIGHBOR_INDEX(:) = 0
124     
125     ! DES grid bin information
126           DG_PIJK(LB:UB) = -1
127           DG_PIJKPRV(LB:UB) = -1
128           IGHOST_UPDATED(LB:UB) = .false.
129     
130     ! Fluid cell bin information
131           PIJK(LB:UB,:) = 0
132     
133     ! Translation and rotational forces
134           FC(:,LB:UB) = ZERO
135           TOW(:,LB:UB) = ZERO
136     
137     ! Collision data
138           WALL_COLLISION_FACET_ID(:,LB:UB) = -1
139           WALL_COLLISION_PFT(:,:,LB:UB) = ZERO
140     
141     ! Initializing user defined array
142           IF(DES_USR_VAR_SIZE > 0) &
143              DES_USR_VAR(:,LB:UB) = ZERO
144     
145     ! Particle center drag coefficient and explicit drag force
146           F_GP(LB:UB) = ZERO
147           DRAG_FC(:,LB:UB) = ZERO
148     
149     
150     ! Interpolation variables.
151           IF(FILTER_SIZE > 0)THEN
152              FILTER_CELL(:,LB:UB) = -1
153              FILTER_WEIGHT(:,LB:UB) = ZERO
154           ENDIF
155     
156     ! MPPIC variables
157           IF(MPPIC) THEN
158              DES_STAT_WT(LB:UB) = ZERO
159              PS_GRAD(LB:UB,:) = ZERO
160              AVGSOLVEL_P(:,LB:UB) = ZERO
161              EPG_P(LB:UB) = ZERO
162           ENDIF
163     
164     ! Higher order time integration variables.
165           IF (DO_OLD) THEN
166              DES_POS_OLD(:,LB:UB) = ZERO
167              DES_VEL_OLD(:,LB:UB) = ZERO
168              DES_ACC_OLD(:,LB:UB) = ZERO
169              OMEGA_OLD(:,LB:UB) = ZERO
170              ROT_ACC_OLD(:,LB:UB) = ZERO
171           ENDIF
172     
173     ! Energy equation variables.
174           IF(ENERGY_EQ)THEN
175              DES_T_s_OLD(LB:UB) = ZERO
176              DES_T_s_NEW(LB:UB) = ZERO
177              DES_C_PS(LB:UB) = ZERO
178              DES_X_s(LB:UB,:) = ZERO
179              Q_Source(LB:UB) = ZERO
180              IF (INTG_ADAMS_BASHFORTH) &
181                 Q_Source0(LB:UB) = ZERO
182           ENDIF
183     
184     ! Chemical reaction variables.
185           IF(ANY_SPECIES_EQ)THEN
186              DES_R_sp(LB:UB,:) = ZERO
187              DES_R_sc(LB:UB,:) = ZERO
188              IF (INTG_ADAMS_BASHFORTH) THEN
189                 dMdt_OLD(LB:UB) = ZERO
190                 dXdt_OLD(LB:UB,:) = ZERO
191              ENDIF
192              Qint(LB:UB) = ZERO
193           ENDIF
194     
195     
196     ! Cohesion VDW forces
197           IF(USE_COHESION) THEN
198              PostCohesive (LB:UB) = ZERO
199           ENDIF
200     
201     
202           RETURN
203           END SUBROUTINE DES_INIT_PARTICLE_ARRAYS
204     
205     
206     
207