In this study, we examine the all-speed projection approach to computational gas dynamicsin the low-Mach limit. This limit is characterized by slow, non-stiff advective flow accompanied by fast, stiff acoustic motions. The all-speed projection method uses a Helmholtz
projection to derive redundant equations in the stiff variables: pressure and potential velocity. The resulting equations are discretized using a high-order finite-volume method and
integrated in time using a method of lines formulation and an implicit-explicit (IMEX) additive Runge-Kutta (ARK) method. The all-speed projection approach differs from the
“zero-Mach” approach of deriving equations of motion in the asymptotic limit as the Mach
number becomes small. The zero-Mach strategy yields a differential/algebraic system which
is difficult to manage and also explicitly forbids simulation of acoustic waves.
We introduce adaptive mesh refinement (AMR) to the existing all-speed projection algorithm. In so doing, we needed to address a number of challenges. Previous AMR multigridmethods took advantage of simplifications in order to make use of residual correction multigrid. We have instead used the Full Approximation Scheme (FAS) version of multigrid in
our AMR framework. Doing so gives the framework more flexibility, allowing us to solve
more complicated operators with inhomogeneous boundary conditions.
Previous AMR frameworks have been written using C++ for high level abstractions, andwith Fortran used to implement single patch operators. This approach is not productive
because Fortran is not an expressive language for representing high-level mathematics and
manually programming with low-level abstractions does not scale well with current trends
in scientific computing. In light of these observations, we have written our AMR framework
mostly from the ground up using Proto, a new C++ embedded domain-specific language for
high-performance computing. This study represents the first AMR application written using
Proto