def evolve(self): """ Evolve the equations of compressible hydrodynamics through a timestep dt. """ tm_evolve = self.tc.timer("evolve") tm_evolve.begin() dens = self.cc_data.get_var("density") ymom = self.cc_data.get_var("y-momentum") ener = self.cc_data.get_var("energy") grav = self.rp.get_param("compressible.grav") myg = self.cc_data.grid Flux_x, Flux_y = flx.unsplit_fluxes(self.cc_data, self.aux_data, self.rp, self.ivars, self.solid, self.tc, self.dt) old_dens = dens.copy() old_ymom = ymom.copy() # conservative update dtdx = self.dt / myg.dx dtdy = self.dt / myg.dy for n in range(self.ivars.nvar): var = self.cc_data.get_var_by_index(n) var.v()[:, :] += \ dtdx*(Flux_x.v(n=n) - Flux_x.ip(1, n=n)) + \ dtdy*(Flux_y.v(n=n) - Flux_y.jp(1, n=n)) # gravitational source terms ymom[:, :] += 0.5 * self.dt * (dens[:, :] + old_dens[:, :]) * grav ener[:, :] += 0.5 * self.dt * (ymom[:, :] + old_ymom[:, :]) * grav if self.particles is not None: self.particles.update_particles(self.dt) # increment the time self.cc_data.t += self.dt self.n += 1 tm_evolve.end()
def evolve(self): """ Evolve the equations of compressible hydrodynamics through a timestep dt. """ tm_evolve = self.tc.timer("evolve") tm_evolve.begin() dens = self.cc_data.get_var("density") ymom = self.cc_data.get_var("y-momentum") ener = self.cc_data.get_var("energy") grav = self.rp.get_param("compressible.grav") myg = self.cc_data.grid Flux_x, Flux_y = flx.unsplit_fluxes(self.cc_data, self.aux_data, self.rp, self.ivars, self.solid, self.tc, self.dt) old_dens = dens.copy() old_ymom = ymom.copy() # conservative update dtdx = self.dt/myg.dx dtdy = self.dt/myg.dy for n in range(self.ivars.nvar): var = self.cc_data.get_var_by_index(n) var.v()[:, :] += \ dtdx*(Flux_x.v(n=n) - Flux_x.ip(1, n=n)) + \ dtdy*(Flux_y.v(n=n) - Flux_y.jp(1, n=n)) # gravitational source terms ymom[:, :] += 0.5*self.dt*(dens[:, :] + old_dens[:, :])*grav ener[:, :] += 0.5*self.dt*(ymom[:, :] + old_ymom[:, :])*grav if self.particles is not None: self.particles.update_particles(self.dt) # increment the time self.cc_data.t += self.dt self.n += 1 tm_evolve.end()