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

1     !vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv!
2     !                                                                      !
3     !  Module: MFIX_PIC                                                    !
4     !  Purpose: MP-PIC related data                                        !
5     !  Author: R. Garg                                                     !
6     !                                                                      !
7     !^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^!
8     
9           MODULE MFIX_PIC
10     
11     !-----------------------------------------------
12     ! Modules
13     !-----------------------------------------------
14           USE param
15           USE param1
16     !-----------------------------------------------
17     
18     ! flag for turning on MP-PIC method
19           LOGICAL :: MPPIC
20     
21           DOUBLE PRECISION PSFAC_FRIC_PIC, FRIC_EXP_PIC, FRIC_NON_SING_FAC
22     
23           LOGICAL :: MPPIC_SOLID_STRESS_SNIDER
24           LOGICAL :: MPPIC_CORR_VOLFRAC
25           INTEGER :: ITER_VOL_FRAC_CORR
26     
27     ! force to solids pressure gradient
28           DOUBLE PRECISION, DIMENSION(:,:), ALLOCATABLE :: PS_FORCE_PIC
29     
30     ! avg solid velocity at particle position (used for MP-PIC)
31           DOUBLE PRECISION, DIMENSION(:,:), ALLOCATABLE :: AVGSOLVEL_P
32     
33     ! EP_g interpolated at particle position (used for MP-PIC)
34           DOUBLE PRECISION, DIMENSION(:), ALLOCATABLE :: EPG_P
35     
36     ! Total number of real and computational
37     ! particles in each solid phase (used only for MP-PIC)
38           DOUBLE PRECISION, DIMENSION(:), ALLOCATABLE :: RNP_PIC !(DES_MMAX)
39           INTEGER, DIMENSION(:), ALLOCATABLE          :: CNP_PIC !(DES_MMAX)
40     
41     ! to initially seed the particles based on constant number of
42     ! particles per cell or constant statistical weight of each particle
43     ! number of particles per cell for the case of CONSTANTNPC
44           LOGICAL :: MPPIC_CONSTANTNPC, MPPIC_CONSTANTWT
45     
46     ! coefficeient of restituion used in MPPIC case in the
47     ! frictional regime
48           DOUBLE PRECISION :: MPPIC_COEFF_EN1, MPPIC_COEFF_EN2
49     
50           DOUBLE PRECISION :: MPPIC_COEFF_EN_WALL, MPPIC_COEFF_ET_WALL
51           INTEGER NPC_PIC(DIM_M)
52     
53     ! statistical weight or number of real particles per computational
54     ! particle for the case of CONSTANTWT
55           DOUBLE PRECISION STATWT_PIC(DIM_M)
56     
57     ! # of computational particles for the entire grid
58     ! keep it double precision for inlow BC
59           DOUBLE PRECISION , DIMENSION(:,:), ALLOCATABLE :: CNP_ARRAY
60     
61     ! Statistical weight of each particle
62           DOUBLE PRECISION, DIMENSION(:), ALLOCATABLE :: DES_STAT_WT
63     
64     !     logical variable to decide if special treatment is needed or not
65     !     in the direction of gravity in the frictional stress tensor
66           LOGICAL :: MPPIC_GRAV_TREATMENT
67     
68     ! Particle response time scale for each phase
69           DOUBLE PRECISION :: DES_TAU_P(DIM_M)
70     
71     ! The maximum dt for point particles based on particle response time
72     ! (taup) and cfl. See cfassign for its computation
73           DOUBLE PRECISION :: DTPIC_MAX
74     
75     ! CFL value for point-particles that is used to control DTSOLID
76     ! DTPP_CFL, dt for point-particles based on user specified CFL_PP
77     ! and maximum velocity of particles
78           DOUBLE PRECISION CFL_PIC, DTPIC_CFL, DTPIC_TAUP
79     
80           DOUBLE PRECISION :: DTSOLID_ORIG
81     ! solid pressure gradient
82           DOUBLE PRECISION, DIMENSION(:,:), ALLOCATABLE :: PS_GRAD
83     
84     ! flag to turn on implicit treatment of drag force term in particle
85     ! trajectory evolution equation
86           LOGICAL MPPIC_PDRAG_IMPLICIT
87     
88     ! the impulse velocity for the MPPIC collisions
89           DOUBLE PRECISION, DIMENSION(:,:), ALLOCATABLE :: MPPIC_VPTAU
90     
91     
92     ! Face centered u-velocity required by PIC model. Not using the U_s arrays anymore
93           DOUBLE PRECISION, DIMENSION(:,:), ALLOCATABLE :: PIC_U_S
94     ! Face centered v-velocity required by PIC model. Not using the U_s arrays anymore
95           DOUBLE PRECISION, DIMENSION(:,:), ALLOCATABLE :: PIC_V_S
96     ! Face centered z-velocity required by PIC model. Not using the U_s arrays anymore
97           DOUBLE PRECISION, DIMENSION(:,:), ALLOCATABLE :: PIC_W_S
98     
99     !                      Solids pressure as a result of granular motion
100           DOUBLE PRECISION, DIMENSION(:, :), ALLOCATABLE :: PIC_P_s
101     
102     ! A run time flag to report minimum value of gas voidage
103           LOGICAL :: PIC_REPORT_MIN_EPG
104           end MODULE MFIX_PIC
105     
106