MFIX  2016-1
vavg_v_g.f
Go to the documentation of this file.
1 !vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvC
2 ! C
3 ! Module name: VAVG_V_g C
4 ! Purpose: Volume average V_g C
5 ! C
6 ! Author: M. Syamlal Date: 28-APR-94 C
7 ! Reviewer: Date: dd-mmm-yy C
8 ! C
9 ! Revision Number: C
10 ! Purpose: C
11 ! Author: Date: dd-mmm-yy C
12 ! Reviewer: Date: dd-mmm-yy C
13 ! C
14 ! Literature/Document References: C
15 ! C
16 ! Variables referenced: C
17 ! Variables modified: C
18 ! C
19 ! Local variables: C
20 ! C
21 !^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^C
22 !
23  DOUBLE PRECISION FUNCTION vavg_v_g ()
24 !...Translated by Pacific-Sierra Research VAST-90 2.06G5 12:17:31 12/09/98
25 !...Switches: -xf
26 !
27 !-----------------------------------------------
28 ! M o d u l e s
29 !-----------------------------------------------
30  USE bc
31  USE compar
32  USE fldvar
33  USE functions
34  USE geometry
35  USE indices
36  USE mpi_utility
37  USE parallel
38  USE param
39  USE param1
40  USE physprop
41  USE run
42  USE utilities, ONLY: mfix_isnan
43 
44  IMPLICIT NONE
45 !-----------------------------------------------
46 ! G l o b a l P a r a m e t e r s
47 !-----------------------------------------------
48 !-----------------------------------------------
49 ! L o c a l P a r a m e t e r s
50 !-----------------------------------------------
51 !-----------------------------------------------
52 ! L o c a l V a r i a b l e s
53 !-----------------------------------------------
54 !
55 ! Indices
56  INTEGER IJK
57 !
58 ! Integral of V_g*EP_g for entire volume
59  DOUBLE PRECISION SUM_V_g
60 !
61 ! Total volume of computational cells
62  DOUBLE PRECISION SUM_VOL
63 
64 ! Integrate the velocity values for the whole domain
65 !
66  sum_v_g = zero
67  sum_vol = zero
68 
69 !!!!$omp parallel do private(IJK) reduction(+:SUM_VOL,SUM_V_G)
70  DO ijk = ijkstart3, ijkend3
71  IF(.NOT.is_on_mype_wobnd(i_of(ijk), j_of(ijk), k_of(ijk))) cycle
72  IF (fluid_at(ijk)) THEN
73  sum_vol = sum_vol + vol_v(ijk)
74  sum_v_g = sum_v_g + v_g(ijk)*ep_g(ijk)*vol_v(ijk)
75  ENDIF
76  END DO
77 
78  CALL global_all_sum(sum_vol)
79  CALL global_all_sum(sum_v_g)
80 
81  vavg_v_g = sum_v_g/sum_vol
82 !
83 ! uncomment the following lines to enable trapping NaN's.
84 ! IF(mfix_isnan(VAVG_V_G) ) THEN
85 ! write(*,*) VAVG_V_G, ' NaN being caught in VAVG_V_G.f '
86 ! AUTOMATIC_RESTART = .TRUE.
87 ! ENDIF
88 
89  RETURN
90  END FUNCTION vavg_v_g
91 
92  DOUBLE PRECISION FUNCTION vavg_flux_v_g ()
93 !...Translated by Pacific-Sierra Research VAST-90 2.06G5 12:17:31 12/09/98
94 !...Switches: -xf
95 !
96 !-----------------------------------------------
97 ! M o d u l e s
98 !-----------------------------------------------
99  USE param
100  USE param1
101  USE parallel
102  USE run
103  USE fldvar
104  USE bc
105  USE geometry
106  USE physprop
107  USE indices
108  USE compar
109  USE mpi_utility
110  USE mflux
111  USE functions
112 
113  IMPLICIT NONE
114 !-----------------------------------------------
115 ! G l o b a l P a r a m e t e r s
116 !-----------------------------------------------
117 !-----------------------------------------------
118 ! L o c a l P a r a m e t e r s
119 !-----------------------------------------------
120 !-----------------------------------------------
121 ! L o c a l V a r i a b l e s
122 !-----------------------------------------------
123 !
124 ! Indices
125  INTEGER IJK
126 !
127 ! Integral of V_g*EP_g for entire volume
128  DOUBLE PRECISION SUM_V_g
129 !
130 ! Total volume of computational cells
131  DOUBLE PRECISION SUM_AREA
132 
133 ! Integrate the velocity values for the whole domain
134 !
135  sum_v_g = zero
136  sum_area = zero
137 
138 !!!!$omp parallel do private(IJK) reduction(+:SUM_AREA,SUM_V_G)
139  DO ijk = ijkstart3, ijkend3
140  IF(.NOT.is_on_mype_wobnd(i_of(ijk), j_of(ijk), k_of(ijk))) cycle
141  IF (fluid_at(ijk)) THEN
142  IF(.NOT.added_mass) THEN
143  sum_v_g = sum_v_g + flux_gn(ijk)
144  ELSE
145  sum_v_g = sum_v_g + flux_gsn(ijk)
146  ENDIF
147  sum_area = sum_area + axz(ijk)
148  ENDIF
149  END DO
150 
151  CALL global_all_sum(sum_area)
152  CALL global_all_sum(sum_v_g)
153 
154  vavg_flux_v_g = sum_v_g/sum_area
155 !
156  RETURN
157  END FUNCTION vavg_flux_v_g
integer, dimension(:), allocatable i_of
Definition: indices_mod.f:45
integer ijkend3
Definition: compar_mod.f:80
double precision, dimension(:), allocatable ep_g
Definition: fldvar_mod.f:15
double precision function vavg_v_g()
Definition: vavg_v_g.f:24
logical added_mass
Definition: run_mod.f:91
integer, dimension(:), allocatable k_of
Definition: indices_mod.f:47
integer, dimension(:), allocatable j_of
Definition: indices_mod.f:46
double precision, dimension(:), allocatable flux_gn
Definition: mflux_mod.f:15
double precision, dimension(:), allocatable v_g
Definition: fldvar_mod.f:99
Definition: run_mod.f:13
double precision, dimension(:), allocatable axz
Definition: geometry_mod.f:208
Definition: param_mod.f:2
integer ijkstart3
Definition: compar_mod.f:80
double precision function vavg_flux_v_g()
Definition: vavg_v_g.f:93
logical function mfix_isnan(x)
Definition: utilities_mod.f:14
double precision, dimension(:), allocatable flux_gsn
Definition: mflux_mod.f:30
double precision, parameter zero
Definition: param1_mod.f:27
Definition: bc_mod.f:23
double precision, dimension(:), allocatable vol_v
Definition: geometry_mod.f:233