File: RELATIVE:/../../../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=255)  :: VTU_DIR
28           CHARACTER (LEN=255)  :: VTK_FILENAME,FRAME_CHAR,VTU_FILENAME,PVD_FILENAME,PVTU_FILENAME
29           CHARACTER (LEN=255)  :: 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     ! Flag to distiguish between regular file (VTK_DBG_FILE=.FALSE., default value)
92     !                        and debug file (VTK_DBG_FILE=.TRUE.)
93           LOGICAL :: VTK_DBG_FILE(DIMENSION_VTK)
94     
95     ! Current vtk time
96           DOUBLE PRECISION :: VTK_TIME(DIMENSION_VTK)
97     
98     ! Type of data in vtk region: 'C':cell data, 'P': particle data
99           CHARACTER(LEN=1) :: VTK_DATA(DIMENSION_VTK)
100     
101     ! FRAME index of vtk file
102           INTEGER :: FRAME(DIMENSION_VTK)
103     
104     ! PVD file initialization flag
105           LOGICAL :: PVD_FILE_INITIALIZED(DIMENSION_VTK)=.FALSE.
106     
107     ! Logical variable to determine whether an vtk region is defined
108           LOGICAL :: VTK_DEFINED (DIMENSION_VTK)
109     
110     ! VTK region West face, X-coordinate
111           DOUBLE PRECISION :: VTK_X_w (DIMENSION_VTK)
112     
113     ! VTK region East face, X-coordinate
114           DOUBLE PRECISION :: VTK_X_e (DIMENSION_VTK)
115     
116     ! VTK region South face, Y-coordinate
117           DOUBLE PRECISION :: VTK_Y_s (DIMENSION_VTK)
118     
119     ! VTK region North face, Y-coordinate
120           DOUBLE PRECISION :: VTK_Y_n (DIMENSION_VTK)
121     
122     ! VTK region Bottom face, Z-coordinate
123           DOUBLE PRECISION :: VTK_Z_b (DIMENSION_VTK)
124     
125     ! VTK region Top face, Z-coordinate
126           DOUBLE PRECISION :: VTK_Z_t (DIMENSION_VTK)
127     
128     ! VTK number of slices in x-direction
129           INTEGER :: VTK_NXS(DIMENSION_VTK)
130     
131     ! VTK number of slices in y-direction
132           INTEGER :: VTK_NYS(DIMENSION_VTK)
133     
134     ! VTK number of slices in z-direction
135           INTEGER :: VTK_NZS(DIMENSION_VTK)
136     
137     ! VTK slice tolerance
138           DOUBLE PRECISION :: VTK_SLICE_TOL(DIMENSION_VTK)
139     
140     ! VTK filename base
141           CHARACTER(LEN=255) :: VTK_FILEBASE(DIMENSION_VTK)
142     
143     ! Gas phase volume fraction
144           LOGICAL :: VTK_EP_g (DIMENSION_VTK)
145     
146     ! Gas pressure
147           LOGICAL :: VTK_P_g (DIMENSION_VTK)
148     
149     ! Solids pressure
150           LOGICAL :: VTK_P_star(DIMENSION_VTK)
151     
152     ! X-component of gas velocity
153           LOGICAL :: VTK_U_g(DIMENSION_VTK)
154     
155     ! X-component of solids phase velocity
156           LOGICAL :: VTK_U_s(DIMENSION_VTK, DIM_M)
157     
158     ! Y-component of gas velocity
159           LOGICAL :: VTK_V_g(DIMENSION_VTK)
160     
161     ! Y-component of solids phase velocity
162           LOGICAL :: VTK_V_s(DIMENSION_VTK, DIM_M)
163     
164     ! Z-component of gas velocity
165           LOGICAL :: VTK_W_g(DIMENSION_VTK)
166     
167     ! Z-component of solids phase velocity
168           LOGICAL :: VTK_W_s(DIMENSION_VTK, DIM_M)
169     
170     ! Gas velocity vector
171           LOGICAL :: VTK_VEL_g(DIMENSION_VTK)
172     
173     ! Solids velocity vector
174           LOGICAL :: VTK_VEL_s(DIMENSION_VTK, DIM_M)
175     
176     ! Macroscopic density of solids phases
177           LOGICAL :: VTK_ROP_s(DIMENSION_VTK, DIM_M)
178     
179     ! Solids phase volume fraction
180           LOGICAL :: VTK_EP_s (DIMENSION_VTK, DIM_M)
181     
182     ! Gas temperature
183           LOGICAL :: VTK_T_g(DIMENSION_VTK)
184     
185     ! Solids temperature
186           LOGICAL :: VTK_T_s(DIMENSION_VTK, DIM_M)
187     
188     ! Gas species mass fractions
189           LOGICAL :: VTK_X_g(DIMENSION_VTK, DIM_N_g)
190     
191     ! Solids species mass fractions
192           LOGICAL :: VTK_X_s(DIMENSION_VTK, DIM_M, DIM_N_s)
193     
194     ! Granular temperature
195           LOGICAL :: VTK_Theta_m(DIMENSION_VTK, DIM_M)
196     
197     ! Scalar value
198           LOGICAL :: VTK_Scalar(DIMENSION_VTK, DIM_scalar)
199     
200     ! Reaction rates
201           LOGICAL :: VTK_RRate(DIMENSION_VTK,VTK_nRRmax)
202     
203     ! K & Epsilon values
204           LOGICAL :: VTK_K_Turb_G(DIMENSION_VTK)
205           LOGICAL :: VTK_E_Turb_G(DIMENSION_VTK)
206     
207     ! Vorticity magnitude
208           LOGICAL :: VTK_VORTICITY(DIMENSION_VTK)
209     
210     ! Lambda_2 (vortex core indicator)
211           LOGICAL :: VTK_LAMBDA_2(DIMENSION_VTK)
212     
213     ! Grid partition
214           LOGICAL :: VTK_PARTITION(DIMENSION_VTK)
215     
216     ! Boundary condition ID
217           LOGICAL :: VTK_BC_ID(DIMENSION_VTK)
218     
219     ! Wall distance
220           LOGICAL :: VTK_DWALL(DIMENSION_VTK)
221     
222     ! Facet count (DES)
223           LOGICAL :: VTK_FACET_COUNT_DES(DIMENSION_VTK)
224     
225     ! Neighboring facets (DES)
226           LOGICAL :: VTK_NB_FACET_DES(DIMENSION_VTK)
227     
228     ! Cell IJK index
229           LOGICAL :: VTK_IJK(DIMENSION_VTK)
230     
231     ! Cut face normal vector
232           LOGICAL :: VTK_NORMAL(DIMENSION_VTK)
233     
234     ! Debug variable
235           LOGICAL :: VTK_DEBUG(DIMENSION_VTK,15)
236     
237           INTEGER, DIMENSION(DIMENSION_VTK,DIM_VTK_VAR) :: VTK_VARLIST
238     
239     ! VTK Particle selection: 'C': center, 'P': entire particle, 'I': particle intersect
240           CHARACTER(LEN=1) :: VTK_SELECT_MODE(DIMENSION_VTK)
241     
242     ! Particle radius
243           LOGICAL :: VTK_PART_DIAMETER(DIMENSION_VTK)
244     
245     ! Particle velocity
246           LOGICAL :: VTK_PART_VEL(DIMENSION_VTK)
247     
248     ! Particle angular velocity
249           LOGICAL :: VTK_PART_ANGULAR_VEL(DIMENSION_VTK)
250     
251     ! Particle orientation
252           LOGICAL :: VTK_PART_ORIENTATION(DIMENSION_VTK)
253     
254     ! Particle user-defined variable
255           LOGICAL :: VTK_PART_USR_VAR(DIMENSION_VTK,3)
256     
257     ! Particle temperature
258           LOGICAL :: VTK_PART_TEMP(DIMENSION_VTK)
259     
260     ! Particle species mass fraction
261           LOGICAL :: VTK_PART_X_s(DIMENSION_VTK,100)
262     
263     ! Particle cohesion
264           LOGICAL :: VTK_PART_COHESION(DIMENSION_VTK)
265     
266           END MODULE vtk
267     
268