FLASH-X
Doxygen Generated Documentation From Interface Source Code
Particles_interface.F90
Go to the documentation of this file.
1!! NOTICE
2!! Copyright 2022 UChicago Argonne, LLC and contributors
3!!
4!! Licensed under the Apache License, Version 2.0 (the "License");
5!! you may not use this file except in compliance with the License.
6!!
7!! Unless required by applicable law or agreed to in writing, software
8!! distributed under the License is distributed on an "AS IS" BASIS,
9!! WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
10!! See the License for the specific language governing permissions and
11!! limitations under the License.
12!!
13!! This is the header file for the particles module that defines its
14!! public interfaces.
16
18
19 implicit none
20
21#include "Simulation.h"
22#include "constants.h"
23
24 interface
25 subroutine Particles_advance (dtOld,dtNew)
26 real, INTENT(in) :: dtOld, dtNew
27 end subroutine Particles_advance
28 end interface
29
30 interface
31 subroutine Particles_computeDt (blockID, dt_part, dt_minloc)
32 real, INTENT(inout) :: dt_part
33 integer, INTENT(inout) :: dt_minloc(5)
34 integer, INTENT(in) :: blockID
35 end subroutine Particles_computeDt
36 end interface
37
38 interface
39 subroutine Particles_dump(blockCount,blockList,nstep,time,dt)
40 integer, intent(IN) :: blockCount
41 integer, intent(IN) :: blockList(blockCount)
42 integer, intent(IN) :: nstep
43 real, intent(IN) :: time, dt
44 end subroutine Particles_dump
45 end interface
46
47 interface
48 subroutine Particles_finalize()
49 end subroutine Particles_finalize
50 end interface
51
52 interface
53 subroutine Particles_getGlobalNum(globalNumParticles)
54 integer, intent(out) :: globalNumParticles
55 end subroutine Particles_getGlobalNum
56 end interface
57
58 interface
59 subroutine Particles_getLocalNum(blockID, localNumParticles)
60 integer, intent(in) :: blockID
61 integer, intent(out) :: localNumParticles
62 end subroutine Particles_getLocalNum
63 end interface
64
65 interface
66 subroutine Particles_init( restart)
67 logical, intent(IN) :: restart
68 end subroutine Particles_init
69 end interface
70
71 interface
72 subroutine Particles_initPositions ( partPosInitialized,updateRefine)
73 logical, INTENT(INOUT) :: partPosInitialized
74 logical, INTENT(OUT) :: updateRefine
75 end subroutine Particles_initPositions
76 end interface
77
78 interface
79 subroutine Particles_initData(restart,partPosInitialized)
80 logical, INTENT(IN) :: restart
81 logical,INTENT(INOUT) :: partPosInitialized
82 end subroutine Particles_initData
83 end interface
84
85 interface
86 subroutine Particles_longRangeForce (particles,p_count,mapType)
87
88 integer, intent(IN) :: p_count,mapType
89 real,dimension(NPART_PROPS,p_count),intent(INOUT) :: particles
90 end subroutine Particles_longRangeForce
91 end interface
92
93 interface
94 subroutine Particles_putLocalNum(localNumParticles)
95 integer, intent(in) :: localNumParticles
96 end subroutine Particles_putLocalNum
97 end interface
98
99 interface
101 end subroutine Particles_sendOutputData
102 end interface
103
104 interface
106 end subroutine Particles_shortRangeForce
107 end interface
108
109 interface
110 subroutine Particles_unitTest(fileUnit,perfect)
111 integer, intent(in) :: fileUnit
112 logical, intent(INOUT) :: perfect
113 end subroutine Particles_unitTest
114 end interface
115
116 interface
117 subroutine Particles_updateRefinement(oldLocalNumBlocks)
118 integer,intent(INOUT) :: oldLocalNumBlocks
119 end subroutine Particles_updateRefinement
120 end interface
121
122 interface
123 subroutine Particles_mapFromMesh (mapType,numAttrib, attrib, pos, bndBox,&
124 deltaCell,blkLimits, solnVec, partAttribVec)
125
126 integer, INTENT(in) :: mapType,numAttrib
127 integer, dimension(2, numAttrib),intent(IN) :: attrib
128 real,dimension(MDIM), INTENT(in) :: pos,deltaCell
129 real, dimension(LOW:HIGH,MDIM), intent(IN) :: bndBox
130 integer,dimension(LOW:HIGH, MDIM), INTENT(in) :: blkLimits
131 real, pointer :: solnVec(:,:,:,:)
132 real,dimension(numAttrib), intent(OUT) :: partAttribVec
133
134 end subroutine Particles_mapFromMesh
135 end interface
136
137 interface
138 subroutine Particles_mapToMeshOneBlk(blkLimitsGC,guard, blockID,&
139 particles,numParticles,pt_attribute,buff,particleOffset)
140 implicit none
141 integer,dimension(LOW:HIGH,MDIM), intent(IN) :: blkLimitsGC
142 integer, dimension(MDIM),intent(IN) :: guard
143 integer, intent(IN) :: blockID
144 integer, intent(in) :: numParticles
145 real, intent(in) :: particles(NPART_PROPS,numParticles)
146 integer, intent(IN) :: pt_attribute
147 real, dimension(blkLimitsGC(LOW,IAXIS):blkLimitsGC(HIGH,IAXIS),&
148 blkLimitsGC(LOW,JAXIS):blkLimitsGC(HIGH,JAXIS),&
149 blkLimitsGC(LOW,KAXIS):blkLimitsGC(HIGH,KAXIS)),&
150 INTENT(INOUT) :: buff
151 integer, intent(in),OPTIONAL :: particleOffset
152 end subroutine Particles_mapToMeshOneBlk
153 end interface
154
155 interface
157 implicit none
158 end subroutine Particles_updateAttributes
159 end interface
160
161 interface
162 subroutine Particles_updateGridVar(partProp, varGrid, mode)
163 integer, INTENT(in) :: partProp, varGrid
164 integer, INTENT(in), optional :: mode
165 end subroutine Particles_updateGridVar
166 end interface
167
168 interface
169 subroutine Particles_accumCount(var)
170 integer,intent(IN) :: var
171 end subroutine Particles_accumCount
172 end interface
173
174 interface
175 subroutine Particles_getCountPerBlk(perBlkCount)
176
177 integer,dimension(MAXBLOCKS),intent(OUT) :: perBlkCount
178 end subroutine Particles_getCountPerBlk
179 end interface
180
181 interface
183 end subroutine Particles_initForces
184 end interface
185
186 interface
188 end subroutine Particles_specifyMethods
189 end interface
190
191 interface
192 subroutine Particles_manageLost(mode)
193 integer, intent(IN) :: mode
194 end subroutine Particles_manageLost
195 end interface
196
197 interface
198 subroutine Particles_clean()
199 end subroutine Particles_clean
200 end interface
201
202 interface
203 subroutine Particles_addNew (count, pos, success)
204 integer, INTENT(in) :: count
205 real, optional, dimension(MDIM,count), intent(IN)::pos
206 logical, intent(OUT) :: success
207 end subroutine Particles_addNew
208 end interface
209
210 interface
211 subroutine Particles_sinkAccelGasOnSinksAndSinksOnGas(accelProps,accelVars)
212 implicit none
213 integer, intent(in), OPTIONAL :: accelProps(MDIM)
214 integer, intent(in), OPTIONAL :: accelVars(MDIM)
216 end interface
217
218 interface
220 real, INTENT(in) :: dr_dt
221 end subroutine Particles_sinkAdvanceParticles
222 end interface
223
224 interface
225 subroutine Particles_sinkComputeDt(blockID,dt_sink,dt_minloc)
226 integer, INTENT(in) :: blockID
227 real, INTENT(inout) :: dt_sink
228 integer, INTENT(inout) :: dt_minloc(5)
229 end subroutine Particles_sinkComputeDt
230 end interface
231
232 interface
234 real, intent(IN) :: dt
235 end subroutine Particles_sinkCreateAccrete
236 end interface
237
238 interface
239 subroutine Particles_sinkInit(restart)
240 logical, intent(in) :: restart
241 end subroutine Particles_sinkInit
242 end interface
243
244 interface
247 end interface
248
249 interface
251 logical, intent(in) :: regrid
252 end subroutine Particles_sinkMoveParticles
253 end interface
254
255 interface
257 end subroutine Particles_sinkSortParticles
258 end interface
259
260 interface
261 subroutine Particles_sinkSumAttributes(sums, attribs, factor)
262 implicit none
263 real,intent(OUT) :: sums(:)
264 integer,intent(in) :: attribs(:)
265 integer,intent(in),OPTIONAL :: factor
266 end subroutine Particles_sinkSumAttributes
267 end interface
268
269 interface
270 subroutine Particles_sinkSyncWithParticles(sink_to_part)
271 logical, intent(in) :: sink_to_part
273 end interface
274
275 interface
277 implicit none
278 end subroutine Particles_createDataStructs
279 end interface
280
281 interface
282 subroutine Particles_copyFromMeshOwned(np, particleType, meshOwnedPart, particles2D)
284 implicit none
285
286 integer, INTENT(in) :: np, particleType
287 type(Particles_meshParticle_t), INTENT(in) :: meshOwnedPart(:)
288 real, dimension(:,:), INTENT(out) :: particles2D
289 end subroutine Particles_copyFromMeshOwned
290 end interface
291
292 interface
293 subroutine Particles_copyToMeshOwned(particles2D, nprops, np, filePropNames)
295 implicit none
296 integer nprops, np
297 character(len=24), dimension(nprops), INTENT(in) :: filePropNames
298 real, dimension(1:nprops,1:np), INTENT(in) :: particles2D
299 end subroutine Particles_copyToMeshOwned
300 end interface
301
302end Module Particles_interface