Advertisement

A Third-Order Accurate Wave Propagation Algorithm for Hyperbolic Partial Differential Equations

Abstract

We extend LeVeque’s wave propagation algorithm, a widely used finite volume method for hyperbolic partial differential equations, to a third-order accurate method. The resulting scheme shares main properties with the original method, i.e., it is based on a wave decomposition at grid cell interfaces, it can be used to approximate hyperbolic problems in divergence form as well as in quasilinear form and limiting is introduced in the form of a wave limiter.

Introduction

Hyperbolic partial differential equations (PDEs) modeling wave propagation arise in the description of dynamical processes in many different disciplines, such as gas dynamics or geophysical flows. Often, these PDEs are given in divergence form, i.e., they are formulated as initial value problems of the form

$$\left\{\begin{aligned} \begin{array}{l} \partial _t q + \partial _{x_1} f_1(q) + \cdots + \partial _{x_d} f_d(q)= 0 \quad \text{ in } \Omega \times (0,T), \\ q(x_1,\cdots ,x_d,0)= q_0(x_1,\cdots , x_d) \quad \text{ in } \Omega , \end{array} \end{aligned}\right.$$
(1)

where \(\Omega \subset {\mathbb {R}}^d\), \(q: {\mathbb {R}}^d \times {\mathbb {R}}^+ \rightarrow {\mathbb {R}}^m\) is a vector of conserved quantities and \(f_1, \cdots , f_d : {\mathbb {R}}^m \rightarrow {\mathbb {R}}^m\) are vector-valued flux functions. The Euler equations of gas dynamics, which describe the conservation of mass, momentum and energy, are prominent examples.

For smooth solutions, the system (1) can be rewritten in the equivalent quasilinear form

$$\begin{aligned} \partial _t q + A_1(q) \partial _{x_1} q + \cdots + A_d(q) \partial _{x_d} q = 0, \end{aligned}$$
(2)

with the Jacobian matrices of the flux functions \(A_1, \cdots , A_d \in {\mathbb {R}}^{m \times m}\) such that any linear combination of these matrices is diagonalizable with real eigenvalues. In the linear case \(A_1, \cdots , A_d\) are constant matrices. Some hyperbolic problems are given in the quasilinear form (2) without a corresponding divergence form. The methods studied in this paper can be used for the discretization of hyperbolic problems in divergence form as well as in quasilinear form.

The wave propagation algorithm (WPA) of LeVeque [18, 19] and its implementation in the software package CLAWPACK [16] are widely used in the hyperbolic community to approximate initial value problems of the form (1) or (2), see, for example, [6, 7, 10, 12, 20, 26, 29]. The WPA belongs to the class of truly multidimensional, high-resolution methods. This means that the multidimensional version of the method is not based on a dimensional split approach. If the method is used to discretize conservation laws in divergence form (1), then the WPA is a conservative finite volume method. Furthermore, it can be characterised as a one-step Lax–Wendroff type method, i.e., the PDE is solved simultaneously in space and time. In contrast to this, many higher-order accurate methods are based on the method of lines (MOL) approach.

Approximations obtained with the LeVeque’s original WPA are second-order accurate for smooth solutions and by using limiters avoid unphysical oscillations near discontinuities or steep gradients. Second-order accurate methods have long been considered to be a good choice, especially for solutions with shocks and contact discontinuities and relatively simple solution structures between these discontinuities. For hyperbolic problems with complicated smooth solution structure, where the accurate resolution of small scales is required, schemes with higher order of accuracy are typically more efficient.

In the literature, one can find different approaches which allow the construction of higher-order accurate methods for hyperbolic problems. In this paper we restrict our considerations to finite volume methods. A popular approach is the high-order WENO method [24]. WENO methods typically use a method of lines discretization with a strong stability preserving Runge–Kutta method [11]. Ketcheson and LeVeque [14] provided WENO methods within CLAWPACK, but this is different from the Lax–Wendroff type approach considered here. ADER methods [27, 28] instead use a one-step approach. The higher order of accuracy requires the solution of several Riemann problems per grid cell interface to approximate interface values of the conserved quantities as well as interface values of derivatives of the conserved quantities. For linear, one-dimensional hyperbolic systems, the relation between the wave propagation method and ADER methods is explained in Sect. 3.3.

In this paper, we extend the WPA to a third-order accurate method. We mainly concentrate on the spatially one-dimensional case. In Sect. 2, we review LeVeque’s classical second-order accurate wave propagation method. In Sect. 3, we present the third-order accurate WPA for linear hyperbolic problems. There we also present a new form of the wave limiter. This limiting strategy is based on ideas of Daru and Tenaud [8]. Section 4 is devoted to nonlinear problems. The extension to higher dimensions is discussed in Sect. 5.

The work presented in this paper is influenced in several aspects by Roe’s many contributions. The original second-order accurate wave propagation method as well as the extension to the third order considered here, belongs to the class of truly multidimensional methods in the sense that it does not depend on a dimensional split approach. The development of truly multidimensional methods is highly influenced by Roe’s work. For references, see [23] as well as his recent work on the development of the active flux method [9, 22]. To approximate nonlinear hyperbolic problems, the wave propagation method typically uses Roe-type approximate Riemann solvers as introduced in [21]. Furthermore, the limiter used in the third-order method is inspired by the previous work of Arora and Roe [1].

The WPA of LeVeque

We briefly review the original WPA of LeVeque, since our extension to a third-order accurate method builds on it. We restrict our considerations to the spatially one-dimensional case, i.e., \(d=1\) in (1) or (2) and refer to [15, 18, 19] for a description of the multidimensional case.

We consider hyperbolic PDEs of the form

$$\begin{aligned} q_t + f(q)_x = 0 \end{aligned}$$
(3)

with a vector of conserved quantities \(q: {\mathbb {R}} \times {\mathbb {R}}^+ \rightarrow {\mathbb {R}}^m\) and a vector-valued flux function \(f: {\mathbb {R}}^m \rightarrow {\mathbb {R}}^m\).

The Standard Form of the Wave Propagation Method

In its standard form, the WPA is written in the form

$$\begin{aligned} Q_i^{n+1} = Q_i^n - \frac{\Delta t}{\Delta x} \left( {{{\mathcal {A}}}}^+ \Delta Q_{i-\frac{1}{2}} + {{{\mathcal {A}}}}^- \Delta Q_{i+\frac{1}{2}} \right) - \frac{\Delta t}{\Delta x} \left( {{{\mathcal {F}}}}_{i+\frac{1}{2}} - \mathcal{F}_{i-\frac{1}{2}} \right) \end{aligned}$$
(4)

with

$$\begin{aligned} {{{\mathcal {A}}}}^+ \Delta Q_{i-\frac{1}{2}} := \sum _{p: s_{i-\frac{1}{2}}^p > 0} s_{i-\frac{1}{2}}^p {{{\mathcal {W}}}}_{i-\frac{1}{2}}^p, \quad {{{\mathcal {A}}}}^- \Delta Q_{i+\frac{1}{2}} := \sum _{p: s_{i+\frac{1}{2}}^p < 0} s_{i+\frac{1}{2}}^p {{{\mathcal {W}}}}_{i+\frac{1}{2}}^p ,\end{aligned}$$
(5)

and

$$\begin{aligned} {{{\mathcal {F}}}}_{i+\frac{1}{2}} := {{{\mathcal {F}}}}_{i+\frac{1}{2}}^{\text{2nd}} = \frac{1}{2} \sum _{p} | s_{i+\frac{1}{2}}^p | \left( 1 - \frac{\Delta t}{\Delta x} | s_{i+\frac{1}{2}}^p | \right) \tilde{{{{\mathcal {W}}}}}_{i+\frac{1}{2}}^p. \end{aligned}$$
(6)

Up to the first order, a change of the cell average of the conserved quantities in grid cell i is caused by waves (denoted by \(\mathcal{W}^p\)) moving with positive speed, entering the grid cell at the left grid cell interface, and by waves moving with negative speed entering the grid cell at the right grid cell interface. Second-order correction terms are added in flux difference form as last term in (4). Those terms are computed from (limited) waves \(\tilde{{{{\mathcal {W}}}}}_{i-\frac{1}{2}}^p\) and speeds \(s_{i-\frac{1}{2}}^p\) as described in (6), see [19] for more details.

In the case of a scalar conservation law with a convex flux function, we have one wave \({{{\mathcal {W}}}}_{i-\frac{1}{2}}\) at each cell interface which is moving with the speed \(s_{i-\frac{1}{2}}\) (obtained from the Rankine–Hugoniot condition), i.e.,

$$\begin{aligned} {{{\mathcal {W}}}}_{i-\frac{1}{2}} := Q_i - Q_{i-1}, \quad s_{i-\frac{1}{2}} := \frac{f(Q_i)-f(Q_{i-1})}{Q_i - Q_{i-1}}. \end{aligned}$$
(7)

In the case of a nonlinear system, one has to define a matrix \(A_{i-\frac{1}{2}} \approx f'_{i-\frac{1}{2}}\), which is an approximation to the flux Jacobian at the interface \(i-\frac{1}{2}\). We assume that \(A_{i-\frac{1}{2}}\) is diagonalizable with real eigenvalues, i.e., \(A_{i-\frac{1}{2}} = R_{i-\frac{1}{2}} \Lambda _{i-\frac{1}{2}} R_{i-\frac{1}{2}}^{-1}\). The jump in the cell-average values of the conserved quantities is expanded in eigenvectors \(r_{i-\frac{1}{2}}^p\) of \(A_{i-\frac{1}{2}}\), i.e., the waves and speeds have the form

$$\begin{aligned} {{{\mathcal {W}}}}\;_{i-\frac{1}{2}}^p := \alpha\;_{i-\frac{1}{2}}^p r\;_{i-\frac{1}{2}}^p, \quad s\;_{i-\frac{1}{2}}^p := \lambda\; _{i-\frac{1}{2}}^p, \end{aligned}$$
(8)

where \(\lambda _{i-\frac{1}{2}}^p\) is the p-th eigenvalue of \(A_{i-\frac{1}{2}}\) and \(\alpha _{i-\frac{1}{2}}^p\) is the p-th component of the vector \(\alpha _{i-\frac{1}{2}} = R_{i-\frac{1}{2}}^{-1} (Q_i - Q_{i-1})\).

For linear, constant coefficient hyperbolic systems

$$\begin{aligned} q_t + A q_x = 0 \end{aligned}$$
(9)

with \(q: {\mathbb {R}} \times {\mathbb {R}}^+ \rightarrow {\mathbb {R}}^m\), \(A \in {\mathbb {R}}^{m \times m}\), the eigenvalues and eigenvectors are the same at all grid cell interfaces, and the approach, thus, simplifies. Figure 1 shows a schematic description of the scheme.

Fig. 1
figure1

Illustration of the WPA, compare with [18, 19]

To obtain a conservative method for hyperbolic PDEs in divergence form, the relation

$$\begin{aligned} A_{i-\frac{1}{2}} (Q_i^n - Q_{i-1}^n) = f(Q_i^n) - f(Q_{i-1}^n) \end{aligned}$$
(10)

is required. This condition is automatically satisfied if a Roe Riemann solver is used [19].

Along the grid interface \(x_{i-\frac{1}{2}}\), \(t > t_n\), the solution of the linearized Riemann problem

$$\left\{\begin{aligned} \begin{aligned}& q_t + A_{i-\frac{1}{2}}q_x= 0, \\& q(x,t_n)= \left\{ \begin{array}{ccc} Q_\text{L}, &{} x<x_{i-\frac{1}{2}}, \\ Q_\text{R}, &{} x \ge x_{i-\frac{1}{2}} \end{array}\right. \end{aligned} \end{aligned}\right.$$
(11)

can be expressed in the form

$$\begin{aligned} \begin{aligned} q(x_{i-\frac{1}{2}},t)&= Q_\text{L} + \sum _{p:\lambda _p < 0} \mathcal{W}\;_{i-\frac{1}{2}}^p \\&= Q_\text{R} - \sum _{p: \lambda _p > 0} {{{\mathcal {W}}}}\;_{i-\frac{1}{2}}^p \end{aligned} \end{aligned}$$
(12)

with \({{{\mathcal {W}}}}_{i-\frac{1}{2}}^p = \alpha _{i-\frac{1}{2}}^p r_p\) and \(\alpha _{i-\frac{1}{2}} = R^{-1} (Q_\text{R} - Q_\text{L})\) (see [19]). This relation will be used in the derivation of our method.

Note again that this form of the WPA can be applied not only to hyperbolic PDEs in divergence form but also to hyperbolic problems in quasilinear form. This makes the WPA more general than most other methods for hyperbolic problems.

The f-Wave Form of the WPA

In [2], another approach for defining the waves and speeds, needed by the WPA, was presented. This method can be used for hyperbolic problems in divergence form. The idea is to directly split the jump in the flux function into waves rather than the jump in the conserved quantities. The update still has the form (4), but uses

$$\begin{aligned} {{{\mathcal {A}}}}^+ \Delta Q_{i-\frac{1}{2}} := \sum _{p: s_{i-\frac{1}{2}}^p > 0} {{{\mathcal {Z}}}}_{i-\frac{1}{2}}^p, \quad {{{\mathcal {A}}}}^- \Delta Q_{i-\frac{1}{2}} := \sum _{p: s_{i-\frac{1}{2}}^p < 0} {{{\mathcal {Z}}}}_{i-\frac{1}{2}}^p \end{aligned}$$
(13)

and

$$\begin{aligned} {{{\mathcal {F}}}}_{i-\frac{1}{2}} := \frac{1}{2} \sum _p \text{ sign }\left( s_{i-\frac{1}{2}}^p\right) \left( 1 - \frac{\Delta t}{\Delta x} |s_{i-\frac{1}{2}}^p | \right) \tilde{{{{\mathcal {Z}}}}}_{i-\frac{1}{2}}^p. \end{aligned}$$
(14)

In the scalar, the second-order accurate case, the f-waves and speeds are defined as

$$\begin{aligned} {{{\mathcal {Z}}}}_{i-\frac{1}{2}} := f(Q_i) - f(Q_{i-1}), \quad s_{i-\frac{1}{2}} := \frac{f(Q_i) - f(Q_{i-1})}{Q_i - Q_{i-1}}. \end{aligned}$$
(15)

For nonlinear systems the f-waves and speeds of the second-order accurate method are obtained by performing an eigenvector decomposition of the flux differences, i.e.,

$$\begin{aligned} f(Q_i) - f(Q_{i-1}) = \sum _p {{{\mathcal {Z}}}}_{i-\frac{1}{2}}^p, \quad \mathcal{Z}_{i-\frac{1}{2}}^p := \alpha _{i-\frac{1}{2}}^p r_{i-\frac{1}{2}}^p, \quad s_{i-\frac{1}{2}}^p := \lambda _{i-\frac{1}{2}}^p, \end{aligned}$$
(16)

where \(\alpha _{i-\frac{1}{2}}^p\) is now the p-th component of the vector \(\alpha _{i-\frac{1}{2}} = R_{i-\frac{1}{2}}^{-1} (f(Q_i) - f(Q_{i-1}))\). \(\lambda _{i-\frac{1}{2}}^p\) and \(r_{i-\frac{1}{2}}^p\) are the p-th eigenvalue and eigenvector of the flux Jacobian matrix \(f'(q)\) discretized at the grid cell interface and R is the matrix which columns are the right eigenvectors. Note that we no longer need to impose the condition (10) on \(A_{i-\frac{1}{2}}\) to obtain a conservative update.

A Third-Order Accurate WPA for One-Dimensional Linear Hyperbolic Problems

A first attempt to extend the wave propagation method to the third order was given by LeVeque in [17]. The approach worked well for linear problems if no limiters were used but reduced to a second-order method for nonlinear problems. Furthermore, the method did not work well with the limiters proposed in [17].

Assuming that the solution q is sufficiently smooth, we can use the Taylor series expansion to derive conditions for the approximation of the third order accurate cell average values of the conserved quantities. The cell average value of the conserved quantity in grid cell i at time \(t_{n+1}\) satisfies

$$\begin{aligned} \begin{aligned} Q_i^{n+1}&\approx \frac{1}{\Delta x} \int _{x_{i-\frac{1}{2}}}^{x_{i+\frac{1}{2}}} q(x,t_{n+1}) \text{d}x \\&= \frac{1}{\Delta x} \int _{x_{i-\frac{1}{2}}}^{x_{i+\frac{1}{2}}} \left( q(x,t_n) + \Delta t q_t(x,t_n) + \frac{1}{2} \Delta t^2 q_{tt}(x,t_n) + \frac{1}{6} \Delta t^3 q_{ttt}(x,t_n) \right) \text{d}x + {{{\mathcal {O}}}}(\Delta t^4). \end{aligned} \end{aligned}$$
(17)

We can now replace the time derivatives by spatial derivatives. To do this, we take the form of the PDE into account.

The Scalar Advection Equation

For the one-dimensional advection equation \(q_t + u q_x = 0\), \(u \in {\mathbb {R}}\), we can easily replace time derivatives by spatial derivatives using \(q_t = -u q_x\), \(q_{tt} = u^2 q_{xx}\), \(q_{ttt} = -u^3 q_{xxx}\) . Inserting these relations into (17) leads to

$$\begin{aligned} \begin{aligned} Q_i^{n+1}&= Q_i^n - \frac{u \Delta t}{\Delta x} \int _{x_{i-\frac{1}{2}}}^{x_{i+\frac{1}{2}}} q_x(x,t_n) {\text {d}}x + \frac{u^2 \Delta t^2}{2 \Delta x} \int _{x_{i-\frac{1}{2}}}^{x_{i+\frac{1}{2}}} q_{xx}(x,t_n) {\text {d}}x - \frac{u^3 \Delta t^3}{\Delta x} \int _{x_{i-\frac{1}{2}}}^{x_{i+\frac{1}{2}}} q_{xxx}(x,t_n) {\text {d}}x\\&= Q_i^n - \frac{u \Delta t}{\Delta x} \left( q\left( x_{i+\frac{1}{2}},t_n\right) - q\left( x_{i-\frac{1}{2}},t_n\right) \right) + \frac{u^2 \Delta t^2}{2 \Delta x} \left( q_x\left( x_{i+\frac{1}{2}},t_n\right) -q_x\left( x_{i-\frac{1}{2}},t_n\right) \right) \\&\quad - \frac{u^3 \Delta t^3}{6 \Delta x} \left( q_{xx}\left( x_{i+\frac{1}{2}},t_n\right) - q_{xx}\left( x_{i-\frac{1}{2}},t_n\right) \right). \end{aligned} \end{aligned}$$
(18)

The spatial derivatives will be replaced by finite difference approximations based on the cell averaged values of the conserved quantity at time \(t_n\). To obtain a third-order accurate approximation of the cell average \(Q_i^{n+1}\), we need to use a third-order accurate approximation of \(q(x_{i\pm \frac{1}{2}},t_n)\), a second-order accurate approximation of \(q_x(x_{i\pm \frac{1}{2}},t_n)\) and a first-order accurate approximation of \(q_{xx}(x_{i\pm \frac{1}{2}},t_n)\). We use the approximations

$$\left\{\begin{aligned} \begin{aligned} q(x_{i+\frac{1}{2}},t_n)&\approx \left\{ \begin{array}{c c c} Q_i^n + \frac{1}{2} (Q_{i+1}^n - Q_i^n) - \frac{1}{6} (Q_{i-1}^n - 2 Q_i^n + Q_{i+1}^n ), &{} u>0, \\ Q_{i+1}^n - \frac{1}{2} (Q_{i+1}^n - Q_i^n) - \frac{1}{6} (Q_i^n - 2 Q_{i+1}^n + Q_{i+2}^n), &{} u< 0, \end{array}\right. \\ q_x(x_{i+\frac{1}{2}},t_n)&\approx \frac{1}{\Delta x} \left( Q_{i+1}^n - Q_i^n \right), \\ q_{xx}(x_{i+\frac{1}{2}},t_n)&\approx \left\{ \begin{array}{c c c} \frac{1}{\Delta x^2} \left( Q_{i+1}^n - 2 Q_i^n + Q_{i-1}^n \right), &{} u>0, \\ \frac{1}{\Delta x^2} \left( Q_{i+2}^n - 2 Q_{i+1}^n + Q_i^n \right), &{} u < 0. \end{array} \right. \end{aligned} \end{aligned}\right.$$
(19)

The resulting method can be written in the wave propagation form

$$\begin{aligned} Q_i^{n+1} = Q_i^n - \frac{\Delta t}{\Delta x} \left( \max (u,0) \mathcal{W}_{i-\frac{1}{2}} + \min (u,0) {{{\mathcal {W}}}}_{i+\frac{1}{2}} \right) - \frac{\Delta t}{\Delta x} \left( {{{\mathcal {F}}}}_{i+\frac{1}{2}} - {{{\mathcal {F}}}}_{i-\frac{1}{2}} \right) \end{aligned}$$
(20)

with \({{{\mathcal {W}}}}_{i-\frac{1}{2}} := Q_i^n - Q_{i-1}^n,\) and

$$\begin{aligned} \begin{aligned} {{{\mathcal {F}}}}_{i-\frac{1}{2}}&:= \frac{1}{2} | u | \left( 1 - \frac{\Delta t}{\Delta x} | u | \right) \mathcal{W}_{i-\frac{1}{2}} \\&\quad - \frac{1}{6} \left( 1 - \left( \frac{\Delta t}{\Delta x} u \right) ^2 \right) \left( \max (u,0) \left({{{\mathcal {W}}}}_{i-\frac{1}{2}} - \mathcal{W}_{i-\frac{3}{2}} \right) + \min (u,0) \left( \mathcal{W}_{i+\frac{1}{2}}-{{{\mathcal {W}}}}_{i-\frac{1}{2}}\right) \right) . \end{aligned} \end{aligned}$$
(21)

This method is by derivation third-order accurate for the advection equation and a straight-forward extension of the method to linear hyperbolic systems is also third-order accurate. For comparison, see [17] or the derivation in the next section. Furthermore, LeVeque [17] showed that the method is stable for time steps which satisfy \(|u| \Delta t / \Delta x \le 1\). To achieve this stability, it is necessary to choose the stencil in upwind direction.

Note that the second-order WPA is obtained, if we set the second line in the definition of the correction fluxes (21) equal to zero. As mentioned in [17], the wave limiters of CLAWPACK, which would replace \({{{\mathcal {W}}}}_{i-\frac{3}{2}}, {{{\mathcal {W}}}}_{i-\frac{1}{2}}\) and \({{{\mathcal {W}}}}_{i+\frac{1}{2}}\) in the correction fluxes (21) by limited waves \(\tilde{{{{\mathcal {W}}}}}_{i-\frac{3}{2}}, \tilde{{{{\mathcal {W}}}}}_{i-\frac{1}{2}}\) and \(\tilde{{{{\mathcal {W}}}}}_{i+\frac{1}{2}}\), do not work for this third-order extension. Instead, limiters from Daru and Tenaud [8] can be used to obtain a limited version of the method (20), (21). They suggested to describe a higher-order scheme using an accuracy function applied to a second order scheme. Limiting can then be applied to this accuracy function. In the context of the WPA, we rewrite the correction flux (21) into the form

$$\begin{aligned} {{{\mathcal {F}}}}_{i-\frac{1}{2}} := \frac{1}{2} |u| \left( 1 - \frac{\Delta t}{\Delta x} |u| \right) {{{\mathcal {W}}}}_{i-\frac{1}{2}} \phi _{i-\frac{1}{2}} \end{aligned}$$
(22)

with

$$\begin{aligned} \phi _{i-\frac{1}{2}} := \left\{ \begin{array}{ccc} 1 - \frac{1+|\nu |}{3} \frac{ {{{\mathcal {W}}}}_{i-\frac{1}{2}} - {{{\mathcal {W}}}}_{i-\frac{3}{2}} }{\mathcal{W}_{i-\frac{1}{2}} }, &{} u > 0, \\ 1 - \frac{1+|\nu |}{3} \frac{ {{{\mathcal {W}}}}_{i-\frac{1}{2}} - {{{\mathcal {W}}}}_{i+\frac{1}{2}} }{\mathcal{W}_{i-\frac{1}{2}} }, &{} u < 0. \end{array}\right. \end{aligned}$$
(23)

Here, we use the abbreviation \(\nu := u \Delta t / \Delta x\). Now we limit \(\phi _{i-\frac{1}{2}}\) such that

$$\begin{aligned} {\tilde{\phi }}_{i-\frac{1}{2}} := \max \left( 0, \min \left( \frac{2}{1 - |u| \frac{\Delta t}{\Delta x}}, \phi _{i-\frac{1}{2}}, \frac{2}{|u| \frac{\Delta t}{\Delta x}} \theta _{i-\frac{1}{2}} \right) \right) \, \text{ with } \theta _{i-\frac{1}{2}} := \left\{ \begin{array}{ccc} \frac{Q_{i-1}-Q_{i-2}}{Q_i - Q_{i-1} }, &{} u > 0, \\ \frac{Q_{i+1} - Q_i}{Q_i - Q_{i-1} }, &{} u < 0. \end{array}\right. \end{aligned}$$
(24)

The relations (23) and (24) of course need to be implemented in such a way that division by zero is avoided. The limited method is obtained by replacing \(\phi _{i-\frac{1}{2}}\) by \({\tilde{\phi }}_{i-\frac{1}{2}}\) in (22) and using the resulting correction flux in (20).

Figure 2 shows test simulations for the advection of a wave packet after the solution profile has traveled 10 times through the domain. The solid line indicates the exact solution. The first two plots show the results obtained with the second-order accurate WPA. In the unlimited case, the WPA for the advection equation agrees with the Lax–Wendroff method. For this method, we observe an unphysical group velocity in the numerical solution due to the dispersive behaviour of the Lax–Wendroff method. The second plot shows results for the second-order accurate WPA with limiter. Now the wave package is located at the correct position, but the amplitude is reduced due to the numerical viscosity of the method. The last two plots show results for the third-order accurate method without and with limiter. The advantages of a third-order accurate method compared to a second-order accurate method are clearly visible. Furthermore, the new limiter only leads to a small reduction of the wave amplitude compared to the unlimited third-order accurate method.

Fig. 2
figure2

Approximation of a wave packet at time \(t=10\) using the second- and the third-order accurate versions of the WPA with 300 grid cells and time steps such that \(|u| \Delta t / \Delta x \le 0.9\)

In Fig. 3 we show results for another classical advection test problem from [19], the advection of a profile consisting of a smooth and a discontinuous part.

Fig. 3
figure3

Approximation of a profile consisting of a smooth and a discontinuous part. The solution is shown at time \(t=10\) using the second- and the third-order accurate versions of the WPA with 300 grid cells and time steps such that \(|u| \Delta t / \Delta x \le 0.9\)

For both test problems, the unlimited third-order accurate method performs much better than the unlimited second-order accurate method. Furthermore, the limiter of the third-order accurate WPA suppresses unphysical oscillations without introducing unnecessary smearing.

Fig. 4
figure4

\(L_1\)-error vs. mesh width for a the smooth advection problem at time \(t=10\) and b the smooth acoustics problem of Sect. 3.2 at time \(t=2.4\). For both examples, we show results using the second- and the third-order accurate versions of the WPA

In Fig. 4 we show the \(L_1\)-error for different grids using the second- and the third-order accurate versions of the WPA.

Linear Hyperbolic Systems

We now consider linear, constant coefficient hyperbolic systems

$$\begin{aligned} q_t + A q_x = 0 \end{aligned}$$
(25)

with \(q: {\mathbb {R}} \times {\mathbb {R}}^+ \rightarrow {\mathbb {R}}^m\). The matrix \(A \in {\mathbb {R}}^{m \times m}\) is diagonalizable with real eigenvalues \(\lambda ^1 \le \lambda ^2 \le \cdots \le \lambda ^m\) and a complete set of corresponding right eigenvectors \(r_1, \cdots , r_m\), i.e., \(A = R \Lambda R^{-1}\) with \(R = [r_1 | \cdots | r_m]\).

In analogy to the scalar case, a third-order accurate method approximates

$$\begin{aligned} \begin{aligned} Q_i^{n+1}&= Q_i^n - \frac{\Delta t}{\Delta x} A \left( q\left( x_{i+\frac{1}{2}},t_n\right) - q\left( x_{i-\frac{1}{2}},t_n\right) \right) + \frac{\Delta t^2}{2 \Delta x} A^2 \left( q_x\left( x_{i+\frac{1}{2}},t_n\right) - q_x\left(x_{i-\frac{1}{2}},t_n\right) \right) \\&\quad - \frac{\Delta t^3}{6 \Delta x} A^3 \left( q_{xx}\left( x_{i+\frac{1}{2}},t_n\right) - q_{xx}\left( x_{i-\frac{1}{2}},t_n\right) \right) . \end{aligned} \end{aligned}$$
(26)

Now, we need to decide how to approximate the quantities \(q(x_{i \pm \frac{1}{2}},t_n)\), \(q_x(x_{i \pm \frac{1}{2}},t_n)\) and \(q_{xx}(x_{i \pm \frac{1}{2}} t_n)\). Note that the selection (19), which was used for the advection equation, can be interpreted as the solution of Riemann problems evaluated at the grid cell interface. The same concept can now be used for linear systems. In the unlimited case, we replace \(q(x_{i+\frac{1}{2}},t_n)\) by the solution of the Riemann problem

$$\left\{\begin{aligned} \begin{aligned} q_t + A q_x&= 0 ,\\ q(x,t_n)&= \left\{ \begin{array}{ccc} Q_i^n + \frac{1}{2} (Q_{i+1}^n - Q_i^n) {- \frac{1}{6} (Q_{i-1}^n - 2 Q_i^n + Q_{i+1}^n )}, &{} x < x_{i+\frac{1}{2}}, \\ Q_{i+1}^n - \frac{1}{2} (Q_{i+1}^n - Q_i^n ) {- \frac{1}{6} (Q_i^n - 2 Q_{i+1}^n + Q_{i+2}^n )}, &{} x \ge x_{i+\frac{1}{2}} \end{array}\right. \end{aligned} \end{aligned}\right.$$
(27)

evaluated at the interface \(x_{i+\frac{1}{2}}\). The underlined terms are required for the third order, while the other terms are already used in the second-order accurate version of the WPA. As in the advection case, we replace \(q_x(x_{i+\frac{1}{2}}, t_n)\) by \((Q_{i+1}^n - Q_i^n)/\Delta x\). The contribution of \(A^2 q_x(x_{i\pm \frac{1}{2}})\) already appears in the second-order WPA. Furthermore, the third-order accurate version of the method requires approximations of second derivatives of the conserved quantities at the grid cell interface. We approximate \(q_{xx}(x_{i+\frac{1}{2}},t_n)\) by the solution of the Riemann problem

$$\left\{ \begin{aligned} \begin{aligned} (q_{xx})_t + A (q_{xx})_x&= 0, \\ q_{xx}(x,t_n)&= \left\{ \begin{array}{ccc} \frac{1}{\Delta x^2} (Q_{i+1}^n - 2 Q_i^n + Q_{i-1}^n), &{} x < x_{i+\frac{1}{2}}, \\ \frac{1}{\Delta x^2} ( Q_{i+2}^n - 2Q_{i+1}^n + Q_i^n), &{} x \ge x_{i+\frac{1}{2}} \end{array}\right. \end{aligned} \end{aligned}\right.$$
(28)

evaluated at the interface \(x_{i+\frac{1}{2}}\).

The resulting unlimited method can be written in the form

$$\begin{aligned} Q_i^{n+1} = Q_i^n - \frac{\Delta t}{\Delta x} \left( {{{\mathcal {A}}}}^+ \Delta Q_{i-\frac{1}{2}} + {{{\mathcal {A}}}}^- \Delta Q_{i+\frac{1}{2}} \right) - \frac{\Delta t}{\Delta x} \left( {{{\mathcal {F}}}}_{i+\frac{1}{2}} - {{{\mathcal {F}}}}_{i-\frac{1}{2}} \right) \end{aligned}$$
(29)

with \({{{\mathcal {F}}}}_{i+\frac{1}{2}} = {{{\mathcal {F}}}}_{i+\frac{1}{2}}^{\text{2nd}} + \mathcal{F}_{i+\frac{1}{2}}^{3{\text {rd}}}\). The formulas for \({{{\mathcal {A}}}}^\pm \Delta Q_{i-\frac{1}{2}}\) and \({{{\mathcal {F}}}}_{i+\frac{1}{2}}^{\text{2nd}}\) are taken from the second-order accurate method. For comparison, see Sect. 2.1. Thus, we only need to explain the form of \({{{\mathcal {F}}}}_{i+\frac{1}{2}}^{3{\text {rd}}}\). A comparison with (26) shows that the third-order correction flux has the components

$$\begin{aligned} {{{\mathcal {F}}}}_{i+\frac{1}{2}}^{3{\text {rd}}} = A q_{i+\frac{1}{2}}^{3{\text {rd}}} + \frac{\Delta t^2}{6} A^3 q_{xx}\left( x_{i+\frac{1}{2}},t_n\right) , \end{aligned}$$
(30)

where \(q_{i+\frac{1}{2}}^{3{\text {rd}}}\) is the underlined term from (27) and \(q_{xx}(x_{i+\frac{1}{2}},t_n)\) is the solution of the Riemann problem (28) evaluated at the interface \(x_{i+\frac{1}{2}}\).

To compute \(q_{i+\frac{1}{2}}^{3{\text {rd}}}\), we average over the two possible expressions of the Riemann solution (12). We obtain

$$\begin{aligned} q_{i+\frac{1}{2}}^{3{\text {rd}}} = \frac{1}{2} \left( Q_\text{R} + Q_\text{L} + \sum _{p: \lambda _p < 0} \left( {{{\mathcal {W}}}}_{i+\frac{1}{2}}^{3{\text {rd}}}\right) ^p - \sum _{p: \lambda _p > 0} \left( {{{\mathcal {W}}}}_{i+\frac{1}{2}}^{3{\text {rd}}}\right) ^p \right) . \end{aligned}$$
(31)

The waves satisfy \(({{{\mathcal {W}}}}_{i+\frac{1}{2}}^{3{\text {rd}}})^p := (\alpha _{i+\frac{1}{2}}^{3{\text {rd}}})^p r_p\), with

$$\begin{aligned} \begin{aligned} \alpha _{i+\frac{1}{2}}^{3{\text {rd}}}&:= R^{-1} \left(-\frac{1}{6}(Q_\text{R} - Q_\text{L}) \right)\\&= \frac{1}{6} R^{-1} \left( -(Q_{i+2}^n - Q_{i+1}^n) + 2(Q_{i+1}^n - Q_i^n) - (Q_i^n - Q_{i-1}^n) \right) \\&= -\frac{1}{6} \alpha _{i+\frac{3}{2}} + \frac{2}{6} \alpha _{i+\frac{1}{2}} - \frac{1}{6} \alpha _{i-\frac{1}{2}}. \end{aligned} \end{aligned}$$
(32)

In the last line, we made use of the notation \(\alpha _{i+\frac{1}{2}} := R^{-1} (Q_{i+1}^n - Q_i^n)\), which is known from the original WPA.

Thus, we obtain

$$\begin{aligned} \begin{aligned} q_{i+\frac{1}{2}}^{3{\text {rd}}}&= \frac{1}{2} {\Big (} -\frac{1}{6} (Q_{i-1}^n - 2Q_i^n + Q_{i+1}^n) - \frac{1}{6} (Q_i^n - 2 Q_{i+1}^n + Q_{i+2}^n) \\&\quad +\sum _{p: \lambda _p< 0} {\Big (}- \frac{1}{6} \alpha _{i+\frac{3}{2}}^p r_p + \frac{2}{6} \alpha _{i+\frac{1}{2}}^p r_p \\&\quad - \frac{1}{6} \alpha _{i-\frac{1}{2}}^p r_p{\Big )} - \sum _{p: \lambda _p> 0} {\Big (} - \frac{1}{6} \alpha _{i+\frac{3}{2}}^p r_p + \frac{2}{6} \alpha _{i+\frac{1}{2}}^p r_p - \frac{1}{6} \alpha _{i-\frac{1}{2}}^p r_p{\Big )} {\Big )}\\&= \frac{1}{12} {\Big (} -(Q_{i+2}^n - Q_{i+1}^n) + (Q_i^n - Q_{i-1}^n) \\&\quad +\sum _{p: \lambda _p< 0} {\Big (}- \frac{1}{6} \alpha _{i+\frac{3}{2}}^p r_p + \frac{2}{6} \alpha _{i+\frac{1}{2}}^p r_p - \frac{1}{6} \alpha _{i-\frac{1}{2}}^p r_p{\Big )}\\&\quad - \sum _{p: \lambda _p> 0} {\Big (} - \frac{1}{6} \alpha _{i+\frac{3}{2}}^p r_p + \frac{2}{6} \alpha _{i+\frac{1}{2}}^p r_p - \frac{1}{6} \alpha _{i-\frac{1}{2}}^p r_p{\Big )} {\Big )}\\&= \frac{1}{6} \left( \sum _{p: \lambda _p < 0} \left( -\alpha _{i+\frac{3}{2}}^p r_p + \alpha _{i+\frac{1}{2}}^p r_p \right) + \sum _{p: \lambda _p > 0} \left( \alpha _{i-\frac{1}{2}}^p r_p - \alpha _{i+\frac{1}{2}}^p r_p \right) \right). \end{aligned} \end{aligned}$$
(33)

In the last line, we use the relation \(Q_{i}^n - Q_{i-1}^n = \sum\limits _{p} \alpha _{i-\frac{1}{2}}^p r_p\).

A similar computation shows that the interface solution of the Riemann problem (28) can be expressed in the form

$$\begin{aligned} q_{xx}(x_{i+\frac{1}{2}},t_n) = \frac{1}{\Delta x^2} \left( \sum _{p: \lambda _p < 0} \left( \alpha _{i+\frac{3}{2}}^p r_p - \alpha _{i+\frac{1}{2}}^p r_p \right) + \sum _{p: \lambda _p > 0} \left( \alpha _{i+\frac{1}{2}}^p r_p - \alpha _{i-\frac{1}{2}}^p r_p \right) \right) . \end{aligned}$$
(34)

Inserting the expressions for \(q_{i+\frac{1}{2}}^{3{\text {rd}}}\) and \(q_{xx}(x_{i+\frac{1}{2}},t_n)\) into (30) provides the third-order correction flux. The complete correction flux of the third-order accurate WPA has the form

$$\begin{aligned} \begin{aligned} {{{\mathcal {F}}}}_{i-\frac{1}{2}}&:= \sum _{p=1}^m \frac{1}{2} |\lambda ^p| \left( 1 - \frac{\Delta t}{\Delta x} |\lambda ^p | \right) \mathcal{W}_{i-\frac{1}{2}}^p\\&\quad - \, \frac{1}{6} \left( 1 - \left( \frac{\Delta t \lambda ^p}{\Delta x} \right) ^2 \right) \left( \max (\lambda ^p, 0) \left( \mathcal{W}_{i-\frac{1}{2}}^p - {{{\mathcal {W}}}}_{i-\frac{3}{2}}^p \right) + \min (\lambda ^p, 0) \left( {{{\mathcal {W}}}}_{i+\frac{1}{2}}^p - \mathcal{W}_{i-\frac{1}{2}}^p \right) \right) , \end{aligned} \end{aligned}$$
(35)

where the first line describes the second-order correction flux and the second line describes the additional correction required to obtain the third order. The waves \({{{\mathcal {W}}}}_{k+\frac{1}{2}}^p\), \(k=i-2, i-1, i\) are defined as in the standard WPA, i.e., \(\mathcal{W}_{k+\frac{1}{2}}^p = \alpha _{k+\frac{1}{2}}^p r_p\) with \(\alpha _{k+\frac{1}{2}} = R^{-1} (Q_{k+1}^n - Q_k^n)\).

A limited version of the method can be obtained by writing the correction flux \({{{\mathcal {F}}}}_{i-\frac{1}{2}}\) in the form

$$\begin{aligned} {{{\mathcal {F}}}}_{i-\frac{1}{2}} := \frac{1}{2} \sum _p |\lambda ^p| \left( 1 - \frac{\Delta t}{\Delta x} | \lambda ^p | \right) \mathcal{W}_{i-\frac{1}{2}}^p \phi _{i-\frac{1}{2}}^p \end{aligned}$$
(36)

with

$$\begin{aligned} \phi _{i-\frac{1}{2}}^p := \left\{ \begin{array}{ccc} 1 - \frac{1+|\nu ^p|}{3} \frac{ \alpha _{i-\frac{1}{2}}^p - \alpha _{i-\frac{3}{2}}^p }{ \alpha _{i-\frac{1}{2}}^p }, &{} \lambda ^p > 0, \\ 1 - \frac{1+|\nu ^p|}{3} \frac{ \alpha _{i-\frac{1}{2}}^p - \alpha _{i+\frac{1}{2}}^p }{ \alpha _{i-\frac{1}{2}}^p }, &{} \lambda ^p < 0. \end{array}\right. \end{aligned}$$
(37)

Here, we use the abbreviation \(\nu ^p := \lambda ^p \Delta t / \Delta x\). For \(p=1, \cdots , m\), we limit \(\phi _{i-\frac{1}{2}}^p\) such that

$$\begin{aligned} {\tilde{\phi }}_{i-\frac{1}{2}}^p := \max \left( 0, \min \left( \frac{2}{1-\nu ^p}, \phi _{i-\frac{1}{2}}^p, \frac{2}{\nu ^p} \theta _{i-\frac{1}{2}}^p \right) \right)\, \text{ with } \theta _{i-\frac{1}{2}}^p := \left\{ \begin{array}{ccc} \frac{\alpha _{i-\frac{3}{2}}^p}{\alpha _{i-\frac{1}{2}}^p}, &{} \lambda ^p > 0, \\ \frac{\alpha _{i+\frac{1}{2}}^p}{\alpha _{i-\frac{1}{2}}^p}, &{} \lambda ^p < 0. \end{array}\right. \end{aligned}$$
(38)

The limited method is obtained by replacing \(\phi _{i-\frac{1}{2}}^p\) by \({\tilde{\phi }}_{i-\frac{1}{2}}^p\) in (36). The implementation of (37) and (38) needs to avoid division by zero.

In Figs. 5 and 6, we show numerical results for linear acoustics. The acoustic equations (see [19]) can be written in the form (25) with

$$\begin{aligned} q = \left( \begin{array}{c} u \\ p \end{array} \right) , \quad A = \left( \begin{array}{c c} 0 &{} K_0 \\ 1/\rho _0 &{} 0 \end{array} \right) , \end{aligned}$$

where \(\rho _0\) and \(K_0\) are given constant values which represent density and bulk modulus of compressibility. As initial data we use

$$\left\{\begin{aligned} \begin{aligned} p(x,0)&= \exp (-100 x^2 ) \sin (80 x),\\ u(x,0)&= 0. \end{aligned} \end{aligned}\right.$$
(39)
Fig. 5
figure5

Approximation of a wave packet (pressure component) at time \(t=2.4\) using the second- and third-order accurate versions of the WPA with 200 grid cells and time steps such that \(|u| \Delta t / \Delta x \le 0.9\)

Fig. 6
figure6

Approximation of a wave packet (pressure component) at time \(t=6.4\) using the second- and third-order accurate versions of the WPA with 200 grid cells and time steps such that \(|u| \Delta t / \Delta x \le 0.9\)

The wave package splits into two wave packages, one moving to the left and one moving to the right. Using periodic boundary conditions, the exact solution at \(t=2\) will agree with the initial data. In Fig. 5 we show results at time \(t=2.4\), after the wave package has split for the second time into two wave packages. In Fig. 6 we show the numerical results at a later time.

The definition of waves and speeds used by the WPA can be found in [19]. Figure 4(b) shows results of a convergence study for the acoustics problem, which confirms the third-order accuracy. For this smooth solution profile, limiting is not needed. Our results show that the limiter does not degrade the accuracy.

Comparison with ADER Methods

As an alternative to the approach used in (17) we can construct finite volume methods for linear hyperbolic problems based on the ansatz

$$\begin{aligned} Q_i^{n+1} \approx Q_i^n - \frac{1}{\Delta x} \int _0^{\Delta t} \left( A q\left( x_{i+\frac{1}{2}},t_n+\tau \right) - A q\left( x_{i-\frac{1}{2}},t_n+\tau \right) \right) {\text {d}}\tau . \end{aligned}$$
(40)

Using the first three terms of a Taylor series expansion, we obtain the approximation

$$\begin{aligned} q(x_{i+\frac{1}{2}},t_n + \tau ) \approx q\left( x_{i+\frac{1}{2}},t_n\right) + \tau q_t\left( x_{i+\frac{1}{2}},t_n\right) + \frac{1}{2} \tau ^2 q_{tt}\left( x_{i+\frac{1}{2}},t_n\right) . \end{aligned}$$
(41)

Now, we can again replace temporal derivatives by spatial derivatives, using \(q_t = -A q_x\) and \(q_{tt} = A^2 q_{xx}\), and obtain a finite volume method of the form

$$\begin{aligned} \begin{aligned} Q_i^{n+1}&= Q_i^n - \frac{\Delta t}{\Delta x} \left( F_{i+\frac{1}{2}} - F_{i-\frac{1}{2}} \right) \\ \text{ with } \quad F_{i \pm \frac{1}{2}}&\approx A q\left( x_{i \pm \frac{1}{2}},t_n\right) - \frac{1}{2} \Delta t A^2 q_x\left( x_{i \pm \frac{1}{2}},t_n\right) + \frac{1}{6} \Delta t^3 A^3 q_{xx}\left( x_{i \pm \frac{1}{2}},t_n\right) , \end{aligned} \end{aligned}$$
(42)

which agrees with (26). In ADER methods [27, 28], the terms \(q(x_{i \pm \frac{1}{2}},t_n)\), \(q_x(x_{i \pm \frac{1}{2}},t_n)\) and \(q_{xx}(x_{i \pm \frac{1}{2}},t_n)\) are obtained by solving generalized Riemann problems. In our third-order accurate WPA, we solved Riemann problems to approximate \(q(x_{i \pm \frac{1}{2}},t_n)\) and \(q_{xx}(x_{i \pm \frac{1}{2}},t_n)\), but not for \(q_x(x_{i \pm \frac{1}{2}},t_n)\).

There are different options to choose the initial values for the generalized Riemann problems. In the wave propagation method, we use unlimited values of appropriate order as discussed in Eqs. (27) and (28). This is possible, since limiting is introduced in the form of a wave limiter. In ADER methods nonlinear reconstructions such as TVD, ENO or WENO are used in each time step to construct a polynomial of the desired degree in each grid cell. Those polynomials are then used to define the initial values of the generalized Riemann problems.

Nonlinear Problems

Scalar Problems

To construct a third-order accurate wave propagation method for one-dimensional, scalar, nonlinear hyperbolic conservation laws, we will use the formulas

$$\begin{aligned} q_t = - f(q)_x, \quad q_{tt} = (f'(q) f(q)_x)_x, \quad q_{ttt} = - ((f'(q))^2 f(q)_x)_{xx} \end{aligned}$$
(43)

to replace time derivatives of q in the Taylor series expansion (17) by spatial derivatives, see [8] for a derivation. Note that these formulas are only valid in the scalar case. After integration in space, we obtain

$$\begin{aligned} Q_i^{n+1} = Q_i^n - \frac{\Delta t}{\Delta x} f(q) \Big \vert _{x_{i-\frac{1}{2}}}^{x_{i+\frac{1}{2}}} + \frac{1}{2} \frac{\Delta t^2}{\Delta x} f'(q)f(q)_x \Big \vert _{x_{i-\frac{1}{2}}}^{x_{i+\frac{1}{2}}} - \frac{1}{6} \frac{\Delta t^3}{\Delta x} \left( (f'(q))^2 f(q)_x \right) _x \Big \vert _{x_{i-\frac{1}{2}}}^{x_{i+\frac{1}{2}}}. \end{aligned}$$
(44)

Thus, we need a third-order accurate approximation of the second term on the right-hand side, a second-order accurate approximation of the third term and a first-order accurate approximation of the last term. The interface flux can be reconstructed using either of the two formulas

$$\begin{aligned} \begin{aligned} f(q) \Big \vert _{x=x_{i+\frac{1}{2}}}&= f_{i} + \frac{1}{2} (f_{i+1}-f_i) -\frac{1}{6} (f_{i-1}-2 f_{i} + f_{i+1}) \\ \text{ or } \quad f(q) \Big \vert _{x=x_{i+\frac{1}{2}}}&= f_{i+1} - \frac{1}{2} (f_{i+1}-f_i) -\frac{1}{6} (f_{i}-2 f_{i+1} + f_{i+2}). \end{aligned} \end{aligned}$$
(45)

We use the first line if \(f'_{i+\frac{1}{2}}\) is larger than zero; otherwise, we use the second line. Here \(f'_{i+\frac{1}{2}}\) is an approximation of \(f'(q(x_{i+\frac{1}{2}},t_n))\). A second-order accurate approximation of this value is sufficient to get a third-order accurate method.

For the other two terms, we can use approximations of the form

$$\left\{\begin{aligned} \begin{aligned} f'(q) f(q)_x \Big \vert _{x=x_{i+\frac{1}{2}}}&= \frac{1}{\Delta x} f_{i+\frac{1}{2}}' (f_{i+1} - f_i), \\ \left( (f'(q))^2 f(q)_x \right) _x \Big \vert _{x=x_{i+\frac{1}{2}}}&= \frac{1}{\Delta x^2} \left( f_{I+\frac{3}{2}}^{'2}(f_{I+2}-f_{I+1}) - f_{I+\frac{1}{2}}^{'2} (f_{I+1} - f_I)\right) \end{aligned} \end{aligned}\right.$$
(46)

with \(I:=i-1\) if \(f'_{i+\frac{1}{2}} > 0\) and \(I := i\) otherwise.

Since our discretization of (44) uses differences of cell averaged fluxes, we base our third-order accurate method on the f-wave version of the WPA. The resulting method has the form

$$\begin{aligned} Q_i^{n+1} = Q_i^n - \frac{\Delta t}{\Delta x} \left( {{{\mathcal {A}}}}^+ \Delta Q_{i-\frac{1}{2}} + {{{\mathcal {A}}}}^- \Delta Q_{i+\frac{1}{2}} \right) - \frac{\Delta t}{\Delta x} \left( {{{\mathcal {F}}}}_{i+\frac{1}{2}} - \mathcal{F}_{i-\frac{1}{2}} \right) \end{aligned}$$
(47)

with

$$\begin{aligned} \begin{aligned} {{{\mathcal {F}}}}_{i-\frac{1}{2}} :=&\frac{1}{2} \text{ sign }\left( s_{i-\frac{1}{2}}\right) \left( 1 - \frac{\Delta t}{\Delta x} | s_{i-\frac{1}{2}} | \right) {{{\mathcal {Z}}}}_{i-\frac{1}{2}} \\&- \frac{1}{6} \left( 1 - \left( \frac{\Delta t}{\Delta x} s_{I-\frac{1}{2}} \right) ^2 \right) {{{\mathcal {Z}}}}_{I-\frac{1}{2}} - \frac{1}{6} \left( 1 - \left( \frac{\Delta t}{\Delta x} s_{I-\frac{3}{2}} \right) ^2 \right) {{{\mathcal {Z}}}}_{I-\frac{3}{2}}. \end{aligned} \end{aligned}$$
(48)

We set \(I:=i\) if \(s_{i-\frac{1}{2}} > 0\) and \(I := i+1\) otherwise. For scalar equations, we define f-waves at each grid cell interface by \({{{\mathcal {Z}}}}_{i-\frac{1}{2}} := f_i-f_{i-1}\). The wave speed \(s_{i-\frac{1}{2}}\) at each interface is an approximation of \(f_{i-\frac{1}{2}}'\) . We approximate this term using the Rankine–Hugoniot condition \(s_{i-\frac{1}{2}} := \frac{f_i - f_{i-1}}{Q_i-Q_{i-1}}\).

Note that \(f_i\) needs to be a third-order accurate approximation of the averaged flux in grid cell i, in order for (45) to be a third-order accurate approximation of the interface flux, i.e.,

$$\begin{aligned} f_i = \frac{1}{\Delta x} \int _{x_{i-\frac{1}{2}}}^{x_{i+\frac{1}{2}}}f(q(x,t_n)) {\text {d}}x + {{{\mathcal {O}}}}(\Delta x^3). \end{aligned}$$
(49)

Such a quantity is not computed in a typical finite volume method. For the second-order accurate method discussed in Sect. 2.2, one can evaluate the flux function for the cell average value, i.e., compute \(f(Q_i^n)\) instead. This choice would, however, not lead to a third-order accurate method. To compute \(f_i\), we use a transformation between cell average values and point values, as previously used in [3, 4] to get high-order accurate WENO methods using a dimension-by-dimension approach. We first compute point values of the conserved quantity using a transformation of the form

$$\begin{aligned} q_i^n := Q_i^n - (Q_{i-1}^n - 2 Q_i ^n + Q_{i+1}^n)/24,\quad \forall i. \end{aligned}$$
(50)

If the cell average values were arbitrarily accurate, this transformation would provide forth-order accurate point values of the conserved quantity. Since our cell average values are third-order accurate, the point values are also third-order accurate approximations, i.e., \(q_i^n = q(x_i, t_n) + {{{\mathcal {O}}}}(\Delta x^3)\). Now, we can compute point values of the flux which are third-order accurate

$$\begin{aligned} f(q_i^n) = f(q(x_i,t_n)) + {{{\mathcal {O}}}}(\Delta x^3). \end{aligned}$$
(51)

Finally, we transform point values of the flux to third-order accurate averaged values of the flux using the relation

$$\begin{aligned} f_i := f(q_i^n) + ( f(q_{i-1}^n) - 2 f(q_i^n) + f(q_{i+1}^n)) / 24. \end{aligned}$$
(52)

To test the convergence rate of the method, we consider Burgers’ equation with initial values of the form

$$\begin{aligned} q(x,0) = -\text{e}^{-50(x-0.5)^2} \sin (2 \pi x) \end{aligned}$$
(53)

on the interval [0, 1] with periodic boundary conditions. The initial values as well as the numerical solution at time \(t=0.2\) is shown in Fig. 7. Table 1 shows the results of a numerical convergence study. In this table, we show the error in the \(\Vert \cdot \Vert _1\) norm as well as the experimental order of convergence (EOC). An “exact” solution was computed using the numerical method on a very refined mesh.

Fig. 7
figure7

Test computation for Burgers’ equation using the third-order accurate version of the WPA

Table 1 Convergence study for Burgers’ equation comparing the second and the third-order accurate WPA

Nonlinear Systems

A straight-forward extension of the method presented in the previous section takes all the waves appearing in an eigenvector decomposition of \(f_i - f_{i-1}\) into account. This leads to a wave propagation method of the form (4) with

$$\begin{aligned} {{{\mathcal {A}}}}^+ \Delta Q_{i-\frac{1}{2}} := \sum _{p : s_{i-\frac{1}{2}}^p > 0} {{{\mathcal {Z}}}}_{i-\frac{1}{2}}^p, \quad {{{\mathcal {A}}}}^- \Delta Q_{i+\frac{1}{2}} := \sum _{p : s_{i+\frac{1}{2}}^p < 0} {{{\mathcal {Z}}}}_{i+\frac{1}{2}}^p \end{aligned}$$
(54)

and

$$\begin{aligned} \begin{aligned} {{{\mathcal {F}}}}_{i-\frac{1}{2}}&:= \sum _p \frac{1}{2} \text{ sign } \left( s_{i-\frac{1}{2}}^p\right) \left( 1 - \frac{\Delta t}{\Delta x} |s_{i-\frac{1}{2}}^p| \right) {{{\mathcal {Z}}}}_{i-\frac{1}{2}}^p \\&\quad - \sum _{p : s_{i-\frac{1}{2}}^p > 0} \left( \frac{1}{6} \left( 1 - \left( \frac{\Delta t}{\Delta x} s_{i-\frac{1}{2}}^p \right) ^2 \right) {{{\mathcal {Z}}}}_{i-\frac{1}{2}}^p - \frac{1}{6} \left( 1 - \left( \frac{\Delta t}{\Delta x} s_{i-\frac{3}{2}}^p \right) ^2 \right) {{{\mathcal {Z}}}}_{i-\frac{3}{2}}^p \right) \\&\quad - \sum _{p : s_{i-\frac{1}{2}}^p < 0} \left( \frac{1}{6} \left( 1 - \left( \frac{\Delta t}{\Delta x} s_{i+\frac{1}{2}}^p \right) ^2 \right) {{{\mathcal {Z}}}}_{i+\frac{1}{2}}^p - \frac{1}{6} \left( 1 - \left( \frac{\Delta t}{\Delta x} s_{i-\frac{1}{2}}^p \right) ^2 \right) {{{\mathcal {Z}}}}_{i-\frac{1}{2}}^p \right). \end{aligned} \end{aligned},$$
(55)

Here, \(s_{i-\frac{1}{2}}^p\) are eigenvalues of the flux Jacobian matrix \(f_{i-\frac{1}{2}}'\) discretized at the grid cell interface. The definition of the flux difference waves \({{{\mathcal {Z}}}}^p\) and the speeds \(s^p\) follows the approach of Sect. 2.2 but with \(f(Q_i)\) replaced by the third-order accurate averaged flux \(f_i\), as discussed in the previous section.

However, for nonlinear systems, the resulting method is only second-order accurate. The reason for this loss of accuracy is that the term \(q_{ttt}\) presented in (43) is not consistent for nonlinear systems. We found that a consistent approximation of this term can be written in the form

$$\begin{aligned} q_{ttt} = -\left( \left( f'(q) \right) ^2 f(q)_x \right) _{xx} + \left( f^{(2)} \cdot \left( q_x, f' f(q)_x \right) - f^{(2)} \cdot \left( f(q)_x, f(q)_x\right) \right) _x, \end{aligned}$$
(56)

where \(f^{(2)} \cdot (v_1, v_2)\) is the Hessian applied to the vectors \(v_1\) and \(v_2\).

This means that we need to add a correction flux at each grid cell interface of the form

$$\begin{aligned} F_{i \pm \frac{1}{2}}^{\text{corr}} := \left( f^{(2)} \cdot \left( q_x, f' f(q)_x \right) - f^{(2)} \cdot \left( f(q)_x, f(q)_x\right) \right) \Big \vert _{x_{i \pm \frac{1}{2}}}, \quad \forall i. \end{aligned}$$
(57)

Any consistent spatial discretization of the terms on the right-hand side of (57) would be appropriate. Since we do not need higher-order reconstructions to approximate this correction flux, we do not need to include a limiting for this term. Here, we use a simple centered approximation.

The finite volume method has the form

$$\begin{aligned} Q_i^{n+1}= & {} Q_i^n - \frac{\Delta t}{\Delta x} \left( {{{\mathcal {A}}}}^+ \Delta Q_{i-\frac{1}{2}} + {{{\mathcal {A}}}}^- \Delta Q_{i+\frac{1}{2}} \right) \nonumber \\&- \frac{\Delta t}{\Delta x} \left( {{{\mathcal {F}}}}_{i+\frac{1}{2}} - \mathcal{F}_{i-\frac{1}{2}} \right) + \frac{\Delta t^3}{6 \Delta x} \left( F_{i+\frac{1}{2}}^{{\text {corr}}} - F_{i-\frac{1}{2}}^{{\text {corr}}} \right) . \end{aligned}$$
(58)

Limiting for nonlinear systems only needs to be incorporated into the higher-order correction terms \({{{\mathcal {F}}}}_{i \pm \frac{1}{2}}\). We can adapt the limiting concept of the previous section and consider a correction flux of the form

$$\begin{aligned} {{{\mathcal {F}}}}_{i-\frac{1}{2}} := \sum _p \frac{1}{2} \text{ sign }\left( s_{i-\frac{1}{2}}^p\right) \left( 1 - \frac{\Delta t}{\Delta x} |s_{i-\frac{1}{2}}^p| \right) {{{\mathcal {Z}}}}_{i-\frac{1}{2}}^p \phi _{i-\frac{1}{2}}^p. \end{aligned}$$
(59)

Note that for nonlinear systems, we have a different set of eigenvectors at each grid cell interface. Therefore, it does not make sense to simply use the \(\alpha ^p\) values (as in the linear case) to describe \(\phi _{i-\frac{1}{2}}^p\) as well as the limited version of it. Instead, we use a concept that was also used by the second-order WPA, namely that the neighbouring vectors \({{{\mathcal {Z}}}}_{i-\frac{3}{2}}^p\) and \(\mathcal{Z}_{i+\frac{1}{2}}^p\) are projected onto the vector \(\mathcal{Z}_{i-\frac{1}{2}}^p\). This leads us to define

$$\begin{aligned} \phi _{i-\frac{1}{2}}^p := \left\{ \begin{array}{ccc} 1 - \frac{1}{3} \frac{\left( 1-\nu _{i-\frac{1}{2}}^2\right) - \left( 1-\nu _{i-\frac{3}{2}}^2\right) \theta _{i-\frac{1}{2}}^p}{ \text{ sign }\left( \nu _{i-\frac{1}{2}}\right) \left( 1-|\nu _{i-\frac{1}{2}}|\right) }, &{} s_{i-\frac{1}{2}}^p > 0, \\ \frac{1}{3} \frac{\left( 1-\nu _{i+\frac{1}{2}}^2\right) \theta _{i-\frac{1}{2}}^p - \left( 1 - \nu _{i-\frac{1}{2}}^2\right) }{ \text{ sign }\left( \nu _{i-\frac{1}{2}}\right) \left( 1-|\nu _{i-\frac{1}{2}}|\right) } - 1, &{} s_{i-\frac{1}{2}}^p < 0 \end{array} \right. \end{aligned}$$
(60)

with \(\nu _{i-\frac{1}{2}}:= \frac{\Delta t}{\Delta x} s_{i-\frac{1}{2}}^p\) and

$$\begin{aligned} \theta _{i-\frac{1}{2}}^p := \frac{1}{\Vert {{{\mathcal {Z}}}}_{i-\frac{1}{2}}^p \Vert _2^2} \left\{ \begin{array}{ccc} \mathcal{Z}_{i-\frac{3}{2}}^p \cdot \mathcal{Z}_{i-\frac{1}{2}}^p, &{} s_{i-\frac{1}{2}}^p > 0, \\ {{{\mathcal {Z}}}}_{i+\frac{1}{2}}^p \cdot \mathcal{Z}_{i-\frac{1}{2}}^p, &{} s_{i-\frac{1}{2}}^p < 0. \end{array} \right. \end{aligned}$$
(61)

Now, limiting can be applied to \(\phi _{i-\frac{1}{2}}^p\) in analogy to the linear case.

We test the new version of the wave propagation algorithm for the Euler equations of gas dynamics, i.e., we consider the hyperbolic system

$$\begin{aligned} \left( \begin{array}{c} \rho \\ \rho u \\ E\end{array}\right) _t + \left( \begin{array}{c} \rho u \\ \rho u^2 + p \\ u (E+p) \end{array} \right) _x = 0 \end{aligned}$$
(62)

with the ideal gas equation of state

$$\begin{aligned} E = \frac{p}{\gamma -1} + \frac{1}{2} \rho u^2. \end{aligned}$$
(63)

In our first test problem, we start with smooth initial values of the form

$$\left\{\begin{aligned} \begin{aligned} \rho (x,0)&= p(x,0) = 1 + \frac{1}{2} \exp \left( -80 x^2 \right), \\ u(x,0)&= 0. \end{aligned} \end{aligned}\right.$$
(64)

We use periodic boundary conditions on the interval \( x \in [-1,1]\) and let the solution evolve to \(t=0.6\). Numerical results for density are shown in Fig. 8. In Table 2, we show the results of a convergence study. To compute the experimental order of convergence, we compare the numerical solution on different grids with a highly resolved reference solution.

Fig. 8
figure8

Accuracy test computed with the (left) second-order and (right) third-order accurate versions of the WPA. The solid line is a highly resolved reference solution

Table 2 Results of a convergence test for the nonlinear Euler equations

Finally, we use the limited versions of the WPA to compute solutions of the well-known Shu–Osher test problem [25]. We solve the Euler equations with initial values of the form

$$\begin{aligned} (\rho , u, p) (x,0) = \left\{ \begin{array}{ll} (3.857 \,142, 2.629 \,369, 10.333\,3), &{} x \le -4, \\ (1+0.2 \sin (5 x), 0, 1), &{} x \ge -4. \end{array}\right. \end{aligned}$$

Numerical results for the density at time \(t=2\) computed on different grids, comparing the second-order accurate version with the third-order accurate version of the WPA, can be found in Fig. 9.

Fig. 9
figure9

Comparison between the second- (first row) and the third- (second row) order accurate wave propagation method on different grids for the Shu–Osher problem. The solid line is a reference solution of density computed on a grid with \(10^4\) grid cells

Extension to the Two-Dimensional Case

We now consider two-dimensional hyperbolic problems of the general form

$$\begin{aligned} q_t + f(q)_x + g(q)_y = 0 \end{aligned}$$
(65)

with a vector-valued conserved quantity \(q: {\mathbb {R}}^2 \times {\mathbb {R}}^+ \rightarrow {\mathbb {R}}^m\) and vector valued flux functions \(f, g: {\mathbb {R}}^m \rightarrow {\mathbb {R}}^m\).

Fractional Step Methods

On a Cartesian grid, one possibility to extend a one-dimensional method to a two-dimensional method consists in using a dimensional split approach. This means that (65) is approximated by solving subsequently one-dimensional problems of the form

$$\begin{aligned} q_t + f(q)_x = 0 \end{aligned}$$
(66)

and

$$\begin{aligned} q_t + g(q)_y = 0. \end{aligned}$$
(67)

For methods up to second order, Strang splitting is a well-known approach. One time step can be written in the form

$$\begin{aligned} Q^{n+1} = L_x^{\Delta t/2} L_y^{\Delta t} L_x^{\Delta t/2} Q^n, \end{aligned}$$

where \(L_x^\tau \) and \(L_y^\tau \) are the solution operators of (66) and (67), respectively, over a time step of size \(\tau \). Starting with the numerical solution at time \(t_n\), the problem is first solved in the x-direction for all rows of the Cartesian grid, using a one-dimensional method with time step \(\Delta t/2\). Then, a one-dimensional method is used in the y-direction using a time step \(\Delta t\). Finally, another solution step in the x-direction is carried out using again a time step \(\Delta t/2\). The roles of x and y are interchangeable.

Jia and Li [13] proposed a third-order accurate splitting method. One time step of that method can be expressed in the form

$$\begin{aligned} \begin{aligned} Q^{(1)}&= L_x^{\Delta t/2} L_y^{\Delta t} L_x^{\Delta t/2} Q^n, \\ Q^{(2)}&= L_y^{\Delta t/2} L_x^{\Delta t} L_y^{\Delta t/2} Q^n, \\ Q^{(3)}&= L_y^{\Delta t} L_x^{\Delta t} Q^n, \\ Q^{(4)}&= L_x^{\Delta t} L_y^{\Delta t} Q^n, \\ Q^{n+1}&= \frac{2}{3} \left( Q^{(1)} + Q^{(2)} \right) - \frac{1}{6} \left( Q^{(3)} + Q^{(4)} \right). \end{aligned} \end{aligned}$$

Strang splitting is already an option in the second-order accurate version of CLAWPACK and the splitting of Jia and Li can easily be implemented. However, we are mainly interested in truly multidimensional methods, which do not rely on a splitting approach. Such methods will be discussed next.

Unsplit Methods

In this section, we consider two-dimensional linear hyperbolic systems of the general form

$$\begin{aligned} q_t + A q_x + B q_y = 0. \end{aligned}$$
(68)

The Taylor series expansion of the exact solution leads to

$$\begin{aligned} q(x,y,t_{n+1}) = q(x,y,t_n) + \Delta t q_t(x,y,t_n) + \frac{1}{2} \Delta t^2 q_{tt}(x,y,t_n) + \frac{1}{6} \Delta t^3 q_{ttt}(x,y,t_n) + {{{\mathcal {O}}}}(\Delta t^4). \end{aligned}$$

Using (68) we obtain

$$\begin{aligned} \begin{aligned} q_t(x,y,t_n)&= - A q_x - Bq_y, \\ q_{tt}(x,y,t_n)&= A^2 q_{xx} + AB q_{yx} + BA q_{xy} + B^2 q_{yy}, \\ q_{ttt}(x,y,t_n)&= -A^3q_{xxx} -A^2 B q_{yxx} - ABA q_{xyx} - AB^2 q_{yyx} \\&\quad - BA^2 q_{xxy} - BABq_{yxy} - B^2A q_{xyy} - B^3 q_{yyy}. \end{aligned} \end{aligned}$$

In the two-dimensional case, the WPA can be written in the form (see [17, 18])

$$\begin{aligned} \begin{aligned} Q_{i,j}^{n+1}&= Q_{i,j}^n - \frac{\Delta t}{\Delta x} \left( \mathcal{A}^+ \Delta Q_{i-\frac{1}{2},j} + {{{\mathcal {A}}}}^- \Delta Q_{i+\frac{1}{2},j} \right) - \frac{\Delta t}{\Delta y} \left( \mathcal{B}^+ \Delta Q_{i,j-\frac{1}{2}} + {{{\mathcal {B}}}}^- \Delta Q_{i,j+\frac{1}{2}} \right) \\&\quad - \, \frac{\Delta t}{\Delta x} \left( \mathcal{F}_{i+\frac{1}{2},j} - {{{\mathcal {F}}}}_{i-\frac{1}{2},j} \right) - \frac{\Delta t}{\Delta y} \left( {{{\mathcal {G}}}}_{i,j+\frac{1}{2}} - \mathcal{G}_{i,j-\frac{1}{2}} \right) . \end{aligned} \end{aligned}$$
(69)

For linear hyperbolic systems, the terms \(Aq_x\), \(A^2 q_{xx}\), \(A^3 q_{xxx}\), \(B q_y\), \(B^2 q_{yy}\) and \(B^3 q_{yyy}\) can be approximated in manner analogous to the one-dimensional case. The discretization of the mixed derivative terms \(ABq_{yx}\) and \(BA q_{xy}\) was discussed in [17, 18] and leads to a transverse wave propagation. To construct a third-order accurate WPA, we need to approximate those terms with second-order accuracy as discussed below. Furthermore, we need to approximate terms of the form \(A^2 B q_{yxx}\), \(ABA q_{xyx}\), \(A B^2 q_{yyx}\), \(BA^2 q_{xxy}\), \(BAB q_{yxy}\), \(B^2 A q_{xyy}\). In this paper we restrict our considerations to scalar two-dimensional problems, which leads to some simplifications.

Advection

For the two-dimensional advection equation

$$\begin{aligned} q_t + u q_x + v q_y = 0, \end{aligned}$$

we have

$$\begin{aligned} u^2 v q_{yxx} = uvu q_{xyx} = vu^2 q_{xxy} \end{aligned}$$
(70)

as well as

$$\begin{aligned} uv^2 q_{yyx} = vuv q_{yxy} = v^2 u q_{xyy}. \end{aligned}$$
(71)

We can most easily incorporate those terms by approximating terms of the form \(\frac{1}{2} vu^2 q_{xxy}\) and \(\frac{1}{2} uv^2 q_{yyx}\). To get the full third-order accuracy, we need to discuss the approximation of the terms \(v u q_{xy}\) and \(u v q_{yx}\). We consider the case \(u, v > 0\). In this case, the approximation of the term \(uv q_{yx}\) changes the cell average of the conserved quantity q in grid cell (ij) by

$$\begin{aligned} \frac{u v \Delta t^2}{2 \Delta x \Delta y} \left( (Q_{i,j}^n - Q_{i,j-1}^n) - (Q_{i-1,j}^n-Q_{i-1,j-1}^n)\right) . \end{aligned}$$

Using the Taylor series expansion, we see that those terms approximate

$$\begin{aligned} \frac{1}{2} u v \Delta t^2 q_{yx}(x_i,y_j,t_n) - \frac{1}{4} u v \Delta t^2 \Delta y \, q_{y y x}(x_i,y_j,t_n) - \frac{1}{4} u v \Delta t^2 \Delta x\, q_{yxx}(x_i, y_j, t_n) \end{aligned}$$
(72)

to leading order. Analogously, the approximation of the \(v u q_{xy}\) term changes the cell average of q in cell (ij) by

$$\begin{aligned} \frac{u v \Delta t^2}{2 \Delta x \Delta y} \left( (Q_{i,j}^n - Q_{i-1,j}^n) - (Q_{i,j-1}^n - Q_{i-1,j-1}^n) \right) . \end{aligned}$$

This update approximates

$$\begin{aligned} \frac{1}{2}u v \Delta t^2 q_{yx}(x_i,y_j,t_n) - \frac{1}{4} u v \Delta t^2 \Delta y \, q_{y y x}(x_i,y_j,t_n) - \frac{1}{4} u v \Delta t^2 \Delta x\, q_{yxx}(x_i, y_j, t_n) \end{aligned}$$
(73)

to leading order. To get the full third order, we combine the approximation of (70) and (71) with an approximation of the leading term of the local truncation error arising in the approximation of the mixed second derivative terms as discussed in (72) and (73). This shows that we still need to approximate terms of the form

$$\begin{aligned} \frac{1}{2} \Delta t^2 \, \Delta y \, u v \left( 1-\frac{\Delta t}{\Delta y} v \right) q_{yyx}, \quad \frac{1}{2} \Delta t^2 \, \Delta x \, v u \left( 1-\frac{\Delta t}{\Delta x} u \right) q_{xxy}. \end{aligned}$$

In general, u and v might have a negative sign and we need to approximate terms of the form

$$\begin{aligned} \frac{1}{2} \Delta t^2 \, \Delta y \, u |v| \left( 1-\frac{\Delta t}{\Delta y} |v| \right) q_{yyx}, \quad \frac{1}{2} \Delta t^2 \, \Delta x \, v |u| \left( 1-\frac{\Delta t}{\Delta x} |u| \right) q_{xxy}. \end{aligned}$$
(74)

Note that the approximation of those terms already exists in the original second-order accurate version of the WPA. It is the so-called transverse propagation of the second-order correction terms.

To update the two-dimensional advection equation, we use fluxes of the form (21) both in the x-direction as well as the y-direction. In addition, we incorporate the transverse propagation of waves as well as the transverse propagation of correction waves. The resulting method will be called WPA3rd. We can also include the third-order correction waves in the transverse propagation.

Although this is not necessary to obtain a third-order accurate method, it increases the accuracy. This method will be called WPA3rd+. Alternatively, the advection equation can be solved by a splitting of the general form

$$\begin{aligned} Q^{n+1} = L_y^{\Delta t} L_x^{\Delta t} Q^n \end{aligned}$$

without introducing a splitting method. We also use such an approach for comparison. Each substep is solved using the one-dimensional third-order accurate wave propagation method. This method will be called WPA3rd-DS.

In the following test case, we compare WPA3rd, WPA3rd+ and WPA3rd-DS. We consider the advection equation \(q_t + q_x + q_y = 0\) with initial values \(u(x,y,0) = \sin (2\pi x) \sin (2\pi y)\) on the domain \([0,1] \times [0,1]\) with the periodicity condition. In Table 3, we present results of a convergence study, showing the error in the \(\Vert \cdot \Vert _1\) norm as well as the experimental EOC.

Table 3 Convergence study for a smooth two-dimensional advection problem at time \(t=1\)

For this test case, the simple dimensional split approach in combination with the one-dimensional third-order accurate wave propagation method leads to the most accurate results. This is, however, a special property of advection equation. The accuracy of WPA3rd+ is almost as good as the accuracy of WPA3rd-DS. The multidimensional method without transverse propagation of the third-order correction terms, i.e., WPA3rd, leads to the expected third-order convergence rate, but the error is larger.

Burgers’ Equation

Finally, the two-dimensional Burgers’ equation

$$\begin{aligned} q_t + \left( \frac{1}{2} q^2 \right) _x + \left( \frac{1}{2} q^2 \right) _y = 0 \end{aligned}$$

is approximated using the f-wave approach for all the updates in the normal direction. This is done in analogy to the one-dimensional case. The transverse propagation of waves is computed similarly to the advection equation, with the only difference that the constant wave speeds arising in (72) are replaced by local wave speeds that are computed using the Rankine–Hugoniot condition.

In our test simulation, we consider the Burgers’ equation on the domain \([0,1] \times [0,1]\) with periodic boundary conditions. We use initial values of the form

$$\begin{aligned} q(x,y,0) = \sin (2 \pi x) \sin (2 \pi y). \end{aligned}$$

Contour plots of the solution at time \(t=0\), \(t=0.1\) and \(t=0.5\) are shown in Fig. 10. At time \(t=0.5\), shock waves have formed. We used the limited version of the WPA to compute this solution structure. At time \(t=0.1\) the solution structure is still smooth and allows an experimental convergence study. The results of this convergence study are shown in Table  4. To estimate the convergence rate, we compare the solution on different grids with a highly refined reference solution. For all of these calculations, we used time steps according to \(\text{CFL} \le 0.9\).

Fig. 10
figure10

Contour plots of the numerical solution for the two-dimensional Burgers’ equation

Table 4 Results of a numerical convergence study for the two-dimensional Burger’s equation

In analogy to the one-dimensional case, the two-dimensional f-wave methods require third-order accurate averaged fluxes, i.e.,

$$\begin{aligned} f_{ij} = g_{ij} = \frac{1}{\Delta x \Delta y} \int _{y_{j-\frac{1}{2}}}^{y_{j+\frac{1}{2}}} \int _{x_{i-\frac{1}{2}}}^{x_{i+\frac{1}{2}}} \frac{1}{2} (q(x,y,t_n))^2 {\text {d}}x {\text {d}}y + {{{\mathcal {O}}}}(\Delta x^3 + \Delta y^3). \end{aligned}$$

These averaged fluxes are again obtained using transformations between average values and point values. In the two-dimensional case, third-order accurate point values of the conserved quantity are computed using the relation

$$\begin{aligned} q_{ij}^n := Q_{ij}^n - (Q_{i-1,j}^n - 2 Q_{ij}^n + Q_{i+1,j}^n)/24 - (Q_{i,j-1}-2Q_{ij}+Q_{i,j+1})/24. \end{aligned}$$

The third-order accurate averaged flux is computed using the formula

$$\begin{aligned} f_{ij}:= & {} f(q_{ij}^n) + (f(q_{i-1,j}^n) - 2 f(q_{ij}^n) \\&+ f(q_{i+1,j}^n))/24 + (f(q_{i,j-1}^n) - 2 f(q_{ij}^n) + f(q_{i,j+1}^n))/24. \end{aligned}$$

Conclusions

We presented a third-order accurate wave propagation method for linear and nonlinear one- and two-dimension hyperbolic problems. Our two-dimensional results are currently limited to the scalar case, but we plan to overcome this limitation in our forthcoming work. Furthermore, we plan to extend the method for the use on Cartesian grids with adaptive mesh refinement using ForestClaw [5].

References

  1. 1.

    Arora, M., Roe, P.L.: A well behaved TVD limiter for high resolution calculations of unsteady flows. J. Comput. Phys. 132, 2–11 (1997)

  2. 2.

    Bale, D.S., LeVeque, R.J., Mitran, S., Rossmanith, J.A.: A wave propagation method for conservation laws and balance laws with spatially varying flux functions. SIAM J. Sci. Comput. 24, 955–978 (2003)

  3. 3.

    Buchmüller, P., Helzel, C.: Improved accuracy of high-order WENO finite volume methods on Cartesian grids. J. Sci. Comput. 61, 82–126 (2014)

  4. 4.

    Buchmüller, P., Dreher, J., Helzel, C.: Finite volume WENO methods for hyperbolic conservation laws on Cartesian grids with adaptive mesh refinement. Appl. Math. Comput. 272, 460–478 (2016)

  5. 5.

    Calhoun, D.A., Burstedde, C.: ForestClaw: a parallel algorithm for patch-based adaptive mesh refinement on a forest of quadtrees. arXiv:1703.03116v1 (2017)

  6. 6.

    Calhoun, D.A., Helzel, C., LeVeque, R.J.: Logically rectangular grids and finite volume methods for PDEs in circular and spherical domains. SIAM Rev. 50, 723–752 (2008)

  7. 7.

    Costa, A., Macedonio, G.: Numerical simulation of lava flows based on depth-averaged equations. Geophys. Res. Lett. 32, L05304 (2005)

  8. 8.

    Daru, V., Tenaud, C.: High order one-step monotonicity-preserving schemes for unsteady compressible flow calculations. J. Comput. Phys. 193, 563–594 (2004)

  9. 9.

    Eymann, T.A., Roe, P.L.: Multidimensional active flux schemes. In: 21st AIAA Computational Fluid Dynamics Conference, San Diego, CA, June 24–27, 2013. pp. 2013–2940, AIAA (2013)

  10. 10.

    Fogarty, T.R., LeVeque, R.J.: High-resolution finite volume methods for acoustic waves in periodic and random media. J. Acoust. Soc. Am. 106, 17–28 (1999)

  11. 11.

    Gottlieb, S., Ketcheson, D., Shu, C.-W.: Strong Stability Preserving Runge–Kutta and Multistep Time Discretizations. World Scientific Publishing Co., Singapore (2010)

  12. 12.

    Helzel, C., Rossmanith, J.A., Taetz, B.: An unstaggered constrained transport method for the 3d ideal magnetohydrodynamics equations. J. Comput. Phys. 230, 3803–3829 (2011)

  13. 13.

    Jia, H., Li, K.: A third accurate operator splitting method. Math. Comput. Modell. 53, 387–396 (2011)

  14. 14.

    Ketcheson, D.L., LeVeque, R.J.: WENOCLAW: a high order wave propagation method. In: Benzoni-Gavage, S., Serre, D. (eds.) Hyperbolic Problems: Theory, Numerics, Applications, pp. 609–616. Springer, Berlin (2008)

  15. 15.

    Langseth, J.O., LeVeque, R.J.: A wave-propagation method for three-dimensional hyperbolic conservation laws. J. Comput. Phys. 165, 126–166 (2000)

  16. 16.

    LeVeque, R.J.: CLAWPACK Software. http://www.amath.washington.edu/~claw

  17. 17.

    LeVeque, R.J.: High-resolution conservative algorithms for advection in incompressible flow. SIAM J. Numer. Anal. 33, 627–665 (1996)

  18. 18.

    LeVeque, R.J.: Wave propagation algorithms for multidimensional hyperbolic systems. J. Comput. Phys. 131, 327–357 (1997)

  19. 19.

    LeVeque, R.J.: Finite Volume Methods for Hyperbolic Problems. Cambridge University Press, New York (2002)

  20. 20.

    LeVeque, R.J., George, D.L., Berger, M.J.: Tsunami modelling with adaptively refined finite volume methods. Acta Numer. 20, 211–289 (2011)

  21. 21.

    Roe, P.L.: Approximate Riemann solvers, parameter vectors, and difference schemes. J. Comput. Phys. 43, 357–372 (1981)

  22. 22.

    Roe, P.L.: Is discontinuous reconstruction really a good idea? J. Sci. Comput. 73, 1094–1114 (2017)

  23. 23.

    Roe, P.L.: Chapter 3—multidimensional upwinding. In: Abgrall R., Shu C.-W. (eds.) Handbook of Numerical Methods for Hyperbolic Problems: Applied and Modern Issues, vol. 18, pp. 53–80. Elsevier B.V., Netherlands (2017)

  24. 24.

    Shu, C.-W.: High order weighted essentially nonoscillatory schemes for convection dominated problems. SIAM Rev. 51, 82–126 (2009)

  25. 25.

    Shu, C.-W., Osher, S.: Efficient implementation of essentially non-oscillatory shock-capturing schemes, II. J. Comput. Phys. 83, 32–78 (1989)

  26. 26.

    Shyue, K.M.: An efficient shock-capturing algorithm for compressible multicomponent problems. J. Comput. Phys. 142, 208–242 (1998)

  27. 27.

    Titarev, V.A., Toro, E.F.: ADER: arbitrary high order godunov approach. J. Sci. Comput. 17, 609–618 (2002)

  28. 28.

    Toro, E.F.: Riemann Solvers and Numerical Methods for Fluid Dynamics. Springer, Berlin (2009)

  29. 29.

    Weekes, S.L.: Numerical computation of wave propagation in dynamic materials. Appl. Numer. Math. 37, 417–440 (2001)

Download references

Author information

Correspondence to Christiane Helzel.

Additional information

This work was supported by the DFG through HE 4858/4-1.

Rights and permissions

Reprints and Permissions

About this article

Verify currency and authenticity via CrossMark

Cite this article

Helzel, C. A Third-Order Accurate Wave Propagation Algorithm for Hyperbolic Partial Differential Equations. Commun. Appl. Math. Comput. (2020). https://doi.org/10.1007/s42967-019-00056-3

Download citation

Keywords

  • Wave propagation algorithm
  • Hyperbolic partial differential equations
  • Third-order accuracy

Mathematics Subject Classification

  • 65M08
  • 76M12