Abstract
We show how to combine in a natural way (i.e., without any test nor switch) the conservative and non-conservative formulations of an hyperbolic system that has a conservative form. This is inspired from two different classes of schemes: the residual distribution one (Abgrall in Commun Appl Math Comput 2(3): 341–368, 2020), and the active flux formulations (Eyman and Roe in 49th AIAA Aerospace Science Meeting, 2011; Eyman in active flux. PhD thesis, University of Michigan, 2013; Helzel et al. in J Sci Comput 80(3): 35–61, 2019; Barsukow in J Sci Comput 86(1): paper No. 3, 34, 2021; Roe in J Sci Comput 73: 1094–1114, 2017). The solution is globally continuous, and as in the active flux method, described by a combination of point values and average values. Unlike the “classical” active flux methods, the meaning of the point-wise and cell average degrees of freedom is different, and hence follow different forms of PDEs; it is a conservative version of the cell average, and a possibly non-conservative one for the points. This new class of scheme is proved to satisfy a Lax-Wendroff-like theorem. We also develop a method to perform non-linear stability. We illustrate the behaviour on several benchmarks, some quite challenging.
Similar content being viewed by others
Avoid common mistakes on your manuscript.
1 Introduction
The notion of conservation is essential in the numerical approximation of hyperbolic systems of conservation: if it is violated, there is no chance, in practice, to compute the right weak solution in the limit of mesh refinement. This statement is known since the celebrated work of Lax and Wendroff [20], and what happens when conservation is violated has been discussed by Hou and Le Floch [17]. This conservation requirement imposes the use of the conservation form of the system. However, in many practical situations, this is not really the one would like to deal with, since in addition to conservation constraints, one also seeks for the preservation of additional features, like contacts for fluid mechanics, or entropy decrease for shocks.
In this paper, we are interested in compressible fluid dynamics. Several authors have already considered the problem of the correct discretisation of the non-conservative form of the system. In the purely Lagrangian framework, when the system is described by the momentum equation and the Gibbs equality, this has been done since decades: one can consider the seminal work of Wilkins, to begin with, and the problem is still of interest; one can consider [5, 6, 10] where high order is sought for. In the case of the Eulerian formulation, there are less works. One can mention [4, 9, 16] where staggered meshes are used, the thermodynamic variables are localised in the cells, while the kinetic ones are localised at the grid points, or [3] where a non-conservative formulation with correction is used from scratch. The first two references show how to construct at most second-order scheme, while the last one shows this for any order. All constructions are quite involved in term of algebra, because one has to transfer information from the original grid and the staggered one.
In this paper, we aim at showing how the notion of conservation introduced in the residual distribution framework [1, 2, 23] is flexible enough to allow to deal directly with the non-conservative form of the system, while the correct solutions are obtained in the limit of mesh refinement. More precisely, we show how to deal with both the conservative and non-conservative forms of the PDE, without any switch, as it was the case in [19]. We illustrate our strategy on several versions of the non-conservative form, and provide first-, second and third-order accurate version of the scheme. More than a particular example, we describe a general strategy which is quite simple. The systems on which we will work are descriptions of the Euler equations for fluid mechanics.
-
The conservation one:
$$\begin{aligned} \frac{\partial }{\partial t}\left(\begin{array}{c}\rho \\ \rho u \\ E\end{array}\right)+\frac{\partial }{\partial x}\left(\begin{array}{c} \rho u\\ \rho u^2+p\\ u(E+p)\end{array}\right)=0 \end{aligned},$$(1) -
the primitive formulation:
$$\begin{aligned} \frac{\partial }{\partial t} \left(\begin{array}{c}\rho \\ u \\ p\end{array}\right)+\left(\begin{array}{c}\frac{\partial \rho u}{\partial x}\\ u\frac{\partial u}{\partial x}+\frac{1}{\rho }\frac{\partial p}{\partial x}\\ u\frac{\partial p}{\partial x}+(e+p)\frac{\partial u}{\partial x} \end{array}\right)=0 \end{aligned},$$(2) -
the “entropy” formulation:
$$\begin{aligned} \frac{\partial }{\partial t}\left(\begin{array}{c}p \\ u \\ s\end{array}\right)+\left(\begin{array}{c}u\frac{\partial p}{\partial x}+(e+p)\frac{\partial u}{\partial x}\\ u\frac{\partial u}{\partial x}+\frac{1}{\rho }\frac{\partial p}{\partial x}\\ u\frac{\partial s}{\partial x} \end{array}\right)=0 \end{aligned},$$(3)
where as usual \(\rho \) is the density, u the velocity, p the pressure, \(E=e+\frac{1}{2}\rho u^2\) is the total energy, \(e=(\gamma -1)p\) and \(s=\log (p)-\gamma \log (\rho )\) is the entropy. The ratio of specific heats, \(\gamma \) is supposed to be constant here, mostly for simplicity.
This paper has several sources of inspirations. The first one is the residual distribution (RD) framework, and in particular [1, 2, 23]. The second one is the family of active flux [7, 11,12,13, 15], where the solution is represented by a cell average and point values. The conservation is recovered from how the average is updated. Here the difference comes from the fact that in addition several forms of the same system can be conserved, as (1)–(3) for the point value update while a Lax-Wendroff like result can still be shown. If the same systems were used, both for the cell average and the point values, this would easily fit into the RD framework, using the structure of the polynomial reconstruction. The difference with the active flux is that we use only the representation of the solution within one cell, and not a fancy flux evaluation. Another difference is about the way the solution is evolved in time: the active flux method uses the method of characteristics to evolve the point value, while here we rely on more standard Runge-Kutta methods.
The format of the paper is as follows. In the first part, we explain the general principles of our method, and justify why, under the assumptions made on the numerical sequence for the Lax-Wendroff theorem (boundedness in \(L^\infty \) and strong convergence in \(L^p\), \(p\geqslant 1\), of a subsequence toward a \(v\in L^p\), then this v is a weak solution of the problem), we can also show the convergence of a subsequence to a weak solution of the problem, under the same assumptions. In the second part, we describe several discretisations of the method, and in the third part, we provide several simulations to illustrate the method.
In this paper, the letter C denotes a constant, and we use the standard “algebra”, for example \(C\times C=C\), \(C+C=C\), or \(\alpha C=C\) for any constant \(\alpha \in {\mathbb{R}}\).
2 The Methods
2.1 Principle
We consider the problem
with the initial condition
Here \({\mathbf{u}}\in {\mathcal{D}}_{\mathbf{u}}\subset {\mathbb{R}}^p\). For smooth solutions, we also consider an equivalent formulation in the form
where \({\mathbf{v}}=\Psi ({\mathbf{u}})\in {\mathcal{D}}_{\mathbf{v}}\) and \(\Psi :{\mathcal{D}}_{\mathbf{u}}\rightarrow {\mathcal{D}}_{\mathbf{v}}\) is assumed to be one-to-one and \(C^1\) (as well as the inverse function). For example, if (4) corresponds to (1), then
If (4c) corresponds to (2), then
and (for a perfect gas) the mapping \(\Psi \) corresponds to \((\rho , \rho u, E)\mapsto \big(\rho , u, p=(\gamma -1)\big( E-\frac{1}{2}\rho u^2\big) \big),\) while
For (3),
More generally, we have \(J=\big[\nabla _{\mathbf{u}}\big(\Psi ^{-1}\big)\big]\nabla _{\mathbf{u}}{{\mathbf{f}}}\).
The idea is to discretise simultaneously (4a) and (4c). Forgetting the possible boundary conditions, \({\mathbb{R}}\) is divided into non-overlapping intervals \(K_{j+1/2}=[x_{j}, x_{j+1}],\) where \(x_j<x_{j+1}\) for all \(j\in {\mathbb{Z}}\). We set \(\Delta _{j+1/2}=x_{j+1}-x_j\) and \(\Delta =\max _j\Delta _{j+1/2}\). At the grid points, we will estimate \({\mathbf{v}}_j\) in time, while in the cells we will estimate the average value
When needed, we have \({\mathbf{u}}_j=\Psi ^{-1}({\mathbf{v}}_j)\), however \(\bar{\mathbf{v}}_{j+1/2}=\Psi (\bar{\mathbf{u}}_{j+1/2})\) is meaningless since the \(\Psi \) does not commute with the average.
In \(K_{j+1/2}\) any continuous function can be represented by \({\mathbf{u}}_j={\mathbf{u}}(x_j)\), \({\mathbf{u}}_{j+1}={\mathbf{u}}(x_{j+1})\), and \(\bar{\mathbf{u}}_{j+1/2}\): one can consider the polynomial \(R_{\mathbf{u}}\) defined on \(K_{j+1/2}\) by
with
and
We see that
How to evolve \(\bar{\mathbf{u}}_{j+1/2}\) following (4a) and \(v_{j}\) following (4c) in time? The solution is simple for the average value: since
we simply take
where \(\hat{{\mathbf{f}}}_{j+1/2}\) is a consistent numerical flux that depends continuously on its arguments. In practice, since the approximation is continuous, we take
For \({\mathbf{v}}\), we assume a semi-discrete scheme of the following form:
such that \(\overleftarrow{\Phi }^{\mathbf{v}}_{j+1/2}+\overrightarrow{\Phi }^{\mathbf{v}}_{j+1/2}\) is a consistent approximation of \(J\frac{\partial {\mathbf{v}}}{\partial x}\) in \(K_{j+1/2}\). We will give examples later, for now we only describe the principles. In general the residuals \(\overleftarrow{\Phi }^{\mathbf{v}}_{j+1/2}\) and \(\overrightarrow{\Phi }^{\mathbf{v}}_{j-1/2}\) need to depend on some \({\mathbf{v}}_l\) and \({\mathbf{v}}_{l+1/2}\approx {\mathbf{v}}(x_{l+1/2})\). We can recover the missing information at the half points in the following steps.
-
(i)
From \({\mathbf{v}}_j\), we can get \({\mathbf{u}}_j=\Psi ({\mathbf{v}}_j)\).
-
(ii)
Then in \([x_{j}, x_{j+1}]\) we approximate \({\mathbf{u}}\) by
$$\begin{aligned} R_{\mathbf{u}}(x)={\mathbf{u}}_j\ell _0\left( \frac{x-x_j}{\Delta _{j+1/2}}\right) +\bar{\mathbf{u}}_{j+1/2}\ell _{1/2}\left( \frac{x-x_j}{\Delta _{j+1/2}}\right) +{\mathbf{u}}_{j+1} \ell _1\left( \frac{x-x_j}{\Delta _{j+1/2}}\right) , \end{aligned}$$which enable to provide \({\mathbf{u}}_{j+1/2}:=R_{\mathbf{u}}(x_{j+1/2})\), i.e.,
$$\begin{aligned} {\mathbf{u}}_{j+1/2}=\frac{3}{2} \bar{\mathbf{u}}_{j+1/2}-\frac{{\mathbf{u}}_j+{\mathbf{u}}_{j+1}}{4}. \end{aligned}$$(5d)Note that this relation is simply \(\bar{\mathbf{u}}_{j+1/2}=\frac{1}{6}\big( {\mathbf{u}}_j+{\mathbf{u}}_{j+1}+4 {\mathbf{u}}_{j+1/2}\big),\) i.e., Simpson’s formula.
-
(iii)
Finally, we state
$$\begin{aligned} {\mathbf{v}}_{j+1/2}=\Psi ^{-1}(R_{\mathbf{u}}(x_{j+1/2})). \end{aligned}$$
In some situations, described later, we will also make the approximation
which is nevertheless consistent (but only first order accurate). As written above, the fluctuations \(\overleftarrow{\Phi }^{\mathbf{v}}_{j+1/2}\) and \(\overrightarrow{\Phi }^{\mathbf{v}}_{j+1/2}\) are functionals of the form \(\Phi \big( \{{\mathbf{v}}_l, {\mathbf{v}}_{l+1/2}\}, j-p\leqslant l\leqslant j+p \big)\) for some fixed value of p. We will make the following assumptions.
-
(i)
Lipschitz continuity: there exists C that depends only on \({\mathbf{u}}^0\) and T such that for any \(j\in {\mathbb{Z}}\),
$$\begin{aligned} \Vert \Phi ( \{{\mathbf{v}}_l, {\mathbf{v}}_{l+1/2}\}, j-p\leqslant l\leqslant j+p)\Vert \leqslant \frac{C}{\Delta _{j+1/2}}\left( \sum _{l=-p}^p \Vert {\mathbf{v}}_l-{\mathbf{v}}_{l+1/2}\Vert \right) . \end{aligned}$$(6a) -
(ii)
Consistency: set \({\mathbf{v}}^h=R_{\mathbf{u}}\), then
$$\begin{aligned} \sum _{j\in {\mathbb{Z}}}\int _{K_{j+1/2}}\left\| \overleftarrow{\Phi }^{\mathbf{v}}_{j+1/2}+\overrightarrow{\Phi }^{\mathbf{v}}_{j+1/2} -J\frac{\partial {\mathbf{v}}^h}{\partial x}\right\| {\mathrm{d}}{\mathbf{x}}\leqslant C \Delta . \end{aligned}$$(6b) -
(iii)
Regular mesh: the meshes are regular in the finite element sense.
The ODE systems (5) are integrated by a standard ODE solver. We will choose the Euler forward method, and the second order and third order SSP Runge-Kutta scheme.
2.2 Analysis of the Method
In order to explain why the method can work, we will choose the simplest ODE integrator, namely the Euler forward method. The general case can be done in the same way, with more technical details. So we integrate (5) by
and
Setting \(\Delta _j\) as the average of \(\Delta _{j+1/2}\) and \(\Delta _{j-1/2}\), we rewrite (8) as
and we note that, using the assumption (6a) as well as the fact that the mesh is shape regular, that there exists \(C>0\) depending only on \({\mathbf{u}}^0\) and T such that
Using the transformation (5d), from (8), we can evaluate \({\mathbf{u}}_j^{n+1}=\Psi ({\mathbf{v}}_j^{n+1})\), and then write the update of \({\mathbf{u}}\) as
where
which, thanks to the assumptions we have made on \(\Psi \) satisfies
for some constants that depend on the gradient of \(\Psi \) and the maximum of the \({\mathbf{v}}_i^n\) for \(i\in {\mathbb{Z}}\).
To explain the validity of the approximation, we start by the Simpson formula, which is exact for quadratic polynomials:
From the point values \({\mathbf{u}}_j\), \({\mathbf{u}}_{j+1}\), and \({\mathbf{u}}_{j+1/2}\) at times \(t_n\) and \(t_{n+1}\), we define the quadratic Lagrange interpolant \(R_{{\mathbf{u}}^n}\) and \(R_{{\mathbf{u}}^{n+1}}\) and then write
Accuracy is not an issue here. Using (8) and (10), setting \(\delta _j^{n+1/2}{\mathbf{u}}={\mathbf{u}}_j^{n+1}-{\mathbf{u}}_j^n\), we get
So that we get, using (10)
Then using again (10) and the fact that the mesh is regular, we observe that
In Appendix A, we will show that in the limit, the contribution of the \(S_n\) term will converges towards 0, while the first term of (11) will converge to
while the second term will converge towards
This will be shown, using classical arguments, in Appendix A, so that we have
Proposition 1
We assume that the mesh is regular: there exist \(\alpha \) and \(\beta \) such that \(\alpha \leqslant \Delta _{j+1/2}/\Delta _{j-1/2}\leqslant \beta .\) If \(\max _{j\in {\mathbb{Z}}} \Vert {\mathbf{u}}_j^n\Vert _\infty \) and \(\max _{j\in {\mathbb{Z}}} \Vert v_{j+1/2}^n\Vert _\infty \) are bounded, and a subsequence of \({\mathbf{u}}_\Delta \) converges in \(L^1\) towards \({\mathbf{u}},\) then \({\mathbf{u}}\) is a weak solution of the problem.
Remark 1
Indeed, the definition of a precise \(\Delta _j\) is not really needed, and we come back to this in the next section. What is needed is a spatial scale that relates the updates in \({\mathbf{v}}\) and \({\mathbf{u}}\) in an incremental form of the finite difference type. This is why the assumption of mesh regularity is fundamental.
3 Some Examples of Discretisation
We list possible choices: for \(\frac{\partial {\mathbf{v}}}{\partial t}+J\frac{\partial {\mathbf{v}}}{\partial x}=0,\) where J is the Jacobian of \({{\mathbf{f}}}\) with respect to \({\mathbf{u}}\); they have been used in the numerical tests. The question here is to define \(\overleftarrow{\Phi }_{j+1/2}\) and \(\overrightarrow{\Phi }_{j+1/2}\) that are the contributions of \(K_{j\pm 1/2}\) to \(J\frac{\partial {\mathbf{v}}}{\partial x}\) so that
We follow the work of Iserles [18] who gives all the possible schemes that guarantee a stable (in \(L^2\)) semi-discretisation of the convection equation, for a regular grid which we assume. The only difference in his notations and ours is that the grid on which are defined the approximation of the derivative is made of the mesh points \(x_j\) and the half points \(x_{j+1/2}\).
The first list of examples has an upwind flavour:
where \(\delta ^\pm _j \) is an approximation of \(\Delta _{j+1/2} \frac{\partial v}{\partial x}\) obtained from [18]Footnote 1.
-
First-order approximation: we take
$$\begin{aligned} \delta _j^+{\mathbf{v}}={\mathbf{v}}_{j}-{\mathbf{v}}_{j-1/2}, \quad \delta _j^-{\mathbf{v}}={\mathbf{v}}_{j+1/2}-{\mathbf{v}}_j. \end{aligned}$$(13) -
Second order: we take
$$\left \{\begin{aligned} \delta _j^-{\mathbf{v}}&=-\frac{3}{2}{\mathbf{v}}_j+2{\mathbf{v}}_{j+1/2}-\frac{{\mathbf{v}}_{j+1}}{2},\\ \delta _j^+{\mathbf{v}}&=\frac{{\mathbf{v}}_{j-1}}{2}-2{\mathbf{v}}_{j-1/2}+\frac{3}{2}{\mathbf{v}}_{j}. \end{aligned}\right.$$(14) -
Third order: we take
$$\left \{\begin{aligned} {\delta _j^-=-\frac{v_{i+1}}{6}+v_{i+1/2}-\frac{v_i}{2}-\frac{v_{i-1/2}}{3}},\\ { \delta _j^+=\frac{v_{i-1}}{6}-v_{i-1/2}+\frac{v_i}{2}+\frac{v_{i+1/2}}{3}}. \end{aligned}\right.$$(15) -
Fourth order: the fully centered scheme would be
$$\begin{aligned} \delta _j^\pm {\mathbf{v}}={\frac{{\mathbf{v}}_{j+1}-{\mathbf{v}}_{j-1}}{12}+2\frac{{\mathbf{v}}_{j+1/2}-{\mathbf{v}}_{j-1/2}}{3}}, \end{aligned}$$but we prefer
$$\left \{\begin{aligned} \delta _j^-{\mathbf{v}}&=\frac{{\mathbf{v}}_{j-1/2}}{4}+\frac{5}{6}{\mathbf{v}}_j- \frac{3}{2}{\mathbf{v}}_{j+1/2}+\frac{{\mathbf{v}}_{j+1}}{2}-\frac{{\mathbf{v}}_{j+3/2}}{12},\\ \delta _j^+{\mathbf{v}}&=\frac{{\mathbf{v}}_{j+1/2}}{4}+\frac{5}{6}{\mathbf{v}}_j- \frac{3}{2}{\mathbf{v}}_{j-1/2}+\frac{1}{2}{\mathbf{v}}_{j-1}-\frac{{\mathbf{v}}_{j-3/2}}{12}. \end{aligned}\right.$$(16) -
Etc \(\cdots \)
It can be useful to have more dissipative versions of a first-order scheme. We take
with
where \(\widehat{J\frac{\partial v}{\partial x_l}}\) is a consistent approximation of \(J\frac{\partial u}{\partial x}\) at \(x_l\) and \(\alpha \) is an upper-bound of the spectral radius of \(J({\mathbf{v}}_j)\), \(J({\mathbf{v}}_{j+1/2})\), and \(J({\mathbf{v}}_{j+1})\). We take, for simplicity, \({\mathbf{v}}_{j+1/2}=\Psi ^{-1}(\bar{\mathbf{u}}_{j+1/2})\). For the model (2), we take
where \({\tilde{\rho }}_{j+1/2}\) is the geometric average of \(\rho _j\) and \(\rho _{j+1/2}\), \({\tilde{u}}_{j+1/2}\) is the arithmetic average of \(u_j\) and \(u_{j+1/2}\), while \({\tilde{\rho c}^2}_{j+1/2}\). For the model (3), we take
All this has a local Lax-Friedrichs’ flavour, and seems to be positivity preserving for the velocity and the pressure.
Using this, the method is
combined with
We see in (17a) that the time derivative of \({\mathbf{v}}\) is obtained by adding two fluctuations, one computed for the interval \(K_{j+1/2}=[x_j,x_{j+1}]\) and one for the interval \(K_{j-1/2}=[x_{j-1},x_j]\). These fluctuations are obtained from (12) with the increments in \({\mathbf{v}}\) defined by (13), (15), (16), etc. In the sequel, we denote the scheme applied on the interval \(K_{j+1/2}\) by \(S_{j+1/2}(k)\) where the averages are integrated by (17b) and \({\mathbf{v}}\) by (17a) with the fluctuations (13) for \(k=1\), (14) for \(k=2\), and (15) for \(k=3\), etc. To make sure that the first-order scheme is positivity preserving (at least experimentally), we may also consider the case denoted by \(k=0,\) where \(S_{j+1/2}(0)\) is the local Lax-Friedrichs scheme defined above. Both fluctuation (13) and the local Lax-Friedrichs scheme are first-order accurate, but the second one is quite dissipative but positivity preserving while the scheme (13) is not (experimentally) positivity preserving. The system (17) is integrated in time by a Runge-Kutta solver: RK1, RK SSP2, and RK SSP3.
3.1 Error Analysis in the Scalar Case
Here, the mesh is uniform, so that \(\Delta _{j+1/2}=\Delta \) for any \(j\in {\mathbb{Z}}\). It is easy to check the consistency, and in Fig. 1 we show the \(L^1\) error on u and \({\bar{u}}\) for (17) with SSPKR2 and SSPRK3 (CFL = 0.4) for a convection problem
with periodic boundary conditions and the initial condition \(u_0=\cos (2\uppi x)\).
Remark 2
(Linear stability) In Appendix B, we perform the \(L^2\) linear stability and we get, with \(\lambda =\frac{\Delta t}{\Delta }\),
-
first-order scheme, \(\vert \lambda \vert \leqslant 0.92\),
-
second-order scheme, \(\vert \lambda \vert \leqslant 0.6\),
-
third-order scheme, \(\vert \lambda \vert \leqslant 0.5\).
We also have run this scheme for the Burgers equation, and compared it with a standard finite volume (with local Lax-Friedrichs). The conservative form of the PDE is used for the average, and the non-conservative one for the point values: \(J=u\) and \(\psi (u)=u\). This is an experimental check of conservation. The initial condition is
on [0, 1], so that there is a moving shock (Fig. 2).
We can see that the agreement is excellent and that the numerical solution behaves as expected.
3.2 Non-linear Stability
As such, the scheme is at most linearly stable, with a CFL condition based on the fine grid. However, in case of discontinuities or the occurrence of gradients that are not resolved by the grid, we have to face oscillations, as usual.
In order to get high-order oscillation free results, a natural option would be to extend the MUSCL approach to the present context. However, it is not very clear how to proceed, so we have relied on the MOOD paradigm [8, 24]. The idea is to work with several schemes ranging from order p to 1, with the lowest-order it is able to provide results with positive density and pressure. These schemes are the \(S_{j+1/2}(k), k=1, \cdots ,3\) schemes defined above. They are assumed to work for a given CFL range, and the algorithm is as follows: for each Runge-Kutta sub-step, starting from \(U^n=\{\bar{\mathbf{u}}_{j+1/2}^n, \bar{\mathbf{v}}_j^n\}_{j\in {\mathbb{Z}}}\), we compute
by the scheme \(S_{j+1/2}(p)\). Then we test the validity of these results in the interval \([x_{j}, x_{j+1}]\) for the density (and possibly the pressure). This is described a little bit later. The variable \({\mathbf{v}}\) is updated as in (18), because at \(t_{n+1}\), the true update of \({\mathbf{v}}_j\) is the half sum of \({\tilde{{\mathbf{v}}}}_j^{n+1}\) and \({\tilde{{\mathbf{v}}}}_{j+1}^{n+1}\).
If the test is positive, then we keep the scheme \(S_{j+1/2}(p)\) in that interval, else we start again with \(S_{j+1/2}(p-1)\), and repeat the procedure unless all the intervals \(K_{j+1/2}\) have successfully passed the test. This is described in Algorithm 1 where \({\mathcal{S}}_{j+1/2}\) is the stencil used in \(K_{j+1/2}\).
Now, we describe the tests. We do, in the following order, for each element \(K_{j+1/2}\), at the iteration \(k>0\) of the loop of (i): the tests are performed on variables evaluated from \({\mathbf{u}}\) and \({\mathbf{v}}\). For the scalar case, they are simply the point values at \(x_j, x_{j+1/2}\), and \(x_{j+1}\). For the Euler equations they are the density, and possibly the pressure.
-
(i)
We check if all the variables are numbers (i.e., not NaN). If not, we state \({\mathbb{S}}_{j+1/2}=S_{j+1/2}(k-1)\).
-
(ii)
(Only for the Euler equations) We check if the density is positive. We can also request to check if the pressure is also positive. If the variable is negative, then we state that \({\mathbb{S}}_{j+1/2}=S_{j+1/2}(k-1)\).
-
(iii)
Then we check if at \(t_n\), the solution was not constant in the numerical stencils of the degrees of freedom in \(K_{j+1}\), in order to avoid detecting a fake maximum principle. We follow the procedure of [24]. If we observe that the solution was locally constant, then \({\mathbb{S}}_{j+1/2}\) is not modified.
-
(iv)
Then we apply a discrete maximum principle, even for systems though it is not very rigorous. For the variable \(\xi \) (in practice the density, and we may request to do the same on the pressure), we compute \(\min _{j+1/2}\xi \) (resp. \(\max _{j+1/2}\xi \)) the minimum (resp. maximum) of the values of \(\xi \) on \(K_{j+1/2}\), \(K_{j-1/2}\), and \(K_{j+3/2}\). We say we have a potential maximum if \({\tilde{\xi }}^{n+1}\not \in [\min _{j+1/2}\xi ^n+\varepsilon _{j+1/2}, \max _{j+1/2}\xi ^n-\varepsilon _{j+1/2}]\)with \(\epsilon _{j+1/2}\) estimated as in [8]. Then we get the followings.
-
If \({\tilde{\xi}}^{n+1}\in [\min _{j+1/2}\xi ^n+\varepsilon _{j+1/2}, \max _{j+1/2}\xi ^n-\varepsilon _{j+1/2}]\), then \({\mathbb{S}}_{j+1/2}\) is not modified.
-
Else we use the following procedure introduced in [24]. In each \(K_{l+1/2}\), we can evaluate a quadratic polynomial \(p_{l+1/2}\) that interpolates \(\xi \). Note that its derivative is linear in \(\xi \). We compute \(\begin{aligned} p'_{j-1/2}(x_j), p'_{j+3/2}(x_{j+1}), p'_{j+1/2}(x_j) \quad \text{and}\quad p'_{j+1/2}(x_{j+1}). \end{aligned}\)
-
If \(\begin{aligned}&p'_{j+1/2}(x_j) \in [\min (p'_{j-1/2}(x_j),p'_{j+3/2}(x_{j+1})]\\ &\quad \text{and}\quad p'_{j+1/2}(x_{j+1}) \in [\min (p'_{j-1/2}(x_j),p'_{j+3/2}(x_{j+1})], \end{aligned}\)we say it is a true regular extrema and \({\mathbb{S}}_{j+1/2}\) will not be modified.
-
Else the extrema is declared not to be regular, and \({\mathbb{S}}_{j+1/2}=S_{j+1/2}(k-1).\)
-
-
As a first application, to show that the oscillations are well controlled without sacrificing the accuracy, we consider the advection problem (with constant speed unity) on [0, 1], periodic boundary conditions with the initial condition:
Here \(a=0.5\), \(z=-0.7\), \(\delta =0.005\), \(\alpha =10\),
and
Using the MOOD procedure with the third-order scheme, the results obtained for 300 points for \(T=10\) are displayed in Fig. 3. They look very reasonable.
4 Numerical Results for the Euler Equations
In this section, we show the flexibility of the approach, where conservation is recovered only by (17a), and so lots of flexibility is possible with the relations on the \({\mathbf{u}}_i\). To illustrate this, we consider the Euler equations. We will consider the conservative formulation (1) for the average value, so \({\mathbf{u}}=(\rho , \rho u, E)^{\mathrm{T}}\) and either the form (2), i.e., \({\mathbf{v}}=(\rho , u, p)\) or the form (3) with \({\mathbf{v}}=(p,u,s)^{\mathrm{T}}\).
4.1 Sod Test Case
The Sod case is defined for [0, 1], the initial condition is
The final time is \(T=0.16\). The problem is solved with (1) and (2) and displayed in Figs. 4, 5, 6 and 7, while the solution obtained with the combination (1)–(3) is shown in Figs. 8 and 9. When the MOOD procedure is on, it is applied with \(\rho \) and p and all the tests are performed. The exact solution is also shown every time. Different orders in time/space are tested. The results are good, even though the MOOD procedure is not perfect. The use of the combination (1)–(3) seems more challenging, we have performed a convergence study (with 10 000 points). This is shown in Fig. 9, and a zoom around the contact discontinuity is also shown.
We can observe a numerical convergence to the exact one in all cases. In Appendix C, we show some results on irregular meshes, with the same conclusions.
4.2 A Smooth Case
We consider a fluid with \(\gamma =3\): the characteristics are straight lines. The initial condition is inspired from Toro: in \([-1,1]\),
The classical case is for \(\alpha =0.999{\;} 995\) where the vacuum is almost reached. Here, since we do not want to test the robustness of the method, we take \(\alpha =\frac{3}{4}\). The final time is set to \(T=0.1\).
The exact density and velocity in this case can be obtained by the method of characteristics and are explicitly given by
where for each coordinate x and time t the values \(x_1\) and \(x_2\) are solutions of the non-linear equations
An example of the numerical solution, superimposed with the exact one, is shown in Fig. 10. It is obtained with the third-order (time and space) scheme, and here we have used the model \((\rho ,u,p)\). The CFL number is set to 0.2.
The errors are shown in Table 1.
The errors, computed in \([-1,1]\) are in reasonable agreement with the \(-3\) expected slopes. We also have done the same test with the non-linear stabilisation procedure described in Sect. 3.2. Exactly the same errors are obtained: the order reduction test is never activated.
4.3 Shu-Osher Case
The initial conditions are
on the domain \([-5,5]\) until \(T=1.8\). We have used the combination (1) and (2), since another one seems less robust. The density is compared to a reference solution (obtained with a standard finite volume scheme with 20 000 points, and the solution obtained with the third-order scheme with \(\text{CFL}=0.3\) and 200, 400, 800 and 1 600 points. The MOOD procedure uses the first-order upwind scheme if a PAD, a NaN or a DMP is detected, the other cases use the third-order scheme. The solutions are displayed in Fig. 11. With little resolution, the results are very close to the reference one.
For Fig. 11, the second-order scheme is used as a rescue scheme.
4.4 Le Blanc Case
The initial conditions are
where \(e=(\gamma -1) p\) and \(\gamma =\frac{5}{3}\). The final time is \(t=6\). This is a very strong shock tube and we use the combination (1) and (2). It is not possible to run higher than first order without the MOOD procedure. The second- and third-order results are shown in Fig. 12, and zooms around the shocks and the fan are showed in Fig. 13.
At time \(t=6\), the shock wave should be at \(x=8\): in addition to the extreme conditions, it is generally difficult to get a correct position of the shock wave; this is why a convergence study is shown in Fig. 14. It is performed with 400, 800, 10 000 grid points, and the third-order SSPRK3 scheme with CFL = 0.1. It is compared to the exact solution, and the results are good, see for example [22] for a comparison with other methods, or [21] for a comparison with Lagrangian methods.
5 Conclusion
This study is preliminary and should be seen as a proof of concept. We show how to combine, without any test, several formulations of the same problem, one in the conservative form and the others in the non-conservative form, to compute the solution of hyperbolic systems. The emphasis is mostly put on the Euler equations.
We explain why the formulation leads to a method that satisfies a Lax-Wendroff-like theorem. We also propose a way to provide the non-linearity stability, and this method works well but is not yet completely satisfactory.
Besides the theoretical results, we also show numerically that we get the convergence to the correct weak solution. This is done on standard benchmark and it is very challenging.
We intend to extend the method to several space dimensions and improve the limiting strategy. Different systems, such as the shallow water system, will also be considered.
Notes
The author works on \(\frac{\partial u}{\partial t}=-\frac{\partial u}{\partial x}\) which is a bit confusing w.r.t. to “modern” habits. It is true that British drive left.
References
Abgrall, R.: Some remarks about conservation for residual distribution schemes. Comput. Methods Appl. Math. 18(3), 327–351 (2018)
Abgrall, R.: The notion of conservation for residual distribution schemes (or fluctuation splitting schemes), with some applications. Commun. Appl. Math. Comput. 2(3), 341–368 (2020)
Abgrall, R., Bacigaluppi, P., Tokareva, S.: High-order residual distribution scheme for the time-dependent Euler equations of fluid dynamics. Comput. Math. Appl. 78(2), 274–297 (2019)
Abgrall, R., Ivanova, K.: High order schemes for compressible flow problems with staggered grids (2021) (in preparation)
Abgrall, R., Lipnikov, K., Morgan, N., Tokareva, S.: Multidimensional staggered grid residual distribution scheme for Lagrangian hydrodynamics. SIAM J. Sci. Comput. 42(1), A343–A370 (2020)
Abgrall, R., Tokareva, S.: Staggered grid residual distribution scheme for Lagrangian hydrodynamics. SIAM J. Sci. Comput. 39(5), A2317–A2344 (2017)
Barsukow, W.: The active flux scheme for nonlinear problems. J. Sci. Comput. 86(1), 3 (2021)
Clain, S., Diot, S., Loubère, R.: A high-order finite volume method for systems of conservation laws—multi-dimensional optimal order detection (MOOD). J. Comput. Phys. 230(10), 4028–4050 (2011)
Dakin, G., Després, B., Jaouen, S.: High-order staggered schemes for compressible hydrodynamics. Weak consistency and numerical validation. J. Comput. Phys. 376, 339–364 (2019)
Dobrev, V.A., Kolev, T., Rieben, R.N.: High-order curvilinear finite element methods for Lagrangian hydrodynamics. SIAM J. Sci. Comput. 34(5), B606–B641 (2012)
Eyman, T.A.: Active flux schemes. PhD thesis, University of Michigan, USA (2013)
Eyman, T.A., Roe, P.L.: Active flux schemes for systems. In: 20th AIAA Computationa Fluid Dynamics Conference, AIAA 2011-3840, AIAA, USA (2011)
Eyman, T.A., Roe, P.L.: Active flux schemes. In: 49th AIAA Aerospace Science Meeting including the New Horizons Forum and Aerospace Exposition, AIAA 2011-382, AIAA, USA (2011)
Godlewski, E., Raviart, P.-A.: Hyperbolic systems of conservation laws. In: Mathématiques and Applications (Paris), vol. 3/4. Ellipses, Paris (1991)
Helzel, C., Kerkmann, D., Scandurra, L.: A new ADER method inspired by the active flux method. J. Sci. Comput. 80(3), 35–61 (2019)
Herbin, R., Latché, J.-C., Nguyen, T.T.: Consistent segregated staggered schemes with explicit steps for the isentropic and full Euler equations. ESAIM Math. Model. Numer. Anal. 52(3), 893–944 (2018)
Hou, T.Y., Le Floch, P.G.: Why nonconservative schemes converge to wrong solutions: error analysis. Math. Comput. 62(206), 497–530 (1994)
Iserles, A.: Order stars and saturation theorem for first-order hyperbolics. IMA J. Numer. Anal. 2, 49–61 (1982)
Karni, S.: Multicomponent flow calculations by a consistent primitive algorithm. J. Comput. Phys. 112(1), 31–43 (1994)
Lax, P., Wendroff, B.: Systems of conservation laws. Commun. Pure Appl. Math. 13, 381–394 (1960)
Loubère, R.: Validation test case suite for compressible hydrodynamics computation (2005). http://loubere.free.fr/images/test_suite.PDF
Ramani, R., Reisner, J., Shkoller, S.: A space-time smooth artificial viscosity method with wavelet noise indicator and shock collision scheme, part 2: the 2-D case. J. Comput. Phys. 387, 45–80 (2019)
Roe, P.L.: Is discontinuous reconstruction really a good idea? J. Sci. Comput. 73, 1094–1114 (2017)
Vilar, F.: A posteriori correction of high-order discontinuous Galerkin scheme through subcell finite volume formulation and flux reconstruction. J. Comput. Phys. 387, 245–279 (2019)
Acknowledgements
This work was done while the author was partially funded by the SNF project 200020\(\_\)175784. The support of Inria via the International Chair of the author at Inria Bordeaux-Sud Ouest is also acknowledged. Discussions with Dr. Wasilij Barsukow are acknowledged, as well as the encouragements of Anne Burbeau (CEA DAM, France). Last, I would like to thank, warmly, the two anonymous referees: their critical comments have led to big improvements.
Funding
Open access funding provided by University of Zurich.
Author information
Authors and Affiliations
Corresponding author
Ethics declarations
There is no conflict of interest with anything.
Appendices
Appendix A Proof of Proposition 1
We show Proposition 1 in the scalar case, and the system case is identical.
We start by some notations: \({\mathbb{R}}\) is subdivided into intervals \(K_{j+1/2}=[x_j,x_{j+1}]\) with \(x_j<x_{j+1}\), and h will be the maximum of the length of \(K_{j+1/2}\). On each interval, from the point values \(u_i\) and \(u_{i+1}\), as well as the average \(\bar{u}_{j+1/2}\), we can construct a quadratic polynomial. From this and as above, we can construct a globally continuous piecewise quadratic function and it is denoted by \(R_{u _\Delta }\).
Let \(T>0\) and a time discretisation \(0<t_1<\cdots<t_n<\cdots <t_N\leqslant T\) of [0, T]. We define \(\Delta t_n=t_{n+1}-t_n\) and \(\Delta t=\max _n \Delta t_n\). We are given the sequences \(\{u_j^p\}_{j\in {\mathbb{Z}}}^{p=0,\cdots, N}\) and \(\{{\bar{u}}_{j+1/2}^n\}_{j\in {\mathbb{Z}}}^{p=0, \cdots , N}\). We can define a function \(u_{\Delta }\) by
The set of these functions is denoted by \(X _{\Delta }\) and is equipped with the \(L^\infty \) and \(L^2\) norms.
We have the following lemma.
Lemma A1
Let \(T>0,\) \(\{t_n\}_{n=0, \cdots , N}\) be an increasing subdivision of [0, T], [a, b] a compact of \({\mathbb{R}}.\) Let \((u _\Delta )_{h}\) be a sequence of functions of \(X _\Delta \) defined on \({\mathbb{R}}\times {\mathbb{R}}^+.\) We assume that there exists \(C\in {\mathbb{R}}\) independent of \(\Delta \) and \(\Delta t,\) and \({\mathbf{u}}\in L^2_{{\mathrm{loc}}}([a,b]\times [0,T])\) such that
Then
Proof
First, because the vector space of polynomials of degree 3 on \([x_j,x_{j+1}]\) is finite-dimensional and with a dimension independent of j, there exist \(C_1\) and \(C_2\) such that
so that
where for simplicity we have introduced \({\bar{u}} _\Delta \) the function defined by
Then we rely on classical arguments of functional analysis: since \((u _\Delta )\) is bounded and \(L^\infty ([a,b]\times [0,T]) \subset L^1([a,b]\times [0,T]) \), there exists \(u'\in L^\infty ([a,b]\times [0,T]\) such that \(u _\Delta \rightarrow u'\) in the weak-\(\star \) topology. Similarly, there exists \({\bar{u}}\in L^\infty ([a,b]\times [0,T])\) such that \({{\bar{u}}} _\Delta \rightarrow {\bar{u}}\) for the weak-\(\star \) topology.
Since \(u _\Delta \rightarrow u\) in \(L^2_{{\mathrm{loc}}}\), we have \(u'=u\) because \([a,b]\times [0,T]\) is bounded and \(C_0^\infty ([a,b]\times [0,T])\) is dense in \(L^1([a,b]\times [0,T])\). Let us show that \({\bar{u}}=u\). let \(\varphi \in C_0^\infty ({\mathbb{R}}\times {\mathbb{R}}^+)\). We have, setting
and using the fact that for any \([x_j, x_{j+1}]\times [t_n, t_{n+1}]\), we have \(\int _{t_n}^{t_{n+1}}\int _{x_j}^{x_{j+1}} \big( {\bar{u}} _\Delta -u_\Delta \big) {\mathrm{d}}x {\mathrm{d}}t=0\).
Since \(\varphi \in C_0^\infty ({\mathbb{R}}\times {\mathbb{R}}^+)\), there exists C that depends only on \(\Vert \frac{{\mathrm{d}}\varphi }{{\mathrm{d}}x}\Vert _{L^\infty ({\mathbb{R}}\times {\mathbb{R}}+)}\) such that
and then
and passing to the limit, \({\bar{u}}=u'\). Since a subsequence of \(u _\Delta \) converges to u in \(L^2\), we have \({\bar{u}}=u'=u\).
The same method shows that \((u _\Delta ^2)\) and \(({{\bar{u}}} _\Delta ^2)\) have the same weak-\(\star \) limit. Let us show it is \(u^2\). Since \(C_0^\infty ([a,b]\times [0,T]\) is dense in \(L^1([a,b]\times [0,T]\)) and \(u _\Delta ^2\) is bounded independently of \(\Delta \) and \(\Delta t\), we can choose functions \(\phi \) in \(C_0^\infty ([a,b]\times [0,T])\). This test function is bounded in \([a,b]\times [0,T]\) and we have at least for a subsequence,
and then
By the Cauchy-Schwarz inequality, \(u\phi \in L^1([a,b]\times [0,T])\): the second term tends towards
so that
and \(u _\Delta ^2\rightarrow u^2\) in \(L^\infty \) weak-\(\star \).
Last, again by the same argument for \(\phi =1\), since \(u _\Delta ^2\rightarrow u^2\) in \(L^\infty \) weak-\(\star \), we get
and finally
Since \([a,b]\times [0,T]\) is bounded and \(L^1([a,b]\times [0,T])\subset L^2([a,b]\times [0,T])\), we obtain
From this we get (20) because
Then we can proof Proposition 1. We proceed the proof in several lemmas.
Lemma A2
Under the conditions of Proposition 1, for any \(\varphi \in C_0^\infty ({\mathbb{R}}\times {\mathbb{R}}^+)\) we have
Proof
This is a simple adaptation of the classical proof, see for example [14]. We have, using that
and the compactness of the support of \(\varphi \),
where \(\overline{\delta {\mathbf{u}}}_{j+1/2}=\bar{\mathbf{u}}_{j+1/2}^{n+1}-\bar{\mathbf{u}}_{j+1/2}^{n}\) and \(\delta {\mathbf{u}}_{j} ={\mathbf{u}}_j^{n+1}-{\mathbf{u}}_j^n\). The first part, (I), is the classical term, and under the condition of the lemma, converges to
Since \(\varphi \in C_0^\infty ({\mathbb{R}}\times {\mathbb{R}}^+)\), there exists C that depends only on the \(L^\infty \) norm of the first derivative of \(\varphi \) such that the term (II) can be bounded by
This tends to zero because \(\max \limits _{j\in {\mathbb{Z}},p\in {\mathbb{N}}}\vert {\mathbf{u}}_j^p\vert \) is finite.
Lemma A3
Under the assumptions of Proposition 1,
Proof
This is again a simple adaptation of the classical proof since \(\delta _{j+1/2}f=f(u_{j+1})-f(u_j)\). We have
Then using the boundedness of the solution and Lebesgue dominated convergence theorem, we get the result.
Then we have
Lemma A4
Under the conditions of Proposition 1, we have
Proof
Since \(\varphi \in C_0^\infty ({\mathbb{R}}\times {\mathbb{R}}^+)\), there exists C that depends only on the first derivative of \(\varphi \) such that
Then using (10), we get
and also
by using the Lipschitz continuity of the fluctuations and the regularity of the transformation \({\mathbf{v}}\mapsto {\mathbf{u}}\) together with the boundedness of the solution. Then, from Lemma A1, we see that the results hold true.
This ends the proof of Proposition 1.
Appendix B Linear Stability Analysis
The scheme writes, setting \(\lambda =a\frac{\Delta t}{\Delta x}\) and assuming \(a>0\),
on with periodicity 1. We set \(\Delta x=\frac{1}{N}\). It is more convenient to work with point values only, and we will use the form
We perform a linear stability analysis by Fourier analysis. What is not completely standard is that the grid points do not play the same role. For ease of notations, we double the indices, this avoids to have half integer in the Fourier analysis. In other points, the quantities \(u_j\) associated to the grid points \(x_j\) are denoted by \(u_{2j}\): this will be the even terms. Those associated to the intervals \([x_j,x_{j+1}]\), i.e., \({\bar{u}}_{j+1/2}\) and \(u_{j+1/2}\) will be denoted as \({\bar{u}}_{2j+1}\) and \(u_{2j+1}\), they are the odd terms, so that we use
We have the Parseval equality,
with
where, by setting \(\omega ={\text e}^{\frac{i\uppi }{N}},\)
The usual shift operator \([S(u)]_j=u_{j+1}\) gives
Using this, we see that the Euler forward method (A2) gives
with
for the first order in space scheme,
for the second order scheme, and
for the third order in time space.
Combined with the RK time stepping we end up with an update of the form
and writing
we end up with
so that
from which we get
with
We have the stability if the spectral radius of these matrices is always \(\leqslant 1\), and we immediately see that
After calculations, we see that the stability limits are
-
first-order scheme, \(\vert \lambda \vert \leqslant 0.92\),
-
second-order scheme, \(\vert \lambda \vert \leqslant 0.6\),
-
third-order scheme, \(\vert \lambda \vert \leqslant 0.5\).
Appendix C Some Numerical Results on Irregular Meshes
To support the theoretical analysis of the method, we have applied it on irregular meshes. The goal is to show that even here, one gets convergence of the solution to a weak solution that appears to be the right one. Since we use the same schemes, there is no hope to get anything but first order accuracy. Accuracy on irregular meshes will be the topic of future work. The mesh is defined by: for \(0\leqslant i\leqslant N\),
and
Then we define the actual mesh by
On the Sod problem, with \(N=10{\,}000\), we get the results of the Fig. A1.
In Fig. A2, we show a zoom of the density around the shock wave. The discretisation points as well as the numerical and exact solutions are shown.
Rights and permissions
Open Access This article is licensed under a Creative Commons Attribution 4.0 International License, which permits use, sharing, adaptation, distribution and reproduction in any medium or format, as long as you give appropriate credit to the original author(s) and the source, provide a link to the Creative Commons licence, and indicate if changes were made. The images or other third party material in this article are included in the article's Creative Commons licence, unless indicated otherwise in a credit line to the material. If material is not included in the article's Creative Commons licence and your intended use is not permitted by statutory regulation or exceeds the permitted use, you will need to obtain permission directly from the copyright holder. To view a copy of this licence, visit http://creativecommons.org/licenses/by/4.0/.
About this article
Cite this article
Abgrall, R. A Combination of Residual Distribution and the Active Flux Formulations or a New Class of Schemes That Can Combine Several Writings of the Same Hyperbolic Problem: Application to the 1D Euler Equations. Commun. Appl. Math. Comput. 5, 370–402 (2023). https://doi.org/10.1007/s42967-021-00175-w
Received:
Revised:
Accepted:
Published:
Issue Date:
DOI: https://doi.org/10.1007/s42967-021-00175-w