File: /nfs/home/0/users/jenkins/mfix.git/model/des/calc_rrate_des.f

1     !vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv!
2     !  Subroutine name: CALC_RRATE_DES                                     !
3     !                                                                      !
4     !  Author: J.Musser                                   Date: 16-May-11  !
5     !                                                                      !
6     !  Purpose: This routine manages gas-solid reactions for the continuum !
7     !  phase. Reactions are calculated from the DEM and the continuum      !
8     !  variables are integrated over the solids time step. These values    !
9     !  are then applied to the continuum phase by distributing them over   !
10     !  the full fluid time step. This ensures that mass is conserved       !
11     !  between the TFM/DEM and observes the variable time step within the  !
12     !  TFM.                                                                !
13     !                                                                      !
14     !  Although mass is conserved, the two models (TFM/DEM) are out of     !
15     !  sync. The general approach is as follows.                           !
16     !                                                                      !
17     !  Time: T0                                                            !
18     !  TFM-A) Hydrodynamcics (gas phase) [stationary solids]               !
19     !  TFM-B) Homogeneous (gas phase) reactions                            !
20     !  TFM-C)  < Do Nothing >                                              !
21     !  TFM-C) Apply gas/DEM reactions from T0 to TFM  <<  [out of sync]    !
22     !  TFM-D) Updated TFM variables: Time (T0 --> T1)                      !
23     !  DEM-E) Particle/Particle/Wall collisions                            !
24     !  DEM-F) Hydrodynamics [constant gas field]                           !
25     !  DEM-G) Calculate heterogeneous (gas/DEM) reactions                  !
26     !  DEM-H) Update DEM variables: Time (T0 --> T0.1)                     !
27     !  * Repeat DEM-[E-H] until T0.x=T1 (T0 -> T0.1 -> T0.2 -> ... -> T1)  !
28     !                                                                      !
29     !  TFM/DEM are at the same physical time (T1).                         !
30     !                                                                      !
31     !  Time: T1                                                            !
32     !  TFM-A) Hydrodynamcics (gas phase) [stationary solids]               !
33     !  TFM-B) Homogeneous (gas phase) reactions                            !
34     !  TFM-C) Apply gas/DEM reactions from T0 to TFM  <<  [out of sync]    !
35     !    ...                                                               !
36     !                                                                      !
37     !                                                                      !
38     !^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^!
39           SUBROUTINE CALC_RRATE_DES(CLEAR)
40     
41           USE compar
42           USE des_rxns
43           USE discretelement
44           USE energy
45           USE fldvar
46           USE geometry
47           USE interpolation
48           USE param1
49           USE physprop
50           USE run
51           USE rxns
52           USE usr
53     
54           IMPLICIT NONE
55     
56     ! Passed Variables
57     !---------------------------------------------------------------------//
58           LOGICAL, INTENT(IN) :: CLEAR
59     
60     ! Local variables
61     !---------------------------------------------------------------------//
62           DOUBLE PRECISION DEM_to_TFM
63           INTEGER IJK
64     
65     
66     ! Initialize global storage arrays to zero
67     !---------------------------------------------------------------------//
68           IF(CLEAR) THEN
69              SUM_R_G(:) = ZERO
70              HOR_G(:) = ZERO
71              R_GP(:,:) = ZERO
72              ROX_GC(:,:) = ZERO
73              R_PHASE(:,:) = ZERO
74           ENDIF
75     
76     
77           DO IJK = IJKSTART3, IJKEND3
78              DEM_to_TFM = DT * VOL(IJK)
79              R_gp(IJK,:) = R_gp(IJK,:) + &
80                 DES_R_gp(IJK,:)/DEM_to_TFM
81              WHERE(X_g(IJK,:) > SMALL_NUMBER)
82                 RoX_gc(IJK,:) = RoX_gc(IJK,:) + &
83                    DES_R_gc(IJK,:) / (DEM_to_TFM * X_g(IJK,:))
84              ELSEWHERE
85                 RoX_gc(IJK,:) = RoX_gc(IJK,:) + 1.0d-9/DEM_to_TFM
86              ENDWHERE
87              R_PHASE(IJK,:) = R_PHASE(IJK,:) + &
88                 DES_R_PHASE(IJK,:) / DEM_to_TFM
89              SUM_R_g(IJK) = SUM_R_g(IJK) + &
90                 DES_SUM_R_g(IJK) / DEM_to_TFM
91              HOR_g(IJK) = HOR_g(IJK) + &
92                 DES_HOR_g(IJK) / DEM_to_TFM
93           ENDDO
94     
95           RETURN
96     
97     
98           END SUBROUTINE CALC_RRATE_DES
99     
100     
101     
102     !vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv!
103     !  Subroutine name: CALC_RRATE_DES                                     !
104     !                                                                      !
105     !  Purpose: This routine manages gas-solid reactions for the continuum !
106     !  phase.                                                              !
107     !                                                                      !
108     !  Author: J.Musser                                   Date: 16-May-11  !
109     !                                                                      !
110     !^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^!
111           SUBROUTINE ZERO_RRATE_DES
112     
113           USE des_rxns
114     
115           IMPLICIT NONE
116     
117           DES_R_gp(:,:) = ZERO
118           DES_R_gc(:,:) = ZERO
119           DES_R_PHASE(:,:) = ZERO
120           DES_HOR_G(:) = ZERO
121           DES_SUM_R_g(:) = ZERO
122     
123           RETURN
124           END SUBROUTINE ZERO_RRATE_DES
125