pyro.advection_weno package#
The pyro advection solver. This implements a finite difference Lax-Friedrichs flux split method with WENO reconstruction based on Shu’s review from 1998 (https://ntrs.nasa.gov/archive/nasa/casi.ntrs.nasa.gov/19980007543.pdf) although the notation more follows Gerolymos et al (https://doi.org/10.1016/j.jcp.2009.07.039).
Most of the code is taken from advection_rk and toy-conslaw.
The general flow of the solver when invoked through pyro.py is:
create grid
initial conditions
main loop
fill ghost cells
compute dt
compute fluxes
conservative update
output
Subpackages#
Submodules#
pyro.advection_weno.fluxes module#
- pyro.advection_weno.fluxes.fluxes(my_data, rp)[source]#
Construct the fluxes through the interfaces for the linear advection equation
\[a_t + u a_x + v a_y = 0\]We use a high-order flux split WENO method to construct the interface fluxes. No Riemann problems are solved. The Lax-Friedrichs flux split will probably make it diffusive; the lack of a transverse solver also will not help.
- Parameters:
- my_dataCellCenterData2d object
The data object containing the grid and advective scalar that we are advecting.
- rpRuntimeParameters object
The runtime parameters for the simulation
- Returns:
- outndarray, ndarray
The fluxes on the x- and y-interfaces
- pyro.advection_weno.fluxes.fvs(q, order, u, alpha)[source]#
Perform Flux-Vector-Split (LF) finite differencing using WENO in 1d.
- Parameters:
- qnp array
input data with at least order+1 ghost zones
- orderint
WENO order (k)
- ufloat
Advection velocity in this direction
- alphafloat
Maximum characteristic speed
- Returns:
- fnp array
flux
pyro.advection_weno.simulation module#
- class pyro.advection_weno.simulation.Simulation(solver_name, problem_name, problem_func, rp, *, problem_finalize_func=None, problem_source_func=None, timers=None, data_class=<class 'pyro.mesh.patch.CellCenterData2d'>)[source]#
Bases:
Simulation
- evolve()[source]#
Evolve the linear advection equation through one timestep. We only consider the “density” variable in the CellCenterData2d object that is part of the Simulation.