Skip to content

Commit 56239b9

Browse files
committed
Added io for particles
1 parent 92912c5 commit 56239b9

22 files changed

Lines changed: 210 additions & 75 deletions

File tree

advection/_defaults

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,5 +9,6 @@ v = 1.0 ; advective velocity in y-direction
99
limiter = 2 ; limiter (0 = none, 1 = 2nd order, 2 = 4th order)
1010

1111

12-
13-
12+
[particles]
13+
do_particles = 0
14+
particle_generator = grid

advection/problems/inputs.tophat

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,3 @@ u = 1.0
3232
v = 1.0
3333

3434
limiter = 2
35-
36-
[particles]
37-
do_particles = 1
38-
particle_generator = grid

advection/simulation.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,9 @@ def initialize(self):
2828
self.cc_data = my_data
2929

3030
if self.rp.get_param("particles.do_particles") == 1:
31-
self.particles = particles.Particles(self.cc_data, bc, self.rp)
31+
n_particles = self.rp.get_param("particles.n_particles")
32+
particle_generator = self.rp.get_param("particles.particle_generator")
33+
self.particles = particles.Particles(self.cc_data, bc, n_particles, particle_generator)
3234

3335
# now set the initial conditions for the problem
3436
problem = importlib.import_module("advection.problems.{}".format(self.problem_name))
@@ -86,9 +88,7 @@ def evolve(self):
8688
u2d = myg.scratch_array() + u
8789
v2d = myg.scratch_array() + v
8890

89-
self.particles.update_particles(u2d, v2d, self.dt)
90-
91-
self.particles.enforce_particle_boundaries()
91+
self.particles.update_particles(self.dt, u2d, v2d)
9292

9393
# increment the time
9494
self.cc_data.t += self.dt

advection_fv4/simulation.py

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
import mesh.array_indexer as ai
77
import mesh.fv as fv
88
from simulation_null import grid_setup, bc_setup
9+
import particles.particles as particles
910

1011

1112
class Simulation(advection_rk.Simulation):
@@ -26,6 +27,11 @@ def initialize(self):
2627

2728
self.cc_data = my_data
2829

30+
if self.rp.get_param("particles.do_particles") == 1:
31+
n_particles = self.rp.get_param("particles.n_particles")
32+
particle_generator = self.rp.get_param("particles.particle_generator")
33+
self.particles = particles.Particles(self.cc_data, bc, n_particles, particle_generator)
34+
2935
# now set the initial conditions for the problem
3036
problem = importlib.import_module("advection_fv4.problems.{}".format(self.problem_name))
3137
problem.init_data(self.cc_data, self.rp)

advection_rk/simulation.py

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -72,6 +72,15 @@ def evolve(self):
7272

7373
rk.compute_final_update()
7474

75+
if self.particles is not None:
76+
myg = self.cc_data.grid
77+
u = self.rp.get_param("advection.u")
78+
v = self.rp.get_param("advection.v")
79+
80+
u2d = myg.scratch_array() + u
81+
v2d = myg.scratch_array() + v
82+
83+
self.particles.update_particles(self.dt, u2d, v2d)
7584
# increment the time
7685
myd.t += self.dt
7786
self.n += 1

advection_weno/simulation.py

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -72,6 +72,16 @@ def evolve(self):
7272

7373
rk.compute_final_update()
7474

75+
if self.particles is not None:
76+
myg = self.cc_data.grid
77+
u = self.rp.get_param("advection.u")
78+
v = self.rp.get_param("advection.v")
79+
80+
u2d = myg.scratch_array() + u
81+
v2d = myg.scratch_array() + v
82+
83+
self.particles.update_particles(self.dt, u2d, v2d)
84+
7585
# increment the time
7686
myd.t += self.dt
7787
self.n += 1

compressible/_defaults

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,5 +22,5 @@ grav = 0.0 ; gravitational acceleration (in y-direction)
2222
riemann = HLLC ; HLLC or CGF
2323

2424
[particles]
25-
do_particles = 1
25+
do_particles = 0
2626
particle_generator = grid

compressible/simulation.py

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -143,7 +143,9 @@ def initialize(self, extra_vars=None, ng=4):
143143
self.cc_data = my_data
144144

145145
if self.rp.get_param("particles.do_particles") == 1:
146-
self.particles = particles.Particles(self.cc_data, bc, self.rp)
146+
n_particles = self.rp.get_param("particles.n_particles")
147+
particle_generator = self.rp.get_param("particles.particle_generator")
148+
self.particles = particles.Particles(self.cc_data, bc, n_particles, particle_generator)
147149

148150
# some auxillary data that we'll need to fill GC in, but isn't
149151
# really part of the main solution
@@ -226,10 +228,7 @@ def evolve(self):
226228
ener[:, :] += 0.5*self.dt*(ymom[:, :] + old_ymom[:, :])*grav
227229

228230
if self.particles is not None:
229-
u, v = self.cc_data.get_var("velocity")
230-
231-
self.particles.update_particles(u, v, self.dt)
232-
self.particles.enforce_particle_boundaries()
231+
self.particles.update_particles(self.dt)
233232

234233
# increment the time
235234
self.cc_data.t += self.dt

compressible_fv4/simulation.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -89,6 +89,9 @@ def evolve(self):
8989

9090
rk.compute_final_update()
9191

92+
if self.particles is not None:
93+
self.particles.update_particles(self.dt)
94+
9295
# increment the time
9396
myd.t += self.dt
9497
self.n += 1

compressible_react/simulation.py

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,9 +49,15 @@ def evolve(self):
4949

5050
self.diffuse(self.dt/2)
5151

52+
if self.particles is not None:
53+
self.particles.update_particles(self.dt/2)
54+
5255
# note: this will do the time increment and n increment
5356
super().evolve()
5457

58+
if self.particles is not None:
59+
self.particles.update_particles(self.dt/2)
60+
5561
self.diffuse(self.dt/2)
5662

5763
self.burn(self.dt/2)

0 commit comments

Comments
 (0)