File: RELATIVE:/../../../mfix.git/model/des/calc_pg_grad.f
1
2
3
4
5
6
7
8
9
10
11
12
13
14 SUBROUTINE CALC_PG_GRAD
15
16
17 use run, only: MODEL_B
18
19 use discretelement, only: PVOL
20
21 use discretelement, only: P_FORCE
22
23 use discretelement, only: DRAG_FC
24
25 use geometry, only: DO_K
26
27 USE compar, only: IJKSTART3, IJKEND3
28
29 use geometry, only: CYCLIC_X_PD, CYCLIC_Y_PD, CYCLIC_Z_PD
30
31 use bc, only: DELP_X, DELP_Y, DELP_Z
32
33 use geometry, only: XLENGTH, YLENGTH, ZLENGTH
34
35 use fldvar, only: P_G
36
37 use discretelement, only: MAX_PIP, PIJK, DES_EXPLICITLY_COUPLED
38 use particle_filter, only: FILTER_CELL
39 use particle_filter, only: FILTER_WEIGHT
40 use particle_filter, only: DES_INTERP_ON
41
42 use functions, only: FLUID_AT
43
44 use functions, only: IS_NONEXISTENT
45 use functions, only: IS_ENTERING, IS_ENTERING_GHOST
46 use functions, only: IS_EXITING, IS_EXITING_GHOST
47
48
49
50
51 use param1, only: ZERO
52
53 implicit none
54
55
56 INTEGER :: NP, IJK, LC
57
58 DOUBLE PRECISION :: WEIGHT
59
60 DOUBLE PRECISION :: lPF(3)
61
62 INTEGER :: LP_BND
63
64 DOUBLE PRECISION :: cPG(3)
65
66
67
68 CALL CALC_GRAD_DES(P_G, P_FORCE)
69
70
71
72 (1) = merge(DELP_X/XLENGTH, ZERO, CYCLIC_X_PD)
73 cPG(2) = merge(DELP_Y/YLENGTH, ZERO, CYCLIC_Y_PD)
74 cPG(3) = merge(DELP_Z/ZLENGTH, ZERO, CYCLIC_Z_PD)
75
76 DO IJK=IJKSTART3, IJKEND3
77 P_FORCE(:,IJK) = cPG - P_FORCE(:,IJK)
78 ENDDO
79
80
81 IF(DES_EXPLICITLY_COUPLED .AND. .NOT.MODEL_B) THEN
82
83
84 = merge(27,9,DO_K)
85
86
87
88
89
90
91
92 DO NP=1,MAX_PIP
93
94 IF(IS_NONEXISTENT(NP) .or. &
95 IS_ENTERING(NP) .or. IS_ENTERING_GHOST(NP) .or. &
96 IS_EXITING(NP) .or. IS_EXITING_GHOST(NP)) CYCLE
97
98 IF(.NOT.FLUID_AT(PIJK(NP,4))) CYCLE
99
100 IF(DES_INTERP_ON) THEN
101 lPF = ZERO
102 DO LC=1,LP_BND
103 IJK = FILTER_CELL(LC,NP)
104 WEIGHT = FILTER_WEIGHT(LC,NP)
105 lPF = lPF + P_FORCE(:,IJK)*WEIGHT
106 ENDDO
107 ELSE
108 lPF = P_FORCE(:,PIJK(NP,4))
109 ENDIF
110
111
112 (:,NP) = DRAG_FC(:,NP) + lPF*PVOL(NP)
113
114 ENDDO
115 ENDIF
116
117 RETURN
118 END SUBROUTINE CALC_PG_GRAD
119