This paper was converted on www.awesomepapers.org from LaTeX by an anonymous user.
Want to know more? Visit the Converter page.

Comparison between a priori and a posteriori slope limiters for high-order finite volume schemes

Jonathan Palafoutas David A. Velasco Romero Romain Teyssier
Abstract

High-order finite volume and finite element methods offer impressive accuracy and cost efficiency when solving hyperbolic conservation laws with smooth solutions. However, if the solution contains discontinuities, these high-order methods can introduce unphysical oscillations and severe overshoots/undershoots. Slope limiters are an effective remedy, combating these oscillations by preserving monotonicity. Some limiters can even maintain a strict maximum principle in the numerical solution. They can be classified into one of two categories: a priori and a posteriori limiters. The former revises the high-order solution based only on data at the current time tnt^{n}, while the latter involves computing a candidate solution at tn+1t^{n+1} and iteratively recomputing it until some conditions are satisfied. These two limiting paradigms are available for both finite volume and finite element methods.

In this work, we develop a methodology to compare a priori and a posteriori limiters for finite volume solvers at arbitrarily high order. We select the maximum principle preserving scheme presented in [1, 2] as our a priori limited scheme. For a posteriori limiting, we adopt the methodology presented in [3] and search for so-called troubled cells in the candidate solution. We revise them with a robust MUSCL fallback scheme. The linear advection equation is solved in both one and two dimensions and we compare variations of these limited schemes based on their ability to maintain a maximum principle, solution quality over long time integration and computational cost.

This analysis reveals a fundamental tradeoff between these three aspects. The high-order a posteriori limited solutions boast great quality at long time-scales, taking full advantage of the sharp gradients of the high-order finite volume method. However, they introduce consistent maximum principle violations. On the other hand, the high-order a priori limited solutions can preserve a strict maximum principle. Interestingly, this is still true when the classic fourth-order Runge-Kutta method is used, despite it not being classified as strong-stability-preserving. However, we find a serious drawback; with a spatial polynomial reconstruction of degree five or higher, the a priori limited solution becomes dominated by numerical artifacts and diffusion, exhibiting much worse solution quality than their a posteriori counterparts. Convex blending of revised fluxes reduces the magnitudes of the violations produced by a posteriori limited schemes, but at the expense of more visible numerical artifacts.

Moreover, we compare two methods for computing the flux integrals along two-dimensional cell faces, revealing that one option is more cost-effective but leads to particularly large violations when used with the a priori limited scheme. Consequently, the a priori limited scheme is forced to use the more costly flux computation, making it significantly more expensive at higher-order than the a posteriori limited scheme on CPU architecture. This cost difference can be almost entirely mitigated using a GPU implementation of the same schemes, highlighting that GPUs are well-suited for high-order finite volume stencil operations.

keywords:
Hyperbolic conservation laws, Finite volume schemes, MUSCL schemes, Explicit Runge-Kutta methods, Maximum principle preservation, A priori slope limiters, A posteriori slope limiters
journal: Journal of Computational Physics
\affiliation

[label1]organization=Program in Applied & Computational Mathematics, Princeton University, addressline=Washington Road, city=Princeton, postcode=08544, state=NJ, country=USA

\affiliation

[label2]organization=Department of Astrophysical Sciences, Princeton University, addressline=171 Broadmead Street, city=Princeton, postcode=08540, state=NJ, country=USA

{graphicalabstract}
{highlights}

Developed experimental methodology with which to compare a priori and a posteriori slope limiters for arbitrarily-high-order finite volume schemes.

Conducted numerical tests for the linear advection equation in one and two dimensions.

Demonstrated a tradeoff between maximum principle violations, long time-scale numerical solution quality, and computational cost.

1 Introduction

There have been significant advancements in the development of numerical schemes for hyperbolic conservation laws over the past few decades. With increasing demands for precision and reliability in simulations across fields like fluid dynamics, astrophysics, and climate modeling, there is a growing trend toward conducting simulations at higher resolutions.

More recently, there has been a shift in focus towards high-order numerical schemes, typically referring to those of order three or higher. These schemes offer several advantages over their lower-order counterparts, including improved resolution of fine details, reduced numerical diffusion over extended time scales, and the capability to capture sharper gradients and discontinuities. Moreover, in problems with smooth solutions, higher-order schemes exhibit exponentially lower errors as the order increases, meaning they can achieve the same accuracy as a given low-order scheme with a significantly lower resolution.

However, they also come with a significant drawback when dealing with solutions that contain discontinuities: Using higher-degree interpolation polynomials can create unphysical oscillations and severely overshoot/undershoot the true solution bounds. In problems involving the conservation of a scalar u(t,𝐱)u(t,\mathbf{x}), it may be essential for the numerical solution to satisfy the maximum principle, which defines a range of values represented by M=max𝐱u0(𝐱)M=\max_{\mathbf{x}}u_{0}(\mathbf{x}) and m=min𝐱u0(𝐱)m=\min_{\mathbf{x}}u_{0}(\mathbf{x}), where u0(𝐱)=u(0,𝐱)u_{0}(\mathbf{x})=u(0,\mathbf{x}) is the initial condition. These spurious oscillations violate the maximum principle condition u(t,𝐱)[m,M]u(t,\mathbf{x})\in[m,M], making it challenging to enforce physical properties such as the positivity of density or pressure. In fact, Godunov’s theorem asserts that any linear scheme higher than first-order will not strictly preserve the maximum principle of a scalar conservation law [4]. Maximum principle violations are catastrophic for solvers of many nonlinear conservation laws, rendering linear high-order schemes useless for such problems.

As far as linear schemes for conservation laws go, there are three popular spatial discretizations: finite difference (FD), finite volume (FV), and finite element (FE) methods. FD/FV methods can be made higher-order simply by increasing the size of the stencil used to interpolate spatial derivatives from nodes/cells and their neighbors. FV methods are particularly attractive for conservation laws because they can easily be defined to conserve solution quantities to numerical precision. Additionally, as demonstrated in the text, they remain stable with explicit Runge-Kutta methods even for large CFl factors.

In the realm of scientific computing, finite element (FE) methods, especially the discontinuous Galerkin (DG) method, have gained increasing popularity. In DG, the numerical solution is represented using a polynomial basis within a domain region known as an element. By using higher-degree polynomials across fewer elements, the number of discontinuities between solutions is relatively low compared to an equivalent FV scheme. This aspect is crucial, particularly when addressing these discontinuities involves costly Riemann solvers.

Many techniques have been developed to help numerical solutions preserve local monotonicity and avoid these violations. For instance, the artificial viscosity method adds a physical diffusion term to the underlying equation in order to smooth numerical solutions near discontinuities or elsewhere [5, 6, 7, 8, 9].

Another approach is to utilize a slope limiter, an operator designed to reduce the slopes of the piecewise reconstruction of a solution, thereby enforcing monotonicity. The key point is that this operator is nonlinear, allowing schemes to break free from the constraints of Godunov’s theorem. There are many examples of limited schemes in the literature. The MUSCL scheme introduced by Van Leer [10] is a second-order scheme that strictly preserves a given maximum principle. Later came the popular TVD limiter [11] and the PPM scheme [11]. The ENO [12] scheme and WENO scheme [13] were introduced as a means to preserve the high-order accuracy of FV schemes while reducing oscillations near discontinuities.

A strictly maximum principle-preserving (MPP) scheme working at arbitrarily high order was introduced by Zhang & Shu [1, 2]. Their method calculates the numerical solution as a convex combination of high-order and first-order updates. It is guaranteed to satisfy the maximum principle if a sufficiently small CFL factor is used along with first-order forward Euler integration or another Runge-Kutta method equivalent to a convex combination of Euler steps. These methods are known as Strong-Stability-Preserving (SSP) integrators. While the popular fourth-order explicit Runge-Kutta method is not classified as Strong Stability Preserving (SSP), it exhibits quasi-SSP behavior for certain problems [14]. Therefore, we will evaluate its compatibility with MPP schemes.

it behaves as a quasi-SSP integrator, enabling schemes to maintain a strict maximum principle.

While slope limiters are popular tools when solving discontinuous problems with FV schemes, and can even guarantee the avoidance of maximum principe violations, they have drawbacks for FE. These popular limiters often necessitate reducing the degree of interpolating polynomials to zero to prevent overshoots and undershoots. However, in FE methods where polynomial elements cover large spatial regions, reducing an element to first-order significantly compromises the accuracy of the overall solution.

An important advancement in addressing this issue of slope limiting for FE was made by considering a posteriori limiters. Unlike traditional a priori limiters, which use data at tnt^{n} to compute a limited update at tn+1t^{n+1} in explicit schemes, a posteriori limiters compute a candidate solution at tn+1t^{n+1} and revise it until it satisfies the problem requirements. This concept, introduced by Krivodonova [15] and Clain et al. [3] as MOOD, involves reducing an element solution by one degree at a time, limiting the solution slope while only reverting to first-order when necessary.

Vilar & Abgrall [16] introduced a novel concept to further localize changes made to the high-order solution by the limiter. In their approach, a subgrid of FV cell averages is interpolated from any FE of the candidate solution that violate positivity or other prescribed condition. In FV, a posteriori limiting is executed on a cell-by-cell basis, identifying to called troubled cells whose fluxes need to be revised [3, 17, 18]. A robust fallback scheme computes the revision of this intermediate FV solution, after which a the high-degree polynomial of the element is reconstructed from these limited cell averages. This fallback scheme can be the FV MOOD scheme [3] or any of the other limited schemes discussed here.

The spectral difference (SD) method is another FE approach that can be shown to be equivalent to a quadrature free nodal DG scheme [19, 20]. Velasco et al. [18] took advantage of the fact that the SD method offers a natural interpretation as a nonuniform FV grid, avoiding the need to interpolate between two solution representations.

For FV schemes, the a priori and a posteriori limiting paradigms have fundamentally different implementations and trade-offs. Zhang & Shu’s limiter [1, 2] maintains a strict maximum principle for high-order schemes, but is computationally costly due to the reduced CFL condition and the many nodal reconstructions for the flux quadrature. The cost of the small CFL factor can be mostly mitigated by using an adaptive time-step size [21]. GPUs, renowned for their ability to execute numerous matrix multiplications as a single vectorized operation, might also potentially mitigate this issue. This is because each nodal reconstruction corresponds to a stencil that can be computed through matrix multiplication.

The cost of the nodal reconstructions is more severe in two dimensions or higher. While the two-dimensional finite volume (FV) flux integral can be reconstructed in various ways, Zhang & Shu’s limiter [1, 2] use a Gauss-Legendre quadrature. This quadrature method requires a node count per cell face that grows linearly with the polynomial degree. In contrast, transverse flux reconstruction [see e.g. 22, 23, 24] uses only one node per cell face, making it a significantly more economical option. We will investigate whether the Zhang & Shu [1, 2] a priori slope limiter can still be used in an MPP scheme when transverse flux reconstruction is exploited. Previous studies combining an a priori limiter with transverse flux reconstruction have resulted in significant violations of the maximum principle [23].

Another limitation of MPP, a priori limiters is that, at high-order and after long time-scales, their numerical solutions can be dominated by numerical artifacts and diffusion [25]. The high-order schemes in this case actually perform worse at long time-scales than, say, second-order MUSCL-Hancock. Perhaps the trade-off of a strictly MPP scheme is that is too stringent with the permitted slopes as a means to enforces monotonicty. It is unclear how the a posteriori limiting compares in this regard.

The a posteriori limiters presented here do not require the use of Gauss-Legendre quadrature in two dimensions, making them automatically more cost-effective. However, these limited schemes often violate the maximum principle of the problem at hand, as they lack a guarantee to the contrary. Vilar & Abgrall [16] discovered that extending the convex blending of revised and high-order fluxes to a region of neighbors around each troubled cell reduces the magnitude of these violations. Rueda-Ramírez et al [26] showed that a more sophisticated version of this blending can be formulated so as it guarantee the satisfaction of physical bounds on solution variables. Nevertheless, it remains unclear how well a high-order, MPP a posteriori limited scheme performs over long time scales and whether they suffer from the same dominance of numerical artifacts as the a priori limited schemes.

In this study, we develop a methodology to compare a priori and a posteriori limited explicit finite volume (FV) schemes at arbitrarily high orders. We chose FV as the base scheme over finite element (FE) methods, as modern FE schemes revert to FV when encountering violations, anyways. We solve the linear advection equation in one and two dimensions through a series of numerical experiments. The numerical solutions obtained from the two limiting paradigms are compared with respect to their maximum principle violations and their quality over long time-scales. Furthermore, we evaluate the computational costs of these methods on traditional CPU architecture as well as GPUs.

In Section 2, we give an overview the finite volume method and the various slope-limiting techniques compared in this work. Section 3 conveniently summarizes the a priori and a posteriori limited schemes studied in our numerical experiments. The results of those experiments are presented in Section 4, where we validate our high-order FV and MPP implementations and compare the high-order slope-limited schemes’ maximum principle violations, solution quality at long time-scales, and computational cost. Additional commentary regarding the experiments is provided in Section 5 and conclusions are drawn in Section 6.

2 Numerical methods

We consider the scalar conservation law

ut+𝐟(u)=0,u(𝐱,0)=u0(𝐱)\frac{\partial u}{\partial t}+\nabla\cdot\mathbf{f}(u)=0,\quad u(\mathbf{x},0)=u_{0}(\mathbf{x}) (1)

for 𝐟,𝐱d\mathbf{f},\mathbf{x}\in\mathbb{R}^{d}, where u(𝐱,t)u(\mathbf{x},t) is a conserved scalar, 𝐟\mathbf{f} is a flux function and dd is the number of dimensions. We begin with the one-dimensional case (d=1d=1), and rewrite (1) into the initial value problem

ut+f(u)x=0,u(x,0)=u0(x).\frac{\partial u}{\partial t}+\frac{\partial f(u)}{\partial x}=0,\quad u(x,0)=u_{0}(x). (2)

In the finite volume formulation, the spatial domain is partitioned into finite intervals, or cells Ii=[xi12,xi+12]I_{i}=[x_{i-\frac{1}{2}},x_{i+\frac{1}{2}}] and the cell volume average is defined at time tnt^{n} as

u¯in=1hxi12xi+12u(ξ,tn)𝑑ξ,\bar{u}^{n}_{i}=\frac{1}{h}\int_{x_{i-\frac{1}{2}}}^{x_{i+\frac{1}{2}}}u(\xi,t^{n})d\xi, (3)

where hh is the length of IiI_{i}, chosen to be uniform in this work. Combining (2) with (3) and applying the divergence theorem, the semi-discrete form is written

du¯indt=1h(f(ui+12)f(ui12)).\frac{d\bar{u}_{i}^{n}}{dt}=-\frac{1}{h}(f(u_{i+\frac{1}{2}})-f(u_{i-\frac{1}{2}})). (4)

The nodal values ui±12=Pi(xi±12)u_{i\pm\frac{1}{2}}=P_{i}(x_{i\pm\frac{1}{2}}) are obtained by reconstructing u(x,tn)u(x,t^{n}) as a polynomial Pi(x)P_{i}(x) piecewise on each interval IiI_{i} and evaluating it at the cell edges. Pi(x)P_{i}(x) is a conservative interpolation polynomial such that IiPi(x)=u¯in\int_{I_{i}}P_{i}(x)=\bar{u}_{i}^{n} and is found by taking the derivative of the Lagrange polynomial which interpolates the first moment of u(x)u(x) in some kernel of cells containing IiI_{i} [12, 27, 28]. The size of the kernel limits the accuracy the polynomial degree of Pi(x)P_{i}(x) and, consequently, the order of accuracy of the finite volume scheme; Pi(x)P_{i}(x) is of degree pp when it is reconstructed from a kernel of exactly p+1p+1 neighboring cells, so a smooth u(x)u(x) is approximated with u(x)=Pi(x)+𝒪(hp+1)u(x)=P_{i}(x)+\mathcal{O}(h^{p+1}) on IiI_{i}.

The evaluation of Pi(xi±12)P_{i}(x_{i\pm\frac{1}{2}}) is summarized as stencil operations in Table 1 for various degrees pp. We select only those stencils that are symmetric so as to simplify our implementation and minimize the number of cells that must be adjusted to enforce boundary conditions. For odd-degree polynomials (which require a kernel of even size), we take the average of the left- and right-biased stencils.

pp ui12+=Pi(xi12)=u(xi12)+𝒪(hp+1)u_{i-\frac{1}{2}}^{+}=P_{i}(x_{i-\frac{1}{2}})=u(x_{i-\frac{1}{2}})+\mathcal{O}(h^{p+1})
0 u¯i\bar{u}_{i}
1 14u¯i1+u¯i14u¯i+1\frac{1}{4}\bar{u}_{i-1}+\bar{u}_{i}-\frac{1}{4}\bar{u}_{i+1}
2 13u¯i1+56u¯i16u¯i+1\frac{1}{3}\bar{u}_{i-1}+\frac{5}{6}\bar{u}_{i}-\frac{1}{6}\bar{u}_{i+1}
3 124u¯i2+512u¯i1+56u¯i14u¯i+1+124u¯i+2-\frac{1}{24}\bar{u}_{i-2}+\frac{5}{12}\bar{u}_{i-1}+\frac{5}{6}\bar{u}_{i}-\frac{1}{4}\bar{u}_{i+1}+\frac{1}{24}\bar{u}_{i+2}
4 120u¯i2+920u¯i1+4760u¯i1360u¯i+1+130u¯i+2-\frac{1}{20}\bar{u}_{i-2}+\frac{9}{20}\bar{u}_{i-1}+\frac{47}{60}\bar{u}_{i}-\frac{13}{60}\bar{u}_{i+1}+\frac{1}{30}\bar{u}_{i+2}
5 1120u¯i3112u¯i2+59120u¯i1+4760u¯i31120u¯i+1+115u¯i+21120u¯i+3\frac{1}{120}\bar{u}_{i-3}-\frac{1}{12}\bar{u}_{i-2}+\frac{59}{120}\bar{u}_{i-1}+\frac{47}{60}\bar{u}_{i}-\frac{31}{120}\bar{u}_{i+1}+\frac{1}{15}\bar{u}_{i+2}-\frac{1}{120}\bar{u}_{i+3}
6 1105u¯i319210u¯i2+107210u¯i1+319420u¯i101420u¯i+1+584u¯i+21140u¯i+3\frac{1}{105}\bar{u}_{i-3}-\frac{19}{210}\bar{u}_{i-2}+\frac{107}{210}\bar{u}_{i-1}+\frac{319}{420}\bar{u}_{i}-\frac{101}{420}\bar{u}_{i+1}+\frac{5}{84}\bar{u}_{i+2}-\frac{1}{140}\bar{u}_{i+3}
7 1560u¯i4+17840u¯i397840u¯i2+449840u¯i1+319420u¯i223840u¯i+1+71840u¯i+2156u¯i+3+1560u¯i+4-\frac{1}{560}\bar{u}_{i-4}+\frac{17}{840}\bar{u}_{i-3}-\frac{97}{840}\bar{u}_{i-2}+\frac{449}{840}\bar{u}_{i-1}+\frac{319}{420}\bar{u}_{i}-\frac{223}{840}\bar{u}_{i+1}+\frac{71}{840}\bar{u}_{i+2}-\frac{1}{56}\bar{u}_{i+3}+\frac{1}{560}\bar{u}_{i+4}
Table 1: Conservative polynomial interpolation of u(x)u(x) at the left cell node xi12x_{i-\frac{1}{2}} for degree p=0,,7p=0,\ldots,7. u(xi+12)u(x_{i+\frac{1}{2}}) is interpolated by reversing the order of the stencil.

To resolve the Riemann problem presented by the nodal values ui+12u_{i+\frac{1}{2}}^{-} and ui+12+u_{i+\frac{1}{2}}^{+} interpolated for cells IiI_{i} and Ii+1I_{i+1}, respectively, a numerical flux function is written as f^i±12=(ui+12,ui+12+)\hat{f}_{i\pm\frac{1}{2}}=\mathcal{F}(u_{i+\frac{1}{2}}^{-},u_{i+\frac{1}{2}}^{+}). \mathcal{F} must be a Lipschitz continuous function of both arguments, physically consistent with uu (F(u,u)=uF(u,u)=u), and monotone, which is to say that it is non-decreasing in its first argument and non-increasing in its second argument [29]. We use here

(u,v)=12[f(u)+f(v)maxu(|f(u)|)(vu)],\mathcal{F}(u,v)=\frac{1}{2}[f(u)+f(v)-\max_{u}(|f^{\prime}(u)|)(v-u)], (5)

which satisfies these requirements.

In the case of linear scalar advection with uniform advection velocity aa, given by

f(u)=au,f(u)=au, (6)

the Riemann solver given by (5) is known as the upwind solution.

The semi-discrete scheme (4) is rewritten with numerical fluxes as

du¯indt=p(u¯in)=1h(f^i+12f^i12)\frac{d\bar{u}_{i}^{n}}{dt}=\mathcal{L}_{p}(\bar{u}_{i}^{n})=-\frac{1}{h}\left(\hat{f}_{i+\frac{1}{2}}-\hat{f}_{i-\frac{1}{2}}\right) (7)

and the definition of the order p+1p+1 finite volume dynamics, given by the high-order spatial discretization p\mathcal{L}_{p}, is complete.

2.1 Time discretization

The ordinary differential equation (ODE) in (7) has the general form

dudt=D(t,u).\frac{du}{dt}=D(t,u). (8)

The stability of the numerical solution of (8) obtained from Runge-Kutta integration techniques depends on both DD as well as the particular Runge-Kutta method used. We will present different Runge-Kutta schemes in the form of Butcher tableaus, defined as follows:

Given times tnt^{n} and tn+1=tn+Δtt^{n+1}=t^{n}+\Delta t, the ss-stage Runge-Kutta update for uu is written as:

un+1=un+Δti=1sbiki,u^{n+1}=u^{n}+\Delta t\sum_{i=1}^{s}b_{i}k_{i}, (9)

where

ki=D(tn+ciΔt,un+Δtj=1saijkj),\displaystyle k_{i}=D(t^{n}+c_{i}\Delta t,u^{n}+\Delta t\sum_{j=1}^{s}a_{ij}k_{j}),

and bib_{i}, cic_{i}, and aija_{ij} are given in the form of Table 2.

c1a11a12a1sc2a21a22a2scsas1as2assb1b2bs\begin{array}[]{c|cccc}c_{1}&a_{11}&a_{12}&\cdots&a_{1s}\\ c_{2}&a_{21}&a_{22}&\cdots&a_{2s}\\ \vdots&\vdots&\vdots&\ddots&\vdots\\ c_{s}&a_{s1}&a_{s2}&\cdots&a_{ss}\\ \hline\cr&b_{1}&b_{2}&\cdots&b_{s}\end{array}
Table 2: Generic Butcher tableau for an ss-stage Runge-Kutta integrator.

The stabilty of Runge-Kutta schemes are assessed with the Dalquist test. Here, we assume linear dynamics D(u)=ΩuD(u)=\Omega u, where Ω\Omega\in\mathbb{C} are the eigenvalues of DD in (8) [30, 31]. The values of z=ΩΔtz=\Omega\Delta t that result in |un+1||un||u^{n+1}|\leq|u^{n}| give the linear stability region for each integration scheme.

To assess the stability of the spatial discretization in (7), we analyze the modified wavenumber of p\mathcal{L}_{p} after assuming a harmonic solution u¯in=eikx\bar{u}_{i}^{n}=e^{ikx} [32]. This amplification factor is translated to ΩΔt\Omega\Delta t-space through the Courant-Friedrichs-Lewy (CFL) factor, given by C=aΔthC=a\frac{\Delta t}{h}, where we set C=1C=1, for reference.

The fully-discrete scheme combines (7) with a Runge-Kutta scheme. If the complete range of modified wavenumbers of p\mathcal{L}_{p} falls entirely within the stability region of a Runge-Kutta scheme, then the fully-discrete scheme is considered stable. For example, the forward Euler method, defined in Table 3, is shown in Figure 1. Only the first-order spatial discretization 0\mathcal{L}_{0} is contained within the stability region. Any higher-order p\mathcal{L}_{p} combined with the forward Euler method results in numerical instabilities.

The second- and third-order Strong Stability Preserving Runge-Kutta methods (referred to as SSPRK2 and SSPRK3, respectively) are defined in Tables 4 and 5, where the Strong Stability Preserving property ensures a strict maximum principle is maintained in the numerical solution [1, 2, 33, 34, 35]. The maximum principle of (1) is given by M=max𝐱u0(𝐱)M=\max_{\mathbf{x}}u_{0}(\mathbf{x}) and m=min𝐱u0(𝐱)m=\min_{\mathbf{x}}u_{0}(\mathbf{x}) if u(𝐱,t)[m,M]u(\mathbf{x},t)\in[m,M] for all 𝐱\mathbf{x} and tt [1, 2]. The first-order upwinding scheme 0\mathcal{L}_{0} paired with the forward Euler method is termed maximum-principle-preserving (MPP) as it guarantees u¯in[m,M]\bar{u}_{i}^{n}\in[m,M] throughout the computational domain [1, 2]. Furthermore, any time integration method that is equivalent to a convex combination of forward Euler steps (like SSPRK2 and SSPRK3) will also be MPP for 0\mathcal{L}_{0} [1, 2].

Due to the Godunov order barrier theorem, any p\mathcal{L}_{p} with p>0p>0 will not be MPP when used with any linear numerical ODE method. This issue is addressed later with additional numerical techniques.

Figure 1 shows that SSPRK2 is stable for 0\mathcal{L}_{0}, 1\mathcal{L}_{1}. It is only apparent from closely zooming into Re(ΩΔt)=0\text{Re}(\Omega\Delta t)=0 that the eigenvalue track of 2\mathcal{L}_{2} falls slightly outside the stability region of SSPRK2. On the other hand, SSPRK3 and all higher-order Runge-Kutta methods provided, remain stable for 0,\mathcal{L}_{0}, through 7\mathcal{L}_{7}.

The classic fourth-order Runge-Kutta method (RK4), as defined in Table 6, is not a convex combination of forward Euler steps. Despite this, it has been demonstrated to be quasi-SSP [14]. We will further investigate how RK4 performs when used with MPP and approximately-MPP spatial discretization methods that are outlined in subsequent subsections.

The highest time integration method used in this work is sixth-order Runge-Kutta (RK6), given in Table 7 [36]. While it is not anticipated to maintain a strict maximum principle when used in conjunction with any spatial discretization, it will be useful for conducting tests involving very high-order schemes.

001\begin{array}[]{c|c}0&0\\ \hline\cr&1\end{array}
Table 3: Butcher tableau for explicit, first-order Euler integration.
0001101212\begin{array}[]{c|cc}0&0&0\\ 1&1&0\\ \hline\cr&\frac{1}{2}&\frac{1}{2}\end{array}
Table 4: Butcher tableau for explicit, second-order Strong Stability Preserving Runge-Kutta integration (SSPRK2).
000011001214140161623\begin{array}[]{c|ccc}0&0&0&0\\ 1&1&0&0\\ \frac{1}{2}&\frac{1}{4}&\frac{1}{4}&0\\ \hline\cr&\frac{1}{6}&\frac{1}{6}&\frac{2}{3}\end{array}
Table 5: Butcher tableau for explicit, third-order Strong Stability Preserving Runge-Kutta integration (SSPRK3).
00000121200012012001001016131316\begin{array}[]{c|cccc}0&0&0&0&0\\ \frac{1}{2}&\frac{1}{2}&0&0&0\\ \frac{1}{2}&0&\frac{1}{2}&0&0\\ 1&0&0&1&0\\ \hline\cr&\frac{1}{6}&\frac{1}{3}&\frac{1}{3}&\frac{1}{6}\end{array}
Table 6: Butcher tableau for explicit, fourth-order Runge-Kutta integration (RK4).
000000001100000012381800000238272278270000721143(3217)392217496(721)493(2121)3920007+2114231512139272149821493(21+12121)196049(6+21)24500122+72112232(7215)963(3212)1807(49+921)907(721)1801200164504918049180120\begin{array}[]{c|ccccccc}0&0&0&0&0&0&0&0\\ 1&1&0&0&0&0&0&0\\ \frac{1}{2}&\frac{3}{8}&\frac{1}{8}&0&0&0&0&0\\ \frac{2}{3}&\frac{8}{27}&\frac{2}{27}&\frac{8}{27}&0&0&0&0\\ \frac{7-\sqrt{21}}{14}&\frac{3(3\sqrt{21}-7)}{392}&\frac{\sqrt{21}-7}{49}&\frac{6(7-\sqrt{21})}{49}&\frac{-3(21-\sqrt{21})}{392}&0&0&0\\ \frac{7+\sqrt{21}}{14}&\frac{-231-51\sqrt{21}}{392}&\frac{-7-\sqrt{21}}{49}&\frac{-8\sqrt{21}}{49}&\frac{3(21+121\sqrt{21})}{1960}&\frac{49(6+\sqrt{21})}{245}&0&0\\ 1&\frac{22+7\sqrt{21}}{12}&\frac{2}{3}&\frac{2(7\sqrt{21}-5)}{9}&\frac{-63(3\sqrt{21}-2)}{180}&\frac{-7(49+9\sqrt{21})}{90}&\frac{7(7-\sqrt{21})}{18}&0\\ \hline\cr&\frac{1}{20}&0&\frac{16}{45}&0&\frac{49}{180}&\frac{49}{180}&\frac{1}{20}\end{array}
Table 7: Butcher tableau for explicit, sixth-order Runge-Kutta integration (RK6).
Refer to caption
Figure 1: The edges of the stability regions of forward Euler, SSPRK2, SSPRK3, RK4, and RK6 are shown in the top left panel. The subsequent five panels show each Runge-Kutta method overlayed with the eigenvalue tracks of D=pD=\mathcal{L}_{p} corresponding to finite volume upwinding and a CFL factor C=1C=1. The tracks are shown for pp from 0 to 7, linearly shaded from purple to yellow.

2.2 A priori slope limiting

We introduce the concept of a slope limiter, which is a modification to the basic finite volume method described in (7), enabling higher-order (p>0p>0) solvers to achieve MPP or approximately-MPP behavior. In the presence of discontinuities, higher-order interpolation polynomials can exhibit unphysical oscillations. These oscillations disrupt the local monotonicity of the numerical solution and may cause violations of the maximum principle. Slope limiters aim to mitigate these issues by locally reducing the polynomial degree of the spatial discretization where oscillations are detected, thereby ensuring a smoother gradient at discontinuities. Importantly, slope limiters are designed to maintain the conservative property of the base finite volume scheme.

In this work, we focus on the distinction between a priori and a posteriori slope limiters. A priori slope limiters detect oscillations from only the data at tnt^{n}, which is used to compute the slope-limited update at tn+1t^{n+1}. On the other hand, a posteriori slope limiters involve computing a candidate solution at tn+1t^{n+1} and computing revisions of this tentative solution after the facts.

Zhang & Shu [1, 2] developed an a priori finite volume slope limiter that is MPP at arbitrary order. Their method relies on a parameter θi[0,1]\theta_{i}\in[0,1], which blends high-order and first-order interpolations of the nodal values within each cell, resulting in the following modified polynomial

P~i(x)=θi(Pi(x)u¯i)+u¯i,θi=min(|Miu¯iMiu¯i|,|miu¯imiu¯i|,1).\tilde{P}_{i}(x)=\theta_{i}\left(P_{i}(x)-\bar{u}_{i}\right)+\bar{u}_{i},\quad\theta_{i}=\min\left(\left|\frac{M_{i}-\bar{u}_{i}}{M^{\prime}_{i}-\bar{u}_{i}}\right|,\left|\frac{m_{i}-\bar{u}_{i}}{m^{\prime}_{i}-\bar{u}_{i}}\right|,1\right). (10)

Here, Mi=max(u¯i1,u¯i,u¯i+1)M_{i}=\max(\bar{u}_{i-1},\bar{u}_{i},\bar{u}_{i+1}) and mi=min(u¯i1,u¯i,u¯i+1)m_{i}=\min(\bar{u}_{i-1},\bar{u}_{i},\bar{u}_{i+1}) are the maximum and minimum of each cell and its adjacent neighbors. M=maxxSiPi(x)M^{\prime}=\max_{x\in S_{i}}P_{i}(x) and m=minxSiPi(x)m^{\prime}=\min_{x\in S_{i}}P_{i}(x) denote the maximum and minimum of Pi(x)P_{i}(x) evaluated on the set of the LL-point Gauss-Lobatto quadrature points Si={xi12=xi1,xi2,,xiL1,xiL=xi+12}S_{i}=\{x_{i-\frac{1}{2}}=x_{i}^{1},x_{i}^{2},\ldots,x_{i}^{L-1},x_{i}^{L}=x_{i+\frac{1}{2}}\}.

It is evident from (10) that the high-order nodal values are limited when θi<1\theta_{i}<1. This happens when the difference between the unlimited polynomial interpolation of u(t,x)u(t,x) over IiI_{i} and the first-order interpolation u¯i\bar{u}_{i} is greater than the difference between the local maximum principle, represented by MiM_{i} and mim_{i}, and u¯i\bar{u}_{i} — precisely what occurs in the presence of a spurious oscillation.

The Gauss-Lobatto quadrature rule for computing an integral is exact for polynomials of degree 2L32L-3 or less, so LL is chosen to be the smallest integer such that 2L3p2L-3\geq p. Since p>1p>1 requires nodes other than u(xi±12)u(x_{i\pm\frac{1}{2}}), we need additional stencils to the ones provided in Table 1 in order to compute θi\theta_{i}. We will address this later with a slight modification of the original method.

Zhang & Shu’s a priori slope-limited spatial discretization is guaranteed to satisfy the maximum principle if it is solved with an SSP Runge-Kutta method and also if it satisfies a reduced CFL condition [1, 2]. Let wαw_{\alpha} be the weights of the LL-point Gauss-Lobatto quadrature rule such that α=1Lwα=1\sum_{\alpha=1}^{L}w_{\alpha}=1. We write this reduced CFL condition as

C<CMPP=min[w0,,wL].C<C_{\text{MPP}}=\min[w_{0},\ldots,w_{L}]. (11)

Values of CMPPC_{\text{MPP}} are provided in Table 8.

pp CMPPC_{\text{MPP}} Quadrature points on [12,12][-\frac{1}{2},\frac{1}{2}]
0, 1 12\frac{1}{2} {±12}\{\pm\frac{1}{2}\}
2, 3 16\frac{1}{6} {0,±12}\{0,\pm\frac{1}{2}\}
4, 5 112\frac{1}{12} {±120,±12}\{\pm\frac{1}{\sqrt{20}},\pm\frac{1}{2}\}
6, 7 120\frac{1}{20} {0,±2114,±12}\{0,\pm\frac{\sqrt{21}}{14},\pm\frac{1}{2}\}
Table 8: The maximum CFL factor CMPPC_{\text{MPP}} and the corresponding LL Gauss-Lobatto quadrature points used in the Zhang & Shu slope limiter for polynomial degree p=0,,7p=0,\ldots,7, where LL is chosen as the smallest value such that 2L3p2L-3\geq p.

The reduced CC (resulting in a reduced Δt\Delta t) and the increase in the required number of interpolated values make the a priori limiting scheme significantly more costly at higher order. To mitigate this issue, we propose two modifications.

  • 1.

    First, we suggest simplifying the set of points used to compute θi\theta_{i} for p>3p>3. Instead of computing MiM^{\prime}_{i} and mim^{\prime}_{i} by finding the minimum and maximum of Pi(x)P_{i}(x) evaluated at the L>4L>4 Gauss-Lobatto quadrature points SiS_{i}, we use only three points {xi12,xi,xi+12}\{x_{i-\frac{1}{2}},x_{i},x_{i+\frac{1}{2}}\}, where xix_{i} is the centroid of the cell. This reduced set of points is referred to as the centroid set.

  • 2.

    The second modification involves adopting an adaptive time-step size. The reduced CFL condition (11) requires significantly smaller Δt\Delta t at higher order. However, in practice, the small time-step size is only necessary for the initial steps when the numerical solution features sharp continuities. As the numerical solution becomes progressively smoother, larger time-step sizes can be used while maintaining a strict maximum principle. We follow the adaptive time-stepping technique proposed by [21], where u¯n+1\bar{u}^{n+1} is recomputed if it violates the maximum principle with 12Δt\frac{1}{2}\Delta t. This process is repeated until the solution is MPP, or once Δt\Delta t satisfies (11), at which point the step will be MPP, regardless. In this modification, we initially attempt C=0.8C=0.8 at each step.

2.3 A posteriori slope limiting

Another approach to the problem of slope limiting is the a posteriori limiter, first implemented by Clain et al as Multi-dimensional Optimal Order Detection (MOOD) [3]. Here, a candidate solution at tn+1t^{n+1} is computed and screened for troubled cells. These cells are identified based on violations of the maximum principle or other predefined criteria. Subsequently, the solutions at troubled cells are locally recomputed using a lower-order scheme, generating a new candidate solution. This new solution is then reevaluated for troubled cells, and the process continues until either no troubled cells remain or there are no lower-order schemes with which to revise them.

An alternative approach, proposed by [18] for the Spectral Difference (SD) finite element framework, jumps straight to a robust, second-order fallback scheme to recompute troubled cells. Since there is only one revision step in this implementation, it skips the cumbersome recomputing of solutions with one less polynomial degree at a time that is required by MOOD. The fallback scheme used in [18] is the well-established second-order MUSCL-Hancock reference scheme, which is strictly MPP. The methodology of [18] functions like MOOD with only two options for the so-called “cascade of schemes”: p>1p>1 and p=1p=1.

Regardless of the implementation details of the a posteriori limiter, the underlying concept is akin to that of a priori slope limiting: when an interpolation polynomial exhibits unphysical oscillations, resulting in over or undershoots beyond a permissible range, the local degree of the interpolation polynomial should be reduced in such problematic regions.

In this work, we take inspiration from [18] and use MUSCL-type schemes to revise our high-order candidate solutions at each step if needed.

Let u¯i\bar{u}^{*}_{i} denote the candidate solution of cell ii for time tn+1t^{n+1}. A cell is flagged as troubled if it does not satisfy the condition for numerical admissibility detection (NAD):

miϵ(Mm)u¯iMi+ϵ(Mm),m_{i}-\epsilon(M-m)\leq\bar{u}^{*}_{i}\leq M_{i}+\epsilon(M-m), (12)

where MiM_{i} and mim_{i} are defined the local maximum principle from the previous subsection and ϵ\epsilon is a small tolerance, chosen to be 1×1051\times 10^{-5} [18]. ϵ\epsilon is useful in regions where the numerical solution is uniform, since the local maximum principle MiM_{i} and mim_{i} will otherwise be sensitive to the slight oscillations, flagging more cells as troubled than needed.

2.3.1 MUSCL Fallback scheme

The nodal interpolations given by a second-order MUSCL scheme can be written

u~i12+=u¯i12S~i,u~i+12=u¯i+12S~i,\tilde{u}_{i-\frac{1}{2}}^{+}=\bar{u}_{i}-\frac{1}{2}\tilde{S}_{i},\quad\tilde{u}_{i+\frac{1}{2}}^{-}=\bar{u}_{i}+\frac{1}{2}\tilde{S}_{i}, (13)

where S~i\tilde{S}_{i} is a modification of the local slope multiplied by hh:

S~i=lim(u¯i1,u¯i,u¯i+1)u¯i+1u¯i12.\tilde{S}_{i}=\text{lim}(\bar{u}_{i-1},\bar{u}_{i},\bar{u}_{i+1})\frac{\bar{u}_{i+1}-\bar{u}_{i-1}}{2}. (14)

The slope limiter satisfies

0lim(u¯i1,u¯i,u¯i+1)1,0\leq\text{lim}(\bar{u}_{i-1},\bar{u}_{i},\bar{u}_{i+1})\leq 1, (15)

where a value of 1 gives the degree p=1p=1 nodal interpolation and 0 gives p=0p=0 (see Table 1), so it functions exactly like θ\theta, the high-order a priori slope limiter.

Let kk be the index of a troubled cell. We compute the fluxes given by the fallback scheme

f^k12M=(u~k12,u~k12+)f^k+12M=(u~k+12,u~k+12+)\begin{split}\hat{f}_{k-\frac{1}{2}}^{M}=\mathcal{F}(\tilde{u}_{k-\frac{1}{2}}^{-},\tilde{u}_{k-\frac{1}{2}}^{+})\\ \hat{f}_{k+\frac{1}{2}}^{M}=\mathcal{F}(\tilde{u}_{k+\frac{1}{2}}^{-},\tilde{u}_{k+\frac{1}{2}}^{+})\end{split} (16)

and reassign high-order fluxes from (7) with f^k±12f^k±12M\hat{f}_{k\pm\frac{1}{2}}\leftarrow\hat{f}^{M}_{k\pm\frac{1}{2}}.

The fallback scheme is only second-order when coupled with a second-order or higher Runge-Kutta method. In this setup, we search for troubled cells and compute their revised fluxes at each integration stage. This requires computing a candidate solution for each stage, which is achieved by performing an Euler step with a time-step size given for each of the ss stages as c1,,csc_{1},\ldots,c_{s} in chosen Runge-Kutta method’s Butcher Tableau.

The left and right differences of cell ii are defined:

SiL=u¯iu¯i1,SiR=u¯i+1u¯i.S_{i}^{L}=\bar{u}_{i}-\bar{u}_{i-1},\quad S_{i}^{R}=\bar{u}_{i+1}-\bar{u}_{i}. (17)

Then, the minmod-limited difference is given by

S~i=sgn(Si)min(|SiL|,|SiR|).\tilde{S}_{i}=\text{sgn}(S_{i})\cdot\min(|S_{i}^{L}|,|S_{i}^{R}|). (18)

Note that the MUSCL and MUSCL-Hancock schemes are strictly MPP when using this limiter.

The central differences of cell ii is defined:

SiC=12(SiL+SiR).S_{i}^{C}=\frac{1}{2}(S_{i}^{L}+S_{i}^{R}). (19)

Then, the moncen-limited difference is given by

S~i=sgn(Si)min(|2SiL|,|SiC|,|2SiR|).\tilde{S}_{i}=\text{sgn}(S_{i})\cdot\min(|2S_{i}^{L}|,|S_{i}^{C}|,|2S_{i}^{R}|). (20)

The moncen limiter is strictly MPP like minmod with the added advantage of being significantly less diffusive.

2.3.2 Blended flux correction

Recent work by Vilar & Abgrall [16] found that blending the high-order and fallback fluxes of the cells neighboring one that is troubled improves the preservation of the maximum principle. Instead of assigning a high-order or fallback flux at each cell interface, we assign a convex combination of the two:

f^i12max(ϕi1,ϕi)(f^i12Mf^i12)+f^i12f^i+12max(ϕi,ϕi+1)(f^i+12Mf^i+12)+f^i+12,\begin{split}\hat{f}_{i-\frac{1}{2}}\leftarrow\max(\phi_{i-1},\phi_{i})(\hat{f}^{M}_{i-\frac{1}{2}}-\hat{f}_{i-\frac{1}{2}})+\hat{f}_{i-\frac{1}{2}}\\ \hat{f}_{i+\frac{1}{2}}\leftarrow\max(\phi_{i},\phi_{i+1})(\hat{f}^{M}_{i+\frac{1}{2}}-\hat{f}_{i+\frac{1}{2}})+\hat{f}_{i+\frac{1}{2}},\end{split} (21)

where ϕi[0,1]\phi_{i}\in[0,1] is computed at each cell with the so-called naive procedure outline by [16]. The procedure is the following. If cell ii is troubled, it is given ϕi=1\phi_{i}=1. If it is not troubled and immediately adjacent to a troubled cell, it is given ϕi=34\phi_{i}=\frac{3}{4}. If a cell is not troubled and located two cell positions away from the nearest troubled cell, it is given ϕi=14\phi_{i}=\frac{1}{4}. Finally, if a cell is not troubled and three or more cell positions away from the nearest troubled cell, it is given ϕi=0\phi_{i}=0. An example is shown in Figure 2.

Note that the non-blended flux correction is recovered by setting ϕi=1\phi_{i}=1 when cell ii is troubled and ϕi=0\phi_{i}=0 otherwise.

Refer to caption
Figure 2: The value of ϕ\phi used for convex blending of corrected fluxes, shown across a region comprising seven cells, with one troubled cell highlighted in red.

2.4 Smooth extrema detection

The well-known drawback of a priori and a posteriori slope limiters alike is that they can reduce the accuracy of the numerical solution in smooth, well-behaved regions where they are not needed. To combat this issue, we implement smooth extrema detection (SED), which modifies the slope limiter such that it deactivates at cells which are flagged as smooth extrema.

The derivative of the solution is evaluated using a central finite differences approximation:

u¯i=u¯i+1u¯i1.\bar{u}^{\prime}_{i}=\bar{u}_{i+1}-\bar{u}_{i-1}. (22)

Central, left, and right differences are taken from these first differences, giving

SiC=u¯i+1u¯i12,SiL=u¯iu¯i1,SiR=u¯i+1u¯i.S_{i}^{C}=\frac{\bar{u}^{\prime}_{i+1}-\bar{u}^{\prime}_{i-1}}{2},\quad S_{i}^{L}=\bar{u}^{\prime}_{i}-\bar{u}^{\prime}_{i-1},\quad S_{i}^{R}=\bar{u}^{\prime}_{i+1}-\bar{u}^{\prime}_{i}. (23)

With these second derivative terms, we define the left and right smoothness indicators

αiL,R={min(1,min(2SiL,R,0)1SiC)SiC<01SiC=0min(1,max(2SiL,R,0)1SiC)SiC>0.\alpha^{L,R}_{i}=\begin{cases}\min\left(1,\min\left(2S^{L,R}_{i},0\right)\frac{1}{S^{C}_{i}}\right)&S^{C}_{i}<0\\ 1&S^{C}_{i}=0\\ \min\left(1,\max\left(2S^{L,R}_{i},0\right)\frac{1}{S^{C}_{i}}\right)&S^{C}_{i}>0.\end{cases} (24)

The overall smoothness indicator of cell is the minimum of the two:

αi=min(αiL,αiR).\alpha_{i}=\min(\alpha^{L}_{i},\alpha^{R}_{i}). (25)

Then, we flag cell ii as a smooth extremum if and only if

min(αi1,αi,αi+1)=1.\min(\alpha_{i-1},\alpha_{i},\alpha_{i+1})=1. (26)

This implementation can create small violations of the maximum principle if it permits undershoots or overshoots in smooth regions. In such cases, we ignore the suggestion of the SED algorithm and use the limited slope. Since we want to avoid the excessive sensitivity of our slope limiting in regions where the solution is uniform, we introduce an additional small tolerance ϵm\epsilon_{m}, chosen to be 1×10101\times 10^{-10}. The SED procedures for a priori and a posteriori slope limiting are given in Algorithms 1 and 2, respectively.

Algorithm 1 Smooth extrema detection for the a priori slope limiter.
Compute the a priori slope limiting terms MiM^{\prime}_{i}, mim^{\prime}_{i}, θi\theta_{i} at all cells.
Compute the smoothness indicator αi\alpha_{i} at all cells.
if Mi>M+ϵm or mi<mϵmM^{\prime}_{i}>M+\epsilon_{m}\text{ or }m^{\prime}_{i}<m-\epsilon_{m} then
     Do not modify θi\theta_{i}.
else
     if min(αi1,αi,αi+1)=1\min(\alpha_{i-1},\alpha_{i},\alpha_{i+1})=1 then
         θi1\theta_{i}\leftarrow 1
     else
         Do not modify θi\theta_{i}.
     end if
end if
Algorithm 2 Smooth extrema detection for the a posteriori slope limiter.
Compute the candidate solution u¯i\bar{u}_{i}^{*} at all cells.
Compute the smoothness indicator αi\alpha_{i} at all cells from this candidate solution.
Flag all cells as troubled or not troubled based on NAD.
if u¯i>M+ϵm or u¯i<mϵm\bar{u}_{i}^{*}>M+\epsilon_{m}\text{ or }\bar{u}_{i}^{*}<m-\epsilon_{m} then
     Flag cell ii as troubled.
else
     if min(αi1,αi,αi+1)=1\min(\alpha_{i-1},\alpha_{i},\alpha_{i+1})=1 then
         Flag cell ii as not troubled.
     else
         Do not modify not modify the flag of cell ii.
     end if
end if

2.5 Modifications of the slope-limited, finite volume schemes for two dimensions

The two-dimensional (d=2d=2) form of (1) writes

ut+f(u)x+g(u)y=0,\frac{\partial u}{\partial t}+\frac{\partial f(u)}{\partial x}+\frac{\partial g(u)}{\partial y}=0, (27)

where ff and gg are one-dimensional flux functions in the xx- and yy-directions, respectively.

For the finite volume formulation, we partition the domain into intervals Ii,j=[xi12,xi+12][yj12,yj+12]I_{i,j}=[x_{i-\frac{1}{2}},x_{i+\frac{1}{2}}]\cup[y_{j-\frac{1}{2}},y_{j+\frac{1}{2}}]. Then, the finite volume cell average is defined as

u¯¯i,jn=1h2yj12yj+12xi12xi+12u(ξ,η,tn)𝑑ξ𝑑η,\overline{\overline{u}}_{i,j}^{n}=\frac{1}{h^{2}}\int_{y_{j-\frac{1}{2}}}^{y_{j+\frac{1}{2}}}\int_{x_{i-\frac{1}{2}}}^{x_{i+\frac{1}{2}}}u(\xi,\eta,t^{n})d\xi d\eta, (28)

where the interval side lengths, chosen to be equal and uniform in this work, are given by hh.

The semi-discrete scheme in two-dimensions is written as

du¯¯i,jndt=1h2yj12yj+12f^[ui+12,j(η),ui+12,j+(η)]f^[ui12,j(η),ui12,j+(η)]dη1h2xi12xi+12g^[ui,j+12(ξ),ui,j+12+(ξ)]g^[ui,j12(ξ),ui,j12+(ξ)]dξ,\begin{split}\frac{d\overline{{\overline{{u}}}}_{i,j}^{n}}{dt}=-\frac{1}{h^{2}}\int_{y_{j-\frac{1}{2}}}^{y_{j+\frac{1}{2}}}\hat{f}[u_{i+\frac{1}{2},j}^{-}(\eta),u_{i+\frac{1}{2},j}^{+}(\eta)]-\hat{f}[u_{i-\frac{1}{2},j}^{-}(\eta),u_{i-\frac{1}{2},j}^{+}(\eta)]d\eta\\ -\frac{1}{h^{2}}\int_{x_{i-\frac{1}{2}}}^{x_{i+\frac{1}{2}}}\hat{g}[u_{i,j+\frac{1}{2}}^{-}(\xi),u_{i,j+\frac{1}{2}}^{+}(\xi)]-\hat{g}[u_{i,j-\frac{1}{2}}^{-}(\xi),u_{i,j-\frac{1}{2}}^{+}(\xi)]d\xi,\end{split} (29)

where f^(u,v)\hat{f}(u,v) and g^(u,v)\hat{g}(u,v) are the numerical fluxes. The traces of u(x,y,tn)u(x,y,t^{n}) along each cell face are given by the cell-wise conservative polynomial reconstruction Pi,j(x,y)P_{i,j}(x,y). Namely,

ui12,j+(y)=Pi,j(xi12,y)ui+12,j(y)=Pi,j(xi+12,y)ui,j12+(x)=Pi,j(x,yi12)ui,j+12(x)=Pi,j(x,yi+12).\begin{split}u_{i-\frac{1}{2},j}^{+}(y)=P_{i,j}(x_{i-\frac{1}{2}},y)\\ u_{i+\frac{1}{2},j}^{-}(y)=P_{i,j}(x_{i+\frac{1}{2}},y)\\ u_{i,j-\frac{1}{2}}^{+}(x)=P_{i,j}(x,y_{i-\frac{1}{2}})\\ u_{i,j+\frac{1}{2}}^{-}(x)=P_{i,j}(x,y_{i+\frac{1}{2}}).\\ \end{split} (30)

2.5.1 Gauss-Legendre quadrature

Each numerical flux in (29) appears as an integral along its respective cell face. We present two options with which to evaluate the integral, the first being the Gauss-Legendre quadrature rule, summarized in Table 9.

Along each cell face, nodal values of u(x,y)u(x,y) corresponding to the positions of the Gauss-Legendre quadrature points are interpolated by the conservative polynomial Pi,j(x,y)P_{i,j}(x,y). This interpolation process is equivalent to a stencil operation; While the stencils in Table 1 are presented for the one-dimensional finite volume method, they can still be applied in two-dimensions: first to reconstruct line averages from the two-dimensional cell volume averages and then to interpolate nodal values from those line averages.

Stencil operations corresponding to the reconstruction at the Gauss-Legendre quadrature points are not provided in Table 1, but can be derived via the same procedure.

The point-wise numerical flux is then computed at each cell face, with each point requiring its own Riemann solution (see Figures 3(a) and 3(b)). For example, suppose we interpolate nodal values of u(x,y)u(x,y) along the y=yj+12y=y_{j+\frac{1}{2}} face of cell i,ji,j corresponding to the positions of the KK-point Gauss-Legendre quadrature S^i={x^iβ:β=1,,K}\hat{S}_{i}=\{\hat{x}_{i}^{\beta}:\beta=1,\ldots,K\}. Then we must compute {g^(ui,j+12β,,ui,j+12β,+):β=1,,K}\{\hat{g}(u_{i,j+\frac{1}{2}}^{\beta,-},u_{i,j+\frac{1}{2}}^{\beta,+}):\beta=1,\ldots,K\} where ui,j+12β,=Pi,j(x^iβ,yj+12)u_{i,j+\frac{1}{2}}^{\beta,-}=P_{i,j}(\hat{x}_{i}^{\beta},y_{j+\frac{1}{2}}) and ui,j+12β,+=Pi,j+1(x^iβ,yj+12)u_{i,j+\frac{1}{2}}^{\beta,+}=P_{i,j+1}(\hat{x}_{i}^{\beta},y_{j+\frac{1}{2}}). Finally, the integral along the cell face is given by

xi12xi+12g^[ui,j+12(ξ),ui,j+12+(ξ)]𝑑ξ=β=1Kw^βg^[ui,j+12β,,ui,j+12β,+]\int_{x_{i-\frac{1}{2}}}^{x_{i+\frac{1}{2}}}\hat{g}[u_{i,j+\frac{1}{2}}^{-}(\xi),u_{i,j+\frac{1}{2}}^{+}(\xi)]d\xi=\sum_{\beta=1}^{K}\hat{w}_{\beta}\cdot\hat{g}[u_{i,j+\frac{1}{2}}^{\beta,-},u_{i,j+\frac{1}{2}}^{\beta,+}] (31)

, where wβ^\hat{w_{\beta}} are the KK-point Gauss-Legendre quadrature points such that β=1Kw^β=1\sum_{\beta=1}^{K}\hat{w}_{\beta}=1.

The KK-point Gauss-Legendre quadrature rule is exact for polynomials of degree 2K12K-1 or less, so KK is chosen as the smallest integer such that 2K1p2K-1\geq p.

2.5.2 Transverse flux reconstruction

Alternatively, the integral of the flux along cell faces can be computed using only one node from adjacent cell faces. In this method, we interpolate the nodal values of u(x,y)u(x,y) at the midpoint of each cell face from the reconstructed conservative polynomial Pi,j(x,y)P_{i,j}(x,y) (see Figure 3(c)). Stencil operations corresponding to this midpoint interpolation are given in Table 10. For instance, let’s take the nodal value u(x^i,yj+12)u(\hat{x}_{i},y_{j+\frac{1}{2}}), which is defined at the midpoint of the yj+12y_{j+\frac{1}{2}} face. The single point-wise flux at each yj+12y_{j+\frac{1}{2}} face is then given by the Riemann problem g^[Pi,j(x^i,yj+12),Pi,j+1(x^i,yj+12)]\hat{g}[P_{i,j}(\hat{x}_{i},y_{j+\frac{1}{2}}),P_{i,j+1}(\hat{x}_{i},y_{j+\frac{1}{2}})]. The face integral of this numerical flux can be evaluated by constructing a Lagrange interpolation polynomial at the neighboring point-wise fluxes, all uniformly spaced by a distance of hh. Since the integral of the flux along the cell face depends on the values of cell faces located transverse to itself, this method is referred to as transverse flux reconstruction. Stencil operations corresponding to this integral are given in Table 11. The stencil length is always chosen such that it is exact for polynomials of degree pp.

pp Quadrature points on [0,12][0,\frac{1}{2}] Quadrature weights
0, 1 {0}\{0\} {1}\{1\}
2, 3 {123}\{\frac{1}{2\sqrt{3}}\} {12}\{\frac{1}{2}\}
4, 5 {0,325}\{0,\frac{\sqrt{3}}{2\sqrt{5}}\} {49,518}\{\frac{4}{9},\frac{5}{18}\}
6, 7 {372765,37+2765}\left\{\sqrt{\frac{3}{7}-\frac{2}{7}\sqrt{\frac{6}{5}}},\sqrt{\frac{3}{7}+\frac{2}{7}\sqrt{\frac{6}{5}}}\right\} {18+3036,183036}\{\frac{18+\sqrt{30}}{36},\frac{18-\sqrt{30}}{36}\}
Table 9: Gauss-Legendre quadrature on [12,12][-\frac{1}{2},\frac{1}{2}] at varying polynomial degrees pp. Only the quadrature points and weights on [0,12][0,\frac{1}{2}] are reported due to their symmetry about 0.
pp ui=Pi(x¯i)=u(x¯i)+𝒪(hp+1)u_{i}=P_{i}(\bar{x}_{i})=u(\bar{x}_{i})+\mathcal{O}(h^{p+1})
0, 1 u¯i\bar{u}_{i}
2, 3 124u¯i1+1312u¯i124u¯i+1-\frac{1}{24}\bar{u}_{i-1}+\frac{13}{12}\bar{u}_{i}-\frac{1}{24}\bar{u}_{i+1}
4, 5 3640u¯i229480u¯i1+1067960u¯i29480u¯i+1+3640u¯i+2\frac{3}{640}\bar{u}_{i-2}-\frac{29}{480}\bar{u}_{i-1}+\frac{1067}{960}\bar{u}_{i}-\frac{29}{480}\bar{u}_{i+1}+\frac{3}{640}\bar{u}_{i+2}
6, 7 57168u¯i3+15917920u¯i27621107520u¯i1+3025126880u¯i7621107520u¯i+1+15917920u¯i+257168u¯i+3-\frac{5}{7168}\bar{u}_{i-3}+\frac{159}{17920}\bar{u}_{i-2}-\frac{7621}{107520}\bar{u}_{i-1}+\frac{30251}{26880}\bar{u}_{i}-\frac{7621}{107520}\bar{u}_{i+1}+\frac{159}{17920}\bar{u}_{i+2}-\frac{5}{7168}\bar{u}_{i+3}
Table 10: Conservative polynomial interpolation of u(x)u(x) at a cell midpoint x¯i\bar{x}_{i} for degree p=0,,7p=0,\ldots,7.
pp xi12xi+12u(ξ)𝑑ξ=xi12xi+12Qi(ξ)𝑑ξ+𝒪(hp+1)\int_{x_{i-\frac{1}{2}}}^{x_{i+\frac{1}{2}}}u(\xi)d\xi=\int_{x_{i-\frac{1}{2}}}^{x_{i+\frac{1}{2}}}Q_{i}(\xi)d\xi+\mathcal{O}(h^{p+1})
0, 1 uiu_{i}
2, 3 124ui1+1112ui+124ui+1\frac{1}{24}u_{i-1}+\frac{11}{12}u_{i}+\frac{1}{24}u_{i+1}
4, 5 175760ui2+771440ui1+863960ui+771440ui+1175760ui+2-\frac{17}{5760}u_{i-2}+\frac{77}{1440}u_{i-1}+\frac{863}{960}u_{i}+\frac{77}{1440}u_{i+1}-\frac{17}{5760}u_{i+2}
6, 7 367967680ui328153760ui2+6361107520ui1+215641241920ui+6361107520ui+128153760ui+2+367967680ui+3\frac{367}{967680}u_{i-3}-\frac{281}{53760}u_{i-2}+\frac{6361}{107520}u_{i-1}+\frac{215641}{241920}u_{i}+\frac{6361}{107520}u_{i+1}-\frac{281}{53760}u_{i+2}+\frac{367}{967680}u_{i+3}
Table 11: Polynomial interpolation of the integral of u(x)u(x) along a cell, as used in the tranverse flux reconstruction method. In this method, the polynomial Qi(x)Q_{i}(x) is reconstructed from a neighborhood of u(x)u(x) evaluated at cell midpoints. Stencils are given for polynomial degree p=0,,7p=0,\ldots,7.

2.5.3 A priori slope limiting in two dimensions

Zhang & Shu’s a priori slope limited polynomial reconstruct ([1, 2]) in two-dimensions writes

P~i,j(x)=θi,j(Pi,j(x)u¯¯i,j)+u¯¯i,j,θi,j=min(|Mi,ju¯¯i,jMi,ju¯¯i,j|,|mi,ju¯¯i,jmi,ju¯¯i,j|,1).\tilde{P}_{i,j}(x)=\theta_{i,j}\left(P_{i,j}(x)-\overline{\overline{u}}_{i,j}\right)+\overline{\overline{u}}_{i,j},\quad\theta_{i,j}=\min\left(\left|\frac{M_{i,j}-\overline{\overline{u}}_{i,j}}{M^{\prime}_{i,j}-\overline{\overline{u}}_{i,j}}\right|,\left|\frac{m_{i,j}-\overline{\overline{u}}_{i,j}}{m^{\prime}_{i,j}-\overline{\overline{u}}_{i,j}}\right|,1\right). (32)

Here, Mi,jM_{i,j} and mi,jm_{i,j} represent the maximum and minimum, respectively, taken over the neighboring cells {u¯¯i,j,u¯¯i±1,j,u¯¯i,j±1}\{\overline{\overline{u}}_{i,j},\overline{\overline{u}}_{i\pm 1,j},\overline{\overline{u}}_{i,j\pm 1}\}. As in one dimension, Mi,jM^{\prime}_{i,j} and mi,jm^{\prime}_{i,j} are the maximum and minimum of the nodal interpolations of u(x,y)u(x,y) corresponding to the LL Gauss-Lobatto quadrature points, but there is added complexity in two-dimensions. When the KK-point Gauss-Legendre quadrature is used to evaluate the integral of the cell face fluxes, the LL-points corresponding to the Gauss-Lobatto quadrature are reconstructed along each of the KK traces, in both the xx- and yy- directions (see, for example, Figure 3(a)).

To avoid the significant cost associated to this complex procedure, we introduce again the centroid set but in two dimensions. Here, we compute Mi,jM^{\prime}_{i,j} and mi,jm^{\prime}_{i,j} using the nodes along cell faces used for flux computations as well as the cell centroid, without resorting to the Gauss-Lobatto quadrature points in the cell interior. Examples of this approach are illustrated in Figures 3(b) and 3(c) for Gauss-Legendre and transverse flux reconstructions, respectively.

Refer to caption
(a) Gauss-Legendre set for computing fluxes (in red) and Gauss-Lobatto set for computing the limiter θ\theta (in blue) used in the original aPrioriMPP scheme of [2].
Refer to caption
(b) Gauss-Legendre set for computing fluxes (in red) and centroid set for computing the limiter θ\theta (in blue), as used in our modified aPrioriMPP scheme.
Refer to caption
(c) Transverse set for computing fluxes (in red) and centroid set for computing θ\theta (in blue), as used in the aPrioriT scheme.
Figure 3: Cell nodal values used to compute cell fluxes (red) and the a priori slope limiter θ\theta (blue) for polynomial degree p=5p=5.

2.5.4 A posteriori slope limiting in two dimensions

The second-order, slope-limited MUSCL interpolations in two dimensions are written as

u~i12,j+=u¯¯i,j12S~i,jx,u~i+12,j=u¯¯i,j+12S~i,jxu~i,j12+=u¯¯i,j12S~i,jy,u~i,j+12=u¯¯i,j+12S~i,jy,\begin{split}\tilde{u}_{i-\frac{1}{2},j}^{+}=\overline{\overline{u}}_{i,j}-\frac{1}{2}\tilde{S}_{i,j}^{x},\quad\tilde{u}_{i+\frac{1}{2},j}^{-}=\overline{\overline{u}}_{i,j}+\frac{1}{2}\tilde{S}_{i,j}^{x}\\ \tilde{u}_{i,j-\frac{1}{2}}^{+}=\overline{\overline{u}}_{i,j}-\frac{1}{2}\tilde{S}_{i,j}^{y},\quad\tilde{u}_{i,j+\frac{1}{2}}^{-}=\overline{\overline{u}}_{i,j}+\frac{1}{2}\tilde{S}_{i,j}^{y},\\ \end{split} (33)

where the limited slopes are defined in both the xx and yy directions:

S~i,jx=lim(u¯¯i1,j,u¯¯i,j,u¯¯i+1,j)u¯¯i+1,ju¯¯i1,j2S~i,jy=lim(u¯¯i,j1,u¯¯i,j,u¯¯i,j+1)u¯¯i,j+1u¯¯i,j12.\begin{split}\tilde{S}_{i,j}^{x}=\text{lim}(\overline{\overline{u}}_{i-1,j},\overline{\overline{u}}_{i,j},\overline{\overline{u}}_{i+1,j})\frac{\overline{\overline{u}}_{i+1,j}-\overline{\overline{u}}_{i-1,j}}{2}\\ \tilde{S}_{i,j}^{y}=\text{lim}(\overline{\overline{u}}_{i,j-1},\overline{\overline{u}}_{i,j},\overline{\overline{u}}_{i,j+1})\frac{\overline{\overline{u}}_{i,j+1}-\overline{\overline{u}}_{i,j-1}}{2}.\\ \end{split} (34)

The minmod and moncen slope limiters act independently in both directions. However, neither slope limiter used in this way results in a strictly MPP MUSCL scheme. Therefore, we introduce a third slope limiter: the positivity-preserving (PP) slope limiter, which was first presented by [37] as a means to allow MUSCl-Hancock to be positivity-preserving in two-dimensions.

The PP slope limiter neighbor differences are defined as

Vmin=min[u¯¯i1,j+1u¯¯i,ju¯¯i,j+1u¯¯i,ju¯¯i+1,j+1u¯¯i,ju¯¯i1,ju¯¯i,jϵppu¯¯i+1,ju¯¯i,ju¯¯i1,j1u¯¯i,ju¯¯i,j1u¯¯i,ju¯¯i+1,j1u¯¯i,j]V_{min}=\min\begin{bmatrix}\overline{\overline{u}}_{i-1,j+1}-\overline{\overline{u}}_{i,j}&\overline{\overline{u}}_{i,j+1}-\overline{\overline{u}}_{i,j}&\overline{\overline{u}}_{i+1,j+1}-\overline{\overline{u}}_{i,j}\\ \overline{\overline{u}}_{i-1,j}-\overline{\overline{u}}_{i,j}&-\epsilon_{pp}&\overline{\overline{u}}_{i+1,j}-\overline{\overline{u}}_{i,j}\\ \overline{\overline{u}}_{i-1,j-1}-\overline{\overline{u}}_{i,j}&\overline{\overline{u}}_{i,j-1}-\overline{\overline{u}}_{i,j}&\overline{\overline{u}}_{i+1,j-1}-\overline{\overline{u}}_{i,j}\\ \end{bmatrix} (35)

and

Vmax=max[u¯¯i1,j+1u¯¯i,ju¯¯i,j+1u¯¯i,ju¯¯i+1,j+1u¯¯i,ju¯¯i1,ju¯¯i,jϵppu¯¯i+1,ju¯¯i,ju¯¯i1,j1u¯¯i,ju¯¯i,j1u¯¯i,ju¯¯i+1,j1u¯¯i,j],V_{max}=\max\begin{bmatrix}\overline{\overline{u}}_{i-1,j+1}-\overline{\overline{u}}_{i,j}&\overline{\overline{u}}_{i,j+1}-\overline{\overline{u}}_{i,j}&\overline{\overline{u}}_{i+1,j+1}-\overline{\overline{u}}_{i,j}\\ \overline{\overline{u}}_{i-1,j}-\overline{\overline{u}}_{i,j}&\epsilon_{pp}&\overline{\overline{u}}_{i+1,j}-\overline{\overline{u}}_{i,j}\\ \overline{\overline{u}}_{i-1,j-1}-\overline{\overline{u}}_{i,j}&\overline{\overline{u}}_{i,j-1}-\overline{\overline{u}}_{i,j}&\overline{\overline{u}}_{i+1,j-1}-\overline{\overline{u}}_{i,j}\\ \end{bmatrix}, (36)

where ϵpp=1×1020\epsilon_{pp}=1\times 10^{-20}. The limited slopes (34) become

S~i,jx=min(1,V)u¯¯i+1,ju¯¯i1,j2S~i,jy=min(1,V)u¯¯i,j+1u¯¯i,j12\begin{split}\tilde{S}_{i,j}^{x}=\min(1,V)\frac{\overline{\overline{u}}_{i+1,j}-\overline{\overline{u}}_{i-1,j}}{2}\\ \tilde{S}_{i,j}^{y}=\min(1,V)\frac{\overline{\overline{u}}_{i,j+1}-\overline{\overline{u}}_{i,j-1}}{2}\end{split} (37)

where

V=4min(|Vmin|,|Vmax|)|u¯¯i+1,ju¯¯i1,j|+|u¯¯i,j+1u¯¯i,j1|.V=\frac{4\cdot\min(|V_{min}|,|V_{max}|)}{|\overline{\overline{u}}_{i+1,j}-\overline{\overline{u}}_{i-1,j}|+|\overline{\overline{u}}_{i,j+1}-\overline{\overline{u}}_{i,j-1}|}. (38)

With the fallback scheme established in two dimensions, we define the convex blending of corrected fluxes presented by Vilar & Abgrall [16]. Let the high-order face flux integrals be written

F^i±12,jp=yj12yj+12f^[ui±12,j(η),ui±12,j+(η)]𝑑η\hat{F}_{i\pm\frac{1}{2},j}^{p}=\int_{y_{j-\frac{1}{2}}}^{y_{j+\frac{1}{2}}}\hat{f}[u_{i\pm\frac{1}{2},j}^{-}(\eta),u_{i\pm\frac{1}{2},j}^{+}(\eta)]d\eta (39)

and

G^i,j±12p=xi12xi+12g^[ui,j±12(ξ),ui,j±12+(ξ)]𝑑ξ.\hat{G}_{i,j\pm\frac{1}{2}}^{p}=\int_{x_{i-\frac{1}{2}}}^{x_{i+\frac{1}{2}}}\hat{g}[u_{i,j\pm\frac{1}{2}}^{-}(\xi),u_{i,j\pm\frac{1}{2}}^{+}(\xi)]d\xi. (40)

Similarly, let the fallback face flux integrals be written

F^i±12,j1=f^(u~i±12,j,u~i±12,j+)\hat{F}_{i\pm\frac{1}{2},j}^{1}=\hat{f}(\tilde{u}_{i\pm\frac{1}{2},j}^{-},\tilde{u}_{i\pm\frac{1}{2},j}^{+}) (41)

and

G^i,j±121=g^(u~i,j±12,u~i,j±12+).\hat{G}_{i,j\pm\frac{1}{2}}^{1}=\hat{g}(\tilde{u}_{i,j\pm\frac{1}{2}}^{-},\tilde{u}_{i,j\pm\frac{1}{2}}^{+}). (42)

An integral quadrature is not needed because the cell face midpoint is already a second-order approximation (see Table 11). Then, the blending formula (21) becomes

F^i12,jpmax(ϕi1,j,ϕi,j)(F^i12,j1F^i12,jp)+F^i12,jpF^i+12,jpmax(ϕi,j,ϕi+1,j)(F^i+12,j1F^i+12,jp)+F^i+12,jpG^i,j12pmax(ϕi,j1,ϕi,j)(G^i,j121G^i,j12p)+G^i,j12pG^i,j+12pmax(ϕi,j,ϕi,j+1)(G^i,j+121G^i,j+12p)+G^i,j12p\begin{split}\hat{F}_{i-\frac{1}{2},j}^{p}\leftarrow\max(\phi_{i-1,j},\phi_{i,j})(\hat{F}^{1}_{i-\frac{1}{2},j}-\hat{F}_{i-\frac{1}{2},j}^{p})+\hat{F}_{i-\frac{1}{2},j}^{p}\\ \hat{F}_{i+\frac{1}{2},j}^{p}\leftarrow\max(\phi_{i,j},\phi_{i+1,j})(\hat{F}^{1}_{i+\frac{1}{2},j}-\hat{F}_{i+\frac{1}{2},j}^{p})+\hat{F}_{i+\frac{1}{2},j}^{p}\\ \hat{G}_{i,j-\frac{1}{2}}^{p}\leftarrow\max(\phi_{i,j-1},\phi_{i,j})(\hat{G}^{1}_{i,j-\frac{1}{2}}-\hat{G}_{i,j-\frac{1}{2}}^{p})+\hat{G}_{i,j-\frac{1}{2}}^{p}\\ \hat{G}_{i,j+\frac{1}{2}}^{p}\leftarrow\max(\phi_{i,j},\phi_{i,j+1})(\hat{G}^{1}_{i,j+\frac{1}{2}}-\hat{G}_{i,j+\frac{1}{2}}^{p})+\hat{G}_{i,j-\frac{1}{2}}^{p}\end{split} (43)

in two dimensions.

The blending parameter ϕ\phi is computed at each cell via the following procedure introduced by Vilar & Abgrall: If cell i,ji,j is troubled, set ϕi,j=1\phi_{i,j}=1. If cell i,ji,j is not troubled and it shares a face with a troubled cell, set ϕi,j=34\phi_{i,j}=\frac{3}{4}. If cell i,ji,j is not troubled and it shares a corner with a troubled cell, but not a face, set ϕi,j=12\phi_{i,j}=\frac{1}{2}. If cell i,ji,j is not troubled and its Euclidean distance from the nearest troubled cell is 2 cell units, set ϕi,j=14\phi_{i,j}=\frac{1}{4}. If cell i,ji,j is not troubled and its Euclidean distance from the nearest troubled cell is greater than 2 cell units, set ϕi,j=0\phi_{i,j}=0. See Figure 4 for examples.

Refer to caption
(a) One troubled cell.
Refer to caption
(b) Three troubled cells.
Figure 4: The value of ϕ\phi used for the convex blending of corrected fluxes, shown across a region comprising 49 cells with troubled cells highlighted in red.

2.5.5 Smooth extrema detection in two dimensions

The one-dimensional smoothness indicator α\alpha, as defined in (25), is computed at each cell in both the xx- and yy-directions. Let αx\alpha^{x} and αy\alpha^{y} denote the indicators computed in these directions. Then, cell i,ji,j is considered a smooth extremum only if

min(αi1,jx,αi,jx,αi+1,jx)=min(αi,j1y,αi,jy,αi,j+1y)=1.\min(\alpha^{x}_{i-1,j},\alpha^{x}_{i,j},\alpha^{x}_{i+1,j})=\min(\alpha^{y}_{i,j-1},\alpha^{y}_{i,j},\alpha^{y}_{i,j+1})=1. (44)

3 Summary of numerical schemes

We have seen a variety of options for slope limiters as modifications to the high-order finite volume semi-discrete scheme. We summarize in this section the semi-discrete schemes that are studied via numerical experiments in Section 4. In all presented semi-discrete schemes, the degree of the conservative interpolation polynomial pp is left unspecified, allowing for variation in the numerical experiments. It is important to note that the presented schemes are only semi-discrete; the fully-discrete scheme is only defined once a Runge-Kutta integration method is chosen.

For the one-dimensional advection equation, we examine three semi-discrete schemes: aPrioriMPP, aPosteriori, and aPosterioriB. These schemes are named based on their adoption of either the a priori or a posteriori slope limiting paradigm, as summarized in Table 12.

In aPrioriMPP, the slope limiter θ\theta, is computed using the centroid set instead of the Gauss-Lobatto set of Zhang & Shu [1, 2], a substitution we find sufficient for maintaining the MPP property. We also replace Zhang & Shu’s reduced CFL factor CMPPC_{\text{MPP}} [1, 2] with the adaptive time-step size of Huang et al [21]. The initial time-step size is deduced from an initial CFL factor of 0.8. This way, aPrioriMPP achieves more competitive speed performance.

The a posteriori slope limiting semi-discrete schemes aPosteriori and aPosterioriB use the moncen slope limiter in their MUSCL fallback scheme. aPosterioriB features the convex blending of revised fluxes introduced by Vilar & Abgrall [16].

In the context of the two-dimensional advection equation, detailed semi-discrete schemes are outlined in Table 13. An essential specification for these schemes is the flux integral method. Specifically, aPrioriMPP constructs cell face fluxes with Gauss-Legendre quadrature, while aPrioriT uses a transverse flux reconstruction. We disable the adaptive time-step size for aPrioriT due to maximum principle violations observed with this combination (even when the reduced CFL factor CMPPC_{\text{MPP}} is used).

In two dimensions, we observe that a posteriori schemes exhibit similar maximum principle violations regardless of flux reconstruction method, so we opt for the cheaper option (transverse) in aPosteriori and aPosterioriB. PP, the two-dimensional slope limiter of Suresh [37] is chosen as the slope limiter of the MUSCL fallback scheme in these cases.

Smooth extrema detection is enabled across all semi-discrete schemes in both one and two dimensions.

Scheme θi\theta_{i} set CC Adaptive Δt\Delta t Fallback limiter Blending
aPrioriMPP Centroid 0.8 Yes
aPosteriori 0.8 No moncen No
aPosterioriB 0.8 No moncen Yes
Table 12: Summary of three slope-limited, semi-discrete schemes for solving the one-dimensional advection equation.
Scheme Flux reconstruction θij\theta_{ij} set CC Adaptive Δt\Delta t Fallback limiter Blending
aPrioriMPP Gauss-Legendre Centroid 0.8 Yes
aPrioriT Transverse Centroid 0.8 No
aPosteriori Transverse 0.8 No PP No
aPosterioriB Transverse 0.8 No PP Yes
Table 13: Summary of four slope-limited, semi-discrete schemes for solving the two-dimensional advection equation.

4 Numerical results

In this section, we perform a series of numerical tests of our implementation of the finite volume method and the performance of the various slope limited schemes. In these tests, the linear advection equation is solved in 1D and 2D. The polynomial degree of the spatial interpolation polynomial is given by pp, the number of cells in one direction is represented by NN, and for 2D solutions, an array of N×NN\times N cells is used. h=LNh=\frac{L}{N} is the uniform grid spacing, where LL is the length of the computational domain.

The maximum principle of a linear advection problem with initial condition u(0,𝐱)=u0(𝐱)u(0,\mathbf{x})=u_{0}(\mathbf{x}) is given by M=max𝐱u0(𝐱)M=\max_{\mathbf{x}}u_{0}(\mathbf{x}) and m=min𝐱u0(𝐱)m=\min_{\mathbf{x}}u_{0}(\mathbf{x}). To indicate the presence of a maximum principle violation in our numerical solutions, we define

δ=min(δ,δ+)\delta=\min(\delta^{-},\delta^{+}) (45)

and

δ=minnminij(u¯¯ijnm),δ+=minnminij(Mu¯¯ijn),\displaystyle\delta^{-}=\min_{n}\min_{ij}(\overline{\overline{u}}_{ij}^{n}-m),\quad\delta^{+}=\min_{n}\min_{ij}(M-\overline{\overline{u}}_{ij}^{n}),

where the indices ii and jj cover the entire computational domain and the index nn covers all time-steps (see [25]). Negative values of δ\delta imply a violation of the maximum principle. We consider numerical solutions with δ>\delta> -1E-10 to sufficiently preserve the maximum principle and refer to such solutions as approximately MPP.

4.1 One-dimensional advection of the composite profile

We perform a 1D advection test using the classic composite profile for u¯0(x)\bar{u}_{0}(x) [25, 15, 38], with a velocity a=1a=1, and a periodic region x[0,1]x\in[0,1]. The problem is solved with aPrioriMPP, aPosteriori, and aPosterioriB schemes up to t=1t=1 for various polynomial degrees pp and Runge-Kutta methods.

Results are shown in Table 14. aPrioriMPP produces very good MPP numerical solutions for all given values of pp and all SSP Runge-Kutta methods, as well as RK4. In contrast, a posteriori solutions exhibit violations in all cases. Using RK4 instead of SSPRK3 results in smaller violations for the a posteriori slope limited schemes. These violations are made smaller still through the use of convex blending for the revised fluxes, in some cases by several orders of magnitude. We observe that the magnitude of the maximum principle violations of the a posteriori slope limited schemes do not strictly decrease with NN or the number of time-steps. In general, they do decrease with increasing pp.

δ\delta
pp Integrator aPrioriMPP aPosteriori aPosterioriB
1 SSPRK2 -2.22E-18 -1.04E-02 -4.57E-03
2 SSPRK3 -2.82E-19 -6.52E-03 -8.70E-04
3 SSPRK3 -2.12E-11 -7.85E-03 -2.05E-04
RK4 -1.10E-11 -6.44E-05 -5.37E-05
4 SSPRK3 -1.58E-12 -6.83E-03 -2.83E-04
RK4 -3.91E-11 -4.13E-05 -6.43E-05
5 SSPRK3 -5.43E-11 -7.91E-03 -2.08E-04
RK4 -3.27E-12 -1.00E-04 -1.40E-08
6 SSPRK3 -1.43E-11 -7.46E-03 -1.97E-04
RK4 -1.50E-13 -5.86E-07 -2.38E-07
7 SSPRK3 -4.33E-14 -7.70E-03 -2.64E-04
RK4 -5.70E-11 -3.35E-04 -1.81E-06
Table 14: Maximum principle violation δ\delta of three types of schemes after solving the 1D advection of the composite profile up to t=1t=1. The test is repeated for various Runge-Kutta methods and polynomial degree pp. Violations smaller in magnitude than -1E-10 are typed in boldface font.

Figures 5 and 6 shows our numerical solutions at different times generated by aPrioriMPP and aPosterioriB schemes as well as second-order MUSCL-Hancock. For p>2p>2, aPrioriMPP is solved with SSPRK3 since RK4 is found to result in excessive numerical diffusion. Meanwhile, aPosterioriB uses RK4 for p>3p>3 and RK4 since this combination exhibits smaller violations of the maximum principle, as seen in Table 14.

After one period of advection, the numerical solutions of aPrioriMPP and aPosterioriB appear quite similar when pp is the same. Those with p>2p>2 are of particularly good quality at this time, but the key difference remains that aPrioriMPP maintains the maximum principle for all pp while aPosterioriB results in significant violations.

After 100 periods, the higher-pp (p>2p>2) schemes show greater resilience to numerical diffusion than their lower-order counterparts, as they better preserve the initial composite profile. Numerical artifacts become apparent as pp increases at this longer time, with aPrioriMPP showing slightly more pronounced artifacts. MUSCL-Hancock outperforms our third-order schemes, but shows greater numerical diffusion than our higher-order implementations.

Comparing our results for aPrioriMPP at p=3p=3 and p=5p=5 to a similar test conducted by Kuzmin et al with their own MPP schemes [25], we observe significantly less numerical diffusion and artifacts in our implementation. This is because Kuzmin et al use a fourth-order, five-stage and sixth-order, seven-stage Runge-Kutta method for p=3p=3 and p=5p=5, respectively [25], while we use SSPRK3 with only three stages in these cases. Granted, this makes their fully-discrete schemes truly high-order, while ours are capped at third-order by SSPRK3; The benefits of very-high-order finite volume schemes are highlighted in a later experiment. However, there is a clear disadvantage of the very-high-order time integration for problems with non-smooth initial data, such as the composite profile.

As is shown in later experiments, the a priori limiting schemes of both Zhang & Shu [1, 2] and Kuzmin et al [25] are much more conservative than the a posteriori limiting schemes in the magnitude of slopes they permit in the presence of discontinuities. Consequently, the a priori limiting schemes have a tendency to produce numerical artifacts in these regions. These artifacts are exacerbated by the large number of steps needed for long time integration, so the high-order time integrators actually worsen the quality of discontinuous solutions. Thus, we find very different performance for the a priori limiting schemes between smooth and discontinuous solutions.

Refer to caption
Figure 5: Snapshots of the numerical solution to the advection of the composite profile at t=1t=1. Results are shown for the aPrioriMPP and aPosterioriB schemes and for polynomial degrees p=2p=2 (dark blue), p=3p=3 (light blue), and p=7p=7 (yellow). The aPrioriMPP schemes use SSPRK3 for all results shown while the aPosterioriB schemes use SSPRK3 for p=2p=2 and RK4 for p>2p>2. The numerical solution of second-order MUSCL-Hancock is shown in dashed grey for reference. All results shown have a resolution of N=256N=256 cells. Maximum principle violations are not observed in the aPrioriMPP and MUSCL-Hancock solutions while they are observed for the aPosterioriB solutions.
Refer to caption
Figure 6: Snapshots of the numerical solution to the advection of the composite profile at t=100t=100. Results are shown for the aPrioriMPP and aPosterioriB schemes and for polynomial degrees p=2p=2 (dark blue), p=3p=3 (light blue), p=5p=5 (green), and p=7p=7 (yellow). The aPrioriMPP schemes use SSPRK3 for all results shown while the aPosterioriB schemes use SSPRK3 for p=2p=2 and RK4 for p>2p>2. The numerical solution of second-order MUSCL-Hancock is shown in dashed grey for reference. All results shown have a resolution of N=256N=256 cells. Maximum principle violations are not observed in the aPrioriMPP and MUSCL-Hancock solutions while they are observed for the aPosterioriB solutions.

4.2 Two-dimensional advection of a sine wave

We conduct the 2D advection of a smooth solution to check the order of accuracy of our implementation of the finite volume method. The setup

u¯¯0(x,y)=sin(2π(x+y)),vx=2,vy=1,\overline{\overline{u}}_{0}(x,y)=\sin(2\pi(x+y)),\quad v_{x}=2,\quad v_{y}=1, (46)

is evolved in a periodic box x,y[0,1]x,y\in[0,1]. The L1L_{1} norm of the error of the numerical solution is computed at t=1t=1 (one period of advection) using the formula

E1=h2i,j|u¯¯iju¯¯0,ij|,E_{1}=h^{2}\sum_{i,j}|\overline{\overline{u}}_{ij}-\overline{\overline{u}}_{0,ij}|, (47)

where the indices ii and jj cover the xx- and yy-components of our computational domain.

We vary NN and pp, ensuring the order of accuracy of the chosen Runge-Kutta method is no less than the order of accuracy of the spatial discretization. For p>5p>5, where we lack a higher-than-sixth order Runge-Kutta method, we adopt Vilar’s [16] approach of reducing Δt\Delta t to synthesize higher-order solutions. With this approach, CC is determined by the formula:

Cp={0.8(hL)pqq+1if p>q0.8otherwise,C_{p}=\begin{cases}0.8\left(\frac{h}{L}\right)^{\frac{p-q}{q+1}}&\text{if }p>q\\ 0.8&\text{otherwise},\end{cases} (48)

where qq is the polynomial degree of the temporal discretization.

The smooth sine wave problem is solved using aPrioriMPP, which uses a Gauss-Legendre flux quadrature, and aPrioriT, which uses a transverse flux reconstruction. The adaptive time-step size of aPrioriMPP is disabled since the CFL factor CC is chosen according to (48). We also skip the check for overshoots and undershoots of the maximum principle in the smooth extrema detection routine, since preserving a strict maximum principle is not the goal of this experiment.

The results are summarized in Table 15 with the error convergence of the aPrioriMPP schemes depicted in Figure 7. It is shown that the errors of the numerical solutions converge as NN increases at the expected rates, consistent with the designed order of accuracy for each scheme, until a precision floor is reached at around 1E-12. This is true for both the Gauss-Legendre quadrature and transverse flux reconstruction. Both flux reconstructions produce the same error when pp is even or less than 3. However, for p=3,5,7p=3,5,7, the transverse reconstruction yields a smaller error, sometimes up to 40% lower. This difference is hardly visible on the log scale of the convergence study.

We emphasize the effectiveness of smooth extrema detection in this experiment. Despite the fact that slope limiting was enabled, the high-order solution was not contaminated with low-order approximations because smooth extrema detection in this case always disables the limiter.

EGL1E^{1}_{\text{GL}} EOC ET1E^{1}_{T} EOC
pp integrator NN CC
0 Euler 32 0.80 1.97E-01 1.97E-01
64 0.80 1.08E-01 0.873 1.08E-01 0.873
128 0.80 5.63E-02 0.935 5.63E-02 0.935
256 0.80 2.88E-02 0.967 2.88E-02 0.967
512 0.80 1.46E-02 0.983 1.46E-02 0.983
1 SSPRK2 32 0.80 8.69E-02 8.69E-02
64 0.80 2.19E-02 1.986 2.19E-02 1.986
128 0.80 5.49E-03 1.998 5.49E-03 1.998
256 0.80 1.37E-03 1.999 1.37E-03 1.999
512 0.80 3.43E-04 2.000 3.43E-04 2.000
2 SSPRK3 32 0.80 9.38E-03 9.38E-03
64 0.80 1.19E-03 2.984 1.19E-03 2.984
128 0.80 1.48E-04 2.997 1.48E-04 2.997
256 0.80 1.86E-05 2.999 1.86E-05 2.999
512 0.80 2.32E-06 3.000 2.32E-06 3.000
3 RK4 32 0.80 1.14E-04 9.48E-05
64 0.80 5.95E-06 4.261 4.28E-06 4.469
128 0.80 3.50E-07 4.086 2.34E-07 4.193
256 0.80 2.15E-08 4.023 1.41E-08 4.057
512 0.80 1.34E-09 4.006 8.70E-10 4.015
4 RK6 32 0.80 5.81E-05 5.81E-05
64 0.80 1.82E-06 4.994 1.82E-06 4.995
128 0.80 5.70E-08 4.999 5.70E-08 4.999
256 0.80 1.78E-09 5.000 1.78E-09 5.000
512 0.80 5.57E-11 5.000 5.57E-11 5.000
5 RK6 32 0.80 1.03E-06 8.56E-07
64 0.80 1.50E-08 6.102 1.18E-08 6.180
128 0.80 2.31E-10 6.028 1.78E-10 6.053
256 0.80 3.31E-12 6.124 2.47E-12 6.169
512 0.80 2.58E-13 3.677 2.44E-13 3.341
6 RK6 32 0.45 4.78E-07 4.78E-07
64 0.40 3.76E-09 6.991 3.76E-09 6.991
128 0.36 2.94E-11 6.997 2.94E-11 6.997
256 0.32 8.32E-13 5.143 8.33E-13 5.142
512 0.28 4.88E-13 0.770 4.87E-13 0.773
7 RK6 32 0.25 6.71E-09 5.68E-09
64 0.20 2.22E-11 8.239 1.68E-11 8.399
128 0.16 8.83E-13 4.651 8.60E-13 4.291
256 0.13 1.61E-12 -0.864 1.61E-12 -0.903
512 0.10 4.49E-12 -1.481 4.49E-12 -1.481
Table 15: Summary of the results for the 2D advection of a sine wave test using aPrioriMPP and aPrioriT schemes, modified such that the adaptive time-step size is disabled and CC is chosen according to (48). EGL1E^{1}_{\text{GL}} and ET1E^{1}_{T} are the L1 errors of the aPrioriMPP and aPrioriT schemes, respectively. Results are given for varying resolution NN and spatial interpolation polynomial degree pp.
Refer to caption
Figure 7: The L1L_{1} error of aPrioriMPP schemes at t=1t=1 for the 2D advection of a sine wave with varying resolution NN. Results are shown for polynomial degree pp varying from 0 to 7, shaded linearly from blue to yellow. For this experiment, the adaptive time-step size is disabled and CC is chosen according to (48).

4.3 Two-dimensional advection of a square

We conduct another 2D advection test, keeping vx=2v_{x}=2 and vy=1v_{y}=1 on the periodic domain x,y[0,1]x,y\in[0,1], but selecting the discontinuous initial condition:

u¯¯0={1if 0.25<x,y<0.750otherwise.\overline{\overline{u}}_{0}=\begin{cases}1&\text{if }0.25<x,y<0.75\\ 0&\text{otherwise}.\end{cases} (49)

The square is solved up to one period of advection with the aPrioriMPP, aPrioriT, aPosteriori, and aPosterioriB schemes at varying polynomial degree pp and with different Runge-Kutta methods.

The maximum principle violations observed from the numerical solutions of these schemes are reported in Table 16. The two-dimensional implementation of aPrioriMPP with the Gauss-Legendre flux quadrature preserves very well the maximum principle with the appropriate SSP Runge-Kutta methods, as well as with RK4. Meanwhile, aPrioriT, which combines a priori slope limiting with transverse flux reconstruction, exhibits large violations of the maximum principle regardless of the degree pp or the chosen Runge-Kutta method.

aPosteriori and aPosterioriB exhibit maximum principle violations in all cases, with magnitudes that we don’t find to depend on pp, NN, or Δt\Delta t. The violations of the a posteriori slope limited schemes are consistently made smaller by using RK4 instead of SSPRK3 and by turning on blending.

δ\delta
pp Integrator aPrioriMPP aPrioriT aPosteriori aPosterioriB
1 SSPRK2 -6.79e-11 -8.82e-04 -8.72e-03 -4.14e-03
2 SSPRK3 -9.93e-11 -1.34e-02 -1.03e-02 -1.85e-03
3 SSPRK3 -1.72e-12 -1.34e-02 -1.17e-02 -2.09e-03
RK4 -5.82e-11 -1.47e-02 -1.36e-03 -3.13e-04
4 SSPRK3 -9.43e-12 -1.61e-02 -1.30e-02 -2.05e-03
RK4 -8.00e-11 -1.70e-02 -2.33e-03 -2.38e-04
5 SSPRK3 -2.71e-11 -1.61e-02 -1.66e-02 -3.43e-03
RK4 -7.35e-12 -1.72e-02 -3.24e-03 -4.06e-04
6 SSPRK3 -5.69e-11 -1.72e-02 -1.48e-02 -2.97e-03
RK4 -2.19e-11 -1.80e-02 -6.70e-03 -1.12e-03
7 SSPRK3 -3.42e-11 -1.72e-02 -1.65e-02 -3.41e-03
RK4 -1.37e-11 -1.82e-02 -7.63e-03 -1.44e-03
Table 16: Maximum principle violations δ\delta of aPrioriMPP, aPrioriT, aPosteriori, and aPosterioriB schemes when solving the 2D advection of a square up to t=1t=1. The test is repeated for various Runge-Kutta methods and polynomial degrees pp. Violations smaller in magnitude than -1E-10 are typed in boldface font.

We also compare the numerical solutions of the various schemes for long time integration using 100 periods. As was the case in 1D, the a priori slope-limited schemes use SSPRK3 for p>2p>2 since RK4 is observed to result in excess numerical diffusion, while the a posteriori slope-limited solutions use RK4 for p>3p>3 since it produces smaller violations (seen in Table 16 after one period). We observe that the most severe maximum principle violations of our slope-limited schemes occur, if at all, in the first few steps; δ\delta does not significantly change after one period.

Figure 8 shows the numerical solutions of aPrioriMPP and aPosterioriB schemes as well as second-order MUSCL-Hancock after one and one-hundred periods of advection. Neither MUSCL-Hancock nor any of the aPrioriMPP schemes produce violations of the maximum principle. For the shorter time-scale, aPrioriMPP with p>2p>2 produces numerical solutions with overall better quality than MUSCL-Hancock despite slight numerical artifacts appearing as pp increases. After 100 periods, these numerical artifacts dominate the numerical solution, and the solution quality worsens as pp increases for p=3,5,7p=3,5,7. For the discontinuous square, second-order MUSCL-Hancock shows stronger resilience to numerical diffusion than the high-degree, a priori slope-limited solutions.

The aPosterioriB schemes, on the other hand, behave much differently. At p=2p=2, this a posteriori scheme performs similarly to its a priori slope-limited counterpart and gives a numerical solution of lower quality than second-order MUSCL-Hancock. Despite that, the p>2p>2 aPosterioriB schemes give the highest quality numerical solutions of the schemes presented in Figure 8. These numerical solution hardly change in profile between one and 100 periods, demonstrating an impressive resilience to numerical diffusion.

We clarify that the observed excessive long time-scale numerical diffusion from the high-degree a priori limited schemes are a consequence of the chosen resolution N=64N=64. By increasing NN, we can reduce the excessive diffusion of the a priori limited schemes. This comes with a significant computational cost, as shown in our later analysis.

Refer to caption
Figure 8: Slices of numerical solutions to the 2D advection of a square along y=0.5y=0.5 at t=1t=1 (top row) and t=100t=100 (bottom row). Results are shown for aPrioriMPP (left column) and aPosterioriB (right column) schemes and for polynomial degree p=2p=2 (dark blue), p=3p=3 (light blue), p=5p=5 (green), and p=7p=7 (yellow). SSPRK2 is used when p=1p=1 and SSPRK3 is used when p=2p=2. aPosterioriB uses RK4 for p=3,5,7p=3,5,7 while aPrioriMPP uses SSPRK3 in these cases. The numerical solution of the second-order MUSCL-Hancock is shown in dashed grey for reference. All numerical solutions are presented with a resolution N=64N=64.

Figures 9 and 10 show color maps of the numerical solutions of all four high-order schemes schemes at t=100t=100. with p=3p=3 and p=7p=7, respectively. MUSCL-Hancock is also shown in both figures. When comparing the two MPP schemes in Figure 9, MUSCL-Hancock and aPrioriMPP (p=3p=3), it is evident that aPrioriMPP better preserves the sharp gradients of the square at its edges, despite the visibility of some numerical artifacts. When p=7p=7, we again see that the aPrioriMPP numerical solution is dominated by numerical diffusion and artifacts and is lower in quality than the MUSCL-Hancock solution. This degradation is reduced somewhat by using transverse flux reconstruction instead of the Gauss-Legendre quadrature, as is the case for aPrioriT, but this variation of scheme still exhibits large violations of the maximum principle.

Both aPosteriori and aPosterioriB show great solution quality compared to MUSCL-Hancock and the a priori slope limited schemes, giving generally better results as pp increases from 3 to 7. Aside from their maximum principle violations, both a posteriori slope limiting schemes greatly outperform MUSCL-Hancock in terms of solution quality. In both cases, aPosterioriB exhibits smaller maximum principle violations while also showing more numerical artifacts along the leading edge of the square.

Refer to caption
Figure 9: Snapshots of numerical solutions to the 2D advection of a square produced by five different schemes at t=100t=100, with the initial condition shown in the top left panel. The value of u¯¯\overline{\overline{u}} is shaded from 0 to 1 with a color scale varying between black, purple, pink, orange, yellow, and white. Results are shown for a resolution N=64N=64 and a polynomial degree p=3p=3. The name of the slope limited scheme, chosen Runge-Kutta method, and maximum principle violation δ\delta are given at the top of each panel.
Refer to caption
Figure 10: Snapshots of numerical solutions to the 2D advection of a square produced by five different schemes at t=100t=100, with the initial condition shown in the top left panel. The value of u¯¯\overline{\overline{u}} is shaded from 0 to 1 with a color scale varying between black, purple, pink, orange, yellow, and white. Results are shown for a resolution N=64N=64 and a polynomial degree p=7p=7. The name of the slope limited scheme, chosen Runge-Kutta method, and maximum principle violation δ\delta are given at the top of each panel.

4.4 Rotation of a slotted cylinder

We include the classical test of the two-dimensional rotation of a slotted disk with the initial condition

u¯¯0(x,y)={1x2+(y0.5)2<0.32,|x|>0.025,y>0.70otherwise\overline{\overline{u}}_{0}(x,y)=\begin{cases}1&x^{2}+(y-0.5)^{2}<0.3^{2},\quad|x|>0.025,\quad y>0.7\\ 0&\text{otherwise}\end{cases} (50)

defined on x,y[1,1]x,y\in[-1,1] with a Dirichlet boundary fixed at 0 and a non-uniform velocity field vx,vy=y,x\langle v_{x},v_{y}\rangle=\langle-y,x\rangle. This test introduces additional complexity since the velocity is not uniform.

We again report the maximum principle violations of aPrioriMPP, aPrioriT, aPosteriori, and aPosterioriB schemes after one period of rotation for different polynomial degrees pp and Runge-Kutta methods. These results are provided in Table 17. aPrioriMPP gives very good MPP results at every pp from 1 to 7 and for the SSPRK2, SSPRK3, and RK4 Runge-Kutta methods. aPrioriT exhibits large violations in all cases. The a posteriori slope limited schemes violate the maximum principle in every case, but with a magnitude that is consistently reduced by using RK4 and blending the revised fluxes. For this experiment, the magnitude of the a posteriori slope-limiting violations do not strictly decrease by increasing pp or NN, nor by decreasing the time-step size.

δ\delta
pp Integrator aPrioriMPP aPrioriT aPosteriori aPosterioriB
1 SSPRK2 -6.79e-11 -8.82e-04 -8.72e-03 -4.14e-03
2 SSPRK3 -9.93e-11 -1.34e-02 -1.03e-02 -1.85e-03
3 SSPRK3 -1.72e-12 -1.34e-02 -1.17e-02 -2.09e-03
RK4 -5.82e-11 -1.47e-02 -1.36e-03 -3.13e-04
4 SSPRK3 -9.43e-12 -1.61e-02 -1.30e-02 -2.05e-03
RK4 -8.00e-11 -1.70e-02 -2.33e-03 -2.38e-04
5 SSPRK3 -2.71e-11 -1.61e-02 -1.66e-02 -3.43e-03
RK4 -7.35e-12 -1.72e-02 -3.24e-03 -4.06e-04
6 SSPRK3 -5.69e-11 -1.72e-02 -1.48e-02 -2.97e-03
RK4 -2.19e-11 -1.80e-02 -6.70e-03 -1.12e-03
7 SSPRK3 -3.42e-11 -1.72e-02 -1.65e-02 -3.41e-03
RK4 -1.37e-11 -1.82e-02 -7.63e-03 -1.44e-03
Table 17: Maximum principle violations δ\delta of aPrioriMPP, aPrioriT, aPosteriori, and aPosterioriB schemes when solving the rotation of a slotted disk up to t=2πt=2\pi. The test is repeated for various Runge-Kutta methods and polynomial degrees pp. Violations smaller in magnitude than -1E-10 are typed in boldface font.

The slotted disk is also solved up to 10 periods of advection to explore the effect of long time integration. Our usual policy is implemented wherein a priori slope-limited schemes do not use higher-than-third order time integration (SSPRK3) while a posteriori slope-limited schemes use up to fourth-order time integration (RK4).

The numerical solutions of aPrioriMPP and aPosterioriB schemes with increasing polynomial degree pp, as well as MUSCL-Hancock, are shown after one and ten periods of advection in Figure 11. After one period, the a priori and a posteriori slope limited schemes at the same pp give numerical solutions that look quite similar, with slightly more numerical artifacts in the higher-pp aPrioriMPP solutions. At ten periods, the quality of aPrioriMPP significantly worsens as pp increases after around p=3p=3. aPosterioriB, on the other hand, gives generally better quality solutions as pp increases. Both high-order slope limited schemes at both time-scales outperform second-order MUSCL-Hancock in terms of numerical diffusion.

The numerical solutions of aPrioriMPP, aPrioriT, aPosteriori, and aPosterioriB are compared at t=20πt=20\pi with p=3p=3 in Figure 12 and p=7p=7 in Figure 13. At p=3p=3, aPrioriMPP and aPrioriT appear similar, with aPrioriMPP approximately preserving the maximum principle and aPrioriT causing large violations. The a posteriori slope-limited schemes give slightly less diffused results, with aPosterioriB giving a smaller violation of the maximum principle as well as more apparent numerical artifacts. This is also seen for aPosteriori and aPosterioriB at p=7p=7. At p=7p=7, the numerical artifacts in the aPrioriMPP and aPrioriT solutions are strong, while aPosteriori and aPosterioriB give improved results from the p=3p=3 case. All four high-order schemes at both p=3p=3 and p=7p=7 exhibit less numerical diffusion than MUSCL-Hancock at the same resolution. As was the case with the 2D square experiment, the selection of NN ultimately determines the amount of numerical diffusion produced by the high-order schemes.

Refer to caption
Figure 11: Slices of numerical solutions to the rotation of a slotted cylinder along y=0.5y=0.5 at t=2πt=2\pi (top row) and t=20πt=20\pi (bottom row). Results are shown for aPrioriMPP (left column) and aPosterioriB (right column) schemes and for polynomial degree p=2p=2 (dark blue), p=3p=3 (light blue), p=5p=5 (green), and p=7p=7 (yellow). SSPRK2 is used when p=1p=1 and SSPRK3 is used when p=2p=2. aPosterioriB uses RK4 for p=3,5,7p=3,5,7 while aPrioriMPP uses SSPRK3 in these cases. The numerical solution of second-order MUSCL-Hancock is shown in dashed grey for reference. All numerical solutions are presented with a resolution N=256N=256.
Refer to caption
Figure 12: Snapshots of numerical solutions to the rotation of a slotted cylinder produced by five different schemes at t=20πt=20\pi, with the initial condition shown in the top left panel. The value of u¯¯\overline{\overline{u}} is shaded from 0 to 1 with a color scale varying between black, purple, pink, orange, yellow, and white. Results are shown for a resolution N=256N=256 and a polynomial degree p=3p=3. The name of the slope limited scheme, chosen Runge-Kutta method, and maximum principle violation δ\delta are given at the top of each panel.
Refer to caption
Figure 13: Snapshots of numerical solutions to the rotation of a slotted cylinder produced by five different schemes at t=20πt=20\pi, with the initial condition shown in the top left panel. The value of u¯¯\overline{\overline{u}} is shaded from 0 to 1 with a color scale varying between black, purple, pink, orange, yellow, and white. Results are shown for a resolution N=256N=256 and a polynomial degree p=7p=7. The name of the slope limited scheme, chosen Runge-Kutta method, and maximum principle violation δ\delta are given at the top of each panel.

4.5 Cost analysis

The computational cost of a finite volume scheme depends largely on the choice of flux integral method. The transverse flux reconstruction requires the nodal reconstruction of only one point per cell face, while the Gauss-Legendre quadrature requires (p+1)/2\lceil(p+1)/2\rceil points. Each reconstructed node depends on a large matrix multiplication, and each node corresponds to a Riemann problem, which can be the most expensive step in the solution for non-linear conservation laws. The transverse reconstruction presents a clear advantage in terms of cost. However, it was shown to result in large maximum principle violations when used in conjunction with the a priori limiting method, so, in our opinion, only the a posteriori slope limiting method is allowed to benefit from the low-cost flux reconstruction.

GPUs, which are optimized for large matrix multiplication problems, could potentially mitigate the cost of the reconstructions required by the Gauss-Legendre quadrature. Therefore, we run this experiment on both CPU and GPU implementations. The CPU version of the code is written in standard Python and uses the NumPy library for optimized array multiplications. The GPU version includes the CuPy library which allows for these same multiplications to occur on a GPU. An NVIDIA A100 is used for this experiment and no parallelization over multiple GPUs was implemented.

A timing comparison was conducted for the 2D advection of a square for two different slope limiting methods: aPrioriMPP, the a priori slope limiting method using the Gauss-Legendre quadrature, and aPosterioriB, the a posteriori slope limiting method using transverse flux reconstruction. The adaptive time-step size of aPrioriMPP is turned off for this experiment and RK6 is used for the schemes with p>3p>3. Computational speed is reported as the number of cells in each Runge-Kutta stage updated per second, taken as an average over ten time-steps. Since the compute time increases linearly with the number of Runge-Kutta stages, variations in speed between Runge-Kutta methods are not visible with this metric; only the variation in speed of the different spatial discretization methods due to changes in pp are visible.

The results of this experiment are depicted in Figure 14. On the CPU, both the aPriori and aPosteriori schemes show an increase in cost with an increasing polynomial degree pp. However, the cost of the a priori limiting method escalates at a much faster rate with pp than that of the a posteriori limiting method due to the greater number of nodal reconstructions required by the Gauss-Legendre quadrature. It’s worth noting that the timing of even/odd pairs of the aPrioriMPP schemes—p=0,1p=0,1, p=2,3p=2,3, p=4,5p=4,5, and p=6,7p=6,7—appears to cluster together because the members of each pair use the same number of quadrature points. This clustering effect is not observed for the aPosterioriB schemes, which utilize a transverse flux reconstruction. Furthermore, the per-cell cost of both methods on the CPU increases as the size NN grows larger, as the computational overhead of handling large arrays becomes more significant.

Conversely, on the GPU, the per-cell cost of both methods decreases with the problem size until the threads of the GPU become saturated at about N=211N=2^{11}. At this size, the schemes are about two orders of magnitudes faster on GPU than on CPU. The disparity in cost between the a priori and a posteriori schemes is notably reduced on the GPU, highlighting the GPU’s efficiency in intensive matrix multiplication processes. Likewise, aPosterioriB does not become significantly more expensive with increasing pp on the GPU due to the reduced number of required matrix multiplications from the transverse flux reconstruction.

Even though the a posteriori limiting method avoids the expensive Gauss-Legendre quadrature at each face required by the a priori limiting method, it still comes with a significant cost of its own: the fallback scheme, which includes detecting troubled cells and revising their fluxes. At low spatial degree (p=3p=3), we find that the fallback scheme accounts for roughly 1/2 of the computational time while at a higher degree (p=7p=7), it accounts for 1/3.

Refer to caption
Figure 14: The compute speed measured for aPrioriMPP (left column) and aPosteriori (right column) schemes and for varying polynomial degree pp and Runge-Kutta method. The adaptive time-step size of aPrioriMPP is turned off for this experiment. Compute speed is measured as the number of cells updated in each Runge-Kutta stage per second, taken as an average over ten time-steps. Results are shown for implementations on both CPU (top row) and GPU (bottom row) platforms.

5 Discussion

The results obtained from our numerical tests provide strong validation for the accuracy of our high-order finite volume methods and smooth extrema detection implementation. The advection test featuring a smooth sine wave showcases the high-order capabilities of our base finite volume scheme in two spatial dimensions. Notably, these results were achieved with a priori slope limiting enabled, confirming that our smooth extrema detection correctly disables slope limiting in smooth regions. Moreover, this success was achieved using either the Gauss-Legendre or transverse flux reconstructions. Nonetheless, lower errors were found with the transverse flux reconstruction at some even orders of accuracy.

In all conducted experiments, our implementation of Zhang & Shu’s a priori slope limiting method [1, 2] consistently demonstrated the absence of maximum principle violations when paired with forward Euler, SSPRK2, or SSPRK3. Recall that the latter two methods are equivalent to a convex combination of forward Euler steps, making them Strong Stability Preserving (SSP), and that Zhang & Shu’s spatial discretization is guaranteed to preserve a strict maximum principle when solved with such Runge-Kutta methods [1, 2].

RK4, on the other hand, is not SSP. However, it consistently demonstrated quasi-SSP behavior; For every scheme in our experiments that was MPP when solved with an SSP method, it was also MPP when solved with RK4. This quasi-SSP behavior has been described for RK4 (see [14]), but not for other non-SSP Runge-Kutta methods such as RK6. In fact we did not find RK6 to enable our slope-limited schemes to avoid maximum principle violations. Despite being quasi-SSP, RK4 is found to result in slightly more numerical diffusion than SSPRK3 for the a priori slope-limited schemes with large values of pp. We observe the opposite effect for the a posteriori slope-limited schemes.

We implemented modifications to the Zhang & Shu a priori slope limited scheme [1, 2] that maintain the Maximum Principle Preserving (MPP) property while reducing computational cost and complexity. For instance, the centroid set of points, employed in both one- and two-dimensional cases, proves to be a suitable substitute for the Gauss-Lobatto quadrature points when computing the a priori slope limiter θij\theta_{ij}. Additionally, our experiments revealed that the reduced CFL factor CMPPC_{\text{MPP}} is unnecessary when using an adaptive time-step size of Huang et al [21].

In the 1D experiments, we determined that the a priori and a posteriori limited schemes give similar, high-quality numerical solutions when implemented at high-order. This is true even for long time integration. This is not the case for the 2D experiments, where we see a difference between the results after one period of advection and after many periods.

After a single period of advection, both the a priori and a posteriori limited solutions to the 2D problems exhibit good solution quality for all of the third-or-higher-order schemes shown (p2p\geq 2) across all experiments featuring discontinuous initial conditions. Notably, the numerical solutions of second-order MUSCL-Hancock performed quite well for small time integration, outperforming our p=2p=2 schemes for the composite profile and the discontinuous 2D square.

After many periods of advection (100 for the composite profile and discontinuous square and 10 for the slotted cylinder), we see a trade-off between the quality of high-order solutions and the magnitude of their maximum principle violations. For instance, the results of the aPrioriMPP schemes produce no maximum principle violations, but their numerical solutions suffer from significant diffusion as pp increases after about p=4p=4. At the largest value p=7p=7, the numerical solution of aPrioriMPP becomes dominated by oscillatory artifacts. The worst example of this is seen in the 2D advection of the square.

It was clarified that the excessive diffusion produced by the high-degree aPrioriMPP schemes in the 2D experiments are the consequence of the resolution NN chosen to demonstrate its contrast with the corresponding a posteriori limiting schemes. This numerical diffusion can always be reduced by increasing NN, but this comes with a particularly large computational cost for the high-order, a priori limited schemes.

So, to use an aPrioriMPP scheme, for problems with long time integration, we are compelled to choose the sweet spot value of p=3p=3 or p=4p=4. On the other hand, the a posteriori limited schemes typically improve in quality at long time-scales as we increase pp. Of course, this comes at the cost of higher maximum principle violations.

An additional caveat with the a priori limiting method is that it produces large violations (¿1%) when used with transverse flux reconstruction. This observation is not unique to our work; McCorquodale & Colella [23] use an a priori limiter as well as transverse flux reconstruction and similar maximum principle violations on the order of ¿1% are observed when they advect a discontinuous square. Their limiter is not the Zhang & Shu limiter [1, 2], but is still conceptually similar.

We demonstrated that the magnitude of violations from a posteriori limited schemes can be reduced by applying Vilar and Abgrall’s convex blending of the corrected fluxes [16]. Additionally, the magnitude of these violations were consistently reduced when RK4 is used instead of SSPRK3. Interestingly, the a posteriori limited schemes that produce smaller violations of the maximum principle tend to exhibit greater numerical diffusion and more pronounced numerical artifacts. This highlights a fundamental trade-off where reducing maximum principle violations often comes at the cost of introducing other undesirable characteristics in the numerical solution.

In the case of strict positivity preservation, the magnitude of the maximum principle violation of a numerical scheme limits the dynamical range that can be captured for a given scalar. For example, suppose we are solving Euler’s equation. Our solver will fail for any value of the mass density ρ<0\rho<0. If we use an a posteriori slope limited scheme for which we expect the maximum principle violation to satisfy |δ|(0,0.001)|\delta|\in(0,0.001), the scheme will certainly fail if the density contrast is larger than 10310^{3} since maximum principle violations will produce negative densities. However, if the density contrast remains smaller than 10310^{3}, the magnitude of the maximum principle violations of our scheme will result in the positivity of the solution ρ0\rho\geq 0. Thus, a smaller |δ||\delta| of a given scheme allows for higher density contrasts.

While it is feasible to implement the a priori limiting method at high order and maintain a strict maximum principle, we demonstrate that this requires a more computationally expensive flux quadrature. Specifically, we find that the transverse reconstruction incurred significantly lower computational costs on a CPU. However, it is incompatible with a priori schemes due to substantial maximum principle violations resulting from this combination. On a GPU, the difference in cost between the two quadratures was mostly mitigated. This is because the additional matrix multiplications associated with the Gauss-Legendre quadrature, which contribute to its higher cost on a CPU, become relatively insignificant on a GPU due to its optimized performance for such tasks. We point out that a GPU implementation must solve problems of a sufficiently large size for the increase in speed to be worthwhile. For instance, our GPU code was only faster than the purely CPU code for roughly N>256N>256 in 2D. This is due to the overhead cost of communicating arrays between the CPU and GPU, which is only insignificant when the arrays are large.

6 Conclusion

In this study, we develop a novel and experimental approach to compare a priori and a posteriori slope limiters for high-order finite volume schemes. Our a priori slope limiting schemes are based on the method developed by Zhang & Shu [1, 2], while our a posteriori schemes follow a flux revision procedure with a MUSCL fallback scheme [18]. To assess the relative performance of the two types of schemes, the linear-advection equation is solved in one- and two-dimensions for various benchmark problems at various spatial polynomial degree pp. In these experiments, the schemes are compared based on the following figures of merit:

  • 1.

    Ability to preserve the maximum principle or the positivity of the solution.

  • 2.

    Numerical solution quality for long time integration.

  • 3.

    Computational cost as it scales with the resolution NN and spatial polynomial degree pp.

In the one-dimensional case, we find that the implementations of the a priori limited schemes for p>2p>2 achieve all three goals quite well. The a posteriori limited schemes result in similar quality, but consistently produce (small) maximum principle violations. We observe that RK4, despite not being a Strong Stability Preserving method, also strictly preserves the maximum principle when used with the a priori limited schemes in one- and two-dimensions.

In two dimensions, the conclusions are more nuanced due to the significant impact of computational cost, among other factors. The a priori limiting schemes lead to large maximum principle violations when using the cost-effective transverse flux reconstruction. This necessitates the use of the more expensive Gauss-Legendre quadrature, with a number of nodal reconstructions that grows linearly with pp. On the other hand, the numerical solution of the a posteriori limiting schemes do not exhibit a significant change between these flux reconstruction methods. Thus, these schemes can benefit from the low-cost transverse flux reconstruction, making them highly competitive against their a priori counterparts in terms of speed. This speed comparison is more relevant to implementations on classic CPU architecture; Timing experiments revealed that, for high enough resolutions, the cost difference between the two schemes is dramatically reduced when the computations are performed on GPUs.

The a priori schemes also suffer from another drawback: their solution quality deteriorates for long time integration as pp increases beyond approximately p=4p=4. When p>4p>4 and there isn’t enough cell resolution, numerical artifacts from the high-degree interpolation polynomials begin to dominate the solution, resulting in excessive diffusion. In contrast, the a posteriori limited schemes exhibit remarkable resilience to numerical diffusion and generally yield better results as pp increases, taking full advantage of the steep gradients offered by the high-degree polynomials. We observe that at the same, modest resolution, the a posteriori scheme excels at long time-scales while the a priori scheme suffers from diffusion.

While the a posteriori schemes outperform their a priori counterparts in terms of solution quality for long time integration and cost, they still have the issue of maximum principle violations. In fact, the violations of the a posteriori schemes are typically greater in the two-dimensional than in the one-dimensional case. These violations persist irrespective of time-size Δt\Delta t, NN, or pp. While the convex blending of revised fluxes proposed by Vilar & Abgrall [16] can reduce these violations, it comes at the expense of a slight decrease in solution quality, mirroring the degradation observed in a priori limited solutions.

Our study indicates that a posteriori limiting is an excellent choice for problems where some amount of maximum principle violations can be tolerated. The combination of long time-scale solution quality and cost efficiency offered by these schemes are not matched by second-order MUSCL-Hancock or the a priori slope-limited schemes. In the case where maximum principle violations must be strictly bounded but long time-scale diffusion must be avoided, a priori slope-limited schemes are a suitable, albeit more expensive option. These schemes also come with the caveat that if they are implemented at too high of order (p>4p>4) or with too low of a resolution NN, their numerical solutions might become dominated by artifacts for long integration times.

Future research directions could focus on exploring further modifications to a posteriori slope limiting methods aimed at reducing or preventing maximum principle violations entirely. Additionally, extending this work beyond the linear advection equation to encompass non-linear conservation laws, such as Euler’s equation, would provide valuable insights into the performance and applicability of these slope limiting schemes in broader contexts.

References

  • [1] X. Zhang, C.-W. Shu, Maximum-principle-satisfying and positivity-preserving high-order schemes for conservation laws: survey and new developments, Proceedings of the Royal Society A: Mathematical, Physical and Engineering Sciences 467 (2134) (2011) 2752–2776.
  • [2] X. Zhang, C.-W. Shu, On maximum-principle-satisfying high order schemes for scalar conservation laws, Journal of Computational Physics 229 (9) (2010) 3091–3120.
  • [3] S. Clain, S. Diot, R. Loubère, A high-order finite volume method for systems of conservation laws—multi-dimensional optimal order detection (mood), Journal of computational Physics 230 (10) (2011) 4028–4050.
  • [4] S. K. Godunov, I. Bohachevsky, Finite difference method for numerical computation of discontinuous solutions of the equations of fluid dynamics, Matematičeskij sbornik 47 (3) (1959) 271–306.
  • [5] J. VonNeumann, R. D. Richtmyer, A method for the numerical calculation of hydrodynamic shocks, Journal of applied physics 21 (3) (1950) 232–237.
  • [6] J. Donnert, H. Jang, P. Mendygral, G. Brunetti, D. Ryu, T. Jones, Weno–wombat: Scalable fifth-order constrained-transport magnetohydrodynamics for astrophysical applications, The Astrophysical Journal Supplement Series 241 (2) (2019) 23.
  • [7] P. Colella, P. R. Woodward, The piecewise parabolic method (ppm) for gas-dynamical simulations, Journal of computational physics 54 (1) (1984) 174–201.
  • [8] S. Premasuthan, C. Liang, A. Jameson, Computation of flows with shocks using the spectral difference method with artificial viscosity, i: basic formulation and application, Computers & Fluids 98 (2014) 111–121.
  • [9] L. Lu, M. Nazarov, P. Fischer, Nonlinear artificial viscosity for spectral element methods, Comptes Rendus. Mathématique 357 (7) (2019) 646–654.
  • [10] B. Van Leer, Towards the ultimate conservative difference scheme. v. a second-order sequel to godunov’s method, Journal of computational Physics 32 (1) (1979) 101–136.
  • [11] P. K. Sweby, High resolution schemes using flux limiters for hyperbolic conservation laws, SIAM journal on numerical analysis 21 (5) (1984) 995–1011.
  • [12] A. Harten, B. Engquist, S. Osher, S. R. Chakravarthy, Uniformly high order accurate essentially non-oscillatory schemes, iii, Journal of computational physics 131 (1) (1997) 3–47.
  • [13] C. Hu, C.-W. Shu, Weighted essentially non-oscillatory schemes on triangular meshes, Journal of Computational Physics 150 (1) (1999) 97–127.
  • [14] I. H. Sanz, Positivity properties for the classical fourth order runge-kutta method, Monografías de la Real Academia de Ciencias Exactas, Físicas, Químicas y Naturales de Zaragoza (33) (2010) 125–139.
  • [15] L. Krivodonova, Limiters for high-order discontinuous galerkin methods, Journal of Computational Physics 226 (1) (2007) 879–896.
  • [16] F. Vilar, R. Abgrall, A posteriori local subcell correction of high-order discontinuous galerkin scheme for conservation laws on two-dimensional unstructured grids, SIAM Journal on Scientific Computing 46 (2) (2024) A851–A883.
  • [17] R. Loubere, M. Dumbser, S. Diot, A new family of high order unstructured mood and ader finite volume schemes for multidimensional systems of hyperbolic conservation laws, Communications in Computational Physics 16 (3) (2014) 718–763.
  • [18] D. A. Velasco Romero, M. Han-Veiga, R. Teyssier, Spectral difference method with a posteriori limiting: application to the euler equations in one and two space dimensions, Monthly Notices of the Royal Astronomical Society 520 (3) (2023) 3591–3608.
  • [19] Y. Liu, M. Vinokur, Z. J. Wang, Spectral difference method for unstructured grids i: Basic formulation, Journal of Computational Physics 216 (2) (2006) 780–801.
  • [20] G. May, On the connection between the spectral difference method and the discontinuous galerkin method, Communications in Computational Physics 9 (4) (2011) 1071–1080.
  • [21] L. Huang, Z. Jiang, X. Qin, X. Zhang, C. Yan, High-order positivity-preserving method in the flux reconstruction framework for the simulation of two-medium flow, Journal of Computational Physics 486 (2023) 112115.
  • [22] P. Colella, M. D. Sekora, A limiter for ppm that preserves accuracy at smooth extrema, Journal of Computational Physics 227 (15) (2008) 7069–7076.
  • [23] P. McCorquodale, P. Colella, A high-order finite-volume method for conservation laws on locally refined grids, Communications in Applied Mathematics and Computational Science 6 (1) (2011) 1–25.
  • [24] K. G. Felker, J. M. Stone, A fourth-order accurate finite volume method for ideal mhd via upwind constrained transport, Journal of Computational Physics 375 (2018) 1365–1400.
  • [25] D. Kuzmin, M. Quezada de Luna, D. I. Ketcheson, J. Grüll, Bound-preserving flux limiting for high-order explicit runge–kutta time discretizations of hyperbolic conservation laws, Journal of Scientific Computing 91 (1) (2022) 21.
  • [26] A. M. Rueda-Ramírez, W. Pazner, G. J. Gassner, Subcell limiting strategies for discontinuous galerkin spectral element methods, Computers & Fluids 247 (2022) 105627.
  • [27] C.-W. Shu, High order weighted essentially nonoscillatory schemes for convection dominated problems, SIAM review 51 (1) (2009) 82–126.
  • [28] Y.-T. Zhang, C.-W. Shu, Eno and weno schemes, in: Handbook of numerical analysis, Vol. 17, Elsevier, 2016, pp. 103–122.
  • [29] M. G. Crandall, A. Majda, Monotone difference approximations for scalar conservation laws, Mathematics of Computation 34 (149) (1980) 1–21.
  • [30] S. Hippolyte, A. K. Richard, Order of the runge-kutta method and evolution of the stability region, Ural Mathematical Journal 5 (2 (9)) (2019) 64–71.
  • [31] M. Ogunniran, O. Tayo, Y. Haruna, A. Adebisi, Linear stability analysis of runge-kutta methods for singular lane-emden equations, Journal of the Nigerian Society of Physical Sciences (2020) 134–140.
  • [32] P. Moin, Fundamentals of engineering numerical analysis, Cambridge University Press, 2010.
  • [33] Z. Sun, C.-w. Shu, Strong stability of explicit runge–kutta time discretizations, SIAM Journal on Numerical Analysis 57 (3) (2019) 1158–1182.
  • [34] Y. Hadjimichael, C. B. Macdonald, D. I. Ketcheson, J. H. Verner, Strong stability preserving explicit runge–kutta methods of maximal effective order, SIAM Journal on Numerical Analysis 51 (4) (2013) 2149–2165.
  • [35] S. Gottlieb, D. I. Ketcheson, C.-W. Shu, High order strong stability preserving time discretizations, Journal of Scientific Computing 38 (3) (2009) 251–289.
  • [36] H. Luther, An explicit sixth-order runge-kutta formula, Mathematics of Computation 22 (102) (1968) 434–436.
  • [37] A. Suresh, Positivity-preserving schemes in multidimensions, SIAM Journal on Scientific Computing 22 (4) (2000) 1184–1198.
  • [38] G.-S. Jiang, C.-W. Shu, Efficient implementation of weighted eno schemes, Journal of computational physics 126 (1) (1996) 202–228.