Keywords

1 Introduction

The DG method was first developed for the neutron equation [20]. Since then, DG methods have been used to solve hyperbolic [11, 1315, 17], parabolic [16], and elliptic [10] partial differential equations.

The DG methods are a family of locally conservative, stable, and high-order accurate methods that are easily coupled with other well-known methods and are well suited to adaptive strategies. For these reasons, they have attracted the attention of many researchers working in computational mechanics, computational mathematics, and computer science. They provide an appealing approach to address problems having discontinuities, such as those arising in hyperbolic conservation laws. The DG method does not require the approximate solutions to be continuous across element boundaries, it instead involves a flux term to account for the discontinuities. For a more complete list of citations on DG methods and its applications, consult [12]. A main advantage of using discontinuous finite element basis is to simplify adaptive p- and h-refinement with hanging nodes.

The DG method has a simple communication pattern between elements with a common face that makes it useful for parallel computation. Furthermore, it can handle problems with complex geometries to high order. Regardless of the type of DG method, we need to know how well our computed solution approximates the exact solution. In practice, the exact solution of the problem is not available and a method to estimate the discretization error is needed. For these reasons, a posteriori error estimates have been developed for DG methods and provide some initial guidance for deciding on the degree of the approximation and the size of the mesh that guarantee a prescribed level of accuracy. Furthermore, error estimates may be used to guide hp-adaptive refinement.

The first superconvergence result for DG solutions of hyperbolic partial differential equations appeared in Adjerid et al. [4]. The authors showed that DG solutions of one-dimensional linear and nonlinear hyperbolic problems using p-degree polynomial approximations exhibit an O(h p+2) superconvergence rate at the roots of (p + 1)-degree Radau polynomial. This lead to the conclusion that the leading term of the DG error on each element is proportional to (p + 1)-degree Radau polynomial which was used to construct asymptotically correct a posteriori error estimates. They further established a strong O(h 2p+1) superconvergence at the downwind end of every element. Later, Krivodonova and Flaherty [19] showed that the leading term of the local discretization error on triangles having one outflow edge is spanned by a suboptimal set of orthogonal polynomials of degree p and p + 1 and computed DG error estimates by solving local problems involving numerical fluxes, thus requiring information from neighboring inflow elements. Adjerid and Massey [5] extended these results to multi-dimensional problems using rectangular meshes and presented an error analysis for linear and nonlinear hyperbolic problems. They showed that the leading term in the true local error is spanned by two (p + 1)-degree Radau polynomials in the x and y directions, respectively. They further discovered that a p-degree discontinuous finite element solution exhibits an O(h p+2) superconvergence at Radau points obtained as a tensor product of the roots of Radau polynomial of degree p + 1. Using these results, they were able to compute asymptotically exact a posteriori error estimates for linear and nonlinear hyperbolic problems on Cartesian meshes.

Adjerid and Baccouch [1, 2] investigated the superconvergence properties of discontinuous Galerkin solutions of a scalar first-order hyperbolic problem on triangular meshes. They presented a detailed discussion on the superconvergence properties versus the choice of finite element polynomial spaces. First, they classified triangular elements into three types: (i) type I with one inflow edge and two outflow edges, (ii) type II with two inflow edges and one outflow edge, and (iii) type III with one inflow edge, one outflow edge, one edge parallel to the characteristics. Through computations, they showed that the local superconvergence results [1] extend to global DG solutions on general meshes with a corrected inflow boundary condition. In particular, they showed that the discontinuous finite element solution is O(h p+2) superconvergent at the Legendre points on the outflow edge for triangles having one outflow edge. For triangles having two outflow edges the finite element error is O(h p+2) superconvergent at the end points of the inflow edge.

Adjerid and Weinhart [79] studied the asymptotic behavior of the local DG error for multi-dimensional first-order linear symmetric and symmetrizable hyperbolic systems of partial differential equations. They performed a local error analysis by writing the local error as a series and showing that its leading term can be expressed as a linear combination of Legendre polynomials of degree p and p + 1. They were able to compute efficient and asymptotically exact estimates of the discontinuous finite element error.

In this manuscript we consider the modified discontinuous Galerkin method [2] with a corrected inflow flux and an enriched polynomial space \(\mathcal{U}_{p}\) with adaptive mesh refinement. We consider several mesh refinement strategies guided by both discretization error estimates and local residuals. Since \({\mathcal{L}}^{2}\) a posteriori error estimates based on Taylor expansions fail to be asymptotically exact under uniform mesh refinement in the presence of shocks [3, 5, 6], we present several numerical results which suggest that such error estimates converge to the true errors under adaptive mesh refinement on general unstructured triangular meshes in the presence of discontinuities. Numerical results further suggest that using local residuals to guide the adaptive mesh refinement yield more efficient algorithms when compared to using the error estimate itself in the presence of discontinuities. Thus, we recommend an adaptive strategy that combines the local residuals or any other explicit estimators to guide mesh refinement and the proposed error estimate to assess solution accuracy and terminate the adaptive refinement process.

This paper is organized as follows: In Sect. 2 we state the modified DG formulation for linear and nonlinear hyperbolic problem and present our a posteriori error estimation procedures for linear and nonlinear problems. In Sect. 3 we describe several adaptive mesh refinement strategies that will be used to test the performance of our error estimates. Finally, in Sect. 4 we present numerical results for several linear and nonlinear hyperbolic problems with discontinuous solutions and conclude with a few remarks in Sect. 5.

2 Discontinuous Galerkin Formulation and Error Estimation

In this section we present an adaptive modified discontinuous Galerkin method [13] combined with a posteriori error estimation procedure. In addition to being used to steer the adaptive process, the a posteriori error estimate is also used to correct the numerical flux needed to compute the DG solution on downwind elements. This modified DG method maintains the structure of the local discretization error on each element of the mesh which makes the error estimation both efficient and accurate.

In order to further simplify the error estimation procedure we use the augmented polynomial space \(\mathcal{U}_{p}\) given by

$$\displaystyle{\mathcal{U}_{p} = \mathcal{P}_{p} \cup \mathrm{span}\{{x}^{p+1},{y}^{p+1}\},\ p \geq 1,}$$

where

$$\displaystyle{ \mathcal{P}_{k} = \left \{q\,\vert \,q =\sum _{ m=0}^{k}\sum _{ i=0}^{m}c_{ i}^{m}{x}^{i}{y}^{m-i}\right \},\qquad k = 0,1,\ldots,p. }$$
(2.1a)

The finite element space \(\mathcal{U}_{p}\) is suboptimal, i.e., it contains p + 1-degree terms that do not contribute to global convergence rate but simplifies the a posteriori error estimation procedures described later in this manuscript.

We consider a reference triangle Δ 0 defined by the vertices (0, 0), (1, 0), and (0, 1) and define the following orthogonal polynomials [18]

$$\displaystyle{ \varphi _{k}^{l}(\xi,\eta ) = {2}^{k}\hat{L}_{ k}\left ( \frac{2\xi } {1-\eta }- 1\right ){(1-\eta )}^{k}\hat{P}_{ l}^{2k+1,0}(2\eta - 1),\ k,l \geq 0\ k + l = p \geq 0, }$$
(2.2a)

where \(\hat{P}_{n}^{\alpha,\beta }(x),\ -1 \leq x \leq 1,\) is the Jacobi polynomial

$$\displaystyle{ \hat{P}_{n}^{\alpha,\beta }(x) = \frac{{(-1)}^{n}} {{2}^{n}n!} {(1 - x)}^{-\alpha }{(1 + x)}^{-\beta } \frac{{d}^{n}} {d{x}^{n}}[{(1 - x)}^{\alpha +n}{(1 + x)}^{\beta +n}],\quad \alpha,\beta > -1, }$$
(2.2b)

and \(\hat{L}_{n}(x) =\hat{ P}_{n}^{0,0}(x),\ -1 \leq x \leq 1\) is the nth-degree Legendre polynomial.

We note that these polynomials satisfy the \({\mathcal{L}}^{2}\) orthogonality

$$\displaystyle{ \int _{0}^{1}\int _{ 0}^{1-\eta }\varphi _{ k}^{l}\varphi _{ p}^{q}d\xi d\eta = c_{ kp}^{lq}\delta _{ kp}\delta _{lq}. }$$
(2.3)

Radau polynomials are defined by

$$\displaystyle{ \hat{R}_{p+1}(x) = (1 - x)\hat{P}_{p}^{1,0}(x) = C(\hat{L}_{ p+1}(x) -\hat{ L}_{p}(x)),\ -1 \leq x \leq 1. }$$
(2.4)

We drop the hat and let L p , P p α, β and R p , respectively, denote the Jacobi, Legendre and Radau polynomials shifted to [0, 1].

Let us note that U on the physical element is in the modified polynomial space

$$\displaystyle{\mathcal{U}_{p} = \mathcal{P}_{p} + \mathrm{span}\{\xi {(x,y)}^{p+1},\eta {(x,y)}^{p+1}\},}$$

where (x, y) → (ξ(x, y), η(x, y)) is the standard affine mapping from the physical element Δ to the reference element Δ 0.

First, let us consider a divergence-free linear stationary hyperbolic problem on an open bounded convex polygonal domain Ω ⊆ R 2. Let \(\boldsymbol{a} = {[a_{1}(x,y),a_{2}(x,y)]}^{T}\) denote a nonzero velocity vector. If \(\boldsymbol{n}\) denotes the outward unit normal vector, the domain boundary \(\partial \varOmega = {\partial \varOmega }^{+} \cup {\partial \varOmega }^{-}\cup {\partial \varOmega }^{0}\), where the inflow, outflow, and characteristic boundaries, respectively, are \({\partial \varOmega }^{-} =\{ (x,y) \in \partial \varOmega \mid \boldsymbol{a} \cdot \boldsymbol{ n} < 0\}\), \({\partial \varOmega }^{+} =\{ (x,y) \in \partial \varOmega \mid \boldsymbol{a} \cdot \boldsymbol{ n} > 0\}\), and \({\partial \varOmega }^{0} =\{ (x,y) \in \partial \varOmega \mid \boldsymbol{a} \cdot \boldsymbol{ n} = 0\}\).

Let u(x, y) denote a smooth function on Ω and consider the following hyperbolic boundary value problem

$$\displaystyle{ L(u) =\boldsymbol{ a}.\nabla u + cu = f,\quad (x,y) \in \varOmega = {(0,1)}^{2}, }$$
(2.5a)
$$\displaystyle{ \nabla.\boldsymbol{a} = \frac{\partial a_{1}} {\partial x} + \frac{\partial a_{2}} {\partial y} = 0, }$$
(2.5b)

subject to the boundary conditions

$$\displaystyle{ u(x,0) = g_{0}(x),\ \ u(0,y) = g_{1}(y), }$$
(2.5c)

where the functions \(\boldsymbol{a}(x,y)\), c(x, y), f(x, y), g 0(x), and g 1(y) are selected such that the exact solution u(x, y) ∈ C (Ω).

In order to obtain the weak discontinuous Galerkin formulation for (2.5), we partition the domain Ω into N triangular elements Δ j ,  j = 1, , N, such that on every edge \(\boldsymbol{a} \cdot \boldsymbol{ n}\) does not change sign. Thus, every edge is either inflow, outflow, or characteristic, respectively, if \(\boldsymbol{a} \cdot \boldsymbol{ n} < 0\), \(\boldsymbol{a} \cdot \boldsymbol{ n} > 0\) or \(\boldsymbol{a} \cdot \boldsymbol{ n} = 0\). Using this mesh orientation, a triangle can be classified into type I having one inflow edge and 2 outflow edges, type II having two outflow and one inflow edges, or type III having one inflow, one outflow and one characteristic edges. The problem is solved on each element starting from the upwind elements and proceeding to the neighboring elements in the downwind direction, i.e., we order the elements such that the inflow boundary Γ j of an element Δ j is contained in the inflow boundary ∂ Ω of the domain or in the outflow boundary Γ i + of Δ i ,  i < j.

In the remainder of this paper we omit the element index and refer to an arbitrary element by Δ whenever confusion is unlikely. Note that Γ + and Γ , respectively, denote the outflow and inflow boundaries of Δ.

Thus, our discontinuous Galerkin method consists of finding \(U \in \mathcal{U}_{p}\) such that

$$\displaystyle\begin{array}{rcl} & & \int _{{\varGamma }^{-}}\boldsymbol{a} \cdot \boldsymbol{ n}\hat{U}V ds +\int _{{\varGamma }^{+}}\boldsymbol{a} \cdot \boldsymbol{ n}UV ds -\iint _{\varDelta }(\boldsymbol{a} \cdot \nabla V - cV )Udxdy \\ & & \quad =\iint _{\varDelta }fV dxdy,\ \ \forall \ V \in \mathcal{U}_{p}. {}\end{array}$$
(2.6a)

In order to complete the definition of the DG method we need to select the corrected upwind numerical flux \(\hat{U}\) on Γ as

$$\displaystyle{ \hat{U} = \left \{\begin{array}{@{}l@{\quad }l@{}} u, \quad &{\text{on }\ \varGamma }^{-}\bigcap {\partial \varOmega }^{-} \\ {U}^{-} + {E}^{-},\quad &\mathrm{elsewhere,} \end{array} \right. }$$
(2.6b)

where U and E , respectively, are the limit of U and E from the inflow element sharing Γ , i.e., if (x, y) ∈ Γ , then

$$\displaystyle{ {U}^{-}(x,y) =\lim \limits _{ s\rightarrow {0}^{+}}U((x,y) + s\boldsymbol{n}),{E}^{-}(x,y) =\lim \limits _{ s\rightarrow {0}^{+}}E((x,y) + s\boldsymbol{n}). }$$
(2.6c)

Here, E is an a posteriori error estimate that will be defined by following [2, 3] to write the leading term of the local DG error on each triangle as a linear combination of the following p error basis functions

$$\displaystyle{ (u - U)(x,y) \approx E(x,y) =\sum _{ i=1}^{p}{d}^{i}\chi _{ p+1-i}^{i}(\xi (x,y),\eta (x,y)), }$$
(2.7a)

where χ j are given in [2]. For the sake of completeness we include them in Tables 1 and 2 for types I and II and [α, β] as given in (2.11) while for type III the leading term of the error can be written as

$$\displaystyle{ Q_{p+1} =\sum _{\begin{array}{l} i,j \geq 0 \\ i + j = p \end{array} }c_{i}^{j}\ (1-\xi -\eta )P_{ i}^{2j+2,0}(2\eta -1){(1-\eta )}^{j}P_{ j}^{1,0}\left ( \frac{2\xi } {1-\eta }- 1\right ), }$$
(2.7b)

with

$$\displaystyle{ c_{0}^{p} = \frac{1} {p + 1}\sum _{i=1}^{p}{(-1)}^{i+1}(p + 1 - i)c_{ i}^{p-i}. }$$
(2.7c)

After computing the finite element solution U on an element Δ, we compute an error estimate by solving the problem for i = 1, 2, , p, 

$$\displaystyle{ \iint _{\varDelta }\left (\boldsymbol{a} \cdot \nabla (U + E) + c(U + E)\right )\chi _{p+1-i}^{i}dxdy =\iint _{\varDelta }f\chi _{ p+1-i}^{i}dxdy. }$$
(2.7d)
Table 1 Error basis functions for the spaces \(\mathcal{U}_{p}\) for p = 1 to 3 on the reference triangle of type I where s = αβ
Table 2 Error basis functions for the spaces \(\mathcal{U}_{p}\) for p = 1 to 4 on the reference element of type II, s = αβ

Next we consider nonlinear problems of the form

$$\displaystyle{ L(u) = \nabla \cdot \mathbf{F}(u) = h(u)_{x} + g(u)_{y} = f(x,y),\ \ (x,y) \in \varOmega \ =\ {(0,1)}^{2}, }$$
(2.8a)

subject to the boundary conditions

$$\displaystyle{ u(x,0) = g_{0}(x),\ \ u(0,y) = g_{1}(y). }$$
(2.8b)

In our analysis [3] we assume \(\mathbf{F}: \mathbb{R} \rightarrow {\mathbb{R}}^{2}\), \(u: {\mathbb{R}}^{2} \rightarrow \mathbb{R}\), f, g 0 and g 1 to be analytic functions such that g′(u) > 0 and h′(u) > 0 over the domain Ω. The inflow, outflow, and characteristic boundaries, respectively, are defined by \({\partial \varOmega }^{-} =\{ (x,y) \in \partial \varOmega \mid \ \mathbf{F}^{\prime}(u) \cdot \boldsymbol{ n} = {[h^{\prime}(u),g^{\prime}(u)]}^{t} \cdot \boldsymbol{ n} < 0\},\) \({\partial \varOmega }^{+} =\{ (x,y) \in \partial \varOmega \mid \ \mathbf{F}^{\prime}(u) \cdot \boldsymbol{ n} > 0\},\) and \({\partial \varOmega }^{0} =\{ (x,y) \in \partial \varOmega \mid \ \mathbf{F}^{\prime}(u) \cdot \boldsymbol{ n} = 0\},\) such that ∂ Ω = ∂ Ω ∂ Ω +∂ Ω 0 and \(\boldsymbol{n}\) is the outward unit normal to ∂ Ω. We further assume that the unstructured triangular mesh is such that \(\mathbf{F}^{\prime}(u).\boldsymbol{n}\) does not change sign on all edges, i.e., every edge is either inflow, outflow, or characteristic.

The discrete DG formulation consists of determining \(U \in \mathcal{U}_{p}\) such that

$$\displaystyle\begin{array}{rcl} & & \int _{{\varGamma }^{-}}\boldsymbol{n} \cdot \mathbf{F}(\hat{U})V ds +\int _{{\varGamma }^{+}}\boldsymbol{n} \cdot \mathbf{F}(U)V ds -\iint _{\varDelta }\mathbf{F}(U) \cdot \nabla V dxdy \\ & & \quad = \iint _{\varDelta }fV dxdy,\ \ \forall \ V \in \mathcal{U}_{p}, {}\end{array}$$
(2.9a)

where \(\hat{U}\) is as defined in (2.6b). We estimate the error by solving the linearized problem

$$\displaystyle\begin{array}{rcl} & & \iint _{\varDelta }{[h^{\prime}(U),g^{\prime}(U)]}^{T} \cdot \nabla (U + E)\chi _{ p+1-i}^{i}dxdy \\ & & \quad =\iint _{\varDelta }f\chi _{p+1-i}^{i}dxdy,\ \ i = 1,\ldots,p. {}\end{array}$$
(2.9b)

Next, we consider transient hyperbolic problems of the form

$$\displaystyle{L(u) = u_{t} + \nabla \cdot \mathbf{F}(u) = f(x,y,t),\ \ (x,y) \in \varOmega \ =\ {(0,1)}^{2},\ t > 0,}$$

subject to initial condition u 0(x, y) and inflow boundary conditions.

The semi-discrete DG formulation consists of determining \(U \in \mathcal{U}_{p}\) such that

$$\displaystyle\begin{array}{rcl} & & \iint _{\varDelta }(U_{t}V -\mathbf{F}(U) \cdot \nabla V )dxdy +\int _{{\varGamma }^{-}}\boldsymbol{n} \cdot \mathbf{F}(\hat{U})V ds + \\ & & \int _{{\varGamma }^{+}}\boldsymbol{n} \cdot \mathbf{F}(U)V ds = \iint _{\varDelta }fV dxdy,\quad \forall \ V \in \mathcal{U}_{p}, {}\end{array}$$
(2.10a)

where \(\hat{U}\) is as defined in (2.6b). We compute an error estimate by solving the linearized problem

$$\displaystyle\begin{array}{rcl} & & \iint _{\varDelta }{[h^{\prime}(U),g^{\prime}(U)]}^{T} \cdot \nabla (U + E)\chi _{ p+1-k}^{k}dxdy \\ & & \quad =\iint _{\varDelta }(f - U_{t})\chi _{p+1-k}^{k}dxdy,\ \ k = 1,2,\ldots,p.{}\end{array}$$
(2.10b)

In order for the DG error to have the same structure for all times, we approximate the initial conditions u 0 by \(U_{0} \in \mathcal{U}_{p}\) computed from the stationary problem

$$\displaystyle\begin{array}{rcl} & & \int _{{\varGamma }^{-}}\boldsymbol{n} \cdot \mathbf{F}(\hat{U_{0}})V ds +\int _{{\varGamma }^{+}}\boldsymbol{n} \cdot \mathbf{F}(U_{0})V ds -\iint _{\varDelta }\mathbf{F}(U_{0}) \cdot \nabla V dxdy \\ & & \quad = \iint _{\varDelta }\nabla \cdot \mathbf{F}(u_{0})V dxdy,\quad \forall \ V \in \mathcal{U}_{p}, {}\end{array}$$
(2.10c)

with \(\hat{U}_{0}\) being u 0 on the boundary edges and U 0 + E 0 on the interior edges. We estimate the error E 0 at t = 0 on Δ by solving the linearized problem

$$\displaystyle\begin{array}{rcl} & & \iint _{\varDelta }{[h^{\prime}(U_{0}),g^{\prime}(U_{0})]}^{T} \cdot \nabla (U_{ 0} + E_{0})\chi _{p+1-i}^{i}dxdy \\ & & \quad =\iint _{\varDelta }\nabla \cdot \mathbf{F}(u_{0})\chi _{p+1-i}^{i}dxdy,\ \ i = 1,2,\ldots,p.{}\end{array}$$
(2.10d)

Basic calculus shows that, if h = diam(Δ), the Jacobian of the affine transformation from Δ to Δ 0 can be written as

$$\displaystyle{\mathbf{J} = \left [\begin{array}{cc} \xi _{x}&\eta _{x}\\ \xi _{y } & \eta _{y } \end{array} \right ] = \frac{1} {h}\mathbf{J}_{0},}$$

where J 0 is a 2 × 2 matrix independent of h.

Applying Taylor’s theorem we expand \(\mathbf{J}_{0}\boldsymbol{a}\) as

$$\displaystyle{\boldsymbol{\check{a}}(\xi,\eta,h) =\ \boldsymbol{ a}_{0} +\sum \limits _{ k=1}^{\infty }{h}^{k}\boldsymbol{a}_{ k}(\xi,\eta ),}$$

where \(\boldsymbol{a}_{k} \in {[\mathcal{P}_{k}]}^{2}\), and

$$\displaystyle{\boldsymbol{a}_{0} = {[\alpha,\beta ]}^{T} = \left \{\begin{array}{@{}l@{\quad }l@{}} \mathbf{J}_{0}\boldsymbol{\tilde{a}}(1/2,1/2),\quad &\quad \text{ if }\ \varDelta \text{ is of type I}, \\ \mathbf{J}_{0}\boldsymbol{\tilde{a}}(0,0), \quad &\quad \text{ if }\ \varDelta \text{ is of type II or III}\\ \quad \end{array} \right..}$$

The sign of [α, β]T ⋅ n is used to determine inflow and outflow edges.

An accepted efficiency measure of a posteriori error estimates is the effectivity index. In this paper we use the effectivity indices in the \({\mathcal{L}}^{2}\) norm defined as

$$\displaystyle{ \theta \ =\ \frac{\vert \vert E\vert \vert _{{\mathcal{L}}^{2}(\varOmega )}} {\vert \vert e\vert \vert _{{\mathcal{L}}^{2}(\varOmega )}}. }$$
(2.11)

Ideally, the effectivity indices should approach unity under mesh refinement. We note that for transient problems the effectivity index is denoted by θ(t).

3 Adaptive Mesh Refinement

In this section we test our error estimation procedures presented in the previous section on adaptively refined meshes. We implement several h-refinement strategies and adaptive algorithms to compute DG solutions and error estimates on successively refined meshes.

Again, we recall that our modified DG method solves steady hyperbolic problems by first creating a mesh and arranging its elements into a list \(M =\{\varDelta _{1},\varDelta _{2},\ldots,\varDelta _{j},\ \ldots \}\) such that

  • Rule 1: All inflow elements, whose inflow edges are on the domain inflow ∂ Ω , are put first in the list M.

  • Rule 2: The inflow edges of an element Δ j in M are either on the domain inflow boundary ∂ Ω or outflow edges of an element Δ i , i < j.

The modified DG method starts by computing the solution on the first element Δ 1 and proceeds downwind by computing the solution on elements in Δ 2, Δ 3,  until the last element in M. Next we discuss several adaptive refinement algorithms that subdivide element having large “errors.”

Algorithm 1 solves hyperbolic problems on a succession of locally refined meshes obtained by subdividing elements with errors larger than a specified threshold delta.

Algorithm 1 consists of the following steps

(i)  Set delta and Maxiter and k=0

(ii) construct an initial mesh Omega_0, order its elements

     in a list M of elements satisfying Rules 1 and 2

while k < Maxiter

    a- Solve the DG problem on Omega_k as described above.

    b- Compute errors ||E||_{Delta} for each element Delta in

       Omega_k

    c- For all elements Delta in M

          if ||E||_{Delta} < delta

              accept the DG solution on Delta

          else

             reject the DG solution on Delta

             subdivide Delta into 4 congruent triangles

          endif

    d- Complete triangulation by eliminating hanging nodes

       to create new mesh Omega_k+1 and order its elements

       in a list M satisfying Rules 1 and 2.

     e- k <-- k+1

endwhile

Algorithm 2a solves the whole problem on an initial mesh and then goes back and solves the problem on each element and applies a local refinement algorithm to obtain a more accurate DG solution. It consists of the following steps:

(i)   Set omega and Create an initial mesh Omega

(ii)  Solve discrete DG problem on Omega as described above

(iii) Compute errors ||E||_{Delta} for each element Delta

      and compute error Emax = max_{Delta} ||E||_{Delta}

(iv)  For all elements Delta in M satisfying Rules 1 and 2

         if ||E||_{Delta} < omega*Emax

            Accept the DG solution on Delta

         else

            Reject the DG solution

            Subdivide Delta into 4 congruent triangles

            Complete triangulation to eliminate hanging nodes

            Update the list M satisfying Rules 1 and 2

         end

Algorithm 2b follows the same steps as Algorithm 2a except for the refinement selection strategy. An element is selected for refinement if the local error exceeds a fraction of the average error Eavg following the steps:

(i)   Set omega and create a mesh Omega with N elements

(ii)  Solve discrete DG problem on Omega described above

(iii) Compute errors ||E||_{Delta} for each element Delta

      Compute average error Eavg=sum_{Delta}||E||_{Delta}/N

(iv)  For all elements in M satisfying Rules 1 and 2

        if ||E||_{Delta} < omega*Eavg

           Accept the DG solution on Delta

        else

           Reject the DG solution

           Subdivide Delta into 4 congruent triangles

           Complete triangulation to eliminate hanging nodes

           Update the list M satisfying Rules 1 and 2

        end

Algorithm 2c is similar to Algorithm 2a. However, an element is selected for refinement if its residual exceeds a fraction of the maximum residual and follows the steps:

(i)   Set omega and Create an initial mesh Omega

(ii)  Solve discrete DG problem on Omega described above

(iii) Compute residual ||r||_{Delta}=||L(U)-f||_{Delta}

      on each element Delta and compute maximum residual

      rmax= max_{Delta} ||r||_{Delta}

(iv)  For all elements in M satisfying Rules 1 and 2

         if ||r||_{Delta} < omega*rmax

            Accept the DG solution on Delta

         else

            Reject the DG solution

            Subdivide Delta into 4 congruent triangles

            Complete triangulation to eliminate hanging nodes

            Update the list M satisfying Rules 1 and 2

         end

Algorithm 2d follows the same steps as Algorithm 2a with one exception: an element is selected for refinement if the element residual exceeds a fraction of the average residual and follows the steps:

(i)   Set omega and Create a mesh Omega with N elements

(ii)  Solve discrete DG problem on Omega described above

(iii) Compute residual ||r||_{Delta}=||L(U)-f||_{Delta}

       on each element Delta and compute average residual

       ravg= sum_{Delta} ||r||_{Delta}/N

(iv)  For all elements in M satisfying Rules 1 and 2

          if ||r||_{Delta} < omega*ravg

            Accept the DG solution on Delta

          else

            Reject the DG solution

            Subdivide Delta into 4 congruent triangles

            Complete triangulation to eliminate hanging nodes

            Update the list M satisfying Rules 1 and 2

          end

Algorithm 3 prevents the errors on elements near the discontinuity from polluting elements having smooth solutions. Each element having a large error is immediately refined after computing its DG solution, while the refinement in Algorithm 1 is performed after computing the solution on all elements. Thus, this algorithm will reduce the errors as they appear and is expected to reduce the pollution errors observed with Algorithm 1. This algorithm consists of the following steps:

(i)   Set delta

(ii)  Construct an initial mesh

(iii) Order elements in a list M satisfying Rules 1 and 2

(iv)  For all elements Delta in M

          a- Compute  DG solution on Delta

          b- Compute error ||E||_{Delta}

          c- If ||E||_{Delta} < delta

                Accept the DG solution on Delta

             else

                Reject DG solution on Delta

                Subdivide Delta into 4 congruent triangles

                Eliminate hanging nodes

                Update the list M satisfying Rules 1 and 2

             endif

Algorithm 4 is similar to Algorithm 3 except for the refinement selection criteria. Here an element Delta is selected for refinement if the maximum residual over all elements before Delta in the list M exceeds a user specified tolerance delta and follows the following steps:

(i)   Set delta

(ii)  Construct an initial mesh

(iii) Order elements in a list M satisfying Rules 1 and 2

(iv)  For all elements Delta in M

         a- Compute  DG solution on Delta

         b- Compute maximum residual rmax over all elements

            in M before element Delta

         c- If rmax < delta

                Accept the DG solution on Delta

            else

                Reject DG solution on Delta

                Subdivide Delta into 4 congruent triangles

                Eliminate hanging nodes

                Update the list M satisfying Rules 1 and 2

            endif

Algorithm 5 is similar to Algorithm 4 except for the refinement selection criteria. Here an element Delta is selected for refinement if the average residual over all elements before Delta exceeds a user specified tolerance delta and follows the following steps:

(i)   Set delta

(ii)  Construct an initial mesh

(iii) Order elements in a list M satisfying Rules 1 and 2

(iv)  For all elements Delta in M

          a- Compute  DG solution on Delta

          b- Compute average residual ravg over all elements

             in M and before element Delta

          c- If ravg < delta

                Accept the DG solution on Delta

             else

                Reject DG solution on Delta

                Subdivide Delta into 4 congruent triangles

                Eliminate hanging nodes

                Update the list M satisfying Rules 1 and 2

             endif

Algorithm 6 is used with a time-marching scheme that converges to a steady state solution and consists of the following steps:

(i) Set delta, NStep, k=0 and construct a mesh Omega_k

    Set dt and t_k = k*dt

while k < Nstep

   (ii)  Integrate from t_k to t_{k+1} on Omega_k

   (iii) Compute errors ||E||_{Delta} on each element Delta

   (iv)  For all elements Delta

            If ||E||_{Delta} < delta

               Accept the DG solution on Delta

            Else

               Subdivide Delta into 4 congruent triangles

            endif

    (v)   Complete triangulation to eliminate hanging nodes

           Create a new mesh Omega_{k+1}

    (vi)  Increment k <--k+1 and return to step (ii)

endwhile

Fig. 1
figure 1

Unstructured meshes having N = 34, 50, 74, 100 triangles

4 Computational Examples

In this section, we present numerical results for several hyperbolic problems showing the convergence properties of DG solutions and a posteriori error estimates in the presence of discontinuities on unstructured meshes. The error estimates are tested on linear and nonlinear problems with discontinuous solutions to show their efficiency and accuracy under adaptive mesh refinement. For all examples we use exact boundary conditions at the inflow boundary. In all our examples we use the space \(\mathcal{U}_{p}\) on unstructured triangular meshes. Furthermore, for the transient problem we apply the MATLAB ode45 to perform the temporal integration and assume the temporal discretization errors to be negligible.

Example 1.

Let us consider the initial-boundary value problem for the inviscid Burgers’ equation

$$\displaystyle{ u_{y} + \left (\frac{{u}^{2}} {2} \right )_{x} = u_{y} + uu_{x} = 0,\ (x,y) \in [0,1] \times [0,0.999], }$$
(4.1a)

subject to the initial conditions

$$\displaystyle{ u(x,0) = g_{0}(x) = 1 + \frac{1} {2}\sin (2\pi x). }$$
(4.1b)

and select u(0, y) = g 1(y) such that the true solution is periodic and forms a shock discontinuity at the point \((\frac{1} {\pi }, \frac{1} {\pi } )\) which propagates along y = x. We perform several tests on this example to study both the accuracy and efficiency of our a posteriori error estimates for the modified DG method on adaptively refined unstructured meshes.

First, we apply the modified DG method (2.10) and (2.6b) to solve problem (4.1) on the unstructured meshes shown in Fig. 1 having N = 34, 50, 74, 100 triangular elements with \(\mathcal{U}_{p},\ p = 1,2,3,4\). We observe that the proposed error estimates do not converge to the true error under regular mesh refinement. The global error is underestimated is due to the fact that errors on elements near the discontinuity, which have an important contribution to the global error, are underestimated (Table 3).

Table 3 \({\mathcal{L}}^{2}\) errors and global effectivity indices on for problem (4.1) on unstructured meshes having N = 34, 50, 74, 100 elements using p = 1, 2, 3, 4
Fig. 2
figure 2

An unstructured mesh having N = 432 triangles

We apply the modified DG method (2.9) and (2.6b) to solve the inviscid Burgers’ equation (4.1) on [0, 1] × [0, 0. 999] on unstructured meshes having N = 432 elements shown in Fig. 2 with \(\mathcal{U}_{p}\) and with no special treatment at the shock such as stabilization or limiting. Then, we apply Algorithm 1 to locally refine the mesh by performing 6 iterations to generate a sequence of refined meshes. Algorithm 1 subdivides triangles for which the local error in the \({\mathcal{L}}^{2}\) norm is larger than a prescribed tolerance δ. In Figs. 3 and 4 we show the sequence of meshes obtained by applying Algorithm 1 with δ = 0. 001 for p = 1, 2 where elements near the shock discontinuity are refined. However, we notice that a large portion of elements away from the discontinuity are refined which suggest that this algorithm is not efficient.

In Table 4 we present the number of elements in each mesh obtained at every refinement iteration of Algorithm 1, the true \({\mathcal{L}}^{2}\) errors and the effectivity indices for p = 1, 2 for each refinement iteration. These results suggest that the global \({\mathcal{L}}^{2}\) error estimates converge to the true error under a “crude” adaptive mesh refinement of Algorithm 1 in the presence of shock discontinuities.

We now consider the same problem (4.1) and use Algorithm 2a with the modified DG method (2.9) and (2.6b). In Figs. 5 and 6 we plot the meshes obtained from Algorithm 2a with ω = 0. 85, ω = 0. 75, ω = 0. 5, ω = 0. 25, and p = 1, 2. In Table 5 we present the number of elements N, the true \({\mathcal{L}}^{2}\) errors, and the global \({\mathcal{L}}^{2}\) effectivity indices with p = 1, 2 which suggest

Fig. 3
figure 3

Adaptive meshes obtained by Algorithm 1 for problem (4.1) and p = 1

Fig. 4
figure 4

Adaptive meshes obtained by Algorithm 1 for problem (4.1) and p = 2

Table 4 \({\mathcal{L}}^{2}\) errors and global effectivity indices for problem (4.1) on unstructured meshes having N elements using Algorithm 1 with 6 refinement iterations

that the proposed error estimates converge to the true error under adaptive refinement of unstructured triangular meshes.

Now, we use Algorithm 2b to solve (4.1) with the modified DG method (2.9) and (2.6b). In Fig. 7 we plot the meshes obtained by applying the adaptive algorithm with ω =  2,  1. 75,  1. 5,  1. 25,  1,  0. 75,  0. 5,  0. 25 and p = 1, 2. In Table 6 we present the number of elements N, the true \({\mathcal{L}}^{2}\) errors, and the global \({\mathcal{L}}^{2}\) effectivity indices with p = 1, 2 for ω = 2, 1. 75, 1. 5, 1. 25, 1, 0. 75, 0. 5, 0. 25 which show that our error estimates converge to the true error under adaptive refinement of unstructured triangular meshes.

This adaptive mesh-refinement strategy also yields an efficient adaptive algorithm.

Table 5 \({\mathcal{L}}^{2}\) errors and global effectivity indices for problem (4.1) on unstructured meshes having N elements using Algorithm 2a with ω = 0. 85, 0. 75, 0. 5, 0. 25, 0. 15, 0. 1 and p = 1, 2
Fig. 5
figure 5

Meshes generated by Algorithm 2a for the problem (4.1) with ω = 0. 85, ω = 0. 75, ω = 0. 5, ω = 0. 25 (upper left to lower right) and p = 1

Next, we solve problem (4.2) using Algorithm 2c with the modified DG method (2.9) and (2.6b). In Figs. 8 and 9 we plot the meshes obtained by Algorithm 2c with ω = 0. 85, ω = 0. 75, ω = 0. 5, ω = 0. 25 and p = 1, 2 to the problem (4.1). In Table 7 we present the number of elements N, the global \({\mathcal{L}}^{2}\) norm of the error, and the global \({\mathcal{L}}^{2}\) effectivity indices with p = 1, 2 which show that the error estimates converge to the true error under adaptive mesh refinement. They further show that the proposed error estimates are accurate on adaptively refined unstructured triangular meshes.

Fig. 6
figure 6

Meshes generated by Algorithm 2a for problem (4.1) with ω = 0. 85, ω = 0. 75, ω = 0. 5, ω = 0. 25 (upper left to lower right) and p = 2

Fig. 7
figure 7

Meshes obtained by Algorithm 2b for problem (4.1) with ω = 2,  1. 75,  1. 5,  1. 25,  1,  0. 75,  0. 5,  0. 25 (upper left to lower right) and p = 1

Table 6 \({\mathcal{L}}^{2}\) errors and global effectivity indices for problem (4.1) on unstructured meshes having N elements using Algorithm 2d with ω = 2, 1. 75, 1. 5, 1. 25, 1, 0. 75, 0. 5, 0. 25 and p = 1, 2

Next, we apply Algorithm 2d with the modified DG method (2.9) and (2.6b) to solve (4.1). In Fig. 10 we plot the meshes obtained by applying Algorithm 2d with ω = 2, 1. 75, 1. 5, 1. 25, 1, 0. 75, 0. 5, 0. 25 for p = 1, 2. In Table 8 we present the number of elements N, the \({\mathcal{L}}^{2}\) errors, and the global \({\mathcal{L}}^{2}\) effectivity indices for p = 1, 2 and ω = 2, 1. 75, 1. 5, 1. 25, 1, 0. 75, 0. 5, 0. 25 which suggest that the proposed error estimates converge to the true error under adaptive mesh refinement on unstructured triangular meshes.

Table 7 \({\mathcal{L}}^{2}\) errors and global effectivity indices for problem (4.1) on unstructured meshes having N elements using Algorithm 2c with ω = 0. 85, 0. 75, 0. 5, 0. 25, 0. 15, 0. 1 and p = 1, 2
Fig. 8
figure 8

Meshes generated by Algorithm 2c for problem (4.1) with ω = 0. 85, ω = 0. 75, ω = 0. 5, ω = 0. 25 (upper left to lower right) and p = 1

Fig. 9
figure 9

Meshes generated by Algorithm 2c for problem (4.1) with ω = 0. 85, ω = 0. 75, ω = 0. 5, ω = 0. 25 (upper left to lower right) and p = 2

Table 8 \({\mathcal{L}}^{2}\) errors and global effectivity indices for problem (4.1) on unstructured meshes having N elements using Algorithm 2b with ω = 2, 1. 75, 1. 5, 1. 25, 1, 0. 75, 0. 5, 0. 25 and p = 1, 2
Fig. 10
figure 10

Meshes obtained by Algorithm 2d for problem (4.1) with ω = 2,  1. 75,  1. 5,  1. 25,  1,  0. 75,  0. 5,  0. 25 (upper left to lower right) and p = 1

Table 9 \({\mathcal{L}}^{2}\) errors and global effectivity indices for problem (4.1) on unstructured meshes having N elements using Algorithm 3 with p = 1, 2
Fig. 11
figure 11

Meshes obtained by Algorithm 3 for problem (4.1) with tolerance δ = 0. 01 and p = 1 (left), p = 2 (right)

Fig. 12
figure 12

Meshes obtained by Algorithm 3 for problem (4.1) with tolerance δ = 0. 001 and p = 1 (left), p = 2 (right)

Now we apply the modified DG method (2.9) and (2.6b) with Algorithm 3 to solve (4.1). Again, the final mesh is constructed through a sequence of successively refined meshes by refining triangles whose local error in the \({\mathcal{L}}^{2}\) norm is larger than some prescribed δ. For instance, in Figs. 11 and 12 we show the final meshes obtained by applying Algorithm 3 with δ = 0. 01,  0. 001, for p = 1, 2. The \({\mathcal{L}}^{2}\) errors and effectivity indices for δ = 0. 05, 0. 01, 0. 005, 0. 001, 0. 0005 and p = 1, 2 shown in Table 9 suggest that the proposed error estimates converge to the true error under adaptive mesh refinement. Furthermore, we observe that the adaptive mesh-refinement strategy of Algorithm 3 yields a more efficient adaptive algorithm for the modified DG method applied to hyperbolic problems on general unstructured triangular meshes.

Table 10 \({\mathcal{L}}^{2}\) errors and global effectivity indices for problem (4.1) on unstructured meshes having N elements using Algorithm 4 with p = 1, 2

Now, we use Algorithm 4 and the modified DG method (2.9) and (2.6b) to solve (4.1). The final mesh is constructed through a sequence of successively refined meshes where triangles for which the \({\mathcal{L}}^{2}\) norm of the residual on each element | | r i  | | is larger than δ = 0. 001 are refined. In Fig. 13 we plot the final meshes obtained by applying Algorithm 4 for p = 1, 2. In Table 10 we present the number of elements, \({\mathcal{L}}^{2}\) errors, and the global \({\mathcal{L}}^{2}\) effectivity indices for the tolerances δ = 0. 05, 0. 01, 0. 005, 0. 001, 0. 0005, p = 1, 2 which suggest that the error estimates converge to the true error during under adaptive mesh refinement.

As a final test, we solve (4.1) using Algorithm 5 with modified DG method (2.9) and (2.6b). The final mesh is constructed through a sequence of successively refined meshes where triangles for which the average residual exceeds the specified threshold δ are refined. In Fig. 14 we plot the final meshes from Algorithm 5 with δ = 0. 001 and p = 1, 2. In Table 11 we present the number of elements, \({\mathcal{L}}^{2}\) errors, and the global \({\mathcal{L}}^{2}\) effectivity indices for tolerances δ = 0. 05, 0. 01, 0. 005, 0. 001, 0. 0005, and degrees p = 1, 2. These results suggest that our a posteriori error estimates converge to the true error under adaptive mesh refinement.

Table 11 \({\mathcal{L}}^{2}\) errors and global effectivity indices for problem (4.1) on unstructured meshes having N elements using Algorithm 5 with p = 1, 2

We observe that Algorithms 2–5 generate adaptive meshes with fine elements only in the vicinity of the shock. The results from Algorithms 2a–d of Tables 12 and 13 suggest that Algorithms 2a–d have comparable efficiency. In Fig. 15 we plot the true \({\mathcal{L}}^{2}\) errors versus the number of elements needed to satisfy the specified tolerance for all Algorithms 1–5 applied to the Burger’s equation with a shock (4.1). Our computations suggest that Algorithm 1 is the least efficient adaptive method, while Algorithms 3, 4, and 5 are the most efficient adaptive procedures. We further note that using the local residuals to refine elements in Algorithm 5 yields a slightly more efficient algorithm. Thus, we recommend the space-time DG method that uses local residuals to select elements for refinement and the a posteriori error estimates to assess the solution accuracy and terminate the adaptive process.

Table 12 \({\mathcal{L}}^{2}\) errors and number of elements for Algorithms 2a and 2c applied to problem (4.1)
Table 13 \({\mathcal{L}}^{2}\) errors and number of elements for Algorithms 2b and 2d applied to problem (4.1)

Example 2 (Transient Burger’s equation).

Let us consider the initial-boundary value problem for the inviscid Burgers’ equation

$$\displaystyle{ \epsilon u_{t} + u_{y} + \left (\frac{{u}^{2}} {2} \right )_{x} = 0,\ (x,y,t) \in [0,1] \times [0,0.999] \times [0,T], }$$
(4.2a)

subject to the boundary conditions

$$\displaystyle{ u(x,0,t) = u_{2}(x) = 1 + \frac{1} {2}\sin (2\pi x),\qquad u(0,y,t) = u(1,y,t) = u_{1}(y). }$$
(4.2b)

The initial conditions u(x, y, 0) = u 0(x, y) are selected such that u 0(x, 0) = u 2(x) and u 0(0, y) = u 1(y) as follows

$$\displaystyle\begin{array}{rcl} & & u_{0}(x,y) = \overline{N}_{1}(x)u_{1}(y) + \overline{N}_{2}(x)\tilde{u}_{1}(y) + \overline{N}_{1}(y)u_{2}(x) + \overline{N}_{2}(y)\tilde{u}_{2}(x) \\ & & \qquad -\overline{N}_{1}(x)\overline{N}_{1}(y)u_{1}(0) -\overline{N}_{2}(x)\overline{N}_{2}(y)\tilde{u}_{1}(1) -\overline{N}_{1}(x)\overline{N}_{2}(y)u_{1}(1) \\ & & \qquad -\overline{N}_{2}(x)\overline{N}_{1}(y)u_{2}(1). {}\end{array}$$
(4.2c)

where \(\overline{N}_{1}(x) = 1 - x\), \(\overline{N}_{2}(x) = x\), \(\tilde{u}_{1}(y) = (1 - y)u_{2}(1)\) and \(\tilde{u}_{2}(x) = (1 - x)u_{1}(1)\).

Fig. 13
figure 13

Meshes generated by Algorithm 4 for problem (4.1) with tolerance δ = 0. 001 and p = 1 (left), p = 2 (right)

Fig. 14
figure 14

Meshes generated by Algorithm 5 for problem (4.1) with δ = 0. 001 and p = 1 (left), p = 2 (right)

We apply the modified DG method (2.10) to solve this problem on [0, 1] × [0, 0. 999] × [0, T] with a smooth solution on initial unstructured meshes having N = 500 triangular elements of type I, II, and III with \(\mathcal{U}_{p},\ p = 1,2\), and ε = 10−2.

We use the adaptive mesh-refinement procedure given in Algorithm 6. The final mesh at t = T = 1 is constructed through a sequence of successively refined meshes where triangles for which the \({\mathcal{L}}^{2}\) error exceeds δ are refined. In Figs. 16 and 17 we plot the sequence of meshes obtained by applying the adaptive method with δ = 0. 001 and t = 0, 0. 25, 0. 5, 0. 75, 1 to the problem (4.2).

In Table 14 we present the number of elements, the true \({\mathcal{L}}^{2}\) errors, and the global \({\mathcal{L}}^{2}\) effectivity indices at t = 0, 0. 25, 0. 5, 0. 75, 1 and p = 1, 2 which show that the error estimates converge to the true error during the simulation. These computational results indicate that our estimators are accurate on adaptively refined unstructured triangular meshes and further suggest that they converge to the true error under adaptive mesh refinement of Algorithm 6.

Example 3.

We consider the following linear problem

$$\displaystyle{ 2u_{x} + u_{y} = 0,\qquad (x,y) \in {[0,1]}^{2}, }$$
(4.3a)

subject to the boundary conditions

$$\displaystyle{ u(x,0) = {e}^{-x},\qquad 0 \leq x \leq 1, }$$
(4.3b)
$$\displaystyle{ u(0,y) = {e}^{2y} +.25,\qquad 0 < y \leq 1, }$$
(4.3c)

with the true solution having a contact discontinuity along y = x∕2

$$\displaystyle{ u(x,y) = \left \{\begin{array}{@{}l@{\quad }l@{}} {e}^{2y-x} \quad &\text{if}\ x \geq y \\ {e}^{2y-x} +.25\quad &\text{if}\ x < y \end{array} \right.. }$$
(4.3d)

We solve (4.3) on the unstructured mesh having 100 elements shown in Fig. 1 with the spaces \(\mathcal{U}_{p},\ p = 1,2,3,4\) and apply the modified DG method (2.6) and (2.7) with the adaptive refinement strategy described in Algorithm 3 for δ = 0. 01, 0. 005, and 0. 001. We present the mesh in Fig. 18 for δ = 0. 001 and show in Table 15 the number of elements N, the global \({\mathcal{L}}^{2}\) norm of the error, and the global \({\mathcal{L}}^{2}\) effectivity indices with δ = 0. 01, 0. 005, and 0. 001 and p = 1, 2, 3, 4. These results suggest that the error estimates converge to the true error under local adaptive mesh refinement algorithm that refines elements near the discontinuity and whose errors are underestimated.

Table 14 \({\mathcal{L}}^{2}\) errors and global effectivity indices for problem (4.2) on unstructured meshes having N elements with p = 1, 2 at t = 0, 0. 25, 0. 5, 0. 75, 1
Fig. 15
figure 15

True \({\mathcal{L}}^{2}\) errors versus the number of elements for Algorithms 1–6 with p = 1 (left) and p = 2 (right) for Problem (4.1)

Fig. 16
figure 16

Adaptive meshes for problem (4.2) with p = 1 at t = 0. 00, 0. 25, 0. 50, 0. 75, 1. 00 (upper left to lower right)

Table 15 Global effectivity indices and final number of elements N for problem (4.3) with p = 1, 2, 3, 4 and error tolerances of δ = 0. 01, 0. 005, 0. 001
Fig. 17
figure 17

Adaptive meshes for problem (4.2) with p = 2 at t = 0. 00, 0. 25, 0. 50, 0. 75, 1. 00 (upper left to lower right)

Fig. 18
figure 18

Meshes generated by adaptive Algorithm 3 for problem (4.3) with δ = 0. 001 and p = 1, 2, 3, 4 (upper left to lower right)

5 Conclusions

We tested the residual-based a posteriori DG error estimates of Adjerid and Baccouch [3] for hyperbolic problems on unstructured triangular meshes. Several computational examples suggest that the Taylor’s series residual-based error estimates proposed in this manuscript converge to the true error under local mesh refinement and in the presence of discontinuities. Similarly, we expect that the error estimates proposed by Adjerid and Mechai [6] on tetrahedral meshes will also converge to the true error under adaptive mesh refinement. Our future work will focus on applying adaptive refinement strategies to multi-dimensional hyperbolic systems of conservation laws and reach similar conclusions for general unstructured tetrahedral meshes.