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