Skip to content

Commit 8f5a072

Browse files
authored
[WIP] fix the sponge source (#336)
I forgot to include the kinetic energy source
1 parent c2ecf50 commit 8f5a072

File tree

3 files changed

+20
-0
lines changed

3 files changed

+20
-0
lines changed

pyro/compressible/simulation.py

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -427,9 +427,19 @@ def evolve(self):
427427
if self.rp.get_param("sponge.do_sponge"):
428428
kappa_f = get_sponge_factor(self.cc_data.data, self.ivars, self.rp, myg)
429429

430+
U_old = self.cc_data.data.copy()
431+
430432
self.cc_data.data[:, :, self.ivars.ixmom] /= (1.0 + self.dt * kappa_f)
431433
self.cc_data.data[:, :, self.ivars.iymom] /= (1.0 + self.dt * kappa_f)
432434

435+
# for energy, there is no change in density from the sponge, so we
436+
# can just apply the change in kinetic energy from the velocity update
437+
dke = 0.5 * ((self.cc_data.data[..., self.ivars.ixmom]**2 +
438+
self.cc_data.data[..., self.ivars.iymom]**2) -
439+
(U_old[..., self.ivars.ixmom]**2 +
440+
U_old[..., self.ivars.iymom]**2)) / self.cc_data.data[..., self.ivars.idens]
441+
self.cc_data.data[..., self.ivars.iener] += dke
442+
433443
if self.particles is not None:
434444
self.particles.update_particles(self.dt)
435445

pyro/compressible_fv4/simulation.py

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -54,9 +54,14 @@ def substep(self, myd):
5454
if self.rp.get_param("sponge.do_sponge"):
5555
kappa_f = get_sponge_factor(myd.data, self.ivars, self.rp, myg)
5656

57+
# momentum
5758
k.v(n=self.ivars.ixmom)[:, :] -= kappa_f.v() * myd.data.v(n=self.ivars.ixmom)
5859
k.v(n=self.ivars.iymom)[:, :] -= kappa_f.v() * myd.data.v(n=self.ivars.iymom)
5960

61+
# total energy
62+
k.v(n=self.ivars.iener)[:, :] -= kappa_f.v() * (myd.data.v(n=self.ivars.ixmom)**2 / myd.data.v(n=self.ivars.idens) +
63+
myd.data.v(n=self.ivars.iymom)**2 / myd.data.v(n=self.ivars.idens))
64+
6065
return k
6166

6267
def preevolve(self):

pyro/compressible_rk/simulation.py

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,9 +39,14 @@ def substep(self, myd):
3939
if self.rp.get_param("sponge.do_sponge"):
4040
kappa_f = compressible.get_sponge_factor(myd.data, self.ivars, self.rp, myg)
4141

42+
# momentum
4243
k.v(n=self.ivars.ixmom)[:, :] -= kappa_f.v() * myd.data.v(n=self.ivars.ixmom)
4344
k.v(n=self.ivars.iymom)[:, :] -= kappa_f.v() * myd.data.v(n=self.ivars.iymom)
4445

46+
# total energy
47+
k.v(n=self.ivars.iener)[:, :] -= kappa_f.v() * (myd.data.v(n=self.ivars.ixmom)**2 / myd.data.v(n=self.ivars.idens) +
48+
myd.data.v(n=self.ivars.iymom)**2 / myd.data.v(n=self.ivars.idens))
49+
4550
return k
4651

4752
def method_compute_timestep(self):

0 commit comments

Comments
 (0)