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

1           MODULE residual
2     
3     
4           Use param
5           Use param1
6     
7     
8     !
9     !     residual.inc
10     !
11           INTEGER          MAX_RESID_INDEX
12           PARAMETER        (MAX_RESID_INDEX = 8)    !for printing. do not change
13     !
14           INTEGER          NRESID
15           INTEGER          NPREFIX
16           INTEGER          RESID_p, RESID_ro, RESID_u, RESID_v, RESID_w,&
17                            RESID_t, RESID_x, RESID_th, RESID_sc,RESID_ke
18           INTEGER          HYDRO_GRP,THETA_GRP,ENERGY_GRP,SPECIES_GRP,&
19                            SCALAR_GRP,KE_GRP
20     
21           PARAMETER        (RESID_p  = 1)     !pressure
22           PARAMETER        (RESID_ro = 2)     !density, volume fraction
23           PARAMETER        (RESID_u  = 3)     !u-velocity
24           PARAMETER        (RESID_v  = 4)     !v-velocity
25           PARAMETER        (RESID_w  = 5)     !w-velocity
26           PARAMETER        (RESID_t  = 6)     !temperature
27           PARAMETER        (RESID_th = 7)     !granular temperature
28           PARAMETER        (RESID_sc = 8)     !user-defined scalar
29           PARAMETER        (NRESID   = 8 + DIM_N)
30           PARAMETER        (RESID_ke = 9)     !k-epsilon equations
31           PARAMETER        (RESID_x  = 10)     !mass fraction (keep this the last)
32           PARAMETER        (NPREFIX  = 10)
33     !
34     !    Group Resisuals by equation
35           PARAMETER        (HYDRO_GRP   = 1)     !hydrodynamics
36           PARAMETER        (THETA_GRP   = 2)     !Granular Energy
37           PARAMETER        (ENERGY_GRP  = 3)     !Energy
38           PARAMETER        (SPECIES_GRP = 4)     !Species
39           PARAMETER        (SCALAR_GRP  = 5)     !Scalars
40           PARAMETER        (KE_GRP      = 6)     !K-Epsilon
41     
42     !                      prefix of Residuals string
43           CHARACTER, PARAMETER, DIMENSION(NPREFIX) :: RESID_PREFIX = &
44             (/ 'P', 'R', 'U', 'V', 'W', 'T', 'G', 'S', 'K', 'X' /)
45     
46     !
47     !                      Average residual
48           DOUBLE PRECISION, DIMENSION(:,:), ALLOCATABLE :: RESID
49     !
50     !                      Maximum residual
51           DOUBLE PRECISION, DIMENSION(:,:), ALLOCATABLE ::  MAX_RESID
52     !
53     !                      sum of residuals every 5 iterations
54           DOUBLE PRECISION SUM5_RESID
55     !
56     !                      IJK location of maximum residual
57           INTEGER, DIMENSION(:,:), ALLOCATABLE :: IJK_RESID
58     
59     !                      Residual Numerator
60           DOUBLE PRECISION, DIMENSION(:,:), ALLOCATABLE :: NUM_RESID
61     !
62     !                      Residual Denominator
63           DOUBLE PRECISION, DIMENSION(:,:), ALLOCATABLE :: DEN_RESID
64     !
65     !                      Residual Packing for Global Operations
66           DOUBLE PRECISION, DIMENSION(:), ALLOCATABLE :: RESID_PACK
67     !
68     !                      Residual sum within a group of equations
69           LOGICAL          :: GROUP_RESID
70           DOUBLE PRECISION :: RESID_GRP(6)
71     !
72     !                      Residuals to be printed out
73           CHARACTER(LEN=4)      RESID_STRING(MAX_RESID_INDEX)
74           CHARACTER(LEN=8)      RESID_GRP_STRING(6)
75     !
76     !                      Indices of residuals to be printed out
77           INTEGER          RESID_INDEX(MAX_RESID_INDEX, 2)
78     !
79     
80     !                        fluid and solids accumulation, for checking the over-all fluid mass balance
81             DOUBLE PRECISION accum_resid_g, accum_resid_s(DIM_M)
82     
83           END MODULE residual
84