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

1           MODULE vtk
2     
3           Use param1
4     ! Maximum number of solids phases.
5           use param, only: DIM_M
6     ! Maximum number of gas phase species
7           use param, only: DIM_N_g
8     ! Maximum number of solids phase species
9           use param, only: DIM_N_s
10     ! Maximum number of scalar equations
11           use param, only: DIM_Scalar
12     ! Maximum number of DEM solids phase species
13     use param, only: DIMENSION_N_S
14     
15     
16     
17           INTEGER NUMBER_OF_CELLS
18           INTEGER NUMBER_OF_CUT_CELLS
19           INTEGER NUMBER_OF_BLOCKED_CELLS
20           INTEGER NUMBER_OF_STANDARD_CELLS
21           INTEGER NUMBER_OF_VTK_CELLS
22           INTEGER NUMBER_OF_VTK_PARTS
23     
24           LOGICAL             :: WRITE_VTK_FILES
25           LOGICAL             :: TIME_DEPENDENT_FILENAME
26           LOGICAL             :: RESET_FRAME_AT_TIME_ZERO=.TRUE.
27           CHARACTER (LEN=64)  :: VTU_DIR
28           CHARACTER (LEN=64)  :: VTK_FILENAME,FRAME_CHAR,VTU_FILENAME,PVD_FILENAME,PVTU_FILENAME
29           CHARACTER (LEN=64)  :: VTU_FRAME_FILENAME='VTU_FRAME_INDEX.TXT'
30           CHARACTER (LEN=512) :: BUFFER
31     
32           CHARACTER (LEN=1), PARAMETER  :: END_REC = CHAR(10)
33     
34           INTEGER :: BOUNDARY_UNIT=122
35           INTEGER :: VTK_UNIT=123,VTU_UNIT=124,PVD_UNIT=125
36           INTEGER :: PVTU_UNIT=126,VTU_FRAME_UNIT=127
37           INTEGER, PARAMETER :: DIM_VTK_VAR = 20
38           INTEGER, DIMENSION(DIM_VTK_VAR) :: VTK_VAR
39     
40     
41           INTEGER :: POLY_COUNTER,NUMBER_OF_POINTS
42     
43           integer, allocatable :: CLEANED_CONNECTIVITY(:,:)
44           REAL, allocatable :: COORDS_OF_POINTS(:,:)
45     
46           integer, allocatable :: GLOBAL_I_OF(:)
47           integer, allocatable :: GLOBAL_J_OF(:)
48           integer, allocatable :: GLOBAL_K_OF(:)
49           integer, allocatable :: GLOBAL_CONNECTIVITY(:,:)
50           integer, allocatable :: GLOBAL_CLEANED_CONNECTIVITY(:,:)
51           integer, allocatable :: GLOBAL_NUMBER_OF_NODES(:)
52     
53           REAL, allocatable :: GLOBAL_COORDS_OF_POINTS(:,:)
54     
55           LOGICAL, allocatable :: GLOBAL_INTERIOR_CELL_AT(:)
56           LOGICAL, allocatable :: GLOBAL_BLOCKED_CELL_AT(:)
57           LOGICAL, allocatable :: GLOBAL_STANDARD_CELL_AT(:)
58           LOGICAL, allocatable :: GLOBAL_CUT_CELL_AT(:)
59           LOGICAL, allocatable :: GLOBAL_SNAP(:)
60           DOUBLE PRECISION, allocatable :: GLOBAL_F_AT(:)
61     
62           double precision, allocatable :: GLOBAL_X_NEW_POINT(:)
63           double precision, allocatable :: GLOBAL_Y_NEW_POINT(:)
64           double precision, allocatable :: GLOBAL_Z_NEW_POINT(:)
65     
66           INTEGER :: GLOBAL_NUMBER_OF_NEW_POINTS
67     
68     
69           LOGICAL :: GLOBAL_VAR_ALLOCATED
70     
71           LOGICAL :: GRID_INFO_PRINTED_ON_SCREEN
72     
73           LOGICAL :: WRITE_ANI_CUTCELL
74     
75     
76           INTEGER :: VTU_offset
77     
78           LOGICAL, allocatable :: BELONGS_TO_VTK_SUBDOMAIN(:)
79           ! LOGICAL, allocatable :: PART_BELONGS_TO_VTK_SUBDOMAIN(:)
80     
81           INTEGER, PARAMETER :: DIMENSION_VTK = 100
82     ! Max size for VTK_nRR
83           INTEGER, PARAMETER :: VTK_nRRmax = 100
84     
85     ! Current VTK region
86           INTEGER :: VTK_REGION
87     
88     ! Time interval at which vtk files are saved
89           DOUBLE PRECISION :: VTK_DT(DIMENSION_VTK)
90     
91     ! Current vtk time
92           DOUBLE PRECISION :: VTK_TIME(DIMENSION_VTK)
93     
94     ! Type of data in vtk region: 'C':cell data, 'P': particle data
95           CHARACTER(LEN=1) :: VTK_DATA(DIMENSION_VTK)
96     
97     ! FRAME index of vtk file
98           INTEGER :: FRAME(DIMENSION_VTK)
99     
100     ! PVD file initialization flag
101           LOGICAL :: PVD_FILE_INITIALIZED(DIMENSION_VTK)=.FALSE.
102     
103     ! Logical variable to determine whether an vtk region is defined
104           LOGICAL :: VTK_DEFINED (DIMENSION_VTK)
105     
106     ! VTK region West face, X-coordinate
107           DOUBLE PRECISION :: VTK_X_w (DIMENSION_VTK)
108     
109     ! VTK region East face, X-coordinate
110           DOUBLE PRECISION :: VTK_X_e (DIMENSION_VTK)
111     
112     ! VTK region South face, Y-coordinate
113           DOUBLE PRECISION :: VTK_Y_s (DIMENSION_VTK)
114     
115     ! VTK region North face, Y-coordinate
116           DOUBLE PRECISION :: VTK_Y_n (DIMENSION_VTK)
117     
118     ! VTK region Bottom face, Z-coordinate
119           DOUBLE PRECISION :: VTK_Z_b (DIMENSION_VTK)
120     
121     ! VTK region Top face, Z-coordinate
122           DOUBLE PRECISION :: VTK_Z_t (DIMENSION_VTK)
123     
124     ! VTK number of slices in x-direction
125           INTEGER :: VTK_NXS(DIMENSION_VTK)
126     
127     ! VTK number of slices in y-direction
128           INTEGER :: VTK_NYS(DIMENSION_VTK)
129     
130     ! VTK number of slices in z-direction
131           INTEGER :: VTK_NZS(DIMENSION_VTK)
132     
133     ! VTK slice tolerance
134           DOUBLE PRECISION :: VTK_SLICE_TOL(DIMENSION_VTK)
135     
136     ! VTK filename base
137           CHARACTER(LEN=64) :: VTK_FILEBASE(DIMENSION_VTK)
138     
139     ! Gas phase volume fraction
140           LOGICAL :: VTK_EP_g (DIMENSION_VTK)
141     
142     ! Gas pressure
143           LOGICAL :: VTK_P_g (DIMENSION_VTK)
144     
145     ! Solids pressure
146           LOGICAL :: VTK_P_star(DIMENSION_VTK)
147     
148     ! X-component of gas velocity
149           LOGICAL :: VTK_U_g(DIMENSION_VTK)
150     
151     ! X-component of solids phase velocity
152           LOGICAL :: VTK_U_s(DIMENSION_VTK, DIM_M)
153     
154     ! Y-component of gas velocity
155           LOGICAL :: VTK_V_g(DIMENSION_VTK)
156     
157     ! Y-component of solids phase velocity
158           LOGICAL :: VTK_V_s(DIMENSION_VTK, DIM_M)
159     
160     ! Z-component of gas velocity
161           LOGICAL :: VTK_W_g(DIMENSION_VTK)
162     
163     ! Z-component of solids phase velocity
164           LOGICAL :: VTK_W_s(DIMENSION_VTK, DIM_M)
165     
166     ! Gas velocity vector
167           LOGICAL :: VTK_VEL_g(DIMENSION_VTK)
168     
169     ! Solids velocity vector
170           LOGICAL :: VTK_VEL_s(DIMENSION_VTK, DIM_M)
171     
172     ! Macroscopic density of solids phases
173           LOGICAL :: VTK_ROP_s(DIMENSION_VTK, DIM_M)
174     
175     ! Solids phase volume fraction
176           LOGICAL :: VTK_EP_s (DIMENSION_VTK, DIM_M)
177     
178     ! Gas temperature
179           LOGICAL :: VTK_T_g(DIMENSION_VTK)
180     
181     ! Solids temperature
182           LOGICAL :: VTK_T_s(DIMENSION_VTK, DIM_M)
183     
184     ! Gas species mass fractions
185           LOGICAL :: VTK_X_g(DIMENSION_VTK, DIM_N_g)
186     
187     ! Solids species mass fractions
188           LOGICAL :: VTK_X_s(DIMENSION_VTK, DIM_M, DIM_N_s)
189     
190     ! Granular temperature
191           LOGICAL :: VTK_Theta_m(DIMENSION_VTK, DIM_M)
192     
193     ! Scalar value
194           LOGICAL :: VTK_Scalar(DIMENSION_VTK, DIM_scalar)
195     
196     ! Reaction rates
197           LOGICAL :: VTK_RRate(DIMENSION_VTK,VTK_nRRmax)
198     
199     ! K & Epsilon values
200           LOGICAL :: VTK_K_Turb_G(DIMENSION_VTK)
201           LOGICAL :: VTK_E_Turb_G(DIMENSION_VTK)
202     
203     ! Vorticity magnitude
204           LOGICAL :: VTK_VORTICITY(DIMENSION_VTK)
205     
206     ! Lambda_2 (vortex core indicator)
207           LOGICAL :: VTK_LAMBDA_2(DIMENSION_VTK)
208     
209     ! Grid partition
210           LOGICAL :: VTK_PARTITION(DIMENSION_VTK)
211     
212     ! Boundary condition ID
213           LOGICAL :: VTK_BC_ID(DIMENSION_VTK)
214     
215     ! Wall distance
216           LOGICAL :: VTK_DWALL(DIMENSION_VTK)
217     
218     ! Facet count (DES)
219           LOGICAL :: VTK_FACET_COUNT_DES(DIMENSION_VTK)
220     
221     ! Neighboring facets (DES)
222           LOGICAL :: VTK_NB_FACET_DES(DIMENSION_VTK)
223     
224     ! Cell IJK index
225           LOGICAL :: VTK_IJK(DIMENSION_VTK)
226     
227     ! Cut face normal vector
228           LOGICAL :: VTK_NORMAL(DIMENSION_VTK)
229     
230     ! Debug variable
231           LOGICAL :: VTK_DEBUG(DIMENSION_VTK,15)
232     
233           INTEGER, DIMENSION(DIMENSION_VTK,DIM_VTK_VAR) :: VTK_VARLIST
234     
235     ! VTK Particle selection: 'C': center, 'P': entire particle, 'I': particle intersect
236           CHARACTER(LEN=1) :: VTK_SELECT_MODE(DIMENSION_VTK)
237     
238     ! Particle radius
239           LOGICAL :: VTK_PART_DIAMETER(DIMENSION_VTK)
240     
241     ! Particle velocity
242           LOGICAL :: VTK_PART_VEL(DIMENSION_VTK)
243     
244     ! Particle angular velocity
245           LOGICAL :: VTK_PART_ANGULAR_VEL(DIMENSION_VTK)
246     
247     ! Particle orientation
248           LOGICAL :: VTK_PART_ORIENTATION(DIMENSION_VTK)
249     
250     ! Particle user-defined variable
251           LOGICAL :: VTK_PART_USR_VAR(DIMENSION_VTK,3)
252     
253     ! Particle temperature
254           LOGICAL :: VTK_PART_TEMP(DIMENSION_VTK)
255     
256     ! Particle species mass fraction
257           LOGICAL :: VTK_PART_X_s(DIMENSION_VTK,100)
258     
259     ! Particle cohesion
260           LOGICAL :: VTK_PART_COHESION(DIMENSION_VTK)
261     
262           END MODULE vtk
263     
264