The Piecewise Parabolic Method (PPM) hydrodynamics code and other codes based on the PPM technique have been used extensively for the simulation of astrophysical phenomena. A new version of the PPM hydrodynamics code under development at the Laboratory for Computational Science and Engineering (LCSE) at the University of Minnesota is described. This new code incorporates a version of dynamic local adaptive mesh refinement (AMR) targeted specifically at improving the treatment of shocks and contact discontinuities. This AMR technique is not intended to increase grid resolution in entire regions of the problem for which standard techniques of nonuniform grids and simple grid motion are adequate. Because the AMR is targeted at surfaces within a flow that can develop complex shapes, a cell-by-cell approach to the grid refinement is adopted in order to minimize the number of refined grid cells, with the hope of controlling the computational cost. As a result of this approach, the number of refined cells needed across a given shock or captured contact discontinuity is modest (< 10), Because the PPM method is very complex, ordinarily its wide difference stencil demands that a relatively large number of extra grid cells need to be added to each end of a grid strip, even when adapting to a thin feature of the flow. To avoid the work associated in handling these extra cells, only to conveniently produce valid data in the thin strip of actual interest, we have used intermediate results of the coarse grid calculation in order to eliminate the need for all but two of these extra cells at each end of the refined grid strip. The benefits of this approach will be described through sample results in 2D, and the method for handling the boundaries of the refined grid strips efficiently will be discussed. The data structures in this method are being carefully designed to permit efficient implementation of the algorithm on clusters of shared memory machines, with automatic dynamic balancing of computational loads over the cluster members.
- Parallel computing