1 Introduction

In this work we want to improve the family of high order accurate ADER \(P_NP_M\) schemes first introduced in [37, 40] for the solution of hyperbolic partial differential equations. In this family of schemes the discrete solution is represented in space through high order piecewise polynomials of degree N at each timestep; the data are then evolved in time through a space-time reconstruction procedure of order M. The reconstruction procedure is divided into two steps: concerning the spatial reconstruction, we employ a classical WENO reconstruction in the case of pure finite volume schemes (\(N=0\)), a reconstruction procedure based on \(L^2\) projection that is linear in the sense of Godunov for \(N>0\) and \(M>N\), and in the case or pure DG schemes (\(N=M\)) the reconstruction reduces to the identity operator; concerning the reconstruction in time, we employ a novel variant of the ADER approach of Toro and Titarev, see [26, 109, 110, 113, 114], based on an element-local space-time Galerkin predictor, see [40]. In practice, we can see the Finite Volume (FV) schemes of order M as a particular case of \(P_NP_M\) methods when \(N=0\), and also the Discontinous Galerkin (DG) methods are included in this family when choosing \(N=M\).

Furthermore, this family contains another important class of hybrid or reconstructed DG schemes when taking \(N>0, M>N\), which are the main object of study of this paper. Indeed, they offer many advantages, in particular their good compromise between cost and resolution. In fact, data are represented with polynomials of order N, so more accurately with respect to FV methods, but without the expensive cost of a full DG representation of approximation degree M; also the CFL stability constraint that limits the timestep size of any explicit scheme, only depends on N and not on M, allowing for larger timesteps once the desired order of accuracy has been fixed, see [40]. Last but not least, for \(N>0\) the \(P_NP_M\) schemes require a much smaller reconstruction stencil than comparable finite volume schemes of degree M. The nominal order of accuracy of the scheme is given by \(M+1\) so it can be at least in principle arbitrary high.

The family of reconstructed DG schemes, which is similar to the \(P_NP_M\) framework, was forwarded independently by Luo et al. in a series of papers, see e.g. [68, 87, 88, 116, 117, 119] and references therein. At this point we also highlight that the use of reconstruction and filtering operators as a post-processor for improving the accuracy of DG schemes goes back to work of Ryan et al., see [72, 77, 90, 99, 100]. Other related work on reconstruction-based DG schemes can be found in [17, 28, 82, 118].

Moreover, the ADER \(P_NP_M\) family provides a useful framework for code developers because it allows to include in a unique code both types of standard discretization methods for hyperbolic PDE (FV and DG schemes), together with the new class of intermediate hybrid schemes for \(M>N>0\). It is then possible to let it up to the user to decide whether for a particular application the use of a robust finite volume approach (\(N=0\)), a very accurate DG scheme (\(N=M\)), or a less expensive but still very accurate intermediate \(P_NP_M\) method with \(M>N>0\), is the most appropriate.

The main drawback so far of the intermediate \(P_NP_M\) schemes with \(M>N>0\), as presented in [40], is that they are linear in the sense of Godunov [64], hence not well suited for dealing with discontinuous problems. For this reason, here we propose a new simple, robust and accurate limiting strategy that is able to stabilize the entire class of \(P_NP_M\) schemes in such a way that they can be employed for the numerical solution of hyperbolic equations with discontinuous solutions, which may arise even when starting with smooth initial conditions. Moreover, the new limiter does not substantially deteriorate the benefits of \(P_NP_M\) schemes in terms of computational cost and accuracy of the original unlimited schemes. To the best knowledge of the authors, this is the first time that an a posteriori subcell finite volume limiter is proposed for general \(P_NP_M\) schemes with \(M>N>0\). So far, only the cases \(N=0\) and \(M=N\) were covered in [40] and [52], respectively.

Our limiter is based on the MOOD approach [29, 35, 36], which has already been successfully applied in the framework of ADER finite volume schemes [21, 22, 85] and Discontinous Galerkin finite element schemes, see [25, 47, 52, 75, 97, 124]. Specifically, the numerical solution is checked a posteriori for nonphysical values and spurious oscillations, and if it does not satisfy all admissibility detection criteria, given by both physical and numerical requirements, in a certain cell, that cell is marked as troubled. Then, instead of applying a limiter to the already computed solution, the solution is locally recomputed with a more robust scheme in the troubled cells, relying either on a second order TVD scheme, as proposed for pure DG schemes in [19, 47, 106], or on a higher order ADER-WENO finite volume method as employed in [23, 32, 52, 95, 124]. Moreover, this second computation is performed on a finer subgrid generated within each troubled cell; the subcell approach is employed in order to maintain the high resolution of the initial \(P_NP_M\) scheme even when passing to a less accurate (but more robust) FV scheme. For the given reasons our limiter is called a posteriori subcell finite volume limiter.

Finally, for a complete review of ADER \(P_NP_M\) schemes we refer to the recent paper [25], where a complete introduction traces the historical developments of these methods up to its latest evolutions.

The rest of the paper is organized as follows. After an introduction of the class of physical phenomena that can be discretized with the proposed numerical method and the structure of our data representation, we present the family of ADER \(P_NP_M\) schemes in Sect. 2. In particular, we describe the reconstruction procedure in space, see Sect. 2.3, and in time see Sect. 2.4; these procedures provide a high order reconstructed polynomial of degree M in space and time that will be used in the final one-step update formula given in Sect. 2.5. Then, Sect. 2.6 is dedicated to our a posteriori subcell FV limiter, which in addition can be combined with mesh adaptation techniques as described in Sect. 2.7.

Next, in Sect. 3 we present a large set of numerical results that shows the order of convergence of our scheme for smooth solutions and their capability of dealing with discontinuities, i.e. their robustness and resolution. We also compare the hybrid reconstructed schemes with pure DG schemes in order to show the resulting gain in terms of computational cost. Finally, we close the paper with some remarks and an outlook to future works in Sect. 4.

2 Numerical Method

In this Section we carefully describe the a posteriori subcell finite volume limiter for general \(P_NP_M\) schemes, showing its simplicity, accuracy, robustness and versatility thanks to the following key ingredients:

  • the use of the unified \(P_NP_M\) framework for finite volume (FV), discontinous Galerkin (DG) and hybrid reconstructed DG schemes allows the user to decide freely which combination of N and M is the better choice for a particular application;

  • the ADER space-time predictor-corrector formalism allows the implementation of a truly arbitrary high order accurate fully discrete one-step scheme that needs only one MPI communication per time step within a parallel HPC implementation, see Sect. 2.4;

  • the a posteriori subcell finite volume limiter avoids spurious oscillations of high order \(P_NP_M\) schemes without affecting the resolution of the underlying method, see Sect. 2.6;

  • the adaptive mesh refinement (AMR) technique allows to use a fine grid only where necessary, resorting to cheaper coarse grids in smooth regions of the solution, see Sect. 2.7.

2.1 Governing PDE System

We consider a very general formulation of the governing equations in order to model a wide class of physical phenomena, namely all those which are described by hyperbolic systems of conservation laws that can be cast into the following form,

$$\begin{aligned} \begin{aligned} \partial _t\mathbf {Q}+ \nabla \cdot \mathbf {F}(\mathbf {Q}) = 0, \qquad \mathbf {x}\in \varOmega (t) \subset \mathbb {R}^d, \qquad \mathbf {Q}\in \varOmega _{\mathbf {Q}} \subset \mathbb {R}^{m}, \end{aligned} \end{aligned}$$
(1)

where \(\mathbf {x}= (x,y,z)\) is the spatial position vector, d is the number of space dimensions, t represents the time, \(\mathbf {Q}= (q_1,q_2, \dots , q_{m})^T\) is the vector of conserved variables defined in the space of the admissible states \(\varOmega _{\mathbf {Q}} \subset \mathbb {R}^{m}\) and \( \mathbf {F}(\mathbf {Q}) = (\,\mathbf {f}(\mathbf {Q}), \mathbf {g}(\mathbf {Q}), \mathbf {h}(\mathbf {Q})\,) = \mathbf {f}^i (\mathbf {Q})\) (\(i=1,2,3\)) is the non-linear flux tensor. This kind of system (1) is said to be hyperbolic if for all directions \(\mathbf {n} \ne \mathbf {0}\) the matrix

$$\begin{aligned} \mathbf {A}_n = \partial \mathbf {F} / \partial {\mathbf {Q}} \cdot \mathbf {n} \end{aligned}$$

has m real eigenvalues and a full set of m linearly independent eigenvectors. Examples of hyperbolic equations are the Euler equations of gasdynamics, the Shallow Water equations [27, 108] and many multiphase models [4, 38, 62] used in fluid mechanics, the magnetohydrodynamics system (MHD) for plasma flow [6, 9], the unified first order hyperbolic formulation of continuum mechanics by Godunov, Peshkov and Romenski (GPR) [43, 48, 49, 65, 66, 93] as well as the special and general relativistic formulations of MHD, see e.g. [3, 5, 10, 33, 41, 56, 122], or for the Einstein field equations (CCZ4) [1, 2, 42, 44]. We will test the method proposed in this paper on some of those systems in order to verify its applicability in different physical domains.

2.2 Domain Discretization and High Order Data Representation (Order N)

On grid level \(\ell =0\) the computational domain \(\varOmega \) is discretized with a uniform Cartesian grid, called main grid or the level zero grid, composed of \(N_E =N_x \times N_y\times N_z\) conforming elements (quadrilaterals if \(d=2\), or hexahedra if \(d=3\)) denoted by \(\varOmega _{\mathbf {i}}= \varOmega _{ijk}, \mathbf {i} =(i,j,k)\) with \(i = 1, \dots , N_x\), \(j=1, \dots , N_y\), \(k=1, \dots , N_z\), with volume \(|\varOmega _{ijk}| = \int _{\varOmega _{ijk}} d\mathbf {x}\) and such that

$$\begin{aligned} \begin{aligned}&\varOmega _{\mathbf {i}}= \varOmega _{ijk} = [x_{i-\frac{1}{2}},x_{i+\frac{1}{2}}]\times [y_{j-\frac{1}{2}},y_{j+\frac{1}{2}}]\times [z_{k-\frac{1}{2}},z_{k+\frac{1}{2}}], \\&\text {with } \ \varDelta x_{i} = x_{i+\frac{1}{2}}-x_{i-\frac{1}{2}}, \quad \varDelta y_{j} = y_{j+\frac{1}{2}}-y_{j-\frac{1}{2}}, \quad \varDelta z_{k} = z_{k+\frac{1}{2}}-z_{k-\frac{1}{2}}. \end{aligned} \end{aligned}$$
(2)

For each element we define a reference frame of coordinates \(\varvec{\xi }=(\xi , \eta , \zeta )\) linked to the Cartesian coordinates \(\mathbf {x}=(x,y,z)\) of \(\varOmega _{ijk}\) by

$$\begin{aligned} \begin{aligned} x = x_{i-\frac{1}{2}} + \xi \varDelta x, \quad y=y_{j-\frac{1}{2}} + \eta \varDelta y, \quad z=z_{k-\frac{1}{2}} + \zeta \varDelta z, \quad \xi , \eta , \zeta \in [0,1]. \end{aligned} \end{aligned}$$
(3)

Then, we represent the conserved variables \(\mathbf {Q}\) of (1) in each cell \(\varOmega _{\mathbf {i}}\) by a \(d-\)dimensional tensor product of piecewise polynomials of degree N

$$\begin{aligned} \begin{aligned}&\mathbf {u}_h(\mathbf {x},t^n) = \mathbf {u}_h(\varvec{\xi }(\mathbf {x})) = \sum \limits _{\ell =0}^{\mathcal {N}-1} \varphi _\ell (\varvec{\xi }) \, \hat{\mathbf {u}}_{\ell ,\mathbf {i}} := \varphi _\ell (\varvec{\xi }) \, \hat{\mathbf {u}}_{\ell ,\mathbf {i}}, \\&\mathbf {x}\in \varOmega _{\mathbf {i}}, \quad \mathcal {N} = (N+1)^d, \end{aligned} \end{aligned}$$
(4)

where \(\varphi _\ell (\varvec{\xi })\) are nodal spatial basis functions given by the tensor product of a set of Lagrange interpolation polynomials of maximum degree N such that

$$\begin{aligned} \begin{aligned} \varphi _\ell (\varvec{\xi }_{\text {GL}}^m)&= \varphi _{\ell _1}\left( \xi _{\text {GL}}^m\right) \varphi _{\ell _2}\left( \eta _{\text {GL}}^m\right) \varphi _{\ell _3}\left( \zeta _{\text {GL}}^m\right) = \delta _{\ell m}, \end{aligned} \end{aligned}$$
(5)

where \(\varvec{\xi }_{\text {GL}}^m\) are the set of \((N+1)^d\) Gauss-Legendre (GL) quadrature points obtained by the tensor product of the GL quadrature points \(\xi _{\text {GL}}^m, \eta _{\text {GL}}^m, \zeta _{\text {GL}}^m\) in the unit interval [0, 1], see [107].

The discontinuous finite element data representation in (4) leads naturally to i) a Discontinuous Galerkin (DG) scheme if \(N>0\) and \(N=M\), where the desired order of accuracy M already coincides with the degree N of the polynomial approximating the data (\(M=N\)), so that high order of accuracy in space can be obtained without the use of any spatial reconstruction operator, and to ii) a Finite Volume (FV) scheme in the case \(N=0\). This indeed means that for \(N=0\) we have \(\varphi _\ell (\varvec{\xi }) = 1\) with \(\ell =0\), and (4) reduces to the classical piecewise constant data representation that is typical of finite volume schemes, where the only degree of freedom per element is the usual cell average \(\hat{\mathbf {u}}_{0}\). In this case the order of accuracy M in space will be obtained through the reconstruction procedure described in next Sect. 2.3. However, iii) also a family of hybrid reconstructed Discontinuous Galerkin methods is included in this representation, where a Hermite-type reconstruction of degree \(M > N\) is performed on cell data represented by polynomials of degree N, see the next Sect. 2.3.

Thus, within the general \(P_NP_M\) formalism one can simultaneously deal with arbitrary high order FV and DG schemes and reconstructed hybrid methods inside a unified framework, with only very few differences between the different schemes (substantially the reconstruction procedure and the type of limiter).

2.3 High Order Spatial Reconstruction (Order M)

In the framework of \(P_NP_M\) schemes, M indicates the highest polynomial approximation degree used for the representation of the discrete solution within the method. Hence, in this Section we describe the reconstruction procedure that is needed to obtain approximation degree M in space from an underlying data representation \(\mathbf {u}_h(\mathbf {x},t^n)\) of lower or equal degree \(N \le M\), i.e. the procedure that generates a spatially high order accurate reconstruction polynomial \(\mathbf {w}_h(\mathbf {x},t^n)\) of degree M

$$\begin{aligned} \mathbf {w}_h(\mathbf {x},t^n) = \sum \limits _{\ell =0}^{\mathcal {M}-1} \psi _\ell (\mathbf {x},t^n) \, \hat{\mathbf {w}}_{\ell ,\mathbf {i}} := \psi _\ell (\mathbf {x},t^n) \, \hat{\mathbf {w}}_{\ell ,\mathbf {i}}, \ \ \mathbf {x}\in \varOmega _{\mathbf {i}}, \ \ \mathcal {M}=(M+1)^d, \end{aligned}$$
(6)

where we formally employ the same nodal basis functions for the reconstruction and for the data representation, see (4). However, note that when \(M \ne N\) of course \(\psi _l(\mathbf {x},t^n)\) does not coincide with \(\varphi _l(\mathbf {x},t^n)\), since the polynomial degree and the positions of the GL points are not the same.

For the sake of a uniform notation, when \(M=N\), we trivially impose that the reconstruction polynomial is given by the DG polynomial, i.e. \(\mathbf {w}_h(\mathbf {x},t^n)=\mathbf {u}_h(\mathbf {x},t^n)\), which automatically implies that in the case \(N=M\) the reconstruction operator is simply the identity.

In the other cases, we employ a polynomial reconstruction procedure implemented in a dimension by dimension fashion in order to compute the coefficients \(\hat{\mathbf {w}}_{\ell ,\mathbf {i}}\) in (6). To better follow the following reasoning we refer the reader also to the Figs. 12 and 3. Focusing on the reconstruction procedure along the x-direction, given an element \(\varOmega _{\mathbf {i}}=\varOmega _{ijk}\), we write the reconstruction polynomial in x-direction \(\mathbf {w}_h^x\) in terms of one dimensional basis functions as

$$\begin{aligned} \mathbf {w}^{x}_{h}(\mathbf {x},t^n)= & {} \sum _{\ell _{1}=0}^{M} \sum _{r_2=0}^{N} \sum _{r_3=0}^{N} \psi _{\ell _{1}}\left( \xi \right) \varphi _{r_2}\left( \eta \right) \varphi _{r_3}\left( \zeta \right) \hat{\mathbf {w}}^x_{\ell _{1},r_2,r_3,\mathbf {i}} \nonumber \\:= & {} \psi _{\ell _{1}}\left( \xi \right) \varphi _{r_2}\left( \eta \right) \varphi _{r_3}\left( \zeta \right) \hat{\mathbf {w}}^x_{\ell _{1},r_2,r_3,\mathbf {i}}. \end{aligned}$$
(7)

Then, we integrate on a set \(\mathcal {S}^x\) of neighbors of \(\varOmega _{\mathbf {i}}\) in x-direction, obtaining an algebraic system for the polynomial coefficients \( \hat{\mathbf {w}}_{\ell _{1},r_2,r_3,\mathbf {i}}\) (one for each horizontal section of \(\varOmega _{\mathbf {i}}\))

$$\begin{aligned} \begin{aligned}&\frac{1}{\varDelta x_{m}} \int _{x_{m-\frac{1}{2}}}^{x_{m+\frac{1}{2}}} \psi _{\ell _{1}} \varphi _{r_2} \varphi _{r_3} \hat{\mathbf {w}}^x_{\ell _{1},r_2,r_3,\mathbf {i}} dx = \frac{1}{\varDelta x_{m}} \int _{x_{m-\frac{1}{2}}}^{x_{m+\frac{1}{2}}} \varphi _{r_1} \varphi _{r_2} \varphi _{r_3} \hat{\mathbf {u}}_{r_1,r_2,r_3,\mathbf {m}}\,dx, \\&\quad \forall \varOmega _{\mathbf {m}} \in \mathcal {S}^x, \quad \forall \ell _1 \in [1,M+1], \quad \forall r_1, r_{2}, r_{3} \in [1, N+1], \end{aligned} \end{aligned}$$
(8)

where \(\mathcal {S}^x\) contains the neighbors along the x axis, i.e \(\varOmega _{\mathbf {m}}=\varOmega _{mjk}\) such that \(m \in \left\{ i-1, i, i+1\right\} \). Note that we are using a stencil made always of only 3 elements in each direction, thus a very compact one. Indeed, a stencil composed of 3 elements is enough for any \(P_NP_M\) scheme with \(M\le 3N+2\), because any \(P_N\) cell contains \(N+1\) degrees of freedom, thus 3 cells provide \(3N+3\) degrees of freedom, which are sufficient for a polynomial reconstruction of degree up to \(3N+2\). Moreover, when the provided information are more than the minimum required, the system (9) results to be overdetermined; so, to solve it, we employ a constrained least-squares technique (CLSQ) [46], i.e. we impose that the reconstructed polynomial satisfies

$$\begin{aligned} \begin{aligned}&\frac{1}{\varDelta x_{i}} \int _{x_{i-\frac{1}{2}}}^{x_{i+\frac{1}{2}}} \psi _{\ell _{1}} \varphi _{r_2} \varphi _{r_3} \hat{\mathbf {w}}^x_{\ell _{1},r_2,r_3,\mathbf {i}} dx = \frac{1}{\varDelta x_{i}} \int _{x_{i-\frac{1}{2}}}^{x_{i+\frac{1}{2}}} \varphi _{r_1} \varphi _{r_2} \varphi _{r_3} \hat{\mathbf {u}}_{r_1,r_2,r_3,\mathbf {i}}\,dx, \\&\quad \forall \ell _1 \in [1,N+1], \quad \forall r_1, r_{2}, r_{3} \in [1, N+1], \end{aligned} \end{aligned}$$
(9)

exactly. In other words, all moments of the reconstructed solution \(\mathbf {w}_h\) and the original solution \(\mathbf {u}_h\) up to degree N must coincide exactly within cell \(\varOmega _{\mathbf {i}}\) and match on the remaining stencil elements in the least-square sense.

Fig. 1
figure 1

Reconstruction \(P_1P_2\) in cell \(\varOmega _{ij}\) along the x-direction in \(d=2\) dimensions. Since we are employing nodal basis functions, we can represent the available information at each stage of our \(P_NP_M\) scheme in each cell by a symbol located at a certain GL point inside the cell. In a \(P_1P_2\) scheme \(\mathbf {u}_h\) is represented by a \(P_N=P_1\) polynomial, so we have \((N+1)^2=4\) information in each cell (a, the green circles). By selecting the \(N+1=2\) information along the same horizontal section in \(\varOmega _{ij}\) and in its two immediate neighbors \(\varOmega _{i-1,j}, \varOmega _{i+1,j}\) (b), we have enough information (\(3(N+1)=6>3=M+1\)) in order to reconstruct a \(P_M=P_2\) polynomial in x-direction (c); then we have to repeat the same procedure for each \(N+1=2\) horizontal section of cell \(\varOmega _{ij}\) (d, e). In this way we obtain our reconstructing polynomial in the x-direction, represented by \((M+1)(N+1)=6\) information (f, the blue crosses) (Colour figure online)

Fig. 2
figure 2

Reconstruction \(P_1P_2\) in cell \(\varOmega _{ij}\) along the y-direction in \(d=2\) dimensions. After having performed the reconstruction along the x direction, in each cell we have \((M+1)(N+1) = 6\) information (a, the blue crosses). Now, by selecting \((N+1)=2\) information along the same vertical section in \(\varOmega _{ij}\) and in its two immediate neighbors \(\varOmega _{i,j-1}, \varOmega _{i,j+1}\) (c), we have enough information (\(3(N+1)=6>3=M+1\)) in order to reconstruct a \(P_M=P_2\) polynomial in y-direction (d); then we have to repeat the same procedure for each \(M+1=3\) vertical section of cell \(\varOmega _{ij}\) (eh). In this way we obtain our final \(P_M=P_2\) reconstructing polynomial for the cell \(\varOmega _{ij}\) (i, the red crosses) (Colour figure online)

Fig. 3
figure 3

Reconstruction \(P_2P_4\) in cell \(\varOmega _{ij}\) in \(d=2\) dimensions. The available data (a, green circles) are provided by the \(P_N=P_2\) polynomial \(\mathbf {u}_h\). By selecting \((N+1)=3\) information along the same horizontal section in \(\varOmega _{ij}\) and in its two immediate neighbors \(\varOmega _{i-1,j}, \varOmega _{i+1,j}\) (b), we have enough information (\(3(N+1)=9>5=M+1\)) in order to reconstruct a \(P_M=P_4\) polynomial in x-direction (c); then the same procedure has to be repeated for each \(N+1=3\) horizontal section of cell \(\varOmega _{ij}\) obtaining (d), and finally for each cell of the domain. At this point in each cell we have \((M+1)(N+1) = 15\) information (d, the blue crosses) and by selecting \((N+1)=3\) information along the same vertical section in \(\varOmega _{ij}\) and in its two immediate neighbors \(\varOmega _{i,j-1}, \varOmega _{i,j+1}\) (e), we have enough information to reconstruct a \(P_M=P_4\) polynomial in y-direction (f); then we have to repeat the same procedure for each \(M+1=5\) vertical section of cell \(\varOmega _{ij}\) (g, h). In this way we obtain our final \(P_M=P_5\) reconstructing polynomial for the cell \(\varOmega _{ij}\) (i, the red crosses) (Colour figure online)

To complete the reconstruction polynomial, we now repeat the above procedure in the y-direction, so we write the reconstruction polynomial in terms of one-dimensional basis functions as

$$\begin{aligned} \begin{aligned} \mathbf {w}^{y}_{h}(x,y,t^n) = \psi _{\ell _{1}}\left( \xi \right) \psi _{\ell _{2}}\left( \eta \right) \varphi _{r_3}\left( \zeta \right) \hat{\mathbf {w}}^y_{\ell _{1},\ell _{2},r_3,\mathbf {i}}, \end{aligned} \end{aligned}$$
(10)

and we solve the algebraic system

$$\begin{aligned} \begin{aligned}&\frac{1}{\varDelta y_{n}} \int _{y_{n-\frac{1}{2}}}^{y_{n+\frac{1}{2}}} \psi _{\ell _{1}} \psi _{\ell _{2}} \varphi _{r_3} \hat{\mathbf {w}}^y_{\ell _{1},\ell _{2},r_3,\mathbf {i}}\, dy = \frac{1}{\varDelta y_{n}} \int _{y_{n-\frac{1}{2}}}^{y_{n+\frac{1}{2}}} \psi _{\ell _{1}} \varphi _{r_2} \varphi _{r_3} \hat{\mathbf {w}}^x_{\ell _{1},r_2,r_3,\mathbf {n}}\, dy, \\&\quad \forall \varOmega _\mathbf{n } \in \mathcal {S}^{y}, \quad \forall \ell _1, \ell _2 \in [1,M+1] , \quad \forall r_2, r_3 \in [1,N+1], \end{aligned} \end{aligned}$$
(11)

with \(\mathcal {S}^y\) being the set of the neighbors along the y axis, i.e \(\varOmega _{\mathbf {n}}=\varOmega _{ink}\) such that \(n \in \left\{ j-1, j, j+1 \right\} \). Again, for overdetermined systems we impose that the reconstruction exactly satisfies

$$\begin{aligned} \begin{aligned}&\frac{1}{\varDelta y_{j}} \int _{y_{j-\frac{1}{2}}}^{y_{j+\frac{1}{2}}} \psi _{\ell _{1}} \psi _{\ell _{2}} \varphi _{r_3} \hat{\mathbf {w}}^y_{\ell _{1},\ell _{2},r_3,\mathbf {i}}\, dy = \frac{1}{\varDelta y_{j}} \int _{y_{j-\frac{1}{2}}}^{y_{j+\frac{1}{2}}} \psi _{\ell _{1}} \varphi _{r_2} \varphi _{r_3} \hat{\mathbf {w}}^x_{\ell _{1},r_2,r_3,\mathbf {n}}\, dy, \\&\quad \forall \ell _1 \in [1,M+1], \quad \forall \ell _2 \in [1,N+1] , \quad \forall r_2, r_3 \in [1,N+1]. \end{aligned} \end{aligned}$$
(12)

And then the same procedure can be repeated along the z axis by looking for the unknown coefficients \(\hat{\mathbf {w}}_{\ell _{1},\ell _{2},\ell _{3},\mathbf {i}}\) of

$$\begin{aligned} \begin{aligned} \mathbf {w}_{h}(x,y,z,t^n) = \psi _{\ell _{1}}\left( \xi \right) \psi _{\ell _{2}}\left( \eta \right) \psi _{\ell _{3}}\left( \zeta \right) \hat{\mathbf {w}}_{\ell _1,\ell _{2},\ell _3,\mathbf {i}}, \end{aligned} \end{aligned}$$
(13)

and solving the algebraic system

$$\begin{aligned} \begin{aligned}&\frac{1}{\varDelta z_{p}} \int _{z_{p-\frac{1}{2}}}^{z_{p+\frac{1}{2}}} \psi _{\ell _{1}} \psi _{\ell _{2}} \psi _{\ell _{3}} \hat{\mathbf {w}}_{\ell _{1},\ell _{2},\ell _{3},\mathbf {i}}\, dy = \frac{1}{\varDelta z_{p}} \int _{z_{p-\frac{1}{2}}}^{z_{p+\frac{1}{2}}} \psi _{\ell _{1}} \psi _{\ell _{2}} \varphi _{r_{3}} \hat{\mathbf {w}}^y_{\ell _{1}\ell _{2},r_3,\mathbf {p}}\, dy, \\&\quad \forall \varOmega _\mathbf{p } \in \mathcal {S}^{z}, \quad \forall \ell _{1}, \ell _{2}, \ell _{3} \in [1, M+1], \quad \forall r_3 \in [1,N+1], \end{aligned} \end{aligned}$$
(14)

\(\mathcal {S}^z\) being the set of the neighbors along the z axis, i.e \(\varOmega _{\mathbf {p}}=\varOmega _{ijp}\) such that \(p \in \left[ k-1, k, k+1\right] \). For overdetermined systems, the constraint reads

$$\begin{aligned} \begin{aligned}&\frac{1}{\varDelta z_{k}} \int _{z_{k-\frac{1}{2}}}^{z_{k+\frac{1}{2}}} \psi _{\ell _{1}} \psi _{\ell _{2}} \psi _{\ell _{3}} \hat{\mathbf {w}}_{\ell _{1},\ell _{2},\ell _{3},\mathbf {i}}\, dy = \frac{1}{\varDelta z_{k}} \int _{z_{k-\frac{1}{2}}}^{z_{k+\frac{1}{2}}} \psi _{\ell _{1}} \psi _{\ell _{2}} \varphi _{r_{3}} \hat{\mathbf {w}}^y_{\ell _{1}\ell _{2},r_3,\mathbf {i}}\, dy, \\&\quad \forall \ell _{1}, \ell _{2}, \in [1, M+1], \quad \forall \ell _{3} \in [1, N+1], \quad \forall r_3 \in [1,N+1]. \end{aligned} \end{aligned}$$
(15)

Finally, the coefficients \(\hat{\mathbf {w}}_{\ell _{1},\ell _{2},\ell _{3},\mathbf {i}}\) represent the \(\hat{\mathbf {w}}_{\ell ,\mathbf {i}}\) of (6) that give us the desired polynomial representation of order M in space.

We would like to emphasize that the reconstructed \(P_NP_M\) schemes with \(N>0\) are very compact because for the reconstruction they need a much smaller stencils than classical finite volume schemes and that for regular Cartesian meshes, the coefficients of the above constraint least squares systems depend only on the choice of the basis functions, hence the integrals can be precomputed once and for all on the reference element before starting the simulation.

Furthermore, in the specific case \(N=0\), i.e. when the \(P_NP_M\) reduces to a FV scheme, the above polynomial reconstruction procedure must be made nonlinear; this can be easily done, for example, by adopting the WENO strategy specifically described in the context of \(P_NP_M\) type schemes (thus with the same notation adopted here) on Cartesian meshes in [25, 51]. We recall that the nonlinearity introduced through ENO/WENO type procedures essentially avoids the spurious oscillations typical of high order linear schemes modeling discontinuous processes see [64], and was already introduced in the 80s and subsequently largely developed [8, 69, 70, 73, 103, 105, 125]. Due to the already exhaustive literature available on FV schemes, here, for what concerns the strategies that guarantee robustness on discontinuities, we focus on \(P_NP_M\) schemes only with \(N>0\): indeed, it is for those schemes that we propose in this work a new strategy, i.e. the new a posteriori subcell FV limiter described in Sect. 2.6.

2.4 High Order in Time via a Local Space-Time Galerkin Predictor

We recall that high order of accuracy in space is provided by the piecewise polynomial data representation \(\mathbf {w}_h\) of (6), obtained in the previous Sect. 2.3.

Now, in order to achieve also high order of accuracy in time, relying on the ADER predictor-corrector approach, we need to compute the so-called space-time Galerkin predictor, i.e. a space-time polynomial \(\mathbf {q}_h\) of degree M in \((d+1)\)-dimensions (d for the space plus 1 for the time) which takes the following form

$$\begin{aligned} \begin{aligned}&\mathbf {q}_h(\mathbf {x}, t) = \mathbf {q}_h(\varvec{\xi }(\mathbf {x}), \tau (t)) = \sum _{\ell =0}^{\mathcal {Q}-1} \theta _\ell (\varvec{\xi }, \tau ) \hat{\mathbf {q}}_\ell = \theta _\ell (\varvec{\xi }, \tau ) \hat{\mathbf {q}}_\ell , \\&\mathbf {x}\in \varOmega _{\mathbf {i}},\quad t \in [t^n, t^{n+1}],\quad \mathcal {Q} = (M+1)^{d+1}, \end{aligned} \end{aligned}$$
(16)

where again \(\theta _\ell (\varvec{\xi }, \tau )\) is given by the tensor product of Lagrange interpolation polynomials \(\varphi _{\ell }\left( \varvec{\xi }(\mathbf {x}) \right) \varphi _{\ell _\tau }\left( \tau \right) \), with \(\varvec{\xi }(\mathbf {x})\) given by (3) and the mapping for the time coordinate given by \(t = t^n + \tau \varDelta t, \tau \in [0,1]\). This high order polynomial in space and time will serve as a predictor solution, only valid inside \(\varOmega _{\mathbf {i}}\times [t^n,t^{n+1}]\), to be used for evaluating the numerical fluxes and the sources when integrating the PDE in the final corrector step of the ADER scheme, see Sect. 2.5.

In order to determine the unknown coefficients \(\hat{\mathbf {q}}_\ell \) of (16) we search \(\mathbf {q}_h\) such that it satisfies a weak form of the governing PDE (1) integrated in space and time locally inside each \(\varOmega _{\mathbf {i}}\) (with \(\varOmega _{\mathbf {i}}^{\circ } = \varOmega _{\mathbf {i}}\backslash \partial \varOmega _{\mathbf {i}}\) being the interior of \(\varOmega _{\mathbf {i}}\))

$$\begin{aligned} \begin{aligned}&\int _{t^n}^{t^{n+1}} \int _{\varOmega _{\mathbf {i}}^{\circ } } \theta _k \, \partial _t \mathbf {q}_h \,d\mathbf {x} \, dt + \int _{t^n}^{t^{n+1}} \int _{\varOmega _{\mathbf {i}}^{\circ } } \theta _k \,\nabla \cdot \mathbf {F}(\mathbf {q}_h) \,d\mathbf {x}\,dt = \mathbf {0}, \end{aligned} \end{aligned}$$
(17)

where the first term is integrated in time by parts exploiting the causality principle (upwinding in time)

$$\begin{aligned} \begin{aligned}&\int _{\varOmega _{\mathbf {i}}^{\circ }} \theta _k(\mathbf {x},t^{n+1}) \mathbf {q}_h(\mathbf {x},t^{n+1}) \, d\mathbf {x}-\int _{\varOmega _{\mathbf {i}}^{\circ }} \theta _k(\mathbf {x},t^{n}) \mathbf {w}_h(\mathbf {x},t^{n}) \, d\mathbf {x}\\&\quad -\int _{t^n}^{t^{n+1}} \int _{\varOmega _{\mathbf {i}}^{\circ } } \partial _t \theta _k(\mathbf {x},t) \mathbf {q}_h(\mathbf {x},t) \,d\mathbf {x}\, dt + \int _{t^n}^{t^{n+1}} \int _{\varOmega _{\mathbf {i}}^{\circ } } \theta _k(\mathbf {x},t) \nabla \cdot \mathbf {F}(\mathbf {q}_h(\mathbf {x},t)) \,d\mathbf {x}\,dt = \mathbf {0}, \end{aligned} \end{aligned}$$
(18)

and \(\mathbf {w}_h(\mathbf {x},t^{n})\) is the known initial condition at time \(t^n\).

Now, the system (18), which contains only volume integrals to be calculated inside \(\varOmega _{\mathbf {i}}\) and no surface integrals, can be solved via a simple discrete Picard iteration for each element \(\varOmega _{\mathbf {i}}\), and there is no need of any communication with neighbor elements. Indeed, the so-called predictor step consists in a local solution of the governing PDE (1) in the small, see [69], inside each space-time element \(\varOmega _{\mathbf {i}}\times [t^n,t^{n+1}]\). It is called local because it is obtained by only considering cell \(\varOmega _{\mathbf {i}}\) with initial data \(\mathbf {w}_h\), the governing equations (1) and the geometry, without taking into account any interaction between \(\varOmega _{\mathbf {i}}\) and its neighbors. We also want to emphasize that this procedure is exactly the same whatever N and M are.

We recall that this procedure has been introduced for the first time in [40] for unstructured meshes, it has been extended for example to moving meshes in [18] and to degenerate space time elements in [60]; finally, its convergence has been formally proved in [25].

2.5 High Order Fully-Discrete One-Step ADER \(P_NP_M\) Scheme

Last, the update formula of our ADER \(P_NP_M\) scheme is recovered starting from the weak formulation of the governing equations (1) (where the test functions \(\varphi _k\) coincide with the basis functions \(\varphi _\ell \) of (5))

$$\begin{aligned} \begin{aligned} \int _{t^n}^{t^{n+1}} \int _{\varOmega _{\mathbf {i}}} \varphi _k \left( \partial _t \mathbf {Q}+ \nabla \cdot \mathbf {F}(\mathbf {Q}) \right) \,d\mathbf {x}\,dt = \mathbf {0}; \end{aligned} \end{aligned}$$
(19)

we then substitute \(\mathbf {Q}\) with (4) at time \(t=t^n\) (the known initial condition) and at \(t=t^{n+1}\) (to represent the unknown evolved conserved variables), and with the high order predictor \(\mathbf {q}_h\) previously computed for \(t\in [t^n, t^{n+1}]\), obtaining

$$\begin{aligned} \begin{aligned}&\left( \, \int _{\varOmega _{\mathbf {i}}} \varphi _k \varphi _l \, d\mathbf {x}\right) \left( \hat{\mathbf {u}}_\ell ^{n+1} - \hat{\mathbf {u}}_\ell ^{n} \, \right) + \int _{t^n}^{t^{n+1}} \int _{\partial \varOmega _{\mathbf {i}}} \varphi _k \mathcal {F}\left( \mathbf {q}_h^-, \mathbf {q}_h^+ \right) \cdot \mathbf {n} \, dS \, dt \ \\&\quad -\int _{t^n}^{t^{n+1}} \int _{\varOmega _{\mathbf {i}}} \nabla \varphi _k \cdot \mathbf {F}(\mathbf {q}_h) \,d\mathbf {x}\,dt \, =\, \mathbf {0}. \end{aligned} \end{aligned}$$
(20)

The use of \(\mathbf {q}_h\) allows to compute the integrals appearing in (20) with high order of accuracy in both space and time.

The boundary fluxes \(\mathcal {F}\cdot \mathbf {n}\) are obtained by a Riemann solver, thus providing the coupling between neighbors, which was neglected in the predictor step. In particular, in this work we will employ three types of standard fluxes, namely the Rusanov flux and the HLL flux, whose description can be found in [112], and the HLLEM flux for which we refer to [39, 53]. For the sake of completness, we report here the expression of the Rusanov flux that reads as follows

$$\begin{aligned} {} \mathbf{} \begin{aligned} \mathcal {F}(\mathbf {q}_h^{-},\mathbf {q}_h^{+}) \cdot \mathbf {n} =&\ \frac{1}{2} \left( {\mathbf {F}}(\mathbf {q}_h^{+}) + {\mathbf {F}}(\mathbf {q}_h^{-}) \right) \cdot {\mathbf {n}} - \frac{1}{2} s_{\max } \left( \mathbf {q}_h^{+} - \mathbf {q}_h^{-} \right) , \end{aligned} \end{aligned}$$
(21)

where \(s_{\max }\) is the maximum eigenvalue of the system matrices \(\mathbf {A}(\mathbf {q}_h^{+})\) and \(\mathbf {A}(\mathbf {q}_h^{-})\) being \(\mathbf {A}(\mathbf {Q})=\frac{\partial \mathbf {F}}{\partial \mathbf {Q}}\). We remark also that due to the discontinuous character of \(\mathbf {q}_h\) at the interfaces \(\partial \varOmega _{\mathbf {i}}\), \(\mathcal {F}\cdot \mathbf {n}\) is computed through a numerical flux function evaluated over the boundary-extrapolated data \(\mathbf {q}_h^{-}\) and \(\mathbf {q}_h^{+}\) (i.e the predictors \(\mathbf {q}_h\) of two neighbors elements evaluated at the common interface).

Finally, we stress again that the update procedure in (20) is the same whatever N and M are, and allows the contemporary evolution of all the \((N+1)^d\) degrees of freedom of \(\mathbf {u}_h\).

2.5.1 CFL Stability Constraint

A very important feature of \(P_NP_M\) schemes is linked to the CFL stability constraint. Since this family of scheme is explicit, the time step \(\varDelta t\) has to be computed according to a (global) Courant-Friedrichs-Levy (CFL) stability condition given by

$$\begin{aligned} \begin{aligned} \varDelta t_{P_NP_M} \,< \, \text {CFL}_{P_NP_M}\frac{h_{\text {min}} }{d} \frac{1}{|\lambda _{\text {max}}|} \, < \, \frac{\text {CFL}}{\left( 2N+1\right) } \frac{h_{\text {min}} }{d} \frac{1}{|\lambda _{\text {max}}|} \end{aligned} \end{aligned}$$
(22)

where \(h_{\text {min}}\) is the minimum characteristic mesh-size, \(|\lambda _{\max }|\) is the spectral radius of the system matrix \(\mathbf {A}\) and the maximum admissible \(\text {CFL}_{P_NP_M}\) number is given in Table 1. In the above formula we wanted also to recall the classical CFL condition of Runge-Kutta DG schemes (the one written on the right, with \(\text {CFL}<1\)) which is just a bit less restrictive than the one needed for ADER \(P_NP_M\) schemes, but easier to remember and helpful in justifying the stability of our subcell limiter, see formula (29).

Table 1 Maximum admissible CFL number for \(P_NP_M\) schemes from second to fifth-order of accuracy

Furthermore, we would like to emphasize that it is the degree N of the data representation that governs the stability of the method and not the polynomial degree M of the reconstruction operator. Hence, the reconstructed hybrid methods with \(N>0\) and \(M>N\) allow for larger time steps than the pure DG methods (\(N=M\)) of the same order always maintaining a superior resolution with respect to FV schemes (\(N=0\)), fact that further justifies the interest in their development.

2.6 A Posteriori Subcell Finite Volume Limiter

Up to now, the presented \(P_NP_M\) scheme is high order accurate in space and time and, formally, the differences between the FV case (\(N=0\)) the pure DG case (\(N=M\)) and the hybrid reconstructed case (\(N>0, M>N\)) are basically only due to the procedure for achieving high order of accuracy in space, which is obtained through a WENO reconstruction in the FV case, a linear reconstruction in the hybrid case and is automatic by construction for DG, see Sect. 2.3. But this is actually a major difference, because the WENO operator provides a non-linear stabilization of the FV scheme, while the \(P_NP_M\) schemes with \(N>0\) presented so far are unlimited and, as such, they are affected by the so-called Gibbs phenomenon, i.e. oscillations are likely to appear in presence of shock waves or other discontinuities. These oscillations can be explained by the Godunov theorem [64], because in this case the scheme is linear in the sense of Godunov.

As a consequence, a limiting technique is required. Our strategy is described in detail below and it will be applied whenever \(N>0\).

First, we need to consider the numerical solution computed so far \(\mathbf {u}_h^{n+1}\) only as a candidate solution: we denote it with \(\mathbf {u}^{n+1,*}_{h}(\mathbf {x},t^{n+1})\).

Then, following [25, 52, 57, 75, 123, 124], each element \(\varOmega _\mathbf {i}\) is divided into \(N_\omega =(2N+1)^d\) equal non-overlapping subgrid cells \(\omega _{\mathbf {i},\alpha }\) whose volume is denoted by \(|\omega _{\mathbf {i},\alpha }|\); for any cell we define the corresponding subcell average of the \(P_NP_M\) solution at time \(t^n\)

$$\begin{aligned} \mathbf {v}_{\mathbf {i},\alpha }^n(\mathbf {x},t^n) = \frac{1}{|\omega _{\mathbf {i},\alpha }|} \int _{\omega _{\mathbf {i},\alpha }} \mathbf {u}_{h}^n(\mathbf {x},t^n) \, d\mathbf {x}=\mathcal {P}(\mathbf {u}_h^n), \quad \forall \alpha \in [1,N_\omega ], \end{aligned}$$
(23)

and the candidate subcell averages at time \(t^{n+1}\)

$$\begin{aligned} \mathbf {v}_{\mathbf {i},\alpha }^{n+1,*}(\mathbf {x},t^{n+1}) = \frac{1}{|\omega _{\mathbf {i},\alpha }|} \int _{\omega _{\mathbf {i},\alpha }} \mathbf {u}_{h}^{n+1,*}(\mathbf {x},t^{n+1}) \, d\mathbf {x}=\mathcal {P}(\mathbf {u}_h^{n+1,*}), \quad \forall \alpha \in [1,N_\omega ], \end{aligned}$$
(24)

where \(\mathcal {P}(\mathbf {u}_h)\) is the \(L_2\) projection operator into the space of piecewise constant cell averages.

Now, we have to mark the troubled cells, i.e. we have to identify those cells where the solution found through the \(P_NP_M\) scheme cannot be accepted because it may lead to spurious oscillations. Thus, the candidate solution \(\mathbf {v}^{n+1,*}_h\) is checked against a set of detection criteria. Here we follow the criteria described in [19], however also other specific physical bounds or more elaborate choices as those of invariant domain preserving methods [67] could be considered.

First, we require that the computed solution is physically acceptable, i.e. that it belongs to the phase space of the conservation law being solved. For instance, if the compressible Euler equations for gas dynamics are considered, density and pressure should be positive and in practice we require that they are greater than a prescribed tolerance \(\varepsilon =10^{-12}\). Then, the solution should verify a relaxed discrete maximum principle (DMP)

$$\begin{aligned} \begin{aligned} \min _{\mathbf {m} \in \mathcal {V}(\varOmega _{\mathbf {i}})} \left( \min _{\beta \in [1,N_\omega ]}(\mathbf {v}_{\mathbf {m},\beta \,}^n) \right) - \delta \le \mathbf {v}^{n+1,*}_{\mathbf {i},\alpha } \le \max _{\mathbf {m} \in \mathcal {V}(\varOmega _{\mathbf {i}})} \left( \max _{\beta \in [1,N_\omega ]} (\mathbf {v}_{\mathbf {m},\beta \,}^n) \right) + \delta , \ \forall \alpha \in [1,N_\omega ], \end{aligned} \end{aligned}$$
(25)

where \(\mathcal{{V}}(\varOmega _{\mathbf {i}})\) is the set containing all the neighbors of \(\varOmega _{\mathbf {i}}\) sharing a common node with \(\varOmega _{\mathbf {i}}\), and \(\delta \) is a parameter which, according to [19, 52, 124], reads

$$\begin{aligned} \delta = \max \Biggl ( \delta _0, \, \varepsilon \cdot \biggl [ \max _{\mathbf {m} \in \mathcal {V}(\varOmega _{\mathbf {i}})} \biggl ( \max _{\beta \in [1,N_\omega ]} (\mathbf {v}_{\mathbf {m},\beta \,}^n) \biggr ) -\min _{\mathbf {m} \in \mathcal {V}(\varOmega _{\mathbf {i}})} \biggl ( \min _{\beta \in [1,N_\omega ]} (\mathbf {v}_{\mathbf {m},\beta \,}^n) \biggr ) \biggr ] \Biggr ), \end{aligned}$$
(26)

with \(\delta _0=10^{-5}\) and \(\varepsilon =10^{-4}\). If a cell does not fulfill the detection criteria in all its subcells, then it is marked as troubled. It is possible that some false positive activations of the limiter occur; however these local effects do not reduce the overall quality of the simulation thanks to the highly accurate limiter procedure adopted on troubled cells.

Then only on these troubled cells we apply either a second-order accurate MUSCL-Hancock TVD finite volume scheme with minmod slope limiter [112] (in particular in presence of strong shock waves or low density atmospheres), or a more accurate ADER-WENO FV scheme [51, 52] that better captures local extrema. In this way we can re-compute the solution in order to evolve the cell averages \(\mathbf {v}_{\mathbf {i},\alpha }^n\) in time and obtain \(\mathbf {v}_{\mathbf {i},\alpha }^{n+1}\).

Note that, due to the fact of applying a high order scheme and to do so on a subgrid instead that on the main grid, the subcell average representation given by \(\mathbf {v}_{\mathbf {i},\alpha }^{n+1}\) maintains the high resolution of the underling \(P_NP_M\) scheme. Indeed now, we can recover from these cell averages a polynomial \(\mathbf {u}_{h}^{n+1}\) of degree N; this is done by applying a reconstruction operator \(\mathcal {R}\) such that

$$\begin{aligned} \int _{\omega _{\mathbf {i},\alpha }^n} \mathbf {u}_{h}^{n+1}(\mathbf {x},t^{n+1}) \, d\mathbf {x}=\int _{\omega _{\mathbf {i},\alpha }^n} \mathbf {v}_{\mathbf {i},\alpha }^{n+1}(\mathbf {x},t^n) \, d\mathbf {x}:=\mathcal {R}(\mathbf {v}_{\mathbf {i},\alpha }^{n+1}(\mathbf {x},t^n)), \ \forall \alpha \in [1,N_\omega ], \end{aligned}$$
(27)

which is conservative on the main cell \(\varOmega _{\mathbf {i}}\) thanks to the additional linear constraint

$$\begin{aligned} \int _{\varOmega _{\mathbf {i}}} \mathbf {u}_{h}^{n+1}(\mathbf {x},t^{n+1}) \, d\mathbf {x}= \int _{\varOmega _{\mathbf {i}}} \mathbf {v}_{h}^{n+1}(\mathbf {x},t^{n+1}) \, d\mathbf {x}. \end{aligned}$$
(28)

Moreover, the projection operator \(\mathcal {P}\) in (23) and the reconstruction operator \(\mathcal {R}\) in (27) satisfy the property \(\mathcal {P} \cdot \mathcal {R}=\mathcal {I}\), with \(\mathcal {I}\) being the identity operator.

However, we have to remark that the reconstruction operator (27), (28) might still lead to an oscillatory solution, since it is based on a linear unlimited least squares technique. If this is the case, the cell \(\varOmega _{\mathbf {i}}\) will be marked again automatically as troubled during the next timestep \(t^{n+2}\), therefore the same finite volume subcell limiter will be used again in that cell and in particular the subcell averages from which to start as initial data at time \(t^{n+1}\) will be the \(\mathbf {v}_{i,\alpha }^{n+1}\) kept in memory from the previous limited step.

Furthermore, if a cell \(\varOmega _{\mathbf {i}}\) is acceptable but has at least one troubled neighbor in \(\mathcal {V}(\varOmega _{\mathbf {i}})\), then we cannot accept its candidate solution \(\mathbf {u}^{n+1,*}_{h}(\mathbf {x},t^{n+1})\) as it is because the scheme would be nonconservative, since the numerical flux \(\mathcal {F}\cdot \mathbf {n}\) at the common interface would have been computed in two different ways in \(\varOmega _{\mathbf {i}}\) and its neighbor and by using a \(\mathbf {q}_h\) that may already be non acceptable. Thus, the final \(P_NP_M\) solution in these cells, neighbors of troubled ones, is rearranged as follows: we keep the already computed values of the volume integral and of the surface integrals interacting with non-troubled cells, while the numerical flux across the troubled faces is substituted with the one computed through the limiter procedure.

Finally, note that for the subcell FV scheme we have a different CFL stability condition

$$\begin{aligned} \begin{aligned} \varDelta t_{\text {FV}} < \text {CFL}_\text {FV}\frac{h_{\text {min}}}{d\, N_\omega }\frac{1}{|\lambda _{\text {max}}|}, \end{aligned} \end{aligned}$$
(29)

with \(\text {CFL}_\text {FV}<1\) and \(h_{\min }\) the minimum cell size referred to \(\varOmega _{\mathbf {i}}\). Condition (29) guides us in choosing the number of employed subcells \(N_\omega \). In particular, our choice \(N_\omega = (2N + 1)^d\) respects the stability condition (29) maintaining the original timestep size fixed for the current timestep [see (22)] but also taking into account the maximum possible number of subgrid elements allowed by that timestep size.

We would like to stress again that our interest for \(P_NP_M\) schemes is motivated by the high resolution that they are able to provide and the reduced cost offered by the possibility of representing data with lower order polynomials of degree N and to achieve, however, an order of accuracy M, with \(M>N\), using a very compact stencil and a simple reconstruction procedure.

The presented a posteriori subcell FV limiter is applied only where it is needed by detecting spurious oscillations a posteriori and it is based on strong stability preserving FV schemes developed precisely for dealing with discontinuous solutions. Since FV schemes are less accurate than \(P_NP_M\) schemes with \(N>0\), the limiter is applied on a finer subgrid than the original main grid in order to avoid a loss of useful information.

2.7 Adaptive Cartesian Mesh Refinement

The last ingredient that further increases the resolution of the proposed approach is the possibility of activating an Adaptive Mesh Refinement (AMR) technique based on a cell-by-cell refinement approach; indeed, the combined action of our subcell limiter and of AMR allows a sharp detection of all discontinuities. For details we refer to [14, 15, 24, 45, 51, 55,56,57, 76, 96, 120, 124] and we recall here just the main features. Our algorithm basically consists in, starting from the main grid (2), introducing successive refinement levels, in regions of particular interest according to a prescribed refinement criterion. In particular, we have to fix the following parameters:

  • the maximum level of refinement \(\ell _\mathrm{max}\), typically chosen equal to 2 or 3 in our tests;

  • the refinement factor \(\mathfrak {r}\), governing the number of subcells that are generated according to

    $$\begin{aligned} \begin{aligned} \varDelta x_{\ell } = \mathfrak {r} \varDelta x_{\ell +1}, \quad \varDelta y_{\ell } = \mathfrak {r} \varDelta y_{\ell +1}, \quad \varDelta z_{\ell } = \mathfrak {r} \varDelta z_{\ell +1}, \end{aligned} \end{aligned}$$
    (30)

    where \(\varDelta x_{\ell }\) is the size of the cell at refinement level number \(\ell \) along the x-direction, and similarly for the other directions;

  • the refinement criterion that we base on oscillations of second derivatives, see [84]. In practice, we have to compute

    $$\begin{aligned} \chi _\mathbf {i}=\sqrt{\frac{\sum _{k,l} (\partial ^2 \varPhi /\partial x_k \partial x_l)^2 }{\sum _{k,l}[(|\partial \varPhi /\partial x_k|_{i+1}+|\partial \varPhi /\partial x_k|_i)/\varDelta x_l+\varepsilon |(\partial ^2 /\partial x_k \partial x_l )||\varPhi |]^2} }, \end{aligned}$$
    (31)

    where the summation \(\sum _{k,l}\) is taken over the number of space dimension of the problem in order to include the cross term derivatives, the parameter \(\varepsilon = 0.01\) acts as a filter preventing refinement in regions of small ripples, and the function \(\varPhi =\varPhi (\mathbf {Q})\), that could be any suitable indicator function of the conserved variables \(\mathbf {Q}\), in our test is chosen to be simply \(\varPhi (\mathbf {Q})=\rho \). Next, a cell \(\varOmega _{\mathbf {i}}\) is marked for refinement if \(\chi _\mathbf {i}>\chi _\mathrm{ref}\), while it is marked for re-coarsening if \(\chi _\mathbf {i}<\chi _\mathrm{rec}\). In our tests we have chosen \(\chi _\mathrm{ref}\) in the range [0.2, 0.25] and \(\chi _\mathrm{rec}\) in [0.05, 0.15].

Finally, the numerical solution at the subcell level during a refinement step is obtained by a standard \(L_2\) projection, while a reconstruction operator is employed to recover the solution on the main grid starting from the subcell level. Moreover, in order to simplify the reconstruction procedure, the grid is treated as locally uniform for each cell independent of its grid level \(\ell \), because the neighbors cells at a coarser level \(\ell -1\) can be virtually refined in order to allow for the reconstruction procedure on locally uniform meshes detailed in Sect. 2.3. We also note that our AMR algorithm is endowed with a time-accurate local time stepping (LTS) feature, see [51] for details.

3 Numerical Results

In this Section we present a large set of numerical test cases in order to show the accuracy, robustness and efficiency of the presented \(P_NP_M\) family of schemes equipped with the a posteriori subcell finite volume limiter.

In order to cover a wide variety of physical phenomena we have applied our schemes to three sets of equations of relevance in fluid-dynamical applications, namely the Euler equations of compressible hydrodynamics (HD), the magnetohydrodynamics equations (MHD), and the special relativistic magnetohydrodynamics equations (RMHD).

In particular, for any set of equations we have selected both a smooth test case, to show the order of convergence of our schemes (up to order six), and some problems containing strong discontinuities going from logically one-dimensional Riemann problems to classical challenging two-dimensional benchmarks, such as the Sedov explosion problem, the Double Mach Reflection problem, the MHD rotor problem, the RMHD blast wave, as well as the MHD & RMHD Orszag–Tang vortex problems. The presence of discontinuities allows to prove the robustness and resolution of our a posteriori subcell limiting strategy.

Moreover, the results obtained with the intermediate \(P_NP_M\) schemes (i.e. \(N\ne 0\) and \(M> N\)) are compared with the pure DG approach (i.e. \(N=M\)) in order to show their gain in terms of computational efficiency, while maintaining a similar resolution. We also compare numerical results on AMR meshes against results obtained on fine uniform Cartesian meshes, demonstrating both the robustness of our schemes on adaptive meshes and the obtained savings in computational time.

3.1 Euler Equations of Gasdynamics

The first set of hyperbolic equations that we consider is given by the homogeneous Euler equations of compressible gasdynamics that can be cast in form (1) by choosing

$$\begin{aligned} \mathbf {Q}= \left( \begin{array}{c} \rho \\ \rho u \\ \rho v \\ \rho E \end{array} \right) , \quad \mathbf {F} = \left( \begin{array}{c@{\quad }c} \rho u &{} \rho v \\ \rho u^2 + p &{} \rho u v \\ \rho u v &{} \rho v^2 + p \\ u(\rho E + p) &{} v(\rho E + p) \end{array} \right) . \end{aligned}$$
(32)

The vector of conserved variables \(\mathbf {Q}\) involves the fluid density \(\rho \), the momentum density vector \(\rho \mathbf {v}=(\rho u, \rho v)\) and the total energy density \(\rho E\). The fluid pressure p is related to the conserved quantities \(\mathbf {Q}\) using the equation of state for an ideal gas

$$\begin{aligned} p = (\gamma -1)\left( \rho E - \frac{1}{2} \rho \mathbf {v}^2 \right) , \end{aligned}$$
(33)

where \(\gamma \) is the ratio of specific heats so that the speed of sound takes the form \(c=\sqrt{\frac{\gamma p}{\rho }}\).

3.1.1 Isentropic Vortex

First of all, in order to verify the order of convergence of the proposed \(P_NP_M\) schemes, we consider a smooth isentropic vortex flow according to [71]. The computational domain is given by the square \(\varOmega =[0,10]\times [0,10]\) with periodic boundary conditions set everywhere. For the initial conditions we consider a homogeneous background field \(\mathbf {Q}_0=(\rho ,u,v,p)=(1,1,1,1)\) traveling with a constant velocity \(\mathbf {v}_c = (1,1)\) and we superimpose on this field some perturbations for density and pressure of the following form

$$\begin{aligned} \delta \rho = (1+\delta T)^{\frac{1}{\gamma -1}}-1, \quad \delta p = (1+\delta T)^{\frac{\gamma }{\gamma -1}}-1, \end{aligned}$$
(34)

with the temperature fluctuation

$$\delta T = -\frac{(\gamma -1)\varepsilon ^2}{8\gamma \pi ^2}e^{1-r^2}$$

and the vortex strength \(\varepsilon =5\). The velocity field is also affected by the following perturbations

$$\begin{aligned} \left( \begin{array}{c} \delta u \\ \delta v \end{array}\right) = \frac{\varepsilon }{2\pi }e^{\frac{1-r^2}{2}} \left( \begin{array}{c} -(y-5) \\ (x-5) \end{array}\right) . \end{aligned}$$
(35)

The initial condition is thus given by \(\mathbf {Q}= \mathbf {Q}_0 + \mathbf {\delta } \mathbf {Q}\). The exact solution \(\mathbf {Q}_e\) at the final time \(t_f\) can be simply computed as the time-shifted initial condition, i.e. \(\mathbf {Q}_e(x, t_f) = \mathbf {Q}(x - \mathbf {v}_c t_f, 0)\).

In Table 2, we report the convergence rates from second up to sixth order of accuracy for the smooth vortex test problem run on a sequence of successively refined meshes up to the final time \(t_f=1.0\). The optimal order of accuracy is achieved for the hybrid schemes \(P_NP_M\) with \(M>N\) and for the pure DG schemes with \(N=M\).

Table 2 Numerical convergence table for general \(P_NP_M\) schemes for the isentropic vortex problem

3.1.2 The Sod Shock Tube Problem

The Sod shock tube problem in 2D can be seen as a multidimensional extension of the classical Sod test case in 1D [112], which allows to verify the robustness and the resolution capacity of the employed numerical method on a rarefaction wave, a contact discontinuity and a shock at the same time, indeed the three waves are originated by the discontinuous initial condition.

Here, we consider as computational domain a square of dimension \([-1,1]\times [-1,1]\) covered with a uniform mesh of \(50\times 10\) control volumes, and the initial condition is composed of two different states, separated by a discontinuity at \(x_d=0\)

$$\begin{aligned} \begin{aligned} {\left\{ \begin{array}{ll} \rho _L = 1, \quad \mathbf {v}_L = 0, \quad p_L = 1, \quad &{} x \le x_d \\ \rho _R = 0.125, \quad \mathbf {v}_R = 0, \quad p_R = 0.1, \quad &{} x > x_d. \end{array}\right. } \end{aligned} \end{aligned}$$
(36)

The final time is chosen to be \(t_f=0.4\), so that the shock wave does not cross the external boundary of the domain, where wall boundary conditions are set. The algorithm for the calculation of the exact solution of this Riemann problem is given in [111].

We have run this problem with two fourth order methods, namely the \(P_2P_3\) and the \(P_3P_3\) schemes, and two sixth order methods, namely the \(P_3P_5\) and the \(P_5P_5\) schemes, equipped with the a posteriori subcell TVD FV limiter and employing the Rusanov flux both in the main \(P_NP_M\) scheme and at the limiter stage. The agreement of our numerical results with the exact solution is perfect and the hybrid schemes (i.e. \(M<N\)) are faster than the pure DG schemes (N=M), see Fig. 4.

Fig. 4
figure 4

Sod shock tube problem at \(t_f = 0.4\). Left: we compare our numerical results obtained with two fourth order methods, namely the \(P_2P_3\) and the \(P_3P_3\) with the exact solution. Note that the two schemes show a similar resolution but the \(P_2P_3\) is twice faster than the \(P_3P_3\), Right: we compare our numerical results obtained with two sixth order methods, namely the \(P_3P_5\) and the \(P_5P_5\) with the exact solution. Note again that the two schemes show a similar resolution but the \(P_3P_5\) is 2.33 times faster than the \(P_5P_5\)

Moreover, in Fig. 5, one can see that the limiter activates exactly where the shock discontinuity is located also when the adaptive mesh refinement technique is employed.

Fig. 5
figure 5

Sod shock tube problem at \(t_f = 0.4\) solved with our \(P_3P_5\) sixth order scheme. We show in red the cells on which the limiter is activated and in blue the unlimited cells. The left panel is obtained with an initial grid of \(50\times 10\) elements and \(\ell _{\max }=2\) levels of refinement with \(\mathfrak {r}=3\) in a total computational time of 1248 s. The right image is obtained by using a fine uniform grid of \(450\times 90\) elements corresponding to the finest AMR grid level in a total computational time of 3670 s. In both the cases the limiter perfectly activates only where the shock wave is located (Colour figure online)

3.1.3 The Lax Shock Tube Problem

The Lax shock tube problem, introduced for the first time in [81], is another classical benchmark for high order methods for the solution of the Euler equations. The computational domain is the square \([-1,1]\times [-1,1]\) and the initial condition is composed of two different states, separated by a discontinuity located at \(x_d=0\)

$$\begin{aligned} \begin{aligned} {\left\{ \begin{array}{ll} \rho _L = 0.445, \quad \mathbf {v}_L = 0.698, \quad p_L = 3.528, \quad &{} x \le x_d \\ \rho _R = 0.5, \quad \mathbf {v}_R = 0, \quad p_R = 0.571, \quad &{} x > x_d . \end{array}\right. } \end{aligned} \end{aligned}$$
(37)

In this case, we have covered our computational domain with a very coarse mesh of \(20\times 10\) elements activating the AMR procedure with \(\ell _{\max }=2\) levels of refinement and \(\mathfrak {r}=3\). In Fig. 6, we present the results obtained with two sixth order methods, namely the \(P_3P_5\) and the \(P_5P_5\) schemes, used together with the HLLEM [39, 53] numerical flux. Both the numerical results perfectly agree with the reference solution and the hybrid scheme is 2.5 times faster than the pure DG scheme. Also the limiter activates exactly only at the shock location and, due to the subcell resolution, it does not affect the quality of the profile which is sharply captured even on a very coarse mesh.

Fig. 6
figure 6

Lax shock tube problem at \(t_f=0.14\), obtained with our sixth order schemes, namely the \(P_3P_5\) and \(P_5P_5\) schemes. Left: we draw the density profile on the z axis and we colour in red the cells on which the limiter is activated and in blue the unlimited cells. Right: we compare our numerical results with the exact solution (Colour figure online)

3.1.4 The Shu-Osher Shock Tube Problem

The Shu-Osher problem was first introduced in [104] and it allows to check the capability of our new scheme to deal simultaneously with physical oscillations and shock waves appearing at the same time during the simulation. It consists of a one-dimensional Mach 3 shock front interacting with a sinusoidal density disturbance that generates a combination of discontinuities and smooth structures, whose entropy fluctuations are amplified when passing through the shock.

We discretize our computational domain \(\varOmega = [-5,5]\times [0,1]\) with an AMR grid with \(64\times 4\) elements on the coarsest level and a maximum refinement level \(\ell _{\max }=2\) with \(\mathfrak {r}=3\). The initial conditions are given by

$$\begin{aligned} \begin{aligned} {\left\{ \begin{array}{ll} \rho =3.8571, \quad u= 2.6294, \quad v= 0, \quad p= 10.333, \quad &{} x < 4, \\ \rho = 1.0+0.2\sin (5x), \quad u= 0,\quad v=0, \quad p=1, \quad &{} x \ge 4, \end{array}\right. } \end{aligned} \end{aligned}$$
(38)

and the simulations run up to the final time \(t_f=1.8\). For this test case, we employ the HLL Riemann solver, and the TVD a posteriori subcell finite volume limiter.

We then compare the results obtained with two pure DG schemes \(P_3P_3\) and \(P_5P_5\), and the hybrid schemes \(P_2P_3\) and \(P_3P_5\) which have, respectively, the same order of accuracy. As shown in Fig. 7, the methods are accurate, and robust thanks to the employed limiter strategy, and the intermediate schemes \(P_NP_M\) with \(M>N\) are computational more efficient than pure DG schemes.

Fig. 7
figure 7

Shu-Osher shock tube problem at \(t_f=1.8\) solved with our fourth order scheme, namely the \(P_2P_3\) and \(P_3P_3\) schemes (first column), and our sixth order schemes, namely the \(P_3P_5\) and \(P_5P_5\) schemes (second column). In the first two rows we plot the value of the density on the z axis and we depict in red the cell where the limiter is activated. In the third row our results are compared with a reference solution obtained with a WENO FV scheme on a very fine mesh. Moreover the computational time required by the \(P_NP_M\) schemes with \(N<M\) (respectively 394 s and 2007 s) are significantly shorter than those required by the pure DG schemes (\(N=M\)) (respectively 880 s and 5050 s); nevertheless all the results show an excellent agreement with the reference solution (Colour figure online)

3.1.5 Sedov Problem

This test problem is widespread in literature [60, 74, 86] and it describes the evolution of a blast wave that is generated at the origin \(\mathbf {O}=(x,y)=(0,0)\) of the computational domain \(\varOmega (0)=[0,1.2]\times [0,1.2]\). An exact solution based on self-similarity arguments is available from [101] and the fluid is assumed to be an ideal gas with \(\gamma =1.4\), which is initially at rest and assigned with a uniform density \(\rho _0=1\). The initial pressure is \(p_0=10^{-6}\) everywhere except in the cell \(V_{or}\) containing the origin \(\mathbf {O}\) where it is given by

$$\begin{aligned} p_{or} = (\gamma -1) \rho _0 \frac{ E_\text {tot}}{ |V_\text {or}|} \end{aligned}$$

being \(E_\text {tot}=0.244816\) the the total energy concentrated at \(\mathbf {x}=\mathbf {0}\) and \(|V_\text {or}|\) the total volume of \(V_{or}\).

We solve this numerical test with a selection of high order methods going from fourth to eighth order of accuracy on a mesh of \(50\times 50\) elements with and without AMR. When the adaptive mesh refinement is activated, we take \(\ell _{\max }=2\) and \(\mathfrak {r}=3\). For all these test cases we employ the Rusanov flux, \(CFL=0.9\), and the WENO a posteriori subcell finite volume limiter.

We show the results on the activation of the limiter in Fig. 9, and the obtained density profiles in Fig. 8. Finally, we compare the performances of a selection of methods in Table 3, in particular we highlight the needed computational times versus their capability of capturing the high density peak. We can remark that the hybrid schemes (as the \(P_2P_3\) and the \(P_3P_5\)) have accurate and robust results at a lower computational cost; also the combination with adaptive mesh refinement helps in increasing the accuracy keeping the computational cost low.

Fig. 8
figure 8

Sedov test problem. Comparison of numerical density obtained with a selection of our high order methods (left, middle) and density contours obtained with the hybrid \(P_2P_3\) third order scheme on an AMR grid

Table 3 Sedov problem
Fig. 9
figure 9

Limited cells (red) and unlimited ones (blue) for the Sedov problem solved with a selection of high order methods, i.e. \(P_1P_5, P_3P_5, P_5P_5, P_1P_4, P_2P_3, P_7P_7\). A part some spurious oscillations of the \(P_NP_M\) schemes with \(N=1\), the limiter activates exactly at the shock location (Colour figure online)

3.1.6 Double Mach Reflection

The double Mach reflection problem was first studied by Woodward and Colella [121] from which we take the setup also for our test.

We consider a computational domain \(\varOmega = [0,4] \times [0,1]\) covered with a coarse mesh of \(72\times 24\) elements where we activate the adaptive mesh refinement with \(\ell _{\max }=2\) and \(\mathfrak {r}=3\), and we compare the behavior of two fifth order schemes, namely the hybrid \(P_2P_4\) scheme and the \(P_4P_4\) pure DG scheme. For all the simulations, we employ the Rusanov flux and the second order TVD a posteriori subcell finite volume limiter.

At the beginning of the computation a shock wave moving at Mach number 10 is positioned at \((x,y) = (1/6,0)\) with an angle of \(60^\circ \) with respect to the x-axis and the initial pre-shock conditions (on the left of the shock) are given by a constant density equal to 1.4 and a constant pressure \(p=1\). At the bottom boundary we employ reflective boundary conditions for \(x>1/6\) where we suppose the presence of a wall, and the exact post-shock conditions for \(0 \le x \le 1/6\) to mimic an angled wedge. At the top boundary, the flow variables are set to describe the exact motion of the Mach 10 shock. Finally at the left and right boundaries we set inflow and outflow boundaries.

The obtained numerical results are shown in Fig. 10 for the entire domain; we also plot a zoom in Fig. 11 where, one can notice the roll up of the Mach stem due to Kelvin-Helmholtz instabilities.

Fig. 10
figure 10

Double Mach Reflection density contours obtained with two fifth order schemes, namely the \(P_2P_4\) and the \(P_4P_4\) schemes. We plot 30 equally spaced contour lines from 1.5 to 22.9705 as suggested in [102] (Colour figure online)

Fig. 11
figure 11

Double Mach Reflection. Left: density contours with 30 equally spaced contour lines from 1.5 to 22.9705. Right: limited cells (red) and unlimited cells (blue) (Colour figure online)

3.2 Ideal MHD Equations

Next, we consider the equations of ideal classical magnetohydrodynamics (MHD) which, with respect to the previous set of equations, take also into account the evolution of the magnetic field \(\mathbf {B}\). The vector of the conserved variables \(\mathbf {Q}\) and the flux tensor \(\mathbf {F}\) of the general form (1) are given by

$$\begin{aligned} \mathbf {Q}=\left( \begin{array}{c} \rho \\ \rho \mathbf {v} \\ \rho E \\ \mathbf {B}\\ \psi \end{array} \right) , \quad \mathbf {F}(\mathbf {Q}) = \left( \begin{array}{c} \rho \mathbf {v}\\ \rho \mathbf {v}\otimes \mathbf {v}+ p_t \mathbf {I} - \frac{1}{4 \pi } \mathbf {B}\otimes \mathbf {B}\\ \mathbf {v}(\rho E + p_t ) - \frac{1}{4 \pi } \mathbf {B}( \mathbf {v}\cdot \mathbf {B}) \\ \mathbf {v}\otimes \mathbf {B}- \mathbf {B}\otimes \mathbf {v}+ \psi \mathbf {I} \\ c_h^2 \mathbf {B}\end{array} \right) . \end{aligned}$$
(39)

Here, \(\mathbf {B}=(B_x,B_y,B_z)\) represents the magnetic field and \(p_t=p+\frac{1}{8\pi }\mathbf {B}^2\) is the total pressure. The hydrodynamic pressure is given by the equation of state used to close the system, thus

$$\begin{aligned} p = \left( \gamma - 1 \right) \left( \rho E - \frac{1}{2}\mathbf {v}^2 - \frac{\mathbf {B}^2}{8\pi }\right) . \end{aligned}$$
(40)

System (39) requires an additional constraint on the divergence of the magnetic field to be satisfied, that is

$$\begin{aligned} \nabla \cdot \mathbf {B} = 0. \end{aligned}$$
(41)

Here, (39) includes one additional scalar PDE for the evolution of the variable \(\psi \), which is needed to transport divergence errors outside the computational domain with an artificial divergence cleaning speed \(c_h\), see [31, 91]. A similar approach is adopted in [16, 20, 57]. A more recent and more sophisticated methodology to fulfill this condition exactly at the discrete level also in the context of high order ADER WENO finite volume schemes on unstructured simplex meshes can be found in [7].

3.2.1 MHD Vortex

First, for the numerical convergence studies, we solve the vortex test problem proposed by Balsara in [6]. The computational domain is given by the box \(\varOmega =[0,10]\times [0,10]\) with wall boundary conditions imposed everywhere. The initial condition can be written in terms of the vector of primitive variables \(\mathbf {V} = ( \rho , u, v, w, p, B_x, B_y, B_z, \varPsi )^T\) as

$$\begin{aligned} \mathbf {V}(\mathbf {x},0) = ( 1, \delta u, \delta v, 0, 1+\delta p, \delta B_x, \delta B_y, 0, 0 )^T, \end{aligned}$$
(42)

with \(\delta \mathbf {v} = (\delta u, \delta v, 0)^T\), \(\ \delta \mathbf {B} = ( \delta B_x, \delta B_y, 0 )^T\) and

$$\begin{aligned} \begin{aligned}&\delta \mathbf {v} = \frac{\kappa }{2\pi } e^{ q(1-r^2)} \mathbf {e}_z \times \mathbf {r} \\&\delta \mathbf {B} = \frac{\mu }{2\pi } e^{ q(1-r^2)} \mathbf {e}_z \times \mathbf {r}, \\&\delta p = \frac{1}{64 q \pi ^3} \left( \mu ^2 (1 - 2 q r^2) - 4 \kappa ^2 \pi \right) e^{2q(1-r^2)}, \end{aligned} \end{aligned}$$
(43)

where \(\mathbf {e}_z = (0,0,1)\), \(\mathbf {r} = (x-5,y-5,0)\) and \(r = \left\| \mathbf {r} \right\| = \sqrt{ (x-5)^2 + (y-5)^2 }\). The divergence cleaning speed is chosen as \(c_h=2\). The other parameters are \(q=\frac{1}{2}\), \(\kappa =1\) and \(\mu =\sqrt{4 \pi }\), according to [6].

In Table 4, we report the convergence rates from second up to sixth order of accuracy for the MHD vortex test problem run on a sequence of successively refined meshes up to the final time \(t_f=1.0\). The optimal order of accuracy is achieved both in space and time both for the hybrid schemes \(P_NP_M\) with \(M>N\) and for the pure DG schemes with \(N=M\).

Table 4 Numerical convergence table for general \(P_NP_M\) schemes for the MHD vortex

3.2.2 MHD Rotor Problem

The MHD rotor problem is a classical benchmark for MHD that was first proposed by Balsara and Spicer in [9]. It consists of a rapidly rotating fluid of high density embedded in a fluid at rest with low density. Both fluids are subject to an initially constant magnetic field.

The rotor produces torsional Alfvén waves that are launched into the outer fluid at rest, resulting in a decrease of angular momentum of the spinning rotor. We consider as computational domain the square \(\varOmega =[-0.5, 0.5]\times [-0.5, 0.5]\) and as initial condition we take the density inside a circle of radius \(r \le 0.1\) equal to \(\rho =10\), while the density of the ambient fluid at rest is set to \(\rho =1\). The rotor has an angular velocity of \(\omega =10\). The pressure is \(p=1\) and the magnetic field vector is set to \(\mathbf {B}= (2.5, 0, 0)^T\) in the entire domain. As proposed by Balsara and Spicer we apply a linear taper to the velocity and to the density in the range from \(0.1 \le r \le 0.105\) so that density and velocity match those of the ambient fluid at rest at a radius of \(r=0.105\). The speed for the hyperbolic divergence cleaning is set to \(c_h=8\) and \(\gamma =1.4\) is used. Wall boundary conditions are applied everywhere.

We run this problem on a coarse mesh made of \(45\times 45\) elements activating the AMR procedure with \(\ell _{\max }=2\) levels of refinement and \(\mathfrak {r}=3\), and for comparison we also employ a finer uniform mesh of \(405\times 405\) elements corresponding to the finest AMR grid level. In particular, we have employed the \(P_2P_4\) fifth order scheme and the \(P_4P_5\) sixth order scheme with the Rusanov numerical flux and our a posteriori subcell WENO FV limiter. In all the cases, we can observe a good agreement between the obtained numerical results and those available in the literature, see Figs. 12 and 13.

Fig. 12
figure 12

MHD Rotor problem at the final time \(t_f =0.25\) solved with our P2P4 fifth order scheme. In the left column we plot the pressure contours, in the central column the magnetic density profile \(M = \frac{(B_x^2 + B_y^2+B_z^2)}{(8\pi )}\) and in the right column we depict in red the troubled cells and in blue unlimited cells. The results on the first row are obtained with a coarse mesh of \(45\times 45\) cells and \(\ell _{\max }=2\) levels of refinement with \(\mathfrak {r}=3\). The results on the second row are obtained by using a fine uniform grid of \(405\times 405\) elements corresponding to the finest AMR grid level. The computation on the finer grids takes twice the time of the computation on a coarse mesh with AMR (i.e 7890 s instead of 3779 s) (Colour figure online)

Fig. 13
figure 13

MHD Rotor problem at the final time \(t_f =0.25\) solved with our P4P5 sixth order scheme. In the left column we plot the pressure contours, in the central column the magnetic density profile \(M = \frac{(B_x^2 + B_y^2+B_z^2)}{(8\pi )}\) and in the right column we depict in red the troubled cells and in blue unlimited cells in blue. The results on the first row are obtained with a coarse mesh of \(45\times 45\) cells and \(\ell _{\max }=2\) levels of refinement with \(\mathfrak {r}=3\). The results on the second row are obtained by using a fine uniform grid of \(405\times 405\) elements corresponding to the finest AMR grid level. The computation on the finer grids takes twice the time of the computation on a coarse mesh with AMR (Colour figure online)

3.3 MHD Orszag–Tang Vortex

We consider now the the vortex system of Orszag and Tang [30, 92, 94] for the ideal MHD equations. We choose as computational domain the square \(\varOmega =[0,2\pi ]\times [0,2\pi ]\) with periodic boundary conditions set everywhere; we cover it with a uniform grid of \(128\times 128\) elements.

The initial condition written in terms of primitive variables are the following

$$\begin{aligned} \begin{aligned}&\left( \rho ,u,v,w,p,B_x,B_y,B_z\right) \\&\quad = \left( \gamma ^2, -\sin (y), \sin (x), 0, \gamma , -\sqrt{4\pi } \sin (y), \sqrt{4\pi } \sin (2x), 0\right) \end{aligned} \end{aligned}$$
(44)

with \(\gamma =5/3\). The divergence cleaning speed is set to \(c_h=2\) and the final time of the simulation is taken to be \(t_f=3\) as in [40].

We solve this test by employing three different fifth order schemes, namely the hybrid \(P_2P_4\) and \(P_3P_4\) schemes and the pure DG \(P_4P_4\) scheme, with the Rusanov numerical flux and equipped with our a posteriori subcell TVD finite volume limiter. The obtained numerical results and the cells on which the limiter is activated are presented in Fig. 14. One can notice that the three methods produce similar results with a good qualitative agreement compared to the solutions provided in [7, 40, 124]; moreover, the hybrid schemes are computationally more efficient than the pure DG scheme.

Fig. 14
figure 14

MHD Orszag–Tang at the final time of \(t_f = 3.0\). We compare the results obtained with three fifth order schemes, namely the \(P_2P_4\), \(P_3P_4\), \(P_4P_4\) schemes. In the first column we depict the density contours, in the second column we depict the pressure contours and in the third column we depict the troubled cells in red and the unlimited cells in blue. One can notice that the three methods lead to similar results but with respect to \(P_4P_4\) the \(P_2P_4\) is 3.39 times faster and the \(P_3P_4\) is 1.60 time faster (Colour figure online)

3.4 Special Relativistic MHD Equations

The system of equations of special relativistic magnetohydrodynamics (RMHD) is supposed to provide a sufficiently accurate description of the dynamics of those astrophysical plasma that move close to the speed of light and which are subject to electromagnetic forces that dominate over the gravitational forces. For example this is the case of high energy astrophysical phenomena like extragalactic jets [13], gamma-ray bursts [80] or magnetospheres of neutron stars [89].

For a more detailed description of this model and a review of the numerical methods used in its approximation we refer to [123] and the reference therein. Here we briefly recall only the main terms appearing in the equations, which indeed can be written under the general hyperbolic form (1) by choosing

$$\begin{aligned} \begin{aligned} \mathbf{Q}=\left[ \begin{array}{c} D \\ S_j \\ U \\ B^j \end{array}\right] ,\quad \mathbf{f}^i=\left[ \begin{array}{c} v^i D \\ W^i_j \\ S^i \\ \varepsilon ^{jik}E^k \end{array}\right] , \end{aligned} \end{aligned}$$
(45)

where we have employed the classical tensor index notation based on the Einstein summation convention, which implies summation over two equal indices.

The conserved variables \((D,S_j,U,B^j)\) are related to the rest-mass density \(\rho \), to the thermal pressure p, to the fluid velocity \(v_i\) and to the magnetic field \(B^i\) by

$$\begin{aligned} \begin{aligned}&D = \rho W,\\&S_i = \rho h W^2 v_i + \varepsilon _{ijk}E_j B_k, \\&U = \rho h W^2 - p + \frac{1}{2}(E^2 + B^2), \end{aligned} \end{aligned}$$
(46)

where \(\varepsilon _{ijk}\) is the spatial Levi–Civita tensor and \(\delta _{ij}\) is the Kronecker symbol. As usual in ideal MHD, the electric field is given by \(\mathbf {E} = -\mathbf {v} \times \mathbf {B}\). The spatial tensor \(W^i_j\) in (45), representing the momentum flux density, is

$$\begin{aligned} \begin{aligned} W_{ij} \equiv \rho h W^2 v_i v_j - E_i E_j - B_i B_j + \left[ p +\frac{1}{2}(E^2+B^2)\right] \delta _{ij}, \end{aligned} \end{aligned}$$
(47)

where \(\delta _{ij}\) is the Kronecker delta.

The above equations include the divergence free condition \(\mathbf {\nabla }\cdot \mathbf {B}=0\) for the magnetic field, which, although is guaranteed by the Maxwell equations at a continuous level, is not automatically satisfied from a numerical point of view. Different strategies can be adopted in order to solve this problem (see [115] for a review). Here, as for the MHD case of Sect. 3.2, we have adopted the so called divergence-cleaning approach presented in [31, 91], which considers an augmented system with an additional equation for a scalar field \(\varPhi \), in order to propagate away the deviations from \(\mathbf {\nabla }\cdot \mathbf {B}=0\)

$$\begin{aligned} \begin{aligned} \partial _t \varPhi + \partial _i B^i = -\kappa \varPhi \,, \end{aligned} \end{aligned}$$
(48)

while the fluxes for the evolution of the magnetic field are also modified, namely \(\mathbf{f}^i(B^j)\rightarrow \varepsilon ^{jik}E^k + \varPhi \delta ^{ij}\).

3.4.1 Alfvén Wave

As for the previous set of equations we first of all check the convergence of our new numerical scheme. In the case of RMHD we can consider the propagation of a circularly polarized Alfven wave, for which an analytic solution can be computed, see [33, 78].

As initial condition we impose the following profile for the magnetic field and the velocity field

$$\begin{aligned} \begin{aligned} B_x&= B_0 \\ B_y&= \eta B_0\cos [k(x-v_A t)]\\ B_z&= \eta B_0\sin [k(x-v_A t)]\\ v_x&= 0\\ v_y&=-v_A B_y/B_0\\ v_z&=-v_A B_z/B_0. \end{aligned} \end{aligned}$$
(49)

where \(B_0\) is the uniform magnetic field along x, \(\rho =p=B_0=\eta =1\), k is the wave number, while \(v_A\) is the Alfven speed at which the wave propagates

$$\begin{aligned} v_A^2 = \frac{B_0^2}{\rho h + B_0^2\left( 1 + \eta ^2 \right) } \left[ \frac{1}{2} \left( 1 + \sqrt{1-\left( \frac{2 \eta B_0^2}{\rho h + B_0^2\left( 1+\eta ^2\right) } \right) ^2 } \, \right) \right] ^{-1} \end{aligned}$$

and \(\gamma =5/3\).

For the computational domain, we consider the 2D square \(\varOmega =[0, 2\pi ]\times [0, 2\pi ]\) with periodic boundary conditions set everywhere, and we run our simulation up to the final time \(t_f=L/v_A=2\pi /v_A\) corresponding to one period.

In Table 5, we report the \(L_2\) norm of the errors between our numerical results and the analytical solution for the variable \(\rho \). The convergence rates from second up to sixth order of accuracy are confirmed both for the hybrid schemes \(P_NP_M\) with \(M>N\) and for the pure DG schemes with \(N=M\).

Table 5 Numerical convergence table for general \(P_NP_M\) schemes for the relativistic Alfvén wave

3.4.2 Riemann Problems

Now, in order to check the robustness and accuracy of our a posteriori subcell FV limiter for the general class of the \(P_NP_M\) schemes, we solve two classical Riemann problems of RHD (i.e. RMHD with \(\mathbf {B}=\mathbf {0}\)) for which also an exact solution is available.

We consider the computational domain \(\varOmega =[-0.5,0.5]\times [0,1]\) and as initial condition we impose the discontinuous values given in Table 6. We solve these two test cases with a fifth order \(P_3P_5\) scheme and the HLLEM numerical flux, over a mesh of \(20\times 10\) elements with \(\ell _{\max }=2\) levels of refinement and \(\mathfrak {r}=3\).

Table 6 Initial conditions for the one-dimensional Riemann problems

The obtained numerical results, see Fig. 15, show once again that our limiter procedure preserves the resolution of the underlying \(P_NP_M\) scheme even on a coarse mesh.

Fig. 15
figure 15

RHD equations and Riemann problems RP1 (left) and RP2 (right), see Table 6 for the initial conditions. In the Figure, we compare our numerical results for the density \(\rho \) (squares) with the exact solution (continuous line)

3.4.3 Cylindrical Blast Wave

We now take into account a truly two dimensional test in RMHD, i.e. the cylindrical expansion of a blast wave in a plasma with an initially uniform magnetic field. This is a severe test proposed in [79], and subsequently also solved in [33, 50, 83, 123].

For the initial condition we set the rest-mass density and the pressure equal to \(\rho =0.01\) and \(p=1\) within a cylinder of radius \(r=1.0\), and \(\rho =10^{-4}\) and \(p=5\times 10^{-4}\) outside. Like in [79] and in [33], the inner and outer values are joined through a smooth ramp function between \(r=0.8\) and \(r=1\), to avoid a sharp discontinuity in the initial conditions. The plasma is initially at rest and subject to a constant magnetic field along the x-direction, i.e. \(B_x=0.1, B_y=0, B_z=0\).

We have solved this problem on the computational domain \(\varOmega = [-6,6]\times [-6,6]\), with a uniform mesh of \(160\times 160\) elements. We have used the Rusanov numerical flux and two sixth order schemes, namely the \(P_3P_5\) and the \(P_5P_5\) schemes, equipped with the robust a posteriori subcell second-order TVD FV limiter. The obtained numerical results, which agree with those available in the literature, are reported in Fig. 16.

Fig. 16
figure 16

RMHD blast wave at time \(t_f=4.0\). We show the results obtained with two sixth order schemes, namely the \(P_3P_5\) and \(P_5P_5\) schemes. In the left column we plot the density contours and in the right column we depict the troubled cells in red and the unlimited cells in blue. The resolution and the number of limited cells are quite similar with the two approaches but the hybrid \(P_3P_5\) scheme is 2.79 times faster than the pure DG \(P_5P_5\) scheme (Colour figure online)

3.4.4 RMHD Orszag–Tang Vortex

Finally, we have chosen the relativistic version of the well known Orszag–Tang vortex problem, proposed by [92], and adapted to the relativistic case in [50, 123]. The computational domain is \(\varOmega = [0,2\pi ]\times [0,2\pi ]\) and the initial conditions are given by

$$\begin{aligned} \begin{aligned}&\left( \rho , u, v, w, p, B_x ,B_y,B_z \right) \\&\quad = \left( 1 , - \frac{3}{4\sqrt{2}}\sin \left( y\right) , \frac{3}{4\sqrt{2}}\sin \left( x \right) , 0, 1, - \sin \left( y\right) , \sin \left( 2x \right) , 0 \right) , \end{aligned} \end{aligned}$$
(50)

with \(\gamma =4/3\).

To solve this system we employ the sixth order hybrid scheme \(P_3P_5\) over a level zero mesh of \(45\times 45\) elements, activating the AMR feature with \(\ell _{\max }=2\) levels of refinement and \(\mathfrak {r}=3\). The obtained numerical results are reported in Fig. 17: once again we can notice that the two schemes have a similar resolution but the hybrid scheme is 2.62 times faster than a pure DG scheme, of the same order. Furthermore, we can observe that the proposed a posteriori subcell limiter procedure is robust and maintains the high resolution of the underlying \(P_NP_M\) scheme even on coarse meshes.

Fig. 17
figure 17

RMHD Orszag Tang at time \(t_f=5\). We present the density contours (left column) and the limited cells (in red in the right column) obtained with two sixth order schemes, namely the \(P_3P_5\) and the \(P_5P_5\) schemes, on an adaptive mesh with \(45\times 45\) control volume on the coarsest level, \(\ell _{\max }=2\) and \(\mathfrak {r}=3\) (Colour figure online)

4 Conclusion

In this paper we have proposed a new simple, robust, accurate and computationally efficient limiting strategy for the general family of ADER \(P_NP_M\) schemes, allowing, for the first time in literature, the use of hybrid reconstructed methods (\(N>0, M>N\)) in the modeling of discontinuous phenomena. The key ideas behind our limiter are: i) its local activation only where the linear schemes introduces oscillations through an a posteriori detector, ii) its robustness due to the use of strong stability preserving TVD or WENO FV schemes as limiter, iii) its resolution due to the use of the limiter on \(2N+1\) subcells. Thus, we have been able to apply this new approach to many different systems of hyperbolic conservation laws, providing highly accurate numerical results in all cases. Moreover, we had the possibility to compare the performance of the class of intermediate \(P_NP_M\) schemes with \(M>N>0\) with pure DG schemes (\(M=N\)). We have observed that in most cases the intermediate \(P_NP_M\) schemes offer a similar resolution compared to pure DG methods, but at a reduced computational cost.

Future work will consider the extension of \(P_NP_M\) scheme with \(N~>~0\), \(M~>~N\) to unstructured moving meshes [18, 63], in particular for regenerating Voronoi tessellations [59, 60], and to the three-dimensional case. Finally, due to their low memory consumption and their gain in computational efficiency compared to DG schemes, they will be also considered for astrophysical applications [42, 44, 61] and the unified first order hyperbolic model of continuum mechanics proposed in [25, 48, 49, 93, 98], where a large number of conserved variables has to be discretized. Due to their accuracy and compact stencil in the future we also plan to use \(P_NP_M\) schemes with a posteriori subcell finite volume limiter in the context of hyperbolic reformulations of nonlinear dispersive systems and wave propagation problems, see e.g. [11, 12, 34, 54, 58].