Abstract. Conservation laws with source terms often have steady states in which the flux gradients are nonzero but exactly balanced by source terms. Many numerical methods (e.g., fractional step methods) have difficulty preserving such steady states and cannot accurately calculate small perturbations of such states. Here a variant of the wave-propagation algorithm is developed which addresses this problem by introducing a Riemann problem in the center of each grid cell whose flux difference exactly cancels the source term. This leads to modified Riemann problems at the cell edges in which the jump now corresponds to perturbations from the steady state. Computing waves and limiters based on the solution to these Riemann problems gives high-resolution results. The 1D and 2D shallow water equations for flow over arbitrary bottom topography are used as an example, though the ideas apply to many other systems. The method is easily implemented in the software package CLAWPACK.
Note: The method proposed in this paper is not necessarily the best way to solve quasi-steady balance laws. Instead I recommend the approach discussed in Section 7 of the more recent paper A wave-propagation method for conservation laws with spatially varying flux functions, by D. S. Bale, R. J. LeVeque, S. Mitran, and J. A. Rossmanith.
bibtex entry:
@Article{rjl:qsteady, author = "R. J. LeVeque", title = "Balancing Source Terms and Flux Gradients in High-Resolution {G}odunov Methods: The Quasi-Steady Wave-Propagation Algorithm", journal = "J. Comput. Phys.", volume = "146", year = "1998", pages = "346--365", url = "http://faculty.washington.edu/rjl/pubs/qsteady/" }