Rocstar  1.0
Rocstar multiphysics simulation application
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
ModPartLag.F90
Go to the documentation of this file.
1 ! *********************************************************************
2 ! * Rocstar Simulation Suite *
3 ! * Copyright@2015, Illinois Rocstar LLC. All rights reserved. *
4 ! * *
5 ! * Illinois Rocstar LLC *
6 ! * Champaign, IL *
7 ! * www.illinoisrocstar.com *
8 ! * sales@illinoisrocstar.com *
9 ! * *
10 ! * License: See LICENSE file in top level of distribution package or *
11 ! * http://opensource.org/licenses/NCSA *
12 ! *********************************************************************
13 ! *********************************************************************
14 ! * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, *
15 ! * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES *
16 ! * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND *
17 ! * NONINFRINGEMENT. IN NO EVENT SHALL THE CONTRIBUTORS OR *
18 ! * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER *
19 ! * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, *
20 ! * Arising FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE *
21 ! * USE OR OTHER DEALINGS WITH THE SOFTWARE. *
22 ! *********************************************************************
23 ! ******************************************************************************
24 !
25 ! Purpose: define data types related to Lagrangian particles.
26 !
27 ! Description:
28 !
29 ! Input:
30 !
31 ! Output:
32 !
33 ! Notes:
34 !
35 ! ******************************************************************************
36 !
37 ! $Id: ModPartLag.F90,v 1.42 2008/12/06 08:44:19 mtcampbe Exp $
38 !
39 ! Copyright: (c) 2001-2005 by the University of Illinois
40 !
41 ! ******************************************************************************
42 
43 MODULE modpartlag
44 
45  USE moddatatypes
46 
47  IMPLICIT NONE
48 
49 ! ******************************************************************************
50 ! Input
51 ! ******************************************************************************
52 
54  INTEGER :: nbins,locmax ! number of data, maxloc
55  REAL(RFREAL) :: valmax ! max val
56  REAL(RFREAL),POINTER :: pdfvalues(:,:)
57  END TYPE t_plag_pdf
58 
60  INTEGER :: nCont ! Total Number of Constituents
61  INTEGER :: nPclsMax ! Maximum Number of Particles in Region
62  INTEGER :: ejecModel ! Ejection Model Type
63  INTEGER :: injcDiamDist ! Injection Model Type
64  INTEGER :: intrplMixtModel ! Interpolation Model Type for Mixture
65  INTEGER :: nPclsBuffTot ! Total Buffer Size for Patches
66  INTEGER :: nPclsBuffCECellsMax ! Maximum Buffer Size for Corner and Edge Cells
67  INTEGER :: breakupModel ! Breakup Model Type
68  INTEGER :: breakupWebSwi ! Weber Switch for Breakup Model
69  INTEGER :: readStatus ! Status of reading for input sections
70  INTEGER :: nPclsIni ! Number of Initial Particles
71  INTEGER :: findPclMethod ! Method for finding particles
72 
73  INTEGER, POINTER, DIMENSION(:) :: materialIndex ! index pointing to appropriate Material
74 
75  REAL(RFREAL) :: injcVelRatio ! Injection Velocity Ratio based on Mixture
76  REAL(RFREAL) :: spLoad ! Superparticle Loading
77  REAL(RFREAL) :: injcDiamMean, & ! Mean Diameter
78  injcStdDev, & ! Standard Deviation
79  injcDiamMax, & ! Maximum Diameter
80  injcDiamMin ! Minimum Diameter
81  REAL(RFREAL) :: injcBeta ! Beta Coefficient for Ejection
82  REAL(RFREAL) :: breakupFac ! Breakup Factor
83 
84  REAL(RFREAL) :: iniRandDiamMax, & ! Initial Maximum Diameter for Random State
85  iniRandDiamMin, & ! Initial Minimum Diameter for Random State
86  iniRandTempMax, & ! Initial Maximum Temperature for Random State
87  iniRandTempMin, & ! Initial Minimum Temperature for Random State
88  iniRandSpLoadMax, & ! Initial Maximum Superparticle Loading for Random State
89  iniRandSpLoadMin, & ! Initial Maximum Superparticle Loading for Random State
90  iniRandUMax, &
91  iniRandUMin, &
92  iniRandVMax, &
93  iniRandVMin, &
94  iniRandWMax, &
95  iniRandWMin, &
96  iniRandXMax, &
97  iniRandXMin, &
98  iniRandYMax, &
99  iniRandYMin, &
100  iniRandZMax, &
101  iniRandZMin
102 
103  REAL(RFREAL), POINTER, DIMENSION(:) :: dens,spht,molw, & ! Input structural parameters
104  injcMassFluxRatio,injcTemp,surftens
105  REAL(RFREAL), POINTER, DIMENSION(:) :: iniPosX, & ! Initial Xposition
106  iniPosY, & ! Initial Yposition
107  iniPosZ, & ! Initial Zposition
108  iniDiam, & ! Initial Diameter
109  iniTemp, & ! Initial Temperature
110  iniSpload, & ! Initial Superparticle Loading
111  iniVelX, & ! Initial Xvelocity
112  iniVelY, & ! Initial Yvelocity
113  iniVelZ ! Initial Zvelocity
114 
115  CHARACTER(CHRLEN), POINTER, DIMENSION(:) :: materialName ! String represent Material
116 
117  TYPE(t_plag_pdf) :: PDF
118  END TYPE t_plag_input
119 
120 ! ******************************************************************************
121 ! Data
122 ! ******************************************************************************
123 
124  TYPE t_plag
125  INTEGER :: nAiv, nArv, nCv, nDv, nEv, nTv
126  INTEGER :: nPcls,nPclsPrev,nPclsMax,nPclsGlobal
127  INTEGER :: nRequests,nRequestsMetrics,nRequestsCECells,nRequestsStat
128  INTEGER :: nInrtSources
129  INTEGER :: nextIdNumber
130  INTEGER :: nCellsNzPcl,nCellsNzPclMax
131 
132  INTEGER, POINTER, DIMENSION(:) :: requests, requestsMetrics
133  INTEGER, POINTER, DIMENSION(:) :: requestsI, requestsR
134  INTEGER, POINTER, DIMENSION(:) :: requestsCECells
135  INTEGER, POINTER, DIMENSION(:) :: requestsCECellsI,requestsCECellsR
136  INTEGER, POINTER, DIMENSION(:) :: requestsStat
137  INTEGER, POINTER, DIMENSION(:) :: cvPlagMass, dvPlagVolu
138  INTEGER, POINTER, DIMENSION(:) :: icgNzPcl,iPclPerCellCSR,iPclPerCellCSRInfo
139  INTEGER, POINTER, DIMENSION(:,:) :: aiv,aivOld
140 
141  REAL(RFREAL), POINTER, DIMENSION(:,:) :: arv, arvOld
142  REAL(RFREAL), POINTER, DIMENSION(:,:) :: cv, cvOld, dv, tv
143  REAL(RFREAL), POINTER, DIMENSION(:,:) :: rhs, rhsSum
144  REAL(RFREAL), POINTER, DIMENSION(:,:) :: inrtSources
145 
146  REAL(RFREAL), POINTER, DIMENSION(:,:,:) :: fc
147  REAL(RFREAL), POINTER, DIMENSION(:,:) :: si, sj, sk
148  REAL(RFREAL), POINTER, DIMENSION(:,:) :: ev, tav
149  END TYPE t_plag
150 
151 ! ******************************************************************************
152 ! Tile data structure
153 ! ******************************************************************************
154 
156  INTEGER :: nCv, nDv
157  INTEGER, POINTER, DIMENSION(:) :: nPclsInjc
158  INTEGER, POINTER, DIMENSION(:) :: cvTileMass
159 
160  REAL(RFREAL), POINTER, DIMENSION(:,:) :: cv, cvOld
161  REAL(RFREAL), POINTER, DIMENSION(:,:) :: dv
162  REAL(RFREAL), POINTER, DIMENSION(:,:) :: rhs, rhsSum
163  END TYPE t_tile_plag
164 
165 ! ******************************************************************************
166 ! Communication data structure
167 ! ******************************************************************************
168 
170  INTEGER :: iRequest
171  INTEGER :: nBuffSize
172  INTEGER :: nBuffSizeDes
173  INTEGER :: nSendBuffI, nRecvBuffI
174  INTEGER :: nSendBuffR, nRecvBuffR
175  INTEGER :: nBuffSizeTot
176  INTEGER :: nSendBuffTotI, nRecvBuffTotI
177  INTEGER :: nSendBuffTotR, nRecvBuffTotR
178  INTEGER :: iRequestStat
179  INTEGER :: nSendBuffStat,nRecvBuffStat
180  INTEGER, POINTER, DIMENSION(:) :: recvBuffI, sendBuffI
181  INTEGER, POINTER, DIMENSION(:,:) :: aiv, aivOld
182 
183  REAL(RFREAL), POINTER, DIMENSION(:) :: recvBuffR, sendBuffR
184  REAL(RFREAL), POINTER, DIMENSION(:,:) :: arv, arvOld, cv, cvOld, dv, tv
185  REAL(RFREAL), POINTER, DIMENSION(:,:) :: rhs, rhsSum
186  REAL(RFREAL), POINTER, DIMENSION(:) :: recvBuffStat, sendBuffStat
187  END TYPE t_buffer_plag
188 
189 ! ******************************************************************************
190 ! Surface statistics
191 ! ******************************************************************************
192 
194  INTEGER, DIMENSION(:), POINTER :: nHits
195  REAL(RFREAL), DIMENSION(:,:), POINTER :: vars
196  END TYPE t_surfstats_plag
197 
198 END MODULE modpartlag
199 
200 ! ******************************************************************************
201 !
202 ! RCS Revision history:
203 !
204 ! $Log: ModPartLag.F90,v $
205 ! Revision 1.42 2008/12/06 08:44:19 mtcampbe
206 ! Updated license.
207 !
208 ! Revision 1.41 2008/11/19 22:17:30 mtcampbe
209 ! Added Illinois Open Source License/Copyright
210 !
211 ! Revision 1.40 2007/03/31 23:52:28 haselbac
212 ! Renamed nPclsTotGlobal to nPclsGlobal
213 !
214 ! Revision 1.39 2007/03/27 00:18:55 haselbac
215 ! Added arrays for improved PLAG initialization
216 !
217 ! Revision 1.38 2007/03/20 22:01:49 fnajjar
218 ! Added nPclsTotGlobal
219 !
220 ! Revision 1.37 2007/03/06 23:12:07 fnajjar
221 ! Renamed nPclsTot to nPclsMax
222 !
223 ! Revision 1.36 2006/10/26 15:01:55 fnajjar
224 ! Added min-max random velocities
225 !
226 ! Revision 1.35 2006/09/18 20:27:01 fnajjar
227 ! Added injcTemp in datastructure
228 !
229 ! Revision 1.34 2006/05/05 17:23:22 haselbac
230 ! Cosmetics
231 !
232 ! Revision 1.33 2006/04/07 15:19:18 haselbac
233 ! Removed tabs
234 !
235 ! Revision 1.32 2005/05/18 22:10:12 fnajjar
236 ! Added nPclsPrev
237 !
238 ! Revision 1.31 2005/04/25 18:39:08 luca1
239 ! Imposed PDF from file option for random particle ejection
240 !
241 ! Revision 1.30 2005/03/31 20:25:10 fnajjar
242 ! Included definitions for initial particle velocities
243 !
244 ! Revision 1.29 2005/02/16 14:41:08 fnajjar
245 ! Included MPI-based datastructure for statistics
246 !
247 ! Revision 1.28 2005/01/08 20:35:37 fnajjar
248 ! Included statistics datastructure
249 !
250 ! Revision 1.27 2004/12/21 15:02:32 fnajjar
251 ! Added surface statistics infrastructure for PLAG
252 !
253 ! Revision 1.26 2004/10/11 19:38:15 fnajjar
254 ! Renamed ininPlag to nPclsIni to follow naming convention
255 !
256 ! Revision 1.25 2004/10/09 16:35:23 fnajjar
257 ! Added infrastructure for particle preptool in random state and removed
258 ! initFlag as obsolete
259 !
260 ! Revision 1.24 2004/10/08 22:08:53 haselbac
261 ! Added findPclMethod
262 !
263 ! Revision 1.23 2004/08/20 23:26:11 fnajjar
264 ! Included variables for Plag prep tool
265 !
266 ! Revision 1.22 2004/07/28 18:54:27 fnajjar
267 ! Added nPclsTot for dynamic memory reallocation
268 !
269 ! Revision 1.21 2004/06/17 15:17:08 fnajjar
270 ! Included ejecModel variable
271 !
272 ! Revision 1.20 2004/06/16 22:55:33 fnajjar
273 ! Rename injcModel and injcTimeCoeff to injcModel and injcDiamDist to
274 ! prepare for CRE kernel
275 !
276 ! Revision 1.19 2004/03/10 23:08:34 fnajjar
277 ! Added infrastructure for MPI corner-edge cells
278 !
279 ! Revision 1.18 2004/03/05 22:09:01 jferry
280 ! created global variables for peul, plag, and inrt use
281 !
282 ! Revision 1.17 2004/01/16 23:22:28 fnajjar
283 ! Included requestsMetrics and nRequestsMetrics for MPI of geometry metrics
284 !
285 ! Revision 1.16 2003/11/21 22:39:48 fnajjar
286 ! Removed nPclsTot and added nextIdNumber for proper restart
287 !
288 ! Revision 1.15 2003/11/03 21:18:43 fnajjar
289 ! Added face vectors to PLAG infrastructure
290 !
291 ! Revision 1.14 2003/09/17 21:06:53 fnajjar
292 ! Added infrastructure for skewed Log distribution in injection model
293 !
294 ! Revision 1.13 2003/09/13 20:16:26 fnajjar
295 ! Added infrastructure for Breakup model
296 !
297 ! Revision 1.12 2003/09/10 23:36:24 fnajjar
298 ! Removed flags that are subsumed with Rocinteract
299 !
300 ! Revision 1.11 2003/05/27 19:06:16 fnajjar
301 ! Removed distPartBurning and all pertinent LOGICAL datastructure
302 !
303 ! Revision 1.10 2003/03/12 21:20:11 fnajjar
304 ! Include Material Datastructure
305 !
306 ! Revision 1.9 2003/03/04 22:12:34 jferry
307 ! Initial import of Rocinteract
308 !
309 ! Revision 1.8 2003/02/06 16:16:12 f-najjar
310 ! Added definition for requests of integer and real data buffers
311 !
312 ! Revision 1.7 2003/01/22 23:59:36 f-najjar
313 ! Remove iRequest for t_plag datastructure
314 !
315 ! Revision 1.6 2003/01/22 23:43:06 f-najjar
316 ! Included MPI-related request data
317 !
318 ! Revision 1.5 2003/01/22 16:49:22 f-najjar
319 ! Added iRequest for MPI communication
320 !
321 ! Revision 1.4 2003/01/16 17:45:25 f-najjar
322 ! Added nBuffSizeDes for buffer infrastructure
323 !
324 ! Revision 1.3 2002/10/25 14:04:53 f-najjar
325 ! Finalize PLAG datastructure
326 !
327 ! Revision 1.2 2001/12/11 21:59:29 jblazek
328 ! memory allocation added.
329 !
330 ! Revision 1.1.1.1 2001/12/03 21:44:05 jblazek
331 ! Import of RocfluidMP
332 !
333 ! ******************************************************************************
334 
335 
336 
337 
338 
339