1 Introduction

In this paper, we build a van Leer-type scheme for approximating solutions of the following model of a general fluid flow in a nozzle with variable cross section

$$\begin{array}{@{}rcl@{}} &&\partial_{t}(a \rho) + \partial_{x}(a \rho u) = 0,\\ &&\partial_{t}(a \rho u) + \partial_{x} \left(a (\rho u^{2} + p) \right) = p \partial_{x} a,\\ &&\partial_{t}(a \rho e) + \partial_{x} \left(au (\rho e + p) \right) = 0,\quad x\in {R\!\!\!\!\!I~}, t>0, \end{array} $$
(1.1)

where ρ = ρ(x, t), ε = ε(x, t), T = T(x, t), S = S(x, t), and p = p(x, t) denote the thermodynamic variables: density, internal energy, absolute temperature, specific entropy, and the pressure, respectively; u = u(x, t) is the velocity; e = e(x, t) = ε + u2/2 is the total energy; and \(a = a(x) > 0, x \in \mathbb {R}\) is the cross-sectional area.

The model (1.1) contains a nonconservative source term. To deal with this obstacle, one often supplements the system (1.1) with the trivial equation

$$ \partial_{t} a = 0, $$
(1.2)

and then, the system (1.1)–(1.2) can be re-written as a system of balance laws in nonconservative form. A formulation of weak solutions of this kind of systems was introduced in [16]. Numerical approximating nonconservative systems of balance laws is a challenging topic during the past decades. Often, nonconservative terms cause serious problems to standard schemes. For example, errors may not tend to zero when the mesh sizes tend to zero, or even numerical oscillations may appear quickly.

Motivated by our recent work [14], we will construct a van Leer-type scheme for (1.1). Note that in the literature, the second-order van Leer scheme can be seen as an important improvement of the first-order Godunov scheme for hyperbolic conservation laws. Therefore, we will also show that this van Leer-type scheme can provide us with a better accuracy than the Godunov-type scheme. It is interesting that this van Leer-type scheme can also give good approximations in the resonance cases where the exact solution contains several waves associated with different characteristic fields with coinciding shock speeds.

Throughout, we assume for simplicity that the fluid is polytropic and ideal so that the equation of state is given by

$$ p = (\gamma -1) \rho \varepsilon, $$
(1.3)

where γ > 1 is the adiabatic exponent.

We note that there are many works in the literature for the study on nonconservative systems of balance laws. Theoretical studies on nonconservative systems of balance laws were presented in [19, 20, 23,24,25, 27, 32,33,34]. Numerical treatments for balance laws in nonconservative form were studied in [7,8,9, 18]. Numerical schemes for shallow-water equations were considered in [3, 6, 13, 26, 28]. Numerical schemes for the model of a fluid flow in a nozzle with variable cross section were constructed in [5, 11, 15, 21, 22]. Generalized Riemann problems were considered in [4]. Numerical schemes for two-phase flow models were presented in [1, 2, 10, 12, 29,30,31]. The reader is referred to [17] for standard numerical schemes for hyperbolic systems of conservation laws (see also the references therein).

The organization of this paper is as follows. Basic properties of the model (1.1)–(1.2) are given in Section 2. In Section 3, the Riemann problem is revisited. Section 4 is devoted to the construction of the van Leer-type scheme for (1.1). Numerical tests are given in Section 5, where we compute the errors and orders of accuracy. Finally, we present several conclusions in Section 6.

2 Preliminaries

2.1 Nonstrict Hyperbolic Model

Using the thermodynamical identity, we can express the pressure p from (1.3) as a function of the density ρ and the specific entropy S

$$ p =p(\rho,S)= \kappa(S) \rho^{\gamma},\quad \kappa(S)=(\gamma-1)\exp\left({S-S_{*}\over C_{\mathrm{v}}}\right), $$
(2.1)

where Cv > 0 is the specific heat at constant volume and S is constant. Note that for a polytropic and ideal fluid, γ and Cv are constants.

Thus, if we choose (p, S) as two independent thermodynamic variables, we can write

$$ \rho=\rho(p,S)=\left(\frac{p}{\kappa(S)}\right)^{1/\gamma}. $$
(2.2)

Therefore, for a smooth solution U = U(x, t) = (p(x, t),u(x, t),S(x, t),a(x))T, the system (1.1) can be re-written as a system of balance laws in nonconservative form

$$ \partial_{t}U + \mathbf{A}(U)\partial_{x}U = 0, $$
(2.3)

where

$$ \mathbf{A}(U) = \left(\begin{array}{cccccccc} u & \rho c^{2} & 0 & \rho u c^{2} / a\\ 1/\rho & u & 0 & 0\\ 0 & 0 & u & 0\\ 0 & 0 & 0 & 0 \end{array}\right) , $$
(2.4)

where c is the sound speed,

$$ c^{2} = \frac{\gamma p}{\rho}. $$
(2.5)

The characteristic equation is given by

$$\lambda (u - \lambda) \left((u-\lambda)^{2} - c^{2} \right) = 0. $$

Thus, we obtain four real eigenvalues

$$ \lambda_{0}(U) = 0, \quad \lambda_{1}(U) = u - c, \quad \lambda_{2}(U) = u, \quad \lambda_{3}(U) = u + c. $$
(2.6)

The corresponding eigenvectors can be chosen as

$$\begin{array}{@{}rcl@{}} &&r_{0}(U) = \left(-\rho u^{2} c^{2}, uc^{2}, 0, a(u^{2} - c^{2}) \right)^{T}, \quad r_{1}(U) = \left(\rho c, -1,0,0 \right)^{T} ,\\ && r_{2}(U) = (0,0,1,0)^{T},\quad r_{3}(U) = \left(\rho c, 1,0,0 \right)^{T}. \end{array} $$

Therefore, the system (1.1) is hyperbolic, but not strictly hyperbolic. More precisely, λ0 and λ1 coincide on the hypersurface

$$\mathcal{C}^{+} = \left\{U: u = c \right\}. $$

λ0 and λ2 coincide on the hypersurface

$$\mathcal{C}^{0} = \left\{U: u = 0 \right\}.$$

λ0 and λ3 coincide on the hypersurface

$$\mathcal{C}^{-} = \left\{U: u = -c \right\}.$$

These surfaces, referred to as strictly hyperbolic boundaries, separate the phase domain into four subdomains, denoted by \(G_{1}^{+}\), \(G_{2}^{+}\), \(G_{2}^{-}\), and \(G_{1}^{-}\), in which the system is strictly hyperbolic (see Fig. 1).

$$\begin{array}{@{}rcl@{}} G_{1}^{+} & =& \left\{ U: \lambda_{0}(U) < \lambda_{1}(U) \right\},\\ G_{2}^{+} & =& \left\{ U: \lambda_{1}(U) < \lambda_{0}(U) < \lambda_{2}(U) \right\},\\ G_{2}^{-} & = &\left\{ U: \lambda_{2}(U) < \lambda_{0}(U) < \lambda_{3}(U) \right\},\\ G_{1}^{-} & =& \left\{ U: \lambda_{3}(U) < \lambda_{0}(U) \right\}. \end{array} $$
(2.7)
Fig. 1
figure 1

Hyperbolic boundaries and the four phases in the (p, u) −plane

The second and the zero characteristic fields are linearly degenerate, since

$$\nabla \lambda_{0}(U) \cdot r_{0}(U) = \nabla \lambda_{2}(U) \cdot r_{2}(U) 0. $$

The first and the third characteristic fields are genuinely nonlinear, since

$$-\nabla \lambda_{1}(U) \cdot r_{1}(U) = \nabla \lambda_{3}(U) \cdot r_{3}(U) = \frac{\gamma + 1}{2} > 0.$$

2.2 Rarefaction Waves

The k-rarefaction waves of the system (1.1) are the continuous piecewise-smooth self-similar weak solutions of (1.1) associated with nonlinear characteristic fields (λ k ,r k ), k = 1,3, which have the form

$$ U(x,t) = \left\{\begin{array}{llllllll} U_{-}, & x/t < \lambda_{k}(U_{-}),\\ \text{Fan}_{k}(x/t; U_{-}, U_{+}), & \lambda_{k}(U_{-}) \le x/t \le \lambda_{k}(U_{+}),\\ U_{+}, & x/t > \lambda_{k}(U_{+}), \end{array}\right. $$
(2.8)

where V (ξ) :=Fan k (ξ;U,U+) is a solution of the following ordinary differential equations

$$\begin{array}{@{}rcl@{}} && \frac{d V(\xi)}{d \xi} = \frac{1}{\nabla \lambda_{k} (V(\xi)) \cdot r_{k}(V(\xi))} r_{k} (V(\xi)), \quad \lambda_{k}(U_{-}) \le \xi \le \lambda_{k}(U_{+}),\\ && V(\lambda_{k}(U_{\pm})) = U_{\pm}. \end{array} $$
(2.9)

For k = 1, we determine V (ξ) = (p(ξ),u(ξ),S(ξ),a(ξ)) from (2.9) as follows

$$\begin{array}{@{}rcl@{}} && \frac{d p}{d \xi} = -\frac{2}{\gamma + 1} \rho c, \\ && \frac{du}{d \xi} = \frac{2}{\gamma + 1}, \\ && \frac{dS}{d \xi} = \frac{d a}{d \xi} = 0, \end{array} $$
(2.10)

or, equivalently,

$$\begin{array}{@{}rcl@{}} && S(\xi) = S_{-} = S_{+},\\ && a(\xi) = a_{-} = a_{+}, \\ &&p(\xi) = \left(p_{-}^{\frac{\gamma-1}{2\gamma}} - \frac{\gamma - 1}{\sqrt{\gamma}(\gamma + 1)} (\kappa(S_{-}))^{-\frac{1}{2\gamma}} (\xi - \lambda_{1}(U_{-})) \right)^{\frac{2\gamma}{\gamma -1}}, \\ && u(\xi) = u_{-} + \frac{2}{\gamma + 1}(\xi - \lambda_{1}(U_{-})). \end{array} $$

From (2.10), the forward1-rarefaction wave curve \(\mathcal {R}_{1}(U_{0})\) consisting of all right-hand states U = (p, u, ρ, a) that can be connected to a given left-hand state U0 = (p0,u0,ρ0,a0) by an 1-rarefaction wave is given by

$$\begin{array}{@{}rcl@{}} \mathcal{R}_{1}(U_{0}) : && a = a_{0},\\ && \left(\frac{\rho}{\rho_{0}} \right)^{\gamma} = \frac{p}{p_{0}},\\ && u = u_{0} - \frac{2\sqrt{\gamma}}{\gamma-1} (\kappa(S_{0}))^{\frac{1}{2\gamma}} \left(p^{\frac{\gamma-1}{2\gamma}} - p_{0}^{\frac{\gamma-1}{2\gamma}} \right), \quad p \le p_{0}. \end{array} $$
(2.11)

Similarly, for k = 3, we have

$$\begin{array}{@{}rcl@{}} && S(\xi) = S_{-} = S_{+},\\ && a(\xi) = a_{-} = a_{+}, \\ &&p(\xi) = \left(p_{-}^{\frac{\gamma-1}{2\gamma}} + \frac{\gamma - 1}{\sqrt{\gamma}(\gamma + 1)} (\kappa(S_{-}))^{-\frac{1}{2\gamma}} (\xi - \lambda_{3}(U_{-})) \right)^{\frac{2\gamma}{\gamma -1}}, \\ && u(\xi) = u_{-} + \frac{2}{\gamma + 1}(\xi - \lambda_{3}(U_{-})). \end{array} $$

Therefore, the backward3-rarefaction wave curve \(\mathcal {R}_{3}^{B}(U_{0})\) consisting of all left-hand states U = (p, u, ρ, a) that can be connected to a given right-hand state U0 = (p0,u0,ρ0,a0) by an 3-rarefaction wave is given by

$$\begin{array}{@{}rcl@{}} \mathcal{R}_{3}^{B}(U_{0}) : && a = a_{0},\\ && \left(\frac{\rho}{\rho_{0}} \right)^{\gamma} = \frac{p}{p_{0}},\\ && u = u_{0} + \frac{2\sqrt{\gamma}}{\gamma-1} (\kappa(S_{0}))^{\frac{1}{2\gamma}} \left(p^{\frac{\gamma-1}{2\gamma}} - p_{0}^{\frac{\gamma-1}{2\gamma}} \right), \quad p \le p_{0} \end{array} $$
(2.12)

2.3 Shocks and Admissibility Criterion

A discontinuity wave of (1.1) is a weak solution of the form

$$ U(x,t) = \left\{\begin{array}{llllllll} U_{-}, &\quad x < \sigma t,\\ U_{+}, &\quad x > \sigma t, \end{array}\right. $$
(2.13)

where U,U+ are left- and right-hand states, respectively, and σ is the shock speed.

A shock wave always satisfies the Rankine-Hugoniot relation for the conservative equation t a = 0, which reads

$$-\sigma[a]= 0. $$

The last relation leads to the following two cases:

  1. (i)

    either the cross section remained unchanged across the shock, i.e., [a] = 0, or

  2. (ii)

    the shock speed vanishes:

    $$\sigma = 0. $$

If [a] = 0, then, the cross section is constant across the shock. We can eliminate this constant value in the governing equations (1.1) and obtain the usual gas dynamics equations. Thus, the Rankine-Hugoniot relations for the shock are given by

$$\begin{array}{@{}rcl@{}} &&-\sigma[\rho] + [ \rho u] = 0, \\ &&-\sigma[ \rho u] + [\rho u^{2} + p] = 0,\\ &&-\sigma[\rho e] + [ u (\rho e + p)] = 0. \end{array} $$
(2.14)

Transforming the relations (2.14) yields

$$\begin{array}{@{}rcl@{}} && M:= \rho_{+}(u_{+} - \sigma) = \rho_{-} (u_{-} - \sigma),\\ && \rho_{+} (u_{+} - \sigma)^{2} + p_{+} = \rho_{-} (u_{-} - \sigma)^{2} + p_{-},\\ && (u_{+} - \sigma)\left(\!\rho_{+} \left(\!\varepsilon_{+} \!+ \frac{1}{2}(u_{+} - \sigma)^{2} \!\right) \,+\, p_{+} \!\right)\,=\, (u_{-} \,-\, \sigma)\left(\!\rho_{-} \left(\!\varepsilon_{-} \,+\, \frac{1}{2}(u_{-} \,-\, \sigma)^{2} \right) + p_{-} \right). \end{array} $$
(2.15)

If M = 0, then,

$$\begin{array}{@{}rcl@{}} && \sigma = u_{+} = u_{-},\\ && p_{+} = p_{-}. \end{array} $$

Thus, in this case, the discontinuity wave (2.13) is called the 2-contact discontinuity corresponding to the shock speed σ2(U,U+) = u± = λ2(U±).

If M≠ 0, then, the relations (2.15) can be equivalently written

$$\begin{array}{@{}rcl@{}} && M = \frac{u_{+}-u_{-}}{\frac{1}{\rho_{+}}-\frac{1}{\rho_{-}}},\\ && M^{2} = -\frac{p_{+}-p_{-}}{\frac{1}{\rho_{+}}-\frac{1}{\rho_{-}}},\\ && \varepsilon_{+} - \varepsilon_{-} + \frac{1}{2}(p_{+} + p_{-})\left(\frac{1}{\rho_{+}}-\frac{1}{\rho_{-}}\right) = 0. \end{array} $$
(2.16)

Then, we obtain

$$\begin{array}{@{}rcl@{}} && \frac{\rho_{+}}{\rho_{-}} = \frac{(\gamma + 1)p_{+} + (\gamma - 1)p_{-}}{(\gamma + 1)p_{-} + (\gamma - 1)p_{+}},\\ && u_{+} - u_{-} = \pm \sqrt{-(p_{+} - p_{-})\left(\frac{1}{\rho_{+}}-\frac{1}{\rho_{-}} \right)}. \end{array} $$
(2.17)

Shock waves associated with nonlinear characteristic fields, as indicated above, are required to fulfill the Lax shock inequalities

$$ \lambda_{i}(U_{+}) < \sigma(U_{-},U_{+}) < \lambda_{i}(U_{-}),\quad i = 1,3. $$
(2.18)

Observe that for a polytropic ideal gas (1.3), shock waves satisfying the Lax shock inequalities (2.18) are characterized as follows.

  1. (a)

    For a 1-Lax shock,

    $$ M> 0, \quad u_{+} < u_{-}, \quad p_{+} > p_{-}. $$
    (2.19)
  2. (b)

    For a 3-Lax shock,

    $$ M< 0, \quad u_{-} > u_{+}, \quad p_{-} > p_{+}. $$
    (2.20)

From (2.18) and (2.19), the forward1-shock wave curve \(\mathcal {S}_{1}(U_{0})\) consisting of all right-hand states U = (p, u, ρ, a) that can be connected to a given left-hand state U0 = (p0,u0,ρ0,a0) by an 1-Lax shock wave is given by

$$\begin{array}{@{}rcl@{}} \mathcal{S}_{1}(U_{0}): && a = a_{0},\\ && \frac{\rho}{\rho_{0}} = \frac{(\gamma + 1)p + (\gamma - 1)p_{0}}{(\gamma + 1)p_{0} + (\gamma - 1)p},\\ && u - u_{0} = - \sqrt{-(p - p_{0})\left(\frac{1}{\rho}-\frac{1}{\rho_{0}} \right)}, \quad p \ge p_{0}. \end{array} $$
(2.21)

From (2.18) and (2.20), the backward3-shock wave curve \(\mathcal {S}_{3}^{B}(U_{0})\) consisting of all left-hand states U = (p, u, ρ, a) that can be connected to a given right-hand state U0 = (p0,u0,ρ0,a0) by an 3-Lax shock wave is given by

$$\begin{array}{@{}rcl@{}} \mathcal{S}_{1}(U_{0}): && a = a_{0},\\ && \frac{\rho}{\rho_{0}} = \frac{(\gamma + 1)p + (\gamma - 1)p_{0}}{(\gamma + 1)p_{0} + (\gamma - 1)p},\\ && u - u_{0} = \sqrt{-(p - p_{0})\left(\frac{1}{\rho}-\frac{1}{\rho_{0}} \right)}, \quad p \ge p_{0}. \end{array} $$
(2.22)

For \(U_{R} \in \mathcal {S}_{1}(U_{L})\), we have the 1-shock speed

$$ \sigma_{1}(U_{L},U_{R}) = u_{L} - \sqrt{\frac{(\gamma + 1)p_{R} + (\gamma - 1)p_{L}}{2\rho_{L}}}, \quad p_{R} > p_{L}. $$
(2.23)

For \(U_{L} \in \mathcal {S}_{3}^{B}(U_{R})\), we have the 3-shock speed

$$ \sigma_{3}(U_{L},U_{R}) = u_{R} + \sqrt{\frac{(\gamma + 1)p_{L} + (\gamma - 1)p_{R}}{2\rho_{R}}}, \quad p_{L} > p_{R}. $$
(2.24)

From (2.23) and (2.24), we have the following lemma.

Lemma 2.1 ([32, Proposition 3.3])

1. The 1-shock speedσ1(U0,U)may change sign along the forward 1-shock wave curve\(\mathcal {S}_{1}(U_{0})\).More precisely, we have the following:

(i) If\(U_{0} \in G_{2}^{+} \cup G_{2}^{-} \cup G_{1}^{-}\),thenσ1(U0,U)remains negative:

$$ \sigma_{1}(U_{0},U) < 0, \quad U \in \mathcal{S}_{1}(U_{0}). $$
(2.25)

(ii) If \(U_{0} \in G_{1}^{+}\), thenσ1(U0,U)vanishes onceat some point \(U = U^{\#} \in \mathcal {G}_{2}^{+}\)corresponding to a value

$$ p = p^{\#} = \frac{2\rho_{0} {u_{0}^{2}} - (\gamma - 1)p_{0}}{\gamma + 1} $$
(2.26)

on the forward 1-shock wave curve \(\mathcal {S}_{1}(U_{0})\)such that

$$\begin{array}{@{}rcl@{}} && \sigma_{1}(U_{0},U^{\#}) = 0,\\ && \sigma_{1}(U_{0},U) > 0, \quad p \in (p_{0}, p^{\#}),\\ && \sigma_{1}(U_{0},U) < 0, \quad p > p^{\#}. \end{array} $$

2. The 3-shock speed σ3(U, U0)may change sign along the backward 3-shock wave curve\(\mathcal {S}_{3}^{B}(U_{0})\). Moreprecisely, we have the following:

(i) If \(U_{0} \in G_{1}^{+} \cup G_{2}^{+} \cup G_{2}^{-}\),then σ3(U, U0)remains positive:

$$ \sigma_{3}(U,U_{0}) > 0, \quad U \in \mathcal{S}_{3}^{B}(U_{0}). $$
(2.27)

(ii) If \(U_{0} \in G_{1}^{-}\), thenσ3(U, U0)vanishes onceat some point \(U = U^{@} \in G_{2}^{-}\)corresponding to a value

$$ p = p^{@} = \frac{2\rho_{0} {u_{0}^{2}} - (\gamma - 1)p_{0}}{\gamma + 1} $$
(2.28)

on the backward 3-shock wave curve \(\mathcal {S}_{3}^{B}(U_{0})\)such that

$$\begin{array}{@{}rcl@{}} && \sigma_{3}(U^{@}, U_{0}) = 0,\\ && \sigma_{3}(U, U_{0}) < 0, \quad p \in (p_{0}, p^{@}),\\ && \sigma_{3}(U, U_{0}) > 0, \quad p > p^{@}. \end{array} $$

Moreover, since \( \sigma _{1}(U_{-}, U_{+}) = u_{-} - \frac {M}{\rho _{-}} = u_{+} - \frac {M}{\rho _{+}}\) and M > 0, we imply that

$$\sigma_{1}(U_{-}, U_{+}) < \lambda_{2}(U_{\pm}). $$

Similarly, it holds that

$$\sigma_{3}(U_{-}, U_{+}) > \lambda_{2}(U_{\pm}). $$

From (2.11), (2.12), (2.21), and (2.22), we can therefore define the forward and backward wave curves in the nonlinear characteristic fields as follows.

$$\begin{array}{@{}rcl@{}} &&\mathcal{W}_{1}(U_{0}): = \mathcal{S}_{1}(U_{0})\cup \mathcal{R}_{1}(U_{0}),\\ &&\mathcal{W}_{3}^{B}(U_{0}): = \mathcal{S}_{3}^{B}(U_{0})\cup \mathcal{R}_{3}^{B}(U_{0}). \end{array} $$
(2.29)

These sets mean that: ∙ If \(U_{+} \in \mathcal {W}_{1}(U_{-})\), then there is the 1-wave (1-rarefaction wave or 1-shock wave) connecting U to U+, denoted by

$$W_{1}(U_{-}, U_{+}) \quad (R_{1}(U_{-}, U_{+}) \quad\text{or}\quad S_{1}(U_{-}, U_{+}).$$

∙ If \(U_{-} \in \mathcal {W}_{3}^{B}(U_{+})\), then there is the 3-wave (3-rarefaction wave or 3-shock wave) connecting U to U+, denoted by

$$W_{3}(U_{-}, U_{+}) \quad (R_{3}(U_{-}, U_{+}) \quad \text{or}\quad S_{3}(U_{-}, U_{+}).$$

2.4 Stationary Waves

Consider the case

$$\sigma = 0 = \lambda_{0}. $$

This means that the shock wave is a contact wave associated with λ0. As shown in [32], the jump relations for this contact wave are given by

$$\begin{array}{@{}rcl@{}} && [a \rho u] = 0,\\ && \left[ \frac{u^{2}}{2} + h \right] = 0,\\ && [S] = 0, \end{array} $$
(2.30)

where h is specific enthalpy given by

$$h = \varepsilon + \frac{p}{\rho} = \frac{c^{2}}{\gamma - 1},$$

We now describe the set of states U which can be connected to a given state U0 by a stationary contact wave (associated with λ0), where the cross section levels on both sides a0 and a are considered to be fixed. Substituting \(u = \frac {a_{0} \rho _{0} u_{0}}{a \rho }\) from the 1st equation of (2.30) into the 3rd equation of (2.30), we obtain the nonlinear equation

$$ F(\rho):= -\frac{2 \gamma \kappa(S_{0})}{\gamma - 1} \rho^{\gamma + 1} + \left({u_{0}^{2}} + \frac{2 \gamma \kappa(S_{0})}{\gamma - 1} \rho_{0}^{\gamma - 1} \right) \rho^{2} - \left(\frac{a \rho_{0} u_{0}}{a} \right)^{2} = 0. $$
(2.31)

The domain of the function F(ρ) is given by

$$\rho \le \overline{\rho}:= \left(\frac{\gamma-1}{2\gamma \kappa(S_{0})} {u_{0}^{2}} + \rho_{0}^{\gamma - 1} \right)^{\frac{1}{\gamma -1}}. $$

Consider the case u0 = 0. Then, the function F(ρ) has a unique root ρ = ρ0. Therefore, we obtain

$$U = (p_{0}, 0, \rho_{0}, a).$$

Consider the case u0≠ 0. We have

$$F^{\prime}(\rho) = - \frac{2 \gamma(\gamma + 1) \kappa(S_{0})}{\gamma - 1} \rho^{\gamma} + 2\left({u_{0}^{2}} + \frac{2 \gamma \kappa(S_{0})}{\gamma - 1} \rho_{0}^{\gamma - 1} \right) \rho,$$

so that

$$\begin{array}{@{}rcl@{}} && F^{\prime}(\rho) > 0, \quad \rho < \rho_{\max},\\ && F^{\prime}(\rho) < 0, \quad \rho > \rho_{\max}, \end{array} $$

where

$$\rho_{\max}:= \left(\frac{\gamma - 1}{\gamma (\gamma + 1) \kappa(S_{0})} {u_{0}^{2}} + \frac{2}{\gamma + 1} \rho_{0}^{\gamma - 1} \right)^{\frac{1}{\gamma - 1}}. $$

Moreover,

$$F(0) = F(\overline{\rho}) = - \left(\frac{a \rho_{0} u_{0}}{a} \right)^{2} < 0.$$

Thus, F(ρ) admits a zero if and only if

$$F(\rho_{\max}) \ge 0,$$

or, equivalently

$$a \ge a_{\min}=a_{\min}(U_{0}, a_{0}),$$

where

$$a_{\min}(U_{0}, a_{0}): = \frac{a_{0} \rho_{0} |u_{0}|}{\sqrt{\gamma \kappa(S_{0}) (\rho_{\max})^{\gamma + 1}}}. $$

If a > amin, the function F(ρ) has exactly two roots denoted by φ1(U0,a) and φ2(U0,a), which satisfy

$$\varphi_{1}(U_{0}, a) < \rho_{\max} < \varphi_{2}(U_{0}, a).$$

The following lemma provides us with the existence of the above stationary waves.

Lemma 2.2 ([32, Lemma 3.1])

GivenU0 = (p0,u0,ρ0,a0)andaa0 such that u0 ≠  0. There exists a stationarywave connectingU0to somestate U if and only ifaamin.More precisely, we have the following: (i) Ifa < amin,F(ρ)hasno roots; so there are no stationary waves. (ii) Ifa = amin,F(ρ)has onlyone rootρ = ρmax;so there is exactly one stationary wave connectingU0toUmax,where

$$U_{\max} := \left(\kappa(S_{0})(\rho_{\max})^{\gamma}, \frac{a_{0} \rho_{0} u_{0}}{a \rho_{\max} }, \rho_{\max}, a \right).$$

(iii) If a > amin,F(ρ)hastwo distinct roots; so there are exactly two stationary waves connectingU0to thestate \({U_{0}^{s}}\)orthe state \({U_{0}^{b}}\),where

$$\begin{array}{@{}rcl@{}} && {U_{0}^{s}}:= \left(\kappa(S_{0})(\varphi_{1}(U_{0}, a))^{\gamma}, \frac{a_{0} \rho_{0} u_{0}}{a \varphi_{1}(U_{0}, a) }, \varphi_{1}(U_{0}, a), a\right),\\ && {U_{0}^{b}}:= \left(\kappa(S_{0})(\varphi_{2}(U_{0}, a))^{\gamma}, \frac{a_{0} \rho_{0} u_{0}}{a \varphi_{2}(U_{0}, a) }, \varphi_{2}(U_{0}, a), a\right). \end{array} $$
(2.32)

Using notations as Lemma 2.2, we have the following lemma.

Lemma 2.3

GivenU0 = (p0,u0,ρ0,a0)and a.

(i):

It holds that

$$\begin{array}{@{}rcl@{}} && \rho_{\max} < \rho_{0}, \quad U_{0} \in G_{2}^{+} \cup G_{2}^{-},\\ && \rho_{\max} > \rho_{0}, \quad U_{0} \in G_{1}^{+} \cup G_{1}^{-}. \end{array} $$
(ii):

It holds that

$$\begin{array}{@{}rcl@{}} && {U_{0}^{s}} \in G_{1}^{+}, \quad {U_{0}^{b}} \in G_{2}^{+} \quad \textit{for} \quad u_{0} > 0,\\ &&{U_{0}^{s}} \in G_{1}^{-}, \quad {U_{0}^{b}} \in G_{2}^{-} \quad \textit{for} \quad u_{0} < 0. \end{array} $$
(iii):

It holds that

$$\begin{array}{@{}rcl@{}} && a_{\min} < a_{0}, \quad U_{0} \in G_{i}^{\pm}, \quad i = 1, 2\\ && a_{\min} = a_{0}, \quad U_{0} \in \mathcal{C}^{\pm},\\ && a_{\min} = 0, \quad u_{0} = 0. \end{array} $$
(iv):

Ifa > a0,then

$$\varphi_{1}(U_{0}, a) < \rho_{0} < \varphi_{2}(U_{0}, a). $$
(v):

If amin < a < a0,then

$$\begin{array}{@{}rcl@{}} && \rho_{0} < \varphi_{1}(U_{0}, a) < \varphi_{2}(U_{0}, a), \quad \textit{for} \quad U_{0} \in G_{1}^{\pm},\\ && \rho_{0} > \varphi_{2}(U_{0}, a) > \varphi_{1}(U_{0}, a), \quad \textit{for} \quad U_{0} \in G_{2}^{\pm}. \end{array} $$

It follows from Lemma 2.2 that there may be two possible stationary waves from a given state U0 to a state with a new level cross section a. Thus, it is necessary to impose some condition to select a unique physical stationary as follows.

(MC):

Any stationary jump must not cross the sonic curve in the (p, u)-plane.

Observe that the admissibility criterion (MC) implies that:

  • If a > amin and \(U_{0} \in G_{1}^{\pm }\), then \({U_{0}^{s}}\) is selected.

  • If a > amin and \(U_{0} \in G_{2}^{\pm }\), then \({U_{0}^{b}}\) is selected.

3 The Riemann Problem Revisited

In this section, the Riemann problem for (1.1) is revisited (see [32]). We distinguish between four cases

  • Case A: \(U_{L} \in G_{1}^{+} \cup \mathcal {C}^{+}\) and a R > a L ;

  • Case B: \(U_{L} \in G_{2}^{+}\) and a R > a L ;

  • Case C: \(U_{R} \in G_{1}^{-} \cup \mathcal {C}^{-}\) and a L > a R ;

  • Case D: \(U_{R} \in G_{2}^{-}\) and a L > a R .

Notations 1

(i) W k (U i ,U j ) (S k (U i ,U j ),R k (U i ,U j )) denotes the kth-wave (kth-shock, kth-rarefaction wave, respectively) connecting the left-hand state U i to the right-hand state U j , k = 0,1,2,3; (ii) W m (U i ,U j ) ⊕ W n (U j ,U k ) indicates that there is an mth-wave from the left-hand state U i to the right-hand state U j , followed by an nth-wave from the left-hand state U j to the right-hand state U k , m, n ∈{1,2,3,4}. (iii) \(U_{0}^{\#}\) denotes the state such that \(\sigma _{1}(U_{0}, U_{0}^{\#}) = 0\). \(U_{0}^{@}\) denotes the state such that \(\sigma _{3}(U_{0}^{@},\)U0) = 0 (see Lemma 2.1). (iv) \({U_{0}^{s}}\), \({U_{0}^{b}} \) denote the states resulting from stationary waves from U0 (see Lemma 2.2).

3.1 Case A: \(U_{L} \in G_{1}^{+} \cup \mathcal {C}^{+}\) and a R > a L

3.1.1 Construction A1

The first part of the Riemann solution can be the stationary wave

$$W_{0}(U_{L}, {U_{L}^{s}}),$$

i.e.,

$$U_{\text{Rie}}(x/t; U_{L}, U_{R}) = \left\{\begin{array}{llllllll} U_{L} = (p_{L}, u_{L}, \rho_{L}, a_{L}) & \text{if~} x/t < 0,\\ {U_{L}^{s}} = \left({p_{L}^{s}} , {u_{L}^{s}}, {\rho_{L}^{s}}, a_{R} \right) &\text{if~} 0 < x/t < \ldots,\\ \ldots, \end{array}\right. $$

where

$${\rho_{L}^{s}}:= \varphi_{1}(U_{L}, a_{R}), \quad {u_{L}^{s}} := \frac{a_{L} \rho_{L} u_{L}}{a_{R} {\rho_{L}^{s}}}, \quad {p_{L}^{s}} := \kappa(S_{L})({\rho_{L}^{s}})^{\gamma}.$$

If we take any \(U \in \mathcal {R}_{1}({U_{L}^{s}})\), then the second part of the Riemann solution can be a 1-rarefaction wave

$$R_{1}({U_{L}^{s}}, U), $$

i.e.,

$$U_{\text{Rie}}(x/t; U_{L}, U_{R}) = \left\{\begin{array}{llllllll} U_{L} & \text{if~} x/t < 0,\\ {U_{L}^{s}} & \text{if~} 0 < x/t < \lambda_{1}({U_{L}^{s}}),\\ \text{Fan}_{1}(x/t; {U_{L}^{s}}, U) & \text{if~} \lambda_{1}({U_{L}^{s}}) \le x/t \le \lambda_{1}(U),\\ U & \text{if~} \lambda_{1}(U) < x/t < \ldots,\\ \ldots \end{array}\right. $$

On the other hand, if we take \(U \in \mathcal {S}_{1}({U_{L}^{s}})\) such that \(\sigma _{1}({U_{L}^{s}}, U) > 0\) (i.e., U is located above \(U_{L}^{s\#}\), see Lemma 2.1), then the second part of the Riemann solution can be a 1-shock wave

$$S_{1}({U_{L}^{s}}, U),$$

i.e.,

$$U_{\text{Rie}}(x/t; U_{L}, U_{R}) = \left\{\begin{array}{llllllll} U_{L} & \text{if~} x/t < 0,\\ {U_{L}^{s}} & \text{if~} 0 < x/t < \sigma_{1}({U_{L}^{s}}, U),\\ U & \text{if~} \sigma_{1}({U_{L}^{s}}, U) < x/t < \ldots,\\ \ldots \end{array}\right.$$

Thus, if \(U = (p, u, \rho , a_{R}) \in \mathcal {W}_{1}({U_{L}^{s}})\) such that U is located above \(U_{L}^{s \#}\), then the first two parts of the Riemann solution are

$$W_{0}(U_{L}, {U_{L}^{s}}) \oplus W_{1}({U_{L}^{s}}, U).$$

Therefore, we call the set

$$\{ U \in \mathcal{W}_{1}({U_{L}^{s}}) : \quad U \text{ is located above } U_{L}^{s \#} \}$$

as the composite wave curveW0.W1(U L ,a R ). Obviously, W0.W1(U L ,a R ) is a part of the wave curve \(\mathcal {W}_{1}({U_{L}^{s}})\) (see Fig. 2). If we have an intersection in the (p, u)-plane

$$(p, u) = \mathcal{W}_{3}^{B}(U_{R}) \cap W_{0}.W_{1}(U_{L}, a_{R}),$$

then the Riemann problem for (1.1) has a solution of the form

$$ W_{0}(U_{L},{U_{L}^{s}}) \oplus W_{1}({U_{L}^{s}},U) \oplus W_{2}(U,U^{*}) \oplus W_{3}(U^{*},U_{R}), $$
(3.1)

where

$$U^{*} = (p, u, \rho^{*}, a_{R}) \in \mathcal{W}_{3}(U_{R}). $$

Explicitly, the form (3.1) can be seen as follows.

  • If \(U \in \mathcal {R}_{1}({U_{L}^{s}})\) and \(U^{*} \in \mathcal {R}_{3}^{B}(U_{R})\), then the form (3.1) yields

    $$U_{\text{Rie}}(x/t; U_{L}, U_{R}) = \left\{\begin{array}{llllllll} U_{L} & \text{if~} x/t < 0,\\ {U_{L}^{s}} & \text{if~} 0 < x/t < \lambda_{1}({U_{L}^{s}}),\\ \text{Fan}_{1}(x/t; {U_{L}^{s}}, U) &\text{if~} \lambda_{1}({U_{L}^{s}}) \le x/t \le \lambda_{1}(U),\\ U & \text{if~} \lambda_{1}(U) < x/t < \lambda_{2}(U) = \lambda_{2}(U^{*}),\\ U^{*} &\text{if~} \lambda_{2}(U^{*}) < x/t < \lambda_{3}(U^{*}),\\ \text{Fan}_{3}(x/t; U^{*}, U_{R}) & \text{if~} \lambda_{3}(U^{*}) \le x/t \le \lambda_{3}(U_{R}),\\ U_{R} &\text{if~} x/t >\lambda_{3}(U_{R}). \end{array}\right.$$
    Fig. 2
    figure 2

    The composite wave curves: W0.W1(U L ,a R ), W0.S1.W0(U L ,a R ), and S1.W0(U L ,a R ) in the (p, u)-plane

  • If \(U \in \mathcal {R}_{1}({U_{L}^{s}})\) and \(U^{*} \in \mathcal {S}_{3}^{B}(U_{R})\), then the form (3.1) yields

    $$U_{\text{Rie}}(x/t; U_{L}, U_{R}) = \left\{\begin{array}{llllllll} U_{L} & \text{if~} x/t < 0,\\ {U_{L}^{s}} & \text{if~} 0 < x/t < \lambda_{1}({U_{L}^{s}}),\\ \text{Fan}_{1}(x/t; {U_{L}^{s}}, U) &\text{if~} \lambda_{1}({U_{L}^{s}}) \le x/t \le \lambda_{1}(U),\\ U & \text{if~} \lambda_{1}(U) < x/t < \lambda_{2}(U) = \lambda_{2}(U^{*}),\\ U^{*} & \text{if~} \lambda_{2}(U^{*}) < x/t < \sigma_{3}(U^{*}, U_{R}),\\ U_{R} & \text{if~} x/t > \sigma_{3}(U^{*}, U_{R}). \end{array}\right.$$
  • If \(U \in \mathcal {S}_{1}({U_{L}^{s}})\) and \(U^{*} \in \mathcal {R}_{3}^{B}(U_{R})\), then the form (3.1) yields

    $$U_{\text{Rie}}(x/t; U_{L}, U_{R}) = \left\{\begin{array}{llllllll} U_{L} &\text{if~} x/t < 0,\\ {U_{L}^{s}} &\text{if~} 0 < x/t < \sigma_{1}({U_{L}^{s}}, U),\\ U, & \text{if~} \sigma_{1}({U_{L}^{s}}, U) < x/t < \lambda_{2}(U) = \lambda_{2}(U^{*}),\\ U^{*} & \text{if~} \lambda_{2}(U^{*}) < x/t < \lambda_{3}(U^{*}),\\ \text{Fan}_{3}(x/t; U^{*}, U_{R}) &\text{if~} \lambda_{3}(U^{*}) \le x/t \le \lambda_{3}(U_{R}),\\ U_{R} & \text{if~} x/t > \lambda_{3}(U_{R}). \end{array}\right.$$
  • If \(U \in \mathcal {S}_{1}({U_{L}^{s}})\) and \(U^{*} \in \mathcal {S}_{3}^{B}(U_{R})\), then the form (3.1) yields

    $$U_{\text{Rie}}(x/t; U_{L}, U_{R}) = \left\{\begin{array}{llllllll} U_{L} &\text{if~} x/t < 0,\\ {U_{L}^{s}} & \text{if~} 0 < x/t < \sigma_{1}({U_{L}^{s}}, U),\\ U & \text{if~} \sigma_{1}({U_{L}^{s}}, U) < x/t < \lambda_{2}(U) = \lambda_{2}(U^{*}),\\ U^{*} & \text{if~} \lambda_{2}(U^{*}) < x/t < \sigma_{3}(U^{*}, U_{R}),\\ U_{R} & \text{if~} x/t > \sigma_{3}(U^{*}, U_{R}). \end{array}\right. $$

Algorithm to Compute the Intersection Point \((p, u) = \mathcal {W}_{3}^{B}(U_{R}) \cap W_{0}.W_{1}(U_{L}, a_{R})\). Assume that \(U_{L}^{s\#}\) is located below the curve \(\mathcal {W}_{3}^{B}(U_{R})\) in the (p, u) −plane.

Step 1

Set p1 = 0, \(p_{2} = p_{L}^{s\#}\);

Step 2

Compute \(p = \frac {p_{1} + p_{2}}{2}\); Compute u such that \((p,u) \in \mathcal {W}_{1}({U_{L}^{s}})\) in the (p, u)-plane;

Step 3

  • If (p, u) belongs to \(\mathcal {W}_{3}^{B}(U_{R})\) in the (p, u) −plane, end;

  • If (p, u) is located above \(\mathcal {W}_{3}^{B}(U_{R})\) in the (p, u) −plane, set p1 = p and return Step 2;

  • If (p, u) is located below \(\mathcal {W}_{3}^{B}(U_{R})\) in the (p, u) −plane, set p2 = p and return Step 2.

3.1.2 Construction A2

Fix a cross section level a M between a L and a R . The first part of the Riemann solution can be a stationary wave

$$W_{0}(U_{L}, {U_{L}^{s}}), $$

where

$$\begin{array}{@{}rcl@{}} && {U_{L}^{s}} = \left({p_{L}^{s}}, {u_{L}^{s}}, {\rho_{L}^{s}}, a_{M} \right),\\ && {\rho_{L}^{s}}:= \varphi_{1}(U_{L}, a_{M}), \quad {u_{L}^{s}} := \frac{a_{L} \rho_{L} u_{L}}{a_{M} {\rho_{L}^{s}}}, \quad {p_{L}^{s}} := \kappa(S_{L})({\rho_{L}^{s}})^{\gamma}. \end{array} $$
(3.2)

The second part of the Riemann solution is a 1-shock wave with zero speed

$$S_{1}({U_{L}^{s}}, U_{L}^{s \#}).$$

The third part is again a stationary wave

$$W_{0}(U_{L}^{s\#}, U_{L}^{s \# b}), $$

where

$$\begin{array}{@{}rcl@{}} && U_{L}^{s \# b} = \left(p, u, \rho, a_{R} \right),\\ && \rho:= \varphi_{2}(U_{L}^{s \#}, a_{R}), \quad u := \frac{a_{M} \rho_{L}^{s \#} u_{L}^{s \#}}{a_{R} \rho}, \quad p := \kappa(S_{L}^{s \#})\rho^{\gamma}. \end{array} $$
(3.3)

Because these three parts are discontinuity waves with same zero speed, we have a wave collision (resonant case), i.e., W0(U L ,ULs) ⊕ S1(ULs, ULs#) ⊕ W0(ULs#, ULs#b) is just a discontinuity wave with zero speed

$$U_{\text{Rie}}(x/t; U_{L}, U_{R}) = \left\{\begin{array}{llllllll} U_{L} & \text{if~} x/t < 0,\\ U_{L}^{s \# b} & \text{if~} 0 < x/t < \ldots,\\ \ldots \end{array}\right.$$

We call the set

$$\{ U_{L}^{s\# b}: \quad a_{M} \text{ varies between } a_{L} \text{ and } a_{R} \}$$

as the composite wave curveW0.S1.W0(U L ,a R ). It is not difficult to check that \(U_{L}^{\# b}\) and \(U_{L}^{s \#}\) are two end-points of W0.S1.W0(U L ,a R ) (see Fig. 2). Therefore, if we have an intersection in the (p, u)-plane

$$(p, u) = \mathcal{W}_{3}^{B}(U_{R}) \cap W_{0}.S_{1}.W_{0}(U_{L}, a_{R}), $$

then the Riemann problem for (1.1) has a solution of the form

$$ W_{0}(U_{L},{U_{L}^{s}}) \oplus S_{1}({U_{L}^{s}},U_{L}^{s\#}) \oplus W_{0}(U_{L}^{s\#}, U_{L}^{s\#b}) \oplus W_{2}(U_{L}^{s\#b}, U^{*}) \oplus W_{3}(U^{*},U_{R}), $$
(3.4)

where

$$U^{*} = (p, u, \rho^{*}, a_{R}) \in \mathcal{W}_{3}(U_{R}).$$

Explicitly, the form (3.4) can be seen as follows.

  • If \(U^{*} \in \mathcal {R}_{3}^{B}(U_{R})\), then the form (3.4) yields

    $$U_{\text{Rie}}(x/t; U_{L}, U_{R}) = \left\{\begin{array}{llllllll} U_{L} & \text{if~} x/t < 0,\\ U_{L}^{s \# b} & \text{if~} 0 < x/t < \lambda_{2}(U_{L}^{s \# b}) = \lambda_{2}(U^{*}),\\ U^{*} & \text{if~} \lambda_{2}(U^{*}) < x/t < \lambda_{3}(U^{*}),\\ \text{Fan}_{3}(x/t; U^{*}, U_{R}) & \text{if~} \lambda_{3}(U^{*}) \le x/t \le \lambda_{3}(U_{R}),\\ U_{R} & \text{if~} x/t > \lambda_{3}(U_{R}). \end{array}\right.$$
  • If \(U^{*} \in \mathcal {S}_{3}^{B}(U_{R})\), then the form (3.4) yields

    $$U_{\text{Rie}}(x/t; U_{L}, U_{R}) = \left\{\begin{array}{llllllll} U_{L} & \text{if~} x/t < 0,\\ U_{L}^{s \# b} & \text{if~} 0 < x/t < \lambda_{2}(U_{L}^{s \# b}) = \lambda_{2}(U^{*}),\\ U^{*} & \text{if~} \lambda_{2}(U^{*}) < x/t < \sigma_{3}(U^{*}, U_{R}),\\ U_{R} & \text{if~} x/t > \sigma_{3}(U^{*}, U_{R}). \end{array}\right.$$

Algorithm to Compute the Intersection Point \((p,u) = \mathcal {W}_{3}^{B}(U_{R}) \cap W_{0}.S_{1}.W_{0}\) (U L ,a R ). Assume that \(U_{L}^{s\#}\) is located above \(\mathcal {W}_{3}^{B}(U_{R})\) and \(U_{L}^{\#b}\) is located below \(\mathcal {W}_{3}^{B}(U_{R})\) in the (p, u)-plane.

Step 1

Set a1 = a L , a2 = a R ;

Step 2

Compute \(a_{M} = \frac {a_{1} + a_{2}}{2}\); Compute \({U_{L}^{s}}\) as in (3.2); Compute \(U_{L}^{s\#}\); Compute \(U_{L}^{s\#b} = (p, u, \rho , a_{R})\) as in (3.3);

Step 3

  • If (p, u) belongs to \(\mathcal {W}_{3}^{B}(U_{R})\) in the (p, u)-plane, end;

  • If (p, u) is located above \(\mathcal {W}_{3}^{B}(U_{R})\) in the (p, u)-plane, set a2 = a M and return Step 2;

  • If (p, u) is located below \(\mathcal {W}_{3}^{B}(U_{R})\) in the (p, u)-plane, set a1 = a M and return Step 2.

3.1.3 Construction A3

Take any state \(U = (p, u, \rho , a_{L}) \in \mathcal {S}_{1}(U_{L}) \cap G_{2}^{+}\) such that σ1(U L ,U) < 0, i.e., U is located between \(U_{L}^\#\) and \({U_{L}^{0}}\), where

$${U_{L}^{0}} = ({p_{L}^{0}}, {u_{L}^{0}}, {\rho_{L}^{0}}, a_{L}) = \mathcal{W}_{1}(U_{L}) \cap \mathcal{C}^{0}.$$

Then, the first part of the Riemann solution can be a 1-shock wave with negative speed

$$S_{1}(U_{L}, U).$$

Next, the second part of the Riemann solution can be a stationary wave

$$W_{0}(U, U^{b}),$$

where

$$\begin{array}{@{}rcl@{}} && U^{b} = \left(p^{b}, u^{b}, \rho^{b}, a_{R} \right),\\ && \rho^{b}:= \varphi_{2}(U, a_{R}), \quad u^{b} := \frac{a_{L} \rho u}{a_{R} \rho^{b}}, \quad p^{b} := \kappa(S)(\rho^{b})^{\gamma}. \end{array} $$
(3.5)

The set

$$\{ U^{b}: \quad U \text{ is located between } U_{L}^\# \text{ and } {U_{L}^{0}} \text{ on } \mathcal{S}_{1}(U_{L}) \}$$

is called the composite wave curve S1.W0(U L ,a R ). Obviously, \(U_{L}^{\# b}\) and \({U_{L}^{0}}\) are two end-points of S1.W0(U L ,a R ) (see Fig. 2). Therefore, if we have an intersection in the (p, u)-plane

$$(p^{b}, u^{b}) = \mathcal{W}_{3}^{B}(U_{R}) \cap S_{1}.W_{0}(U_{L}, a_{R}),$$

then the Riemann problem for (1.1) has a solution of the form

$$ S_{1}(U_{L},U) \oplus W_{0}(U,U^{b}) \oplus W_{2}(U^{b},U^{*}) \oplus W_{3}(U^{*},U_{R}), $$
(3.6)

where

$$U^{*} = (p^{b}, u^{b}, \rho^{*}, a_{R}) \in \mathcal{W}_{3}^{B}(U_{R}).$$

Explicitly, the form (3.6) can be seen as follows. ∙\(U^{*} \in \mathcal {R}_{3}^{B}(U_{R})\), then the form (3.6) yields

$$U_{\text{Rie}}(x/t; U_{L}, U_{R}) = \left\{\begin{array}{llllllll} U_{L} & \text{if~} x/t < \sigma_{1}(U_{L}, U),\\ U & \text{if~} \sigma_{1}(U_{L}, U) < x/t < 0,\\ U^{b} & \text{if~} 0 < x/t < \lambda_{2}(U^{b}) = \lambda_{2}(U^{*}),\\ U^{*} & \text{if~} \lambda_{2}(U^{*}) < x/t < \lambda_{3}(U^{*}),\\ \text{Fan}_{3}(x/t; U^{*}, U_{R}) & \text{if~} \lambda_{3}(U^{*}) \le x/t \le \lambda_{3}(U_{R}),\\ U_{R} & \text{if~} x/t > \lambda_{3}(U_{R}). \end{array}\right.$$

\(U^{*} \in \mathcal {S}_{3}^{B}(U_{R})\), then the form (3.6) yields

$$U_{\text{Rie}}(x/t; U_{L}, U_{R}) = \left\{\begin{array}{llllllll} U_{L} &\text{if~} x/t < \sigma_{1}(U_{L}, U),\\ U & \text{if~} \sigma_{1}(U_{L}, U) < x/t < 0,\\ U^{b} & \text{if~} 0 < x/t < \lambda_{2}(U^{b}) = \lambda_{2}(U^{*}),\\ U^{*} & \text{if~} \lambda_{2}(U^{*}) < x/t < \sigma_{3}(U^{*}, U_{R}),\\ U_{R} & \text{if~} x/t > \sigma_{3}(U^{*}, U_{R}). \end{array}\right.$$

Algorithm to Compute the State U and the Intersection Point \((p^{b}, u^{b}) = \mathcal {W}_{3}^{B}\)(U R ) ∩ S1.W0(U L ,a R ). Assume that \(U_{L}^{\#b}\) is located above \(\mathcal {W}_{3}^{B}(U_{R})\) and \({U_{L}^{0}}\) is located below \(\mathcal {W}_{3}^{B}(U_{R})\) in the (p, u)-plane.

Step 1

Set \(p_{1} = p_{L}^{\#}\), \(p_{2} = {p_{L}^{0}}\);

Step 2

Compute \(p = \frac {p_{1} + p_{2}}{2}\); Compute \(U = (p,u, \rho , a_{L}) \in \mathcal {S}_{1}(U_{L})\); Compute Ub = (pb,ub,ρb,a R ) as in (3.5);

Step 3

  • If (pb,ub) belongs to \(\mathcal {W}_{3}^{B}(U_{R})\) in the (p, u)-plane, end;

  • If (pb,ub) is located above \(\mathcal {W}_{3}^{B}(U_{R})\) in the (p, u)-plane, set p1 = p and return Step 2;

  • If (pb,ub) is located below \(\mathcal {W}_{3}^{B}(U_{R})\) in the (p, u)-plane, set p2 = p and return Step 2.

3.2 Case B: U L G2+ and a R > a L

3.2.1 Construction B1

The first part of the Riemann solution can be the 1-rarefaction wave

$$R_{1}(U_{L}, U_{L}^{+}),$$

where

$$U_{L}^{+} = (p_{L}^{+}, u_{L}^{+}, \rho_{L}^{+}, a_{L}) = \mathcal{W}_{1}(U_{L}) \cap \mathcal{C}^{+}.$$

The second part of the Riemann solution can be the stationary wave

$$W_{0}(U_{L}^{+}, U_{L}^{+s}),$$

where

$$\begin{array}{@{}rcl@{}} && U_{L}^{+s} = \left(p_{L}^{+s}, u_{L}^{+s}, \rho_{L}^{+s}, a_{R} \right),\\ && \rho_{L}^{+s}:= \varphi_{1}(U_{L}^{+}, a_{R}), \quad u_{L}^{+s} := \frac{a_{L} \rho_{L}^{+} u_{L}^{+}}{a_{R} \rho_{L}^{+s}}, \quad p_{L}^{+s} := \kappa(S_{L})(\rho_{L}^{+s})^{\gamma}. \end{array} $$

Take any state \(U = (p, u, \rho , a_{R}) \in \mathcal {W}_{1}(U_{L}^{+s})\) such that U is located above \(U_{L}^{+s \#}\). Then, the third part of the Riemann solution can be a 1-wave

$$W_{1}(U_{L}^{+s}, U).$$

We call the set

$$\{ U \in \mathcal{W}_{1}(U_{L}^{+s}): \quad U \text{ is located above } U_{L}^{+s \#} \}$$

as the composite wave curve R1.W0.W1(U L ,a R ) (see Fig. 3). If we have an intersection in the (p, u) −plane

$$(p, u) = \mathcal{W}_{3}^{B}(U_{R}) \cap R_{1}.W_{0}.W_{1}(U_{L}, a_{R}),$$

then the Riemann problem for (1.1) has a solution of the form

$$ R_{1}(U_{L},U_{L}^{+}) \oplus W_{0}(U_{L}^{+},U_{L}^{+s}) \oplus W_{1}(U_{L}^{+s}, U) \oplus W_{2}(U,U^{*}) \oplus W_{3}(U^{*},U_{R}), $$
(3.7)

where

$$U^{*} = (p, u, \rho^{*}, a_{R}) \in \mathcal{W}_{3}^{B}(U_{R}).$$

Explicitly, the form (3.7) can be seen as follows. ∙ If \(U \in \mathcal R_{1}(U_{L}^{+s})\) and \(U^{*} \in \mathcal {R}_{3}^{B}(U_{R})\), then the form (3.7) yields

$$U_{\text{Rie}}(x/t; U_{L}, U_{R}) = \left\{\begin{array}{llllllll} U_{L} & \text{if~} x/t < \lambda_{1}(U_{L}),\\ \text{Fan}_{1}(x/t; U_{L}, U_{L}^{+}) & \text{if~} \lambda_{1}(U_{L}) \le x/t \le \lambda_{1}(U_{L}^{+}) = 0,\\ U_{L}^{+s} & \text{if~} 0 < x/t < \lambda_{1}(U_{L}^{+s}),\\ \text{Fan}_{1}(x/t; U_{L}^{+s}, U) & \text{if~} \lambda_{1}(U_{L}^{+s}) \le x/t \le \lambda_{1}(U),\\ U & \text{if~} \lambda_{1}(U) < x/t < \lambda_{2}(U) = \lambda_{2}(U^{*}),\\ U^{*} & \text{if~} \lambda_{2}(U^{*}) < x/t < \lambda_{3}(U^{*}),\\ \text{Fan}_{3}(x/t; U^{*}, U_{R}) & \text{if~} \lambda_{3}(U^{*}) \le x/t \le \lambda_{3}(U_{R}),\\ U_{R} & \text{if~} x/t >\lambda_{3}(U_{R}). \end{array}\right.$$

∙ If \(U \in \mathcal {R}_{1}(U_{L}^{+s})\) and \(U^{*} \in \mathcal {S}_{3}^{B}(U_{R})\), then the form (3.7) yields

$$U_{\text{Rie}}(x/t; U_{L}, U_{R}) = \left\{\begin{array}{llllllll} U_{L} & \text{if~} x/t < \lambda_{1}(U_{L}),\\ \text{Fan}_{1}(x/t; U_{L}, U_{L}^{+}) & \text{if~} \lambda_{1}(U_{L}) \le x/t \le \lambda_{1}(U_{L}^{+}) = 0,\\ U_{L}^{+s} & \text{if~} 0 < x/t < \lambda_{1}(U_{L}^{+s}),\\ \text{Fan}_{1}(x/t; U_{L}^{+s}, U) & \text{if~} \lambda_{1}(U_{L}^{+s}) \le x/t \le \lambda_{1}(U),\\ U & \text{if~} \lambda_{1}(U) < x/t < \lambda_{2}(U) = \lambda_{2}(U^{*}),\\ U^{*} & \text{if~} \lambda_{2}(U^{*}) < x/t < \sigma_{3}(U^{*}, U_{R}),\\ U_{R} & \text{if~} x/t > \sigma_{3}(U^{*}, U_{R}). \end{array}\right.$$

∙ If \(U \in \mathcal S_{1}(U_{L}^{+s})\) and \(U^{*} \in \mathcal {R}_{3}^{B}(U_{R})\), then the form (3.7) yields

$$U_{\text{Rie}}(x/t; U_{L}, U_{R}) = \left\{\begin{array}{llllllll} U_{L} & \text{if~} x/t < \lambda_{1}(U_{L}),\\ \text{Fan}_{1}(x/t; U_{L}, U_{L}^{+})& \text{if~} \lambda_{1}(U_{L}) \le x/t \le \lambda_{1}(U_{L}^{+}) = 0,\\ U_{L}^{+s} & \text{if~} 0 < x/t < \sigma_{1}(U_{L}^{+s}, U),\\ U & \text{if~} \sigma_{1}(U_{L}^{+s}, U) < x/t < \lambda_{2}(U) = \lambda_{2}(U^{*}),\\ U^{*}& \text{if~} \lambda_{2}(U^{*}) < x/t < \lambda_{3}(U^{*}),\\ \text{Fan}_{3}(x/t; U^{*}, U_{R}) & \text{if~} \lambda_{3}(U^{*}) \le x/t \le \lambda_{3}(U_{R}),\\ U_{R} & \text{if~} x/t > \lambda_{3}(U_{R}). \end{array}\right.$$

∙ If \(U \in \mathcal {S}_{1}(U_{L}^{+s})\) and \(U^{*} \in \mathcal {S}_{3}^{B}(U_{R})\), then the form (3.7) yields

$$U_{\text{Rie}}(x/t; U_{L}, U_{R}) = \left\{\begin{array}{llllllll} U_{L} & \text{if~} x/t < \lambda_{1}(U_{L}),\\ \text{Fan}_{1}(x/t; U_{L}, U_{L}^{+})& \text{if~} \lambda_{1}(U_{L}) \le x/t \le \lambda_{1}(U_{L}^{+}) = 0,\\ U_{L}^{+s} & \text{if~} 0 < x/t < \sigma_{1}(U_{L}^{+s}, U),\\ U & \text{if~} \sigma_{1}(U_{L}^{+s}, U) < x/t < \lambda_{2}(U) = \lambda_{2}(U^{*}),\\ U^{*}& \text{if~} \lambda_{2}(U^{*}) < x/t < \sigma_{3}(U^{*}, U_{R}),\\ U_{R}& \text{if~} x/t > \sigma_{3}(U^{*}, U_{R}). \end{array}\right.$$
Fig. 3
figure 3

The composite wave curves: R1.W0.W1(U L ,a R ), R1.W0.S1.W0(U L ,a R ) and W1.W0(U L ,a R ) in the (p, u)-plane

Algorithm to Compute the Intersection Point \((p, u) = \mathcal {W}_{3}^{B}(U_{R}) \cap R_{1}.W_{0}.W_{1}\)(U L ,a R ). Similar to case A, since \(R_{1}.W_{0}.W_{1}(U_{L}, a_{R}) \equiv W_{0}.W_{1}(U_{L}^{+}, a_{R})\).

3.2.2 Construction B2

The first part of the Riemann solution can be the 1-rarefaction wave

$$R_{1}(U_{L}, U_{L}^{+}),$$

where

$$U_{L}^{+} = (p_{L}^{+}, u_{L}^{+}, \rho_{L}^{+}, a_{L}) = \mathcal{W}_{1}(U_{L}) \cap \mathcal C^{+}.$$

Fix a cross section a M between a L and a R . The second part of the Riemann solution can be a stationary wave

$$W_{0}(U_{L}^{+}, U_{L}^{+s}),$$

where

$$\begin{array}{@{}rcl@{}} && U_{L}^{+s} = \left(p_{L}^{+s}, u_{L}^{+s}, \rho_{L}^{+s}, a_{M} \right),\\ && \rho_{L}^{+s}:= \varphi_{1}(U_{L}^{+}, a_{M}), \quad u_{L}^{+s} := \frac{a_{L} \rho_{L}^{+} u_{L}^{+}}{a_{M} \rho_{L}^{+s}}, \quad p_{L}^{+s} := \kappa(S_{L})(\rho_{L}^{+s})^{\gamma}. \end{array} $$

The third part of the Riemann solution can be a 1-shock wave with zero speed

$$S_{1}(U_{L}^{+s}, U_{L}^{+s \#}).$$

The fourth part of the Riemann solution can be again a stationary wave

$$W_{0}(U_{L}^{+s \#}, U_{L}^{+s \# b}),$$

where

$$\begin{array}{@{}rcl@{}} && U_{L}^{+s \# b} = \left(p, u, \rho, a_{R} \right),\\ && \rho:= \varphi_{2}(U_{L}^{+s \#}, a_{R}), \quad u := \frac{a_{M} \rho_{L}^{+s\#} u_{L}^{+s\#}}{a_{R} \rho}, \quad p := \kappa(S_{L}^{+s\#})\rho^{\gamma}. \end{array} $$

We call the set

$$\{ U_{L}^{+s\#b}: \quad a_{M} \text{ varies between } a_{L} \text{ and } a_{R} \}$$

as the composite wave curve R1.W0.S1.W0(U L ,a R ). It is not difficult to check that \(U_{L}^{+s\#}\) and \(U_{L}^{+b}\) are two end-points of R1.W0.S1.W0(U L ,a R ) (see Fig. 3). Therefore, if we have an intersection in the (p, u) −plane

$$(p, u) = \mathcal{W}_{3}^{B}(U_{R}) \cap R_{1}.W_{0}.S_{1}.W_{0}(U_{L}, a_{R}), $$

then the Riemann problem for (1.1) has a solution of the form

$$ R_{1}(U_{L},U_{L}^{+}) \oplus W_{0}(U_{L}^{+},U_{L}^{+s}) \oplus S_{1}(U_{L}^{+s},U_{L}^{+s\#}) \oplus W_{0}(U_{L}^{+s\#}, U_{L}^{+s\#b})\oplus W_{2}(U,U^{*}) \oplus W_{3}(U^{*},U_{R}), $$
(3.8)

where

$$U^{*} = (p, u, \rho^{*}, a_{R}) \in \mathcal{W}_{3}^{B}(U_{R}).$$

Explicitly, the form (3.8) can be seen as follows. ∙ If \(U^{*} \in \mathcal {R}_{3}^{B}(U_{R})\), then the form (3.8) yields

$$U_{\text{Rie}}(x/t; U_{L}, U_{R}) = \left\{\begin{array}{llllllll} U_{L} & \text{if~} x/t < \lambda_{1}(U_{L}),\\ \text{Fan}_{1}(x/t; U_{L}, U_{L}^{+}) & \text{if~} \lambda_{1}(U_{L}) \le x/t \le \lambda_{1}(U_{L}^{+}) = 0,\\ U_{L}^{+ s \# b} & \text{if~} 0 < x/t < \lambda_{2}(U_{L}^{+s \# b}) = \lambda_{2}(U^{*}),\\ U^{*} & \text{if~} \lambda_{2}(U^{*}) < x/t < \lambda_{3}(U^{*}),\\ \text{Fan}_{3}(x/t; U^{*}, U_{R}) & \text{if~} \lambda_{3}(U^{*}) \le x/t \le \lambda_{3}(U_{R}),\\ U_{R} & \text{if~} x/t >\lambda_{3}(U_{R}). \end{array}\right.$$

∙ If \(U^{*} \in \mathcal {S}_{3}^{B}(U_{R})\), then the form (3.8) yields

$$U_{\text{Rie}}(x/t; U_{L}, U_{R}) = \left\{\begin{array}{llllllll} U_{L} & \text{if~} x/t < \lambda_{1}(U_{L}),\\ \text{Fan}_{1}(x/t; U_{L}, U_{L}^{+}) & \text{if~} \lambda_{1}(U_{L}) \le x/t \le \lambda_{1}(U_{L}^{+}) = 0,\\ U_{L}^{+ s \# b} &\text{if~} 0 < x/t < \lambda_{2}(U_{L}^{+s \# b}) = \lambda_{2}(U^{*}),\\ U^{*} & \text{if~} \lambda_{2}(U^{*}) < x/t < \sigma_{3}(U^{*}, U_{R}),\\ U_{R} & \text{if~} x/t > \sigma_{3}(U^{*}, U_{R}). \end{array}\right.$$

Algorithm to Compute the Intersection Point \((p, u) = \mathcal {W}_{3}^{B}(U_{R}) \cap R_{1}.W_{0}.S_{1}.W_{0}\)(U L ,a R ). Similar to case A, since \(R_{1}.W_{0}.S_{1}.W_{0}(U_{L}, a_{R}) \equiv W_{0}.S_{1}.W_{0}(U_{L}^{+}, a_{R})\).

3.2.3 Construction B3

Take a state \(U = (p, u, \rho , a_{L}) \in \mathcal {W}_{1}(U_{L})\) such that \(U \in G_{2}^{+}\), i.e., U is located between \(U_{L}^{+}\) and \({U_{L}^{0}}\), where

$$\begin{array}{@{}rcl@{}} && U_{L}^{+} = (p_{L}^{+}, u_{L}^{+}, \rho_{L}^{+}, a_{L}) = \mathcal{W}_{1}(U_{L}) \cap \mathcal{C}^{+},\\ && {U_{L}^{0}} = ({p_{L}^{0}}, {u_{L}^{0}}, {\rho_{L}^{0}}, a_{L}) = \mathcal{W}_{1}(U_{L}) \cap \mathcal{C}^{0}. \end{array} $$

Then, the first part of the Riemann solution can be a 1-wave

$$W_{1}(U_{L}, U).$$

Next, the second part of the Riemann solution can be a stationary wave

$$W_{0}(U, U^{b}),$$

where

$$\begin{array}{@{}rcl@{}} && U^{b} = \left(p^{b}, u^{b}, \rho^{b}, a_{R} \right),\\ && \rho^{b}:= \varphi_{2}(U, a_{R}), \quad u^{b} := \frac{a_{L} \rho u}{a_{R} \rho^{b}}, \quad p^{b} := \kappa(S)(\rho^{b})^{\gamma}. \end{array} $$

We call the set

$$\{ U^{b}: \quad U \text{ is located between } U_{L}^{+} \text{ and } {U_{L}^{0}} \text{ on } \mathcal{W}_{1}(U_{L})\}$$

as the composite wave curve W1.W0(U L ,a R ). Obviously, \(U_{L}^{+b}\) and \({U_{L}^{0}}\) are two end-points of W1.W0(U L ,a R ) (see Fig. 3). Therefore, if we have an intersection in the (p, u) −plane

$$(p^{b}, u^{b}) = \mathcal{W}_{3}^{B}(U_{R}) \cap W_{1}.W_{0}(U_{L}, a_{R}), $$

then the Riemann problem for (1.1) has a solution of the form

$$ W_{1}(U_{L},U) \oplus W_{0}(U,U^{b}) \oplus W_{2}(U^{b},U^{*}) \oplus W_{3}(U^{*},U_{R}), $$
(3.9)

where

$$U^{*} = (p^{b}, u^{b}, \rho^{*}, a_{R}) \in \mathcal{W}_{3}^{B}(U_{R}).$$

Explicitly, the form (3.9) can be seen as follows. ∙ If \(U \in \mathcal {R}_{1}(U_{L})\) and \(U^{*} \in \mathcal {R}_{3}^{B}(U_{R})\), then the form (3.9) yields

$$U_{\text{Rie}}(x/t; U_{L}, U_{R}) = \left\{\begin{array}{llllllll} U_{L} & \text{if~} x/t < \lambda_{1}(U_{L}),\\ \text{Fan}_{1}(x/t; U_{L}, U) & \text{if~} \lambda_{1}(U_{L}) \le x/t \le \lambda_{1}(U),\\ U & \text{if~} \lambda_{1}(U) < x/t < 0,\\ U^{b} & \text{if~} 0 < x/t < \lambda_{2}(U^{b}) = \lambda_{2}(U^{*}),\\ U^{*} & \text{if~} \lambda_{2}(U^{*}) < x/t < \lambda_{3}(U^{*}),\\ \text{Fan}_{3}(x/t; U^{*}, U_{R}) & \text{if~} \lambda_{3}(U^{*}) \le x/t \le \lambda_{3}(U_{R}),\\ U_{R} & \text{if~} x/t >\lambda_{3}(U_{R}). \end{array}\right.$$

∙ If \(U \in \mathcal {R}_{1}(U_{L})\) and \(U^{*} \in \mathcal {S}_{3}^{B}(U_{R})\), then the form (3.9) yields

$$U_{\text{Rie}}(x/t; U_{L}, U_{R}) = \left\{\begin{array}{llllllll} U_{L} & \text{if~} x/t < \lambda_{1}(U_{L}),\\ \text{Fan}_{1}(x/t; U_{L}, U) & \text{if~} \lambda_{1}(U_{L}) \le x/t \le \lambda_{1}(U),\\ U & \text{if~} \lambda_{1}(U) < x/t < 0,\\ U^{b} & \text{if~} 0 < x/t < \lambda_{2}(U^{b}) = \lambda_{2}(U^{*}),\\ U^{*} & \text{if~} \lambda_{2}(U^{*}) < x/t < \sigma_{3}(U^{*}, U_{R}),\\ U_{R} & \text{if~} x/t > \sigma_{3}(U^{*}, U_{R}). \end{array}\right.$$

∙ If \(U \in \mathcal {S}_{1}(U_{L})\) and \(U^{*} \in \mathcal {R}_{3}^{B}(U_{R})\), then the form (3.9) yields

$$U_{\text{Rie}}(x/t; U_{L}, U_{R}) = \left\{\begin{array}{llllllll} U_{L} &\text{if~} x/t < \sigma_{1}(U_{L}, U),\\ U &\text{if~} \sigma_{1}(U_{L}, U) < x/t < 0,\\ U^{b} & \text{if~} 0 < x/t < \lambda_{2}(U^{b}) = \lambda_{2}(U^{*}),\\ U^{*} &\text{if~} \lambda_{2}(U^{*}) < x/t < \lambda_{3}(U^{*}),\\ \text{Fan}_{3}(x/t; U^{*}, U_{R}) & \text{if~} \lambda_{3}(U^{*}) \le x/t \le \lambda_{3}(U_{R}),\\ U_{R} &\text{if~} x/t > \lambda_{3}(U_{R}). \end{array}\right.$$

∙ If \(U \in \mathcal {S}_{1}(U_{L})\) and \(U^{*} \in \mathcal {S}_{3}^{B}(U_{R})\), then the form (3.9) yields

$$U_{\text{Rie}}(x/t; U_{L}, U_{R}) = \left\{\begin{array}{llllllll} U_{L} , & \text{if} ~ x/t < \sigma_{1}(U_{L}, U),\\ U , & \text{if} ~ \sigma_{1}(U_{L}, U) < x/t < 0,\\ U^{b} , & \text{if} ~ 0 < x/t < \lambda_{2}(U^{b}) = \lambda_{2}(U^{*}),\\ U^{*}, & \text{if} ~ \lambda_{2}(U^{*}) < x/t < \sigma_{3}(U^{*}, U_{R}),\\ U_{R}, & \text{if} ~ x/t >\sigma_{3}(U^{*}, U_{R}). \end{array}\right.$$

Algorithm to Compute the State U and the Intersection Point \((p^{b}, u^{b}) = \mathcal {W}_{3}^{B}\)(U R ) ∩ W1.W0(U L ,a R ). Similar to Construction A3, but the assignment \(p_{1} = p_{L}^{\#}\) in Step 1 is replaced by \(p_{1} = p_{L}^{+}\).

3.3 Case C: \(U_{R} \in G_{1}^{-} \cup \mathcal {C}^{-}\) and a L > a R

3.3.1 Construction C1

The last part of the Riemann solution can be the stationary wave

$$W_{0}({U_{R}^{s}}, U_{R}),$$

i.e.,

$$U_{\text{Rie}}(x/t; U_{L}, U_{R}) = \left\{\begin{array}{llllllll} \ldots,&\\ {U_{R}^{s}} & \text{if~} {\ldots} < x/t < 0,\\ U_{R} & \text{if~} x/t > 0, \end{array}\right.$$

where

$$\begin{array}{@{}rcl@{}} && {U_{R}^{s}} = \left({p_{R}^{s}}, {u_{R}^{s}}, {\rho_{R}^{s}}, a_{L} \right),\\ && {\rho_{R}^{s}}:= \varphi_{1}(U_{R}, a_{L}), \quad {u_{R}^{s}} := \frac{a_{R} \rho_{R} u_{R}}{a_{L} {\rho_{R}^{s}}}, \quad {p_{R}^{s}} := \kappa(S_{R})({\rho_{R}^{s}})^{\gamma}. \end{array} $$

Take a state \(U = (p, u, \rho , a_{L}) \in \mathcal {W}_{3}({U_{R}^{s}})\) such that U is located below \(U_{R}^{s @}\). Then, the next part of the Riemann solution from the end can be a 3-wave

$$W_{3}(U, {U_{R}^{s}}).$$

We call the set

$$\{ U \in \mathcal{W}_{3}^{B}({U_{R}^{s}}): \quad U \text{ is located below } U_{R}^{s@} \}$$

as the backward composite wave curve \({W_{0}^{B}}.{W_{3}^{B}}(U_{R}, a_{L})\) (see Fig. 4). If the wave curve \(\mathcal {W}_{1}(U_{L})\) intersects \({W_{0}^{B}}.{W_{3}^{B}}(U_{R}, a_{L})\) at a point (p, u) in the (p, u)-plane, then the Riemann problem for (1.1) has a solution of the form

$$ W_{1}(U_{L},U^{*}) \oplus W_{2}(U^{*},U) \oplus W_{3}(U,{U_{R}^{s}}) \oplus W_{0}({U_{R}^{s}},U_{R}), $$
(3.10)

where

$$U^{*} = (p, u, \rho^{*}, a_{L}) \in \mathcal{W}_{1}(U_{L}).$$

Explicitly, the form (3.10) can be seen as follows. ∙ If \(U \in \mathcal {R}_{3}^{B}({U_{R}^{s}})\) and \(U^{*} \in \mathcal {R}_{1}(U_{L})\), then the form (3.10) yields

$$U_{\text{Rie}}(x/t; U_{L}, U_{R}) = \left\{\begin{array}{llllllll} U_{L} & \text{if~} x/t < \lambda_{1}(U_{L}),\\ \text{Fan}_{1}(x/t; U_{L}, U^{*}) & \text{if~} \lambda_{1} \le x/t \le \lambda_{1}(U_{*}),\\ U^{*} & \text{if~} \lambda_{1}(U^{*}) < x/t < \lambda_{2}(U^{*}) = \lambda_{2}(U),\\ U & \text{if~} \lambda_{2}(U) < x/t < \lambda_{3}(U),\\ \text{Fan}_{3}(x/t; U, {U_{R}^{s}}) & \text{if~} \lambda_{3}(U) \le x/t \le \lambda_{3}({U_{R}^{s}}),\\ {U_{R}^{s}} & \text{if~} \lambda_{3}({U_{R}^{s}}) < x/t < 0,\\ U_{R} & \text{if~} x/t > 0. \end{array}\right.$$

∙ If \(U \in \mathcal {S}_{3}^{B}({U_{R}^{s}})\) and \(U^{*} \in \mathcal {R}_{1}(U_{L})\), then the form (3.10) yields

$$U_{\text{Rie}}(x/t; U_{L}, U_{R}) = \left\{\begin{array}{llllllll} U_{L} & \text{if~} x/t < \lambda_{1}(U_{L}),\\ \text{Fan}_{1}(x/t; U_{L}, U^{*}) & \text{if~} \lambda_{1} \le x/t \le \lambda_{1}(U_{*}),\\ U^{*} & \text{if~} \lambda_{1}(U^{*}) < x/t < \lambda_{2}(U^{*}) = \lambda_{2}(U),\\ U & \text{if~} \lambda_{2}(U) < x/t < \sigma_{3}(U, {U_{R}^{s}}),\\ {U_{R}^{s}} & \text{if~} \sigma_{3}(U, {U_{R}^{s}}) < x/t < 0,\\ U_{R} & \text{if~} x/t > 0. \end{array}\right.$$

∙ If \(U \in \mathcal {R}_{3}^{B}({U_{R}^{s}})\) and \(U^{*} \in \mathcal {S}_{1}(U_{L})\), then the form (3.10) yields

$$U_{\text{Rie}}(x/t; U_{L}, U_{R}) = \left\{\begin{array}{llllllll} U_{L} &\text{if~} x/t < \sigma_{1}(U_{L}, U^{*}),\\ U^{*} & \text{if~} \sigma_{1}(U_{L}, U^{*}) < x/t < \lambda_{2}(U^{*}) = \lambda_{2}(U),\\ U &\text{if~} \lambda_{2}(U) < x/t < \lambda_{3}(U),\\ \text{Fan}_{3}(x/t; U, {U_{R}^{s}}) & \text{if~} \lambda_{3}(U) \le x/t \le \lambda_{3}({U_{R}^{s}}),\\ {U_{R}^{s}} & \text{if~} \lambda_{3}({U_{R}^{s}}) < x/t < 0,\\ U_{R} & \text{if~} x/t > 0. \end{array}\right.$$

∙ If \(U \in \mathcal {S}_{3}^{B}({U_{R}^{s}})\) and \(U^{*} \in \mathcal {S}_{1}(U_{L})\), then the form (3.10) yields

$$U_{\text{Rie}}(x/t; U_{L}, U_{R}) = \left\{\begin{array}{llllllll} U_{L} & \text{if~} x/t < \sigma_{1}(U_{L}, U^{*}),\\ U^{*} & \text{if~} \sigma_{1}(U_{L}, U^{*}) < x/t < \lambda_{2}(U^{*}) = \lambda_{2}(U),\\ U & \text{if~} \lambda_{2}(U) < x/t < \sigma_{3}(U, {U_{R}^{s}}),\\ {U_{R}^{s}} & \text{if~} \sigma_{3}(U, {U_{R}^{s}}) < x/t < 0,\\ U_{R} & \text{if~} x/t > 0. \end{array}\right.$$
Fig. 4
figure 4

The composite wave curves: W0B.W3B(U R ,a L ), W0B.S3B.W0B(U R ,a L ) and S3B.W0B(U R ,a L ) in the (p, u)-plane

Algorithm to Compute the Intersection Point \((p, u) = \mathcal {W}_{1}(U_{L}) \cap {W_{0}^{B}}.{W_{3}^{B}}\)(U R ,a L ). Assume that \(U_{R}^{s@}\) is located above the curve \(\mathcal {W}_{1}(U_{L})\) in the (p, u) − plane.

Step 1

Set p1 = 0, \(p_{2} = p_{R}^{s@}\);

Step 2

Compute \(p = \frac {p_{1} + p_{2}}{2}\) and u such that \((p,u) \in \mathcal {W}_{3}^{B}({U_{R}^{s}})\) in the (p, u) −plane;

Step 3

  • If (p, u) belongs to \(\mathcal {W}_{1}(U_{L})\) in the (p, u)-plane, end;

  • If (p, u) is located above \(\mathcal {W}_{1}(U_{L})\) in the (p, u)-plane, set p2 = p and return Step 2;

  • If (p, u) is located below \(\mathcal {W}_{1}(U_{L})\) in the (p, u)-plane, set p1 = p and return Step 2.

3.3.2 Construction C2

Fix a cross section a M between a L and a R . The last part of the Riemann solution can be a stationary wave

$$W_{0}({U_{R}^{s}}, U_{R}),$$

where

$$\begin{array}{@{}rcl@{}} && {U_{R}^{s}} = \left({p_{R}^{s}}, {u_{R}^{s}}, {\rho_{R}^{s}}, a_{L} \right),\\ && {\rho_{R}^{s}}:= \varphi_{1}(U_{R}, a_{M}), \quad {u_{R}^{s}} := \frac{a_{R} \rho_{R} u_{R}}{a_{M} {\rho_{R}^{s}}}, \quad {p_{R}^{s}} := \kappa(S_{R})({\rho_{R}^{s}})^{\gamma}. \end{array} $$
(3.11)

The next part of the Riemann solution can be the 3-shock wave with zero speed

$$S_{3}(U_{R}^{s @}, {U_{R}^{s}}).$$

The next part of the Riemann solution can be again a stationary wave

$$W_{0}(U_{R}^{s @ b}, U_{R}^{s @}),$$

where

$$\begin{array}{@{}rcl@{}} && U_{R}^{s @ b} = \left(p, u, \rho, a_{L} \right),\\ && \rho:= \varphi_{2}(U_{R}^{s @}, a_{L}), \quad u := \frac{a_{M} \rho_{R}^{s @} u_{R}^{s@}}{a_{L} \rho}, \quad p := \kappa(S_{R}^{s@})\rho^{\gamma}. \end{array} $$
(3.12)

Because these three parts are discontinuity waves with same zero speed, we have a wave collision (resonant case), i.e., W0(URs@b, URs@) ⊕ S3(URs@, URs) ⊕ W0(URs, U R ) is just a discontinuity wave with zero speed

$$U_{\text{Rie}}(x/t; U_{L}, U_{R}) = \left\{\begin{array}{llllllll} \ldots,&\\ U_{R}^{s @ b} & \text{if~} {\ldots} < x/t < 0,\\ U_{R} & \text{if~} x/t > 0. \end{array}\right.$$

We call the set

$$\{ U_{R}^{s@b}: \quad a_{M} \text{ varies between } a_{L} \text{ and } a_{R} \}$$

as the backward composite wave curve \({W_{0}^{B}}.{S_{3}^{B}}.{W_{0}^{B}}(U_{R}, a_{L})\). It is not difficult to check that \(U_{R}^{s@}\) and \(U_{R}^{@b}\) are two end-points of \({W_{0}^{B}}.{S_{3}^{B}}.{W_{0}^{B}}(U_{R}, a_{L})\) (see Fig. 4). If the wave curve \(\mathcal {W}_{1}(U_{L})\) intersects \({W_{0}^{B}}.{S_{3}^{B}}.{W_{0}^{B}}(U_{R}, a_{L})\) at a point (p, u) in the (p, u)-plane, then the Riemann problem for (1.1) has a solution of the form

$$ W_{1}(U_{L},U^{*}) \oplus W_{2}(U^{*}, U_{R}^{s@b}) \oplus W_{0}(U_{R}^{s@b},U_{R}^{s@}) \oplus S_{3}(U_{R}^{s@},{U_{R}^{s}}) \oplus W_{0}({U_{R}^{s}},U_{R}), $$
(3.13)

where

$$U^{*} = (p, u, \rho^{*}, a_{L}) \in \mathcal{W}_{1}(U_{L}).$$

Explicitly, the form (3.13) can be seen as follows. ∙ If \(U^{*} \in \mathcal {R}_{1}(U_{L})\), then the form (3.13) yields

$$U_{\text{Rie}}(x/t; U_{L}, U_{R}) = \left\{\begin{array}{llllllll} U_{L} & \text{if~} x/t < \lambda_{1}(U_{L}),\\ \text{Fan}_{1}(x/t; U_{L}, U^{*})& \text{if~} \lambda_{1} \le x/t \le \lambda_{1}(U_{*}),\\ U^{*}& \text{if~} \lambda_{1}(U^{*}) < x/t < \lambda_{2}(U^{*}) = \lambda_{2}(U_{R}^{s@b}),\\ U_{R}^{s @ b} & \text{if~} \lambda_{2}(U_{R}^{s@b}) < x/t < 0,\\ U_{R} & \text{if~} x/t > 0. \end{array}\right. $$

∙ If \(U^{*} \in \mathcal {S}_{1}(U_{L})\), then the form (3.13) yields

$$U_{\text{Rie}}(x/t; U_{L}, U_{R}) = \left\{\begin{array}{llllllll} U_{L} & \text{if~} x/t < \sigma_{1}(U_{L}, U^{*}),\\ U^{*} & \text{if~} \sigma_{1}(U_{L}, U^{*}) < x/t < \lambda_{2}(U^{*}) = \lambda_{2}(U_{R}^{s@b}),\\ U_{R}^{s @ b} &\text{if~} \lambda_{2}(U_{R}^{s@b}) < x/t < 0,\\ U_{R} & \text{if~} x/t > 0. \end{array}\right.$$

Algorithm to Compute the Intersection Point \((p,u) = \mathcal {W}_{1}(U_{L}) \cap {W_{0}^{B}}.{S_{3}^{B}}.{W_{0}^{B}}\)(U R ,a L ). Assume that \(U_{R}^{s@}\) is located below \(\mathcal {W}_{1}(U_{L})\) and \(U_{R}^{@b}\) is located above \(\mathcal {W}_{1}(U_{L})\) in the (p, u) −plane.

Step 1

Set a1 = a L , a2 = a R ;

Step 2

Compute \(a_{M} = \frac {a_{1} + a_{2}}{2}\); Compute \({U_{R}^{s}}\) as in (3.11); Compute \(U_{R}^{s@}\); Compute \(U_{R}^{s@b} = (p,u,\)ρ, a L ) as in (3.12);

Step 3

  • If (p, u) belongs to \(\mathcal {W}_{1}(U_{L})\) in the (p, u)-plane, end;

  • If (p, u) is located above \(\mathcal {W}_{1}(U_{L})\) in the (p, u)-plane, set a1 = a M and return Step 2;

  • If (p, u) is located below \(\mathcal {W}_{1}(U_{L})\) in the (p, u)-plane, set a2 = a M and return Step 2.

3.3.3 Construction C3

Take a state \(U = (p,u,\rho , a_{R}) \in \mathcal {S}_{3}^{B}(U_{R})\) such that U is located between \(U_{R}^{@}\) and \({U_{R}^{0}}\), where

$${U_{R}^{0}} = ({p_{R}^{0}}, {u_{R}^{0}}, {\rho_{R}^{0}}, a_{R}) = \mathcal{W}_{3}^{B}(U_{R}) \cap \mathcal{C}^{0}.$$

Then, the last part of the Riemann solution can be a 3-shock wave with positive speed

$$S_{3}(U, U_{R}),$$

(see Lemma 2.1). The next part of the Riemann solution can be a stationary wave

$$W_{0}(U^{b}, U),$$

where

$$\begin{array}{@{}rcl@{}} && U^{b} = \left(p^{b}, u^{b}, \rho^{b}, a_{L} \right),\\ && \rho^{b}:= \varphi_{2}(U, a_{L}), \quad u^{b} := \frac{a_{R} \rho u}{a_{L} \rho^{b}}, \quad p^{b} := \kappa(S)(\rho^{b})^{\gamma}. \end{array} $$
(3.14)

We call the set

$$\{ U^{b} : \quad U \text{ is located between } U_{R}^{@} \text{ and } {U_{R}^{0}} \text{ on } \mathcal{S}_{3}^{B}(U_{R})\}$$

as the backward composite wave curve \({S_{3}^{B}}.{W_{0}^{B}}(U_{R}, a_{L})\). Obviously, \(U_{R}^{@b}\) and \({U_{R}^{0}}\) are two end-points of \({S_{3}^{B}}.{W_{0}^{B}}(U_{R}, a_{L})\) (see Fig. 4). If the wave curve \(\mathcal {W}_{1}(U_{L})\) intersects \({S_{3}^{B}}.W_{0}(U_{R}, a_{L})\) at a point (pb,ub) in the (p, u)-plane, then the Riemann problem for (1.1) has a solution of the form

$$ W_{1}(U_{L},U^{*}) \oplus W_{2}(U^{*},U^{b}) \oplus W_{0}(U^{b},U) \oplus S_{3}(U,U_{R}), $$
(3.15)

where

$$U^{*} = (p^{b}, u^{b}, \rho^{*}, a_{L}) \in \mathcal{W}_{1}(U_{L}).$$

Explicitly, the form (3.15) can be seen as follows. ∙ If \(U^{*} \in \mathcal {R}_{1}(U_{L})\), then the form (3.15) yields

$$U_{\text{Rie}}(x/t; U_{L}, U_{R}) = \left\{\begin{array}{llllllll} U_{L} & \text{if~} x/t < \lambda_{1}(U_{L}),\\ \text{Fan}_{1}(x/t; U_{L}, U^{*}) & \text{if~} \lambda_{1} \le x/t \le \lambda_{1}(U_{*}),\\ U^{*} & \text{if~} \lambda_{1}(U^{*}) < x/t < \lambda_{2}(U^{*}) = \lambda_{2}(U^{b}),\\ U^{b} & \text{if~} \lambda_{2}(U^{b}) < x/t < 0,\\ U & \text{if~} 0 < x/t < \sigma_{3}(U, U_{R}),\\ U_{R} & \text{if~} x/t > \sigma_{3}(U, U_{R}). \end{array}\right.$$

∙ If \(U^{*} \in \mathcal {S}_{1}(U_{L})\), then the form (3.15) yields

$$U_{\text{Rie}}(x/t; U_{L}, U_{R}) = \left\{\begin{array}{llllllll} U_{L} & \text{if~} x/t < \sigma_{1}(U_{L}, U^{*}),\\ U^{*} &\text{if~} \sigma_{1}(U_{L}, U^{*}) < x/t < \lambda_{2}(U^{*}) = \lambda_{2}(U^{b}),\\ U^{b} & \text{if~} \lambda_{2}(U^{b}) < x/t < 0,\\ U & \text{if~} 0 < x/t < \sigma_{3}(U, U_{R}),\\ U_{R} & \text{if~} x/t > \sigma_{3}(U, U_{R}). \end{array}\right.$$

Algorithm to Compute the State U and the Intersection Point \((p^{b}, u^{b}) = \mathcal {W}_{1}(U_{L})\)\( \cap {S_{3}^{B}}.W_{0}(U_{R}, a_{L})\). Assume that \(U_{R}^{@b}\) is located below \(\mathcal {W}_{1}(U_{L})\) and \({U_{R}^{0}}\) is located above \(\mathcal {W}_{1}(U_{L})\) in the (p, u)-plane.

Step 1

Set \(p_{1} = p_{R}^{@}\), \(p_{2} = {p_{R}^{0}}\);

Step 2

Compute \(p = \frac {p_{1} + p_{2}}{2}\); Compute \(U = (p,u, \rho , a_{R}) \in \mathcal {S}_{3}^{B}(U_{R})\); Compute Ub = (pb,ub,ρb,a L ) as in (3.14);

Step 3

  • If (pb,ub) belongs to \(\mathcal {W}_{1}(U_{L})\) in the (p, u)-plane, end;

  • If (pb,ub) is located above \(\mathcal {W}_{1}(U_{L})\) in the (p, u)-plane, set p2 = p and return Step 2;

  • If (pb,ub) is located below \(\mathcal {W}_{1}(U_{L})\) in the (p, u)-plane, set p1 = p and return Step 2.

3.4 Case D: U R G2− and a L > a R

3.4.1 Construction D1

The last part of the Riemann solution can be the 3-rarefaction wave

$$R_{3}(U_{R}^{-}, U_{R}),$$

where

$$U_{R}^{-} = (p_{R}^{-}, u_{R}^{-}, \rho_{R}^{-}, a_{R}) = \mathcal{W}_{3}^{B}(U_{R}) \cap \mathcal{C}^{-}.$$

The next part of the Riemann solution can be the stationary wave

$$W_{0}(U_{R}^{-s}, U_{R}^{-}),$$

where

$$\begin{array}{@{}rcl@{}} && U_{R}^{-s} = \left(p_{R}^{-s}, u_{R}^{-s}, \rho_{R}^{-s}, a_{L} \right),\\ && \rho_{R}^{-s}:= \varphi_{1}(U_{R}^{-}, a_{L}), \quad u_{R}^{-s} := \frac{a_{R} \rho_{R}^{-} u_{R}^{-}}{a_{L} \rho_{R}^{-s}}, \quad p_{R}^{-s} := \kappa(S_{R})(\rho_{R}^{-s})^{\gamma}. \end{array} $$

Take any state \(U = (p,u,\rho , a_{L}) \in \mathcal {W}_{3}^{B}(U_{R}^{-s})\) such that U is located below \(U_{R}^{-s @}\). Then, the next part of the Riemann solution can be a 3-wave

$$W_{3}(U, U_{R}^{-s}).$$

We call the set

$$\{ U \in \mathcal{W}_{3}^{B}(U_{R}^{-s}): \quad U \text{ is located below } U_{R}^{-s @} \}$$

as the backward composite wave curve \({R_{3}^{B}}.{W_{0}^{B}}.{W_{3}^{B}}(U_{R}, a_{L})\) (see Fig. 5). If the wave curve \(\mathcal {W}_{1}(U_{L})\) intersects \({R_{3}^{B}}.{W_{0}^{B}}.{W_{3}^{B}}(U_{R}, a_{L})\) at a point (p, u) in the (p, u) −plane, then the Riemann problem for (1.1) has a solution of the form

$$ W_{1}(U_{L},U^{*}) \oplus W_{2}(U^{*},U) \oplus W_{3}(U,U_{R}^{-s}) \oplus W_{0}(U_{R}^{-s},U_{R}^{-}) \oplus R_{3}(U_{R}^{-}, U_{R}), $$
(3.16)

where

$$U^{*} = (p, u, \rho^{*}, a_{L}) \in \mathcal{W}_{1}(U_{L}).$$

Explicitly, the form (3.16) can be seen as follows. ∙ If \(U \in \mathcal {R}_{3}^{B}(U_{R}^{-s})\) and \(U^{*} \in \mathcal {R}_{1}(U_{L})\), then the form (3.16) yields

$$U_{\text{Rie}}(x/t; U_{L}, U_{R}) = \left\{\begin{array}{llllllll} U_{L} & \text{if~} x/t < \lambda_{1}(U_{L}),\\ \text{Fan}_{1}(x/t; U_{L}, U^{*}) & \text{if~} \lambda_{1} \le x/t \le \lambda_{1}(U_{*}),\\ U^{*} & \text{if~} \lambda_{1}(U^{*}) < x/t < \lambda_{2}(U^{*}) = \lambda_{2}(U),\\ U & \text{if~} \lambda_{2}(U) < x/t < \lambda_{3}(U),\\ \text{Fan}_{3}(x/t; U, U_{R}^{-s})& \text{if~} \lambda_{3}(U) \le x/t \le \lambda_{3}(U_{R}^{-s}),\\ U_{R}^{-s} & \text{if~} \lambda_{3}(U_{R}^{-s}) < x/t < 0,\\ \text{Fan}_{3}(x/t; U_{R}^{-}, U_{R})& \text{if~} 0 = \lambda_{3}(U_{R}^{-}) \le x/t \le \lambda_{3}(U_{R}),\\ U_{R} & \text{if~} x/t >\lambda_{3}(U_{R}). \end{array}\right.$$

∙ If \(U \in \mathcal {R}_{3}^{B}(U_{R}^{-s})\) and \(U^{*} \in \mathcal {S}_{1}(U_{L})\), then the form (3.16) yields

$$U_{\text{Rie}}(x/t; U_{L}, U_{R}) = \left\{\begin{array}{llllllll} U_{L} & \text{if~} x/t < \sigma_{1}(U_{L}, U^{*}),\\ U^{*} & \text{if~} \sigma_{1}(U_{L}, U^{*}) < x/t < \lambda_{2}(U^{*}) = \lambda_{2}(U),\\ U & \text{if~} \lambda_{2}(U) < x/t < \lambda_{3}(U),\\ \text{Fan}_{3}(x/t; U, U_{R}^{-s}) & \text{if~} \lambda_{3}(U) \le x/t \le \lambda_{3}(U_{R}^{-s}),\\ U_{R}^{-s} & \text{if~} \lambda_{3}(U_{R}^{-s}) < x/t < 0,\\ \text{Fan}_{3}(x/t; U_{R}^{-}, U_{R}) & \text{if~} 0 = \lambda_{3}(U_{R}^{-}) \le x/t \le \lambda_{3}(U_{R}),\\ U_{R} & \text{if~} x/t > \lambda_{3}(U_{R}). \end{array}\right.$$

∙ If \(U \in \mathcal {S}_{3}^{B}(U_{R}^{-s})\) and \(U^{*} \in \mathcal {R}_{1}(U_{L})\), then the form (3.16) yields

$$U_{\text{Rie}}(x/t; U_{L}, U_{R}) = \left\{\begin{array}{llllllll} U_{L} & \text{if~} x/t < \lambda_{1}(U_{L}),\\ \text{Fan}_{1}(x/t; U_{L}, U^{*}) & \text{if~} \lambda_{1} \le x/t \le \lambda_{1}(U_{*}),\\ U^{*} & \text{if~} \lambda_{1}(U^{*}) < x/t < \lambda_{2}(U^{*}) = \lambda_{2}(U),\\ U & \text{if~} \lambda_{2}(U) < x/t < \sigma_{3}(U, U_{R}^{-s}),\\ U_{R}^{-s} & \text{if~} \sigma_{3}(U, U_{R}^{-s}) < x/t < 0,\\ \text{Fan}_{3}(x/t; U_{R}^{-}, U_{R}) & \text{if~} 0 = \lambda_{3}(U_{R}^{-}) \le x/t \le \lambda_{3}(U_{R}),\\ U_{R} & \text{if~} x/t > \lambda_{3}(U_{R}). \end{array}\right.$$

∙ If \(U \in \mathcal {S}_{3}^{B}(U_{R}^{-s})\) and \(U^{*} \in \mathcal {S}_{1}(U_{L})\), then the form (3.16) yields

$$U_{\text{Rie}}(x/t; U_{L}, U_{R}) = \left\{\begin{array}{llllllll} U_{L} & \text{if~} x/t < \sigma_{1}(U_{L}, U^{*}),\\ U^{*} & \text{if~} \sigma_{1}(U_{L}, U^{*}) < x/t < \lambda_{2}(U^{*}) = \lambda_{2}(U),\\ U& \text{if~} \lambda_{2}(U) < x/t < \sigma_{3}(U, U_{R}^{-s}),\\ U_{R}^{-s} & \text{if~} \sigma_{3}(U, U_{R}^{-s}) < x/t < 0,\\ \text{Fan}_{3}(x/t; U_{R}^{-}, U_{R}) & \text{if~} 0 = \lambda_{3}(U_{R}^{-}) \le x/t \le \lambda_{3}(U_{R}),\\ U_{R} & \text{if~} x/t > \lambda_{3}(U_{R}). \end{array}\right.$$
Fig. 5
figure 5

The backward composite wave curves: R3B.W0B.W3B(U R ,a L ), R3B.W0B.S3B.W0B(U R ,a L ), and W3B.W0B(U R ,a L ) in the (p, u)-plane

Algorithm to Compute the Intersection Point \((p, u) = \mathcal {W}_{1}(U_{L}) \cap {R_{3}^{B}}.W_{0}.{W_{3}^{B}}\)(U R ,a L ). Similar to case C, since \({R_{3}^{B}}.{W_{0}^{B}}.{W_{3}^{B}}(U_{R}, a_{L}) \equiv {W_{0}^{B}}.{W_{3}^{B}}(U_{R}^{-},\)a L ).

3.4.2 Construction D2

The last part of the Riemann solution can be the 3-rarefaction wave

$$R_{3}(U_{R}^{-}, U_{R}),$$

where

$$U_{R}^{-} = (p_{R}^{-}, u_{R}^{-}, \rho_{R}^{-}, a_{R}) = \mathcal{W}_{3}^{B}(U_{R}) \cap \mathcal{C}^{-}.$$

Fix a cross section a M between a L and a R . The next backward part of the Riemann solution can be a stationary wave

$$W_{0}(U_{R}^{-s}, U_{R}^{-}),$$

where

$$\begin{array}{@{}rcl@{}} && U_{R}^{-s} = \left(p_{R}^{-s}, u_{R}^{-s}, \rho_{R}^{-s}, a_{M} \right),\\ && \rho_{R}^{-s}:= \varphi_{1}(U_{R}^{-}, a_{M}), \quad u_{R}^{-s} := \frac{a_{R} \rho_{R}^{-} u_{R}^{-}}{a_{M} \rho_{R}^{-s}}, \quad p_{R}^{-s} := \kappa(S_{R})(\rho_{R}^{-s})^{\gamma}. \end{array} $$

The next backward part of the Riemann solution can be a 3-shock wave with zero speed

$$S_{3}(U_{R}^{-s @}, U_{R}^{-s}),$$

(see Lemma 2.1). The next backward part of the Riemann solution can be again a stationary wave

$$W_{0}(U_{R}^{-s @ b}, U_{R}^{-s @}),$$

where

$$\begin{array}{@{}rcl@{}} && U_{R}^{-s @ b} = \left(p, u, \rho, a_{L} \right),\\ && \rho:= \varphi_{2}(U_{R}^{-s@}, a_{L}), \quad u := \frac{a_{M} \rho_{R}^{-s@} u_{R}^{-s@}}{a_{L} \rho}, \quad p := \kappa(S_{R}^{-s@})\rho^{\gamma}. \end{array} $$

We call the set

$$\{ U_{R}^{-s@b}: \quad a_{M} \text{ varies between } a_{L} \text{ and } a_{R} \}$$

as the backward composite wave curve \({R_{3}^{B}}.{W_{0}^{B}}.{S_{3}^{B}}.{W_{0}^{B}}(U_{R}, a_{L})\). It is not difficult to check that \(U_{R}^{-s@}\) and \(U_{R}^{-b}\) are two end-points of \({R_{3}^{B}}.{W_{0}^{B}}.{S_{3}^{B}}.{W_{0}^{B}}(U_{R}, a_{L})\) (see Fig. 5). If the wave curve \(\mathcal {W}_{1}(U_{L})\) intersects \({R_{3}^{B}}.{W_{0}^{B}}.{S_{3}^{B}}.{W_{0}^{B}}(U_{R}, a_{L})\) at a point (p, u) in the (p, u)-plane, then the Riemann problem for (1.1) has a solution of the form

$$\begin{array}{@{}rcl@{}} &&W_{1}(U_{L},U^{*}) \oplus W_{2}(U^{*}, U_{R}^{-s@b}) \oplus W_{0}(U_{R}^{-s@b},U_{R}^{-s@})\\ & \oplus& S_{3}(U_{R}^{-s@},U_{R}^{-s}) \oplus W_{0}(U_{R}^{-s},U_{R}^{-}) \oplus R_{3}(U_{R}^{-}, U_{R}), \end{array} $$
(3.17)

where

$$U^{*} = (p, u, \rho^{*}, a_{L}) \in \mathcal{W}_{1}(U_{L}).$$

Explicitly, the form (3.17) can be seen as follows. ∙ If \(U^{*} \in \mathcal {R}_{1}(U_{L})\), then the form (3.17) yields

$$U_{\text{Rie}}(x/t; U_{L}, U_{R}) = \left\{\begin{array}{llllllll} U_{L} & \text{if~} x/t < \lambda_{1}(U_{L}),\\ \text{Fan}_{1}(x/t; U_{L}, U^{*}) & \text{if~} \lambda_{1} \le x/t \le \lambda_{1}(U_{*}),\\ U^{*} & \text{if~} \lambda_{1}(U^{*}) < x/t < \lambda_{2}(U^{*}) = \lambda_{2}(U_{R}^{-s@b}),\\ U_{R}^{-s @ b} & \text{if~} \lambda_{2}(U_{R}^{-s@b}) < x/t < 0,\\ \text{Fan}_{3}(x/t; U_{R}^{-}, U_{R}) & \text{if~} 0 = \lambda_{3}(U_{R}^{-}) \le x/t \le \lambda_{3}(U_{R}),\\ U_{R} & \text{if~} x/t >\lambda_{3}(U_{R}). \end{array}\right.$$

∙ If \(U^{*} \in \mathcal {S}_{1}(U_{L})\), then the form (3.17) yields

$$U_{\text{Rie}}(x/t; U_{L}, U_{R}) \,=\, \left\{\!\begin{array}{llllllll} U_{L} & \text{if~} x/t < \sigma_{1}(U_{L}, U^{*}),\\ U^{*} & \text{if~} \sigma_{1}(U_{L}, U^{*}) < x/t \!< \lambda_{2}(U^{*}) \,=\, \lambda_{2}(U_{R}^{-s@b}),\\ U_{R}^{-s @ b} & \text{if~} \lambda_{2}(U_{R}^{-s@b}) < x/t < 0,\\ \text{Fan}_{3}(x/t; U_{R}^{-}, U_{R}) & \text{if~} 0 = \lambda_{3}(U_{R}^{-}) \le x/t \le \lambda_{3}(U_{R}),\\ U_{R} & \text{if~} x/t > \lambda_{3}(U_{R}). \end{array}\right.$$

Algorithm to Compute the Intersection Point \((p, u) = \mathcal {W}_{1}(U_{L}) \cap {R_{3}^{B}}.{W_{0}^{B}}.{S_{3}^{B}}.{W_{0}^{B}}\)(U R ,a L ). Similar to case C, since \({R_{3}^{B}}.{W_{0}^{B}}.{S_{3}^{B}}.{W_{0}^{B}}(U_{R}, a_{L}) \equiv {W_{0}^{B}}.{S_{3}^{B}}.{W_{0}^{B}}(U_{R}^{-}, a_{L}).\)

3.4.3 Construction D3

Take a state \(U = (p,u,\rho , a_{R}) \in \mathcal {W}_{3}^{B}(U_{R})\) such that \(U \in G_{2}^{-}\), i.e., U is located between \(U_{R}^{-}\) and \({U_{R}^{0}}\), where

$$\begin{array}{@{}rcl@{}} && U_{R}^{-} = (p_{R}^{-}, u_{R}^{-}, \rho_{R}^{-}, a_{R}) = \mathcal{W}_{3}^{B}(U_{R}) \cap \mathcal{C}^{-},\\ && {U_{R}^{0}} = ({p_{R}^{0}}, {u_{R}^{0}}, {\rho_{R}^{0}}, a_{R}) = \mathcal{W}_{3}^{B}(U_{R}) \cap \mathcal{C}^{0}. \end{array} $$

Then, the last part of the Riemann solution can be a 3-wave

$$W_{3}(U, U_{R}).$$

The next backward part of the Riemann solution can be a stationary wave

$$W_{0}(U^{b}, U),$$

where

$$\begin{array}{@{}rcl@{}} && U^{b} = \left(p^{b}, u^{b}, \rho^{b}, a_{L} \right),\\ && \rho^{b}:= \varphi_{2}(U, a_{L}), \quad u^{b} := \frac{a_{R} \rho u}{a_{L} \rho^{b}}, \quad p^{b} := \kappa(S)(\rho^{b})^{\gamma}. \end{array} $$

We call the set

$$ \{ U^{b} : \quad U \text{ is located between } U_{R}^{-} \text{ and } {U_{R}^{0}} \text{ on } \mathcal{W}_{3}^{B}(U_{R})\} $$

as the backward composite wave curve \({W_{3}^{B}}.{W_{0}^{B}}(U_{R}, a_{L})\). Obviously, \(U_{R}^{-b}\) and \({U_{R}^{0}}\) are two end-points of \({W_{3}^{B}}.{W_{0}^{B}}(U_{R}, a_{L})\) (see Fig. 5). If the wave curve \(\mathcal {W}_{1}(U_{L})\) intersects \({W_{3}^{B}}.W_{0}(U_{R}, a_{L})\) at a point (pb,ub) in the (p, u)-plane, then the Riemann problem for (1.1) has a solution of the form

$$ W_{1}(U_{L},U^{*}) \oplus W_{2}(U^{*},U^{b}) \oplus W_{0}(U^{b},U) \oplus W_{3}(U,U_{R}), $$
(3.18)

where

$$U^{*} = (p^{b}, u^{b}, \rho^{*}, a_{L}) \in \mathcal{W}_{1}(U_{L}). $$

Explicitly, the form (3.18) can be seen as follows. ∙ If \(U \in \mathcal {R}_{3}^{B}(U_{R})\) and \(U^{*} \in \mathcal {R}_{1}(U_{L})\), then the form (3.18) yields

$$U_{\text{Rie}}(x/t; U_{L}, U_{R}) = \left\{\begin{array}{llllllll} U_{L} & \text{if~} x/t < \lambda_{1}(U_{L}),\\ \text{Fan}_{1}(x/t; U_{L}, U^{*}) & \text{if~} \lambda_{1} \le x/t \le \lambda_{1}(U_{*}),\\ U^{*} & \text{if~} \lambda_{1}(U^{*}) < x/t < \lambda_{2}(U^{*}) = \lambda_{2}(U^{b}),\\ U^{b} & \text{if~} \lambda_{2}(U^{b}) < x/t < 0,\\ U & \text{if~} 0 < x/t < \lambda_{3}(U),\\ \text{Fan}_{3}(x/t; U, U_{R}) & \text{if~} \lambda_{3}(U) \le x/t \le \lambda_{3}(U_{R}),\\ U_{R} & \text{if~} x/t >\lambda_{3}(U_{R}). \end{array}\right. $$

∙ If \(U \in \mathcal {R}_{3}^{B}(U_{R})\) and \(U^{*} \in \mathcal {S}_{1}(U_{L})\), then the form (3.18) yields

$$U_{\text{Rie}}(x/t; U_{L}, U_{R}) = \left\{\begin{array}{llllllll} U_{L} & \text{if~} x/t < \sigma_{1}(U_{L}, U^{*}),\\ U^{*} & \text{if~} \sigma_{1}(U_{L}, U^{*}) < x/t < \lambda_{2}(U^{*}) = \lambda_{2}(U^{b}),\\ U^{b} & \text{if~} \lambda_{2}(U^{b}) < x/t < 0,\\ U & \text{if~} 0 < x/t < \lambda_{3}(U),\\ \text{Fan}_{3}(x/t; U, U_{R}) & \text{if~} \lambda_{3}(U) \le x/t \le \lambda_{3}(U_{R}),\\ U_{R} & \text{if~} x/t > \lambda_{3}(U_{R}). \end{array}\right. $$

∙ If \(U \in \mathcal {S}_{3}^{B}(U_{R})\) and \(U^{*} \in \mathcal {R}_{1}(U_{L})\), then the form (3.18) yields

$$U_{\text{Rie}}(x/t; U_{L}, U_{R}) = \left\{\begin{array}{llllllll} U_{L} & \text{if~} x/t < \lambda_{1}(U_{L}),\\ \text{Fan}_{1}(x/t; U_{L}, U^{*}) & \text{if~} \lambda_{1} \le x/t \le \lambda_{1}(U_{*}),\\ U^{*} & \text{if~} \lambda_{1}(U^{*}) < x/t < \lambda_{2}(U^{*}) = \lambda_{2}(U^{b}),\\ U^{b} & \text{if~} \lambda_{2}(U^{b}) < x/t < 0,\\ U & \text{if~} 0 < x/t < \sigma_{3}(U, U_{R}),\\ U_{R} & \text{if~} x/t > \sigma_{3}(U, U_{R}). \end{array}\right.$$

∙ If \(U \in \mathcal {S}_{3}^{B}(U_{R})\) and \(U^{*} \in \mathcal {S}_{1}(U_{L})\), then the form (3.18) yields

$$U_{\text{Rie}}(x/t; U_{L}, U_{R}) = \left\{\begin{array}{llllllll} U_{L} & \text{if~} x/t < \sigma_{1}(U_{L}, U^{*}),\\ U^{*} & \text{if~} \sigma_{1}(U_{L}, U^{*}) < x/t < \lambda_{2}(U^{*}) = \lambda_{2}(U^{b}),\\ U^{b} & \text{if~} \lambda_{2}(U^{b}) < x/t < 0,\\ U & \text{if~} 0 < x/t < \sigma_{3}(U, U_{R}),\\ U_{R} & \text{if~} x/t > \sigma_{3}(U, U_{R}). \end{array}\right.$$

Algorithm to Compute the State U and the Intersection Point \((p^{b}, u^{b}) = \mathcal {W}_{1}(U_{L})\)\( \cap {W_{3}^{B}}.W_{0}(U_{R}, a_{L})\). Similar to Construction C3, but the assignment \(p_{1} = p_{R}^{@}\) in Step 1 is replaced by \(p_{1} = p_{R}^{-}\).

4 Building a van Leer-Type Numerical Scheme

Relying on the constructions of Riemann solutions in the previous section, we are now in a position to build up a van Leer-type scheme to compute the approximate solution of the Cauchy problem for (1.1). Let us set

$$U: = \left(\begin{array}{llllllll} &\rho\\ &\rho u\\ & \rho e\\ & a \end{array} \right), \quad F(U): = \left(\begin{array}{llllllll} &\rho u\\ &\rho u^{2} + p\\ & u(\rho e + p)\\ & 0 \end{array} \right), \quad H(U) := -\frac{1}{a}\left(\begin{array}{llllllll} &\rho u\\ &\rho u^{2} \\ & u(\rho e + p)\\ & 0 \end{array} \right). $$

Then, the system (1.1) can be written in the compact form

$$ \partial_{t} U + \partial_{x} F(U) = H(U)\partial_{x} a, \quad t>0, \quad x \in \mathbb{R}. $$
(4.1)

Accordingly, given the initial condition

$$U(x,0) = U_{0}(x), \quad x \in \mathbb{R}, $$

then, the discrete initial values \(({U_{j}^{0}})_{j \in \mathbb {Z}}\) are given by

$${U_{j}^{0}} := \frac{1}{\Delta x} {\int}_{x_{j-1/2}}^{x_{j + 1/2}} U_{0}(x) dx. $$

Suppose \(U^{n} = ({U^{n}_{j}})_{j \in \mathbb {Z}}\) at the time t n is known. Recently, the Godunov-type scheme has been built as follows

$$ U_{j}^{n + 1} = {U_{j}^{n}} - \frac{\Delta t}{\Delta x} \left(F(U_{\text{Rie}}(0-; {U_{j}^{n}}, U_{j + 1}^{n})) - F(U_{\text{Rie}}(0+; U_{j-1}^{n}, {U_{j}^{n}})) \right), $$
(4.2)

where \(U_{\text {Rie}} (\frac {x}{t}; U_{L}, U_{R})\) denotes the exact solution of the Riemann problem for (1.1) corresponding to the Riemann data (U L ,U R ). Now, in this paper, we build a van Leer-type scheme to compute the approximation \(U^{n + 1} = (U_{j}^{n + 1})_{j \in \mathbb {Z}}\) of U(⋅,tn+ 1) as follows: ∙ (Reconstruction Step) From the sequence Un, we construct a piecewise linear function Upl(x) defined by

$$ U_{\text{pl}}(x) = {U_{j}^{n}} + \frac{{S_{j}^{n}}}{\Delta x} (x - x_{j}), \quad x_{j-1/2} < x < x_{j + 1/2}, \quad j \in \mathbb{Z}, $$
(4.3)

where the slopes \({S_{j}^{n}} = (s_{j,1}^{n}, s_{j,2}^{n}, s_{j,3}^{n}, s_{j,4}^{n})\) are defined by

$$\begin{array}{@{}rcl@{}} && {S_{j}^{n}} = (U_{j + 1}^{n} - {U_{j}^{n}}) {\Phi}({\theta_{j}^{n}} ),\\ && {\theta_{j}^{n}} = \frac{{U_{j}^{n}} - U_{j-1}^{n}}{U_{j + 1}^{n} - {U_{j}^{n}}},\\ && {\Phi}(\theta) = \frac{|\theta| + \theta}{1 + |\theta|}, \quad \textit{the van Leer's limiter function}. \end{array} $$
(4.4)

∙ (Evolution Step) We solve the Cauchy problem for (4.1) with the initial condition

$$ U(x,0) = U_{\text{pl}}(x), \quad x \in \mathbb{R}, $$
(4.5)

to find the solution U(⋅,Δt). ∙ (Cell-averaging Step) We project (in the sense of \(\mathbb {L}^{2}\)) the solution U(⋅,Δt) onto the piecewise constant functions, i.e., we set

$$ U_{j}^{n + 1} := \frac{1}{\Delta x} {\int}_{x_{j-1/2}}^{x_{j + 1/2}} U(x, {\Delta} t) dx. $$
(4.6)

To make sure that the waves of local Riemann problems centered at xj− 1/2 and xj+ 1/2 do not interact, we use the following C.F.L. condition

$$ \frac{\Delta t}{\Delta x} \max \{ |\lambda_{k}({U_{j}^{n}})|:k = 1,2,3 \} \le \frac{1}{2}. $$
(4.7)

In order to derive a more explicit form of the scheme, we integrate (4.1) over the rectangle (xj− 1/2,xj+ 1/2) × (0,Δt). We obtain

$$\begin{array}{@{}rcl@{}} && {\int}_{x_{j-1/2}}^{x_{j + 1/2}} (U(x, {\Delta} t) \,-\, U(x,0))dx \,+\, {\int}_{0}^{\Delta t}\!\left(F(U(x_{j + 1/2} - 0,t)) \,-\, F(U(x_{j-1/2} + 0, t)) \right)dt \\ && = {\int}_{x_{j-1/2}}^{x_{j + 1/2}} {\int}_{0}^{\Delta t} H(U(x,t)) \partial_{x} a dx dt . \end{array} $$

Using (4.3), (4.5), and (4.6), we get

$$\begin{array}{@{}rcl@{}} && {\Delta} x (U_{j}^{n + 1} - {U_{j}^{n}}) + {\int}_{0}^{\Delta t}\left(F(U(x_{j + 1/2} - 0,t)) - F(U(x_{j-1/2} + 0, t)) \right)dt\\ && = {\int}_{x_{j-1/2}}^{x_{j + 1/2}} {\int}_{0}^{\Delta t} H(U(x,t)) \partial_{x} a dx dt. \end{array} $$
(4.8)

Using the midpoint rule, we write

$$ \frac{1}{\Delta t} {\int}_{0}^{\Delta t} F(U(x_{j + 1/2} \pm 0,t))dt = F(U(x_{j + 1/2} \pm 0,{\Delta} t / 2)) + O({\Delta} t^{2}). $$
(4.9)

For approximating F(U(xj+ 1/2 ± 0,Δt/2)), we use a predictor-corrector scheme. Following an idea of Hancock (see [17], for example), we define values \(U_{j + 1/2, \pm }^{n + 1/2}\) at time Δt/2 by

$$\begin{array}{@{}rcl@{}} U_{j + 1/2, -}^{n + 1/2} &=& U_{j + 1/2, -}^{n} - \frac{\Delta t}{2 {\Delta} x}\left(F(U_{j + 1/2, -}^{n}) - F(U_{j-1/2, +}^{n}) \right) \\ &&+ \frac{\Delta t}{2 {\Delta} x} H(U_{j + 1/2,-}^{n}) (a_{j + 1}^{n} - {a_{j}^{n}}) {\Phi} \left(\frac{{a_{j}^{n}} - a_{j-1}^{n}}{a_{j + 1}^{n} - {a_{j}^{n}}} \right),\\ U_{j-1/2, +}^{n + 1/2} & =& U_{j-1/2, +}^{n} - \frac{\Delta t}{2 {\Delta} x}\left(F(U_{j + 1/2, -}^{n}) - F(U_{j-1/2, +}^{n}) \right)\\ && + \frac{\Delta t}{2 {\Delta} x} H(U_{j-1/2,+}^{n}) (a_{j + 1}^{n} - {a_{j}^{n}}) {\Phi} \left(\frac{{a_{j}^{n}} - a_{j-1}^{n}}{a_{j + 1}^{n} - {a_{j}^{n}}} \right), \end{array} $$
(4.10)

where

$$\begin{array}{@{}rcl@{}} && U_{j + 1/2, -}^{n} = U_{pl}(x_{j + 1/2} - 0) = {U_{j}^{n}} + \frac{1}{2} {S_{j}^{n}},\\ && U_{j-1/2, +}^{n} = U_{pl}(x_{j-1/2} + 0) = {U_{j}^{n}} - \frac{1}{2} {S_{j}^{n}}. \end{array} $$
(4.11)

Then, we solve the Riemann problem of (4.1) at the points xj+ 1/2, \(j \in \mathbb {Z}\) with piecewise constant initial data \(U_{j + 1/2, \pm }^{n + 1/2}\), whose solutions are noted as usual

$$U_{\text{Rie}} \left(\frac{x-x_{j + 1/2}}{t}; U_{j + 1/2, -}^{n + 1/2}, U_{j + 1/2, +}^{n + 1/2} \right).$$

The values U(xj+ 1/2 ± 0,Δt/2) in (4.9) are substituted by

$$U_{\text{Rie}}\left(0 \pm; U_{j + 1/2, -}^{n + 1/2}, U_{j + 1/2, +}^{n + 1/2} \right).$$

Next, we approximate the right-hand side of (4.8) as follows.

$$\begin{array}{@{}rcl@{}} && {\int}_{x_{j-1/2}}^{x_{j + 1/2}} {\int}_{0}^{\Delta t} H(U(x,t)) \partial_{x} a dx dt \\ & \approx& {\Delta} x {\Delta} t H\left(U(x_{j}, {\Delta} t / 2) \right) \partial_{x} a (x_{j}, {\Delta} t / 2)\\ & \approx& {\Delta} x {\Delta} t H(U_{j}^{n + 1/2} ) \frac{a(x_{j + 1/2} - 0, {\Delta} t / 2) - a(x_{j-1/2} + 0, {\Delta} t / 2)}{\Delta x} \\ & \approx& {\Delta} t \frac{1}{2} \left(H\left(U_{j + 1/2,+}^{n + 1/2}\right) + H\left(U_{j-1/2,-}^{n + 1/2} \right) \right) \left(a_{\text{Rie}} \left(0-; U_{j + 1/2,-}^{n + 1/2}, U_{j + 1/2,+}^{n + 1/2} \right) \right.\\ &&\left.- a_{\text{Rie}} \left(0+; U_{j-1/2,-}^{n + 1/2}, U_{j-1/2,+}^{n + 1/2} \right) \right). \end{array} $$

Thus, the scheme (4.8) becomes

$$\begin{array}{@{}rcl@{}} U_{j}^{n + 1} &=& {U_{j}^{n}} - \frac{\Delta t}{\Delta x} \left(F(U_{\text{Rie}}(0-, U_{j + 1/2, -}^{n + 1/2}, U_{j + 1/2, +}^{n + 1/2} )) - F(U_{\text{Rie}}(0+, U_{j-1/2, -}^{n + 1/2}, U_{j-1/2, +}^{n + 1/2} )) \right)\\ && + \frac{\Delta t}{2 {\Delta} x} \left(H(U_{j + 1/2,+}^{n + 1/2}) + H(U_{j-1/2,-}^{n + 1/2} ) \right) \left(a_{\text{Rie}} \left(0-; U_{j + 1/2,-}^{n + 1/2}, U_{j + 1/2,+}^{n + 1/2} \right)\right.\\ &&\left.- a_{\text{Rie}} \left(0+; U_{j-1/2,-}^{n + 1/2}, U_{j-1/2,+}^{n + 1/2} \right) \right). \end{array} $$
(4.12)

The updated values \(U_{j\pm 1/2, \mp }^{n + 1/2} \) can be interpreted as follows:

$$\begin{array}{@{}rcl@{}} U_{j + 1/2, -}^{n + 1/2} & \approx& U(x_{j + 1/2} - 0,{\Delta} t / 2)\\ &\approx& U(x_{j + 1/2} - 0, 0) + \frac{\Delta t}{2} \frac{\partial U}{\partial t} (x_{j + 1/2} - 0, 0) \\ & \approx& U_{j + 1/2,-}^{n} + \frac{\Delta t}{2} \left(- \frac{\partial F(U)}{\partial x} (x_{j + 1/2} - 0, 0) + H(U)\frac{\partial a}{\partial x} (x_{j + 1/2} - 0, 0) \right) \\ &\approx& U_{j + 1/2,-}^{n} - \frac{\Delta t}{2} \frac{\partial F(U)}{\partial x} (x_{j + 1/2} - 0, 0)\\ && + \frac{\Delta t}{2 {\Delta} x} H(U_{j + 1/2,-}^{n}) (a_{j + 1}^{n} - {a_{j}^{n}}) {\Phi} \left(\frac{{a_{j}^{n}} - a_{j-1}^{n}}{a_{j + 1}^{n} - {a_{j}^{n}}} \right)\\ &\approx& U_{j + 1/2,-}^{n} - \frac{\Delta t}{2 {\Delta} x} \left(F(U_{j + 1/2, -}^{n}) - F(U_{j-1/2, +}^{n}) \right)\\ && + \frac{\Delta t}{2 {\Delta} x} H(U_{j + 1/2,-}^{n}) (a_{j + 1}^{n} - {a_{j}^{n}}) {\Phi} \left(\frac{{a_{j}^{n}} - a_{j-1}^{n}}{a_{j + 1}^{n} - {a_{j}^{n}}} \right), \end{array} $$

since

$$\partial_{x} a (x, 0) = \frac{1}{\Delta x} (a_{j + 1}^{n} - {a_{j}^{n}}) {\Phi} \left(\frac{{a_{j}^{n}} - a_{j-1}^{n}}{a_{j + 1}^{n} - {a_{j}^{n}}} \right), \quad x_{j-1/2} < x < x_{j + 1/2}.$$

A similar argument can be made for \(U_{j-1/2, +}^{n + 1/2}\).

To complete the van Leer-type scheme (4.12), we will specify the values URie(0±;U L ,U R ) as follows.

Construction

URie(0−;U L ,U R )

URie(0+;U L ,U R )

A1 (3.1)

U L

\({U_{L}^{s}}\)

A2 (3.4)

U L

\(U_{L}^{s \# b}\)

A3 (3.6)

U

U b

B1 (3.7)

\( U_{L}^{+} \)

\(U_{L}^{+s} \)

B2 (3.8)

\( U_{L}^{+} \)

\(U_{L}^{+ s \# b}\)

B3 (3.9)

U

U b

C1 (3.10)

\( {U_{R}^{s}} \)

U R

C2 (3.13)

\( U_{R}^{s@b}\)

U R

C3 (3.15)

U b

U

D1 (3.16)

\( U_{R}^{-s} \)

\(U_{R}^{-}\)

D2 (3.17)

\(U_{R}^{-s@b} \)

\( U_{R}^{-}\)

D3 (3.18)

U b

U

5 Numerical Experiments

This section is devoted to numerical tests by using MATLAB. For each test, by taking γ = 1.4 and CFL = 0.5, we plot the exact solution and its approximations corresponding to the Godunov-type scheme (4.2) and the van Leer-type scheme (4.12) at t = 0.02.

5.1 Approximations of Smooth Stationary Solutions

Test 1

Consider the Cauchy problem for system (1.1) with the initial data given as follows:

$$ U(x, 0) = \left(p(x), u(x), \rho(x), a(x) \right), \quad x \in \mathbb{R}, $$
(5.1)

where

$$\begin{array}{@{}rcl@{}} && a(x) = 2 + \arctan x, \\ && a(x) \rho(x) u(x) = a(0) \rho(0) u(0),\\ && \frac{(u(x))^{2}}{2} + h(\rho(x)) = \frac{(u(0))^{2}}{2} + h(\rho(0)),\\ && \frac{p(x)}{(\rho(x))^{\gamma}} = \frac{p(0)}{(\rho(0))^{\gamma}},\\ && \left(p(0), u(0), \rho(0) \right) = (3, 10, 0.2 ) \in G_{1}^{+},\\ && \left(p(x), u(x), \rho(x) \right) \in G_{1}^{+}. \end{array} $$

The exact solution in this test is just the smooth stationary wave

$$U(x, t) = \left(p(x), u(x), \rho(x), a(x) \right), \quad x \in \mathbb{R}, \quad t \ge 0.$$

Figure 6 displays exact solution and its approximations for the mesh sizes h = 1/20, h = 1/80 by the van Leer-type scheme (4.12). The errors and orders for different mesh sizes h = 1/20, h = 1/40, h = 1/80, h = 1/160, h = 1/320, h = 1/640, and h = 1/1280 are reported in Table 1. The order of accuracy in this test is close to 2.

Fig. 6
figure 6

Exact solution and approximate solutions for the mesh sizes h = 1/20 and h = 1/80 by the van Leer-type scheme in test 1

Table 1 Errors and orders of accuracy for test 1

5.2 Test for Simple Waves

Test 2

Consider the Riemann problem for system (1.1) with the initial data given as follows

$$ U(x, 0) = \left\{\begin{array}{llllllll} U_{L} = (p_{L}, u_{L}, \rho_{L}, a_{L}) = (7.0, 2.0, 0.5, 3.0) & \text{if~} x < 0 ,\\ U_{R} = (p_{R}, u_{R}, \rho_{R}, a_{R}) = (7.0, 2.0, 0.4, 3.0) & \text{if~} x > 0. \end{array}\right. $$
(5.2)

Since p L = p R , u L = u R , and a L = a R , the exact solution for this test is just the 2-contact wave

$$U_{\text{Rie}}(x, t; U_{L}, U_{R}) = \left\{\begin{array}{llllllll} U_{L} & \text{if~} x < 2t ,\\ U_{R} & \text{if~} x > 2t, \end{array}\right.$$

see the left top of Fig. 7. Figure 7 displays exact solution and its approximations for the mesh size h = 1/640 corresponding to the Godunov-type scheme and the van Leer-type scheme. The errors and orders of accuracy of this test are reported in Table 2. We also evaluate from Table 2 that the L1-order of the van Leer-type scheme is approximately equal to 0.89, while the “second-order” van Leer scheme for usual gas dynamics equations has order of accuracy approximately equal to 2/3 for contact wave. Moreover, Fig. 7 and Table 2 show that the accuracy and the order of accuracy of the van Leer-type scheme are better than the Godunov-type scheme.

Fig. 7
figure 7

Exact solution and approximate solutions for the mesh size h = 1/640 corresponding to the Godunov-type scheme and the van Leer-type scheme in test 2

Table 2 Errors and orders of accuracy for test 2

Test 3

Consider the Riemann problem for system (1.1) with the initial data

$$ U(x, 0) = \left\{\begin{array}{llllllll} U_{L} = (p_{L}, u_{L}, \rho_{L}, a_{L}) = (10.0, -3.787322, 0.234483, 2.0) & \text{if~} x < 0 ,\\ U_{R} = (p_{R}, u_{R}, \rho_{R}, a_{R}) = (8.0, -5.0, 0.2, 2.0) & \text{if~} x > 0. \end{array}\right. $$
(5.3)

We can check that \(U_{L} \in \mathcal {S}_{3}^{B}(U_{R})\), so the exact solution for this test is just the 3-shock wave

$$U_{\text{Rie}}(x, t; U_{L}, U_{R}) = \left\{\begin{array}{llllllll} U_{L} & \text{if~} x < \sigma_{3}(U_{L}, U_{R}) t ,\\ U_{R} & \text{if~} x > \sigma_{3}(U_{L}, U_{R}) t \end{array}\right.$$

(see the left top of Fig. 8). Figure 8 displays exact solution and its approximations for the mesh size h = 1/640 corresponding to the Godunov-type scheme and the van Leer-type scheme. The errors and orders of accuracy of this test are reported in Table 3. We can evaluate from Table 3 that the order is approximately equal to 1.07, while the “second-order” van Leer scheme for usual gas dynamics equations has order of accuracy approximately equal to 1.0 for shock wave. Moreover, we also see from Table 3 that the accuracy and the order of accuracy of the van Leer-type scheme are better than those of the Godunov-type scheme.

Fig. 8
figure 8

Exact solution and approximate solutions for the mesh size h = 1/640 corresponding to the Godunov-type scheme and the van Leer-type scheme in test 3

Table 3 Errors and orders of accuracy for test 3

Test 4

Consider the Riemann problem for system (1.1) with the initial data given as follows

$$ U(x, 0) = \left\{\begin{array}{llllllll} U_{L} = (p_{L}, u_{L}, \rho_{L}, a_{L}) = (10.0, 7.0, 0.4, 1.0) & \text{if~} x < 0 ,\\ U_{R} = (p_{R}, u_{R}, \rho_{R}, a_{R}) = (8.0, 7.928082, 0.341066, 1.0) & \text{if~} x > 0. \end{array}\right. $$
(5.4)

It is not difficult to check that \(U_{R} \in \mathcal {R}_{1}(U_{L})\); thus, the exact solution for this test is just the 1-rarefaction wave

$$U_{\text{Rie}}(x, t; U_{L}, U_{R}) = \left\{\begin{array}{llllllll} U_{L} & \text{if~} x < \lambda_{1}(U_{L}) t ,\\ \text{Fan}_{1}(x/t; U_{L}, U_{R}) & \text{if~} \lambda_{1}(U_{L}) t \le x \le \lambda_{1}(U_{R}) t,\\ U_{R} & \text{if~} x > \lambda_{1}(U_{R}) t \end{array}\right.$$

(see the left top of Fig. 9). Figure 9 displays exact solution and its approximations for the mesh size h = 1/640 corresponding to the Godunov-type scheme and the van Leer-type scheme. The errors and orders of accuracy of this test are reported in Table 4. We can evaluate from Table 4 that the order is approximately equal to 1.00. This is consistent with the fact that the “second-order” van Leer scheme for usual gas dynamics equations has order of accuracy approximately equal to 2/3 for contact wave, and the order of accuracy is approximately equal to 1.0 for shock wave.

Fig. 9
figure 9

Exact solution and approximate solutions for the mesh size h = 1/640 corresponding to the Godunov-type scheme and the van Leer-type scheme in test 4

Table 4 Errors and orders of accuracy for test 4

5.3 Tests for the Cases When Initial Data Belongs to Same Supersonic or Subsonic Region

Test 5

Let the Riemann data be given by

$$\begin{array}{@{}rcl@{}} & U_{L} = (p_{L}, u_{L}, \rho_{L}, a_{L}) = (20.0, -3.0, 0.8, 2.5) \in G_{2}^{-},\\ & U_{R} = (p_{R}, u_{R}, \rho_{R}, a_{R}) = (25.0, -1.0, 0.5, 1.5) \in G_{2}^{-}. \end{array} $$
(5.5)

The exact solution of this test is computed by Construction D3

$$R_{1}(U_{L}, U^{*}) \oplus W_{2}(U^{*}, U^{b}) \oplus W_{0}(U^{b}, U) \oplus R_{3}(U, U_{R}),$$

where U, Ub, and U are reported in Table 5. Figure 10 displays exact solution and its approximations for the mesh size h = 1/640 corresponding to the Godunov-type scheme and the van Leer-type scheme. We can see from this figure that the approximate solution corresponding to the van Leer-type scheme is closer to the exact solution than the one corresponding to the Godunov-type scheme. The errors and orders for different mesh sizes h = 1/40, h = 1/80, h = 1/160, h = 1/320, h = 1/640, and 1/1280 are reported in Table 6. We can evaluate from this table that the L1-order corresponding to the van Leer-type scheme is approximately equal to 0.98, while the one corresponding to the Godunov-type scheme is approximately equal to 0.64. So, the order of accuracy of the van Leer-type scheme is better than the one of the Godunov-type scheme.

Fig. 10
figure 10

Exact solution and approximate solutions for the mesh size h = 1/640 corresponding to the Godunov-type scheme and the van Leer-type scheme in test 5

Table 5 States in test 5
Table 6 Errors and orders of accuracy for test 5

5.4 Test Cases for Initial Data in Different Regions Without Resonance (No Wave Collisions)

Test 6

Let the Riemann data be given by

$$\begin{array}{@{}rcl@{}} & U_{L} = (p_{L}, u_{L}, \rho_{L}, a_{L}) = (27.0, -0.5, 0.8, 2.5) \in G_{2}^{-},\\ & U_{R} = (p_{R}, u_{R}, \rho_{R}, a_{R}) = (12.0, -9.0, 0.4, 1.5) \in G_{1}^{-}. \end{array} $$
(5.6)

According to Construction C3, the exact solution is

$$S_{1}(U_{L}, U^{*}) \oplus W_{2}(U^{*}, U^{b}) \oplus W_{0}(U^{b}, U) \oplus S_{3}(U, U_{R}),$$

where U, Ub, and U are reported in Table 7. Figure 11 displays exact solution and its approximations for the mesh size h = 1/640 corresponding to the Godunov-type scheme and the van Leer-type scheme. The errors and orders for this test are reported in Table 8. We can see from Table 8 and Fig. 11 that the accuracy and the order of accuracy of the van Leer-type scheme are better than those of the Godunov-type scheme.

Fig. 11
figure 11

Exact solution and approximate solutions for the mesh size h = 1/640 corresponding to the Godunov-type scheme and the van Leer-type scheme in test 6

Table 7 States in test 6
Table 8 Errors and orders of accuracy for test 6

5.5 Test Cases for Resonance

Test 7

Let the Riemann data be given by

$$\begin{array}{@{}rcl@{}} & U_{L} = (p_{L}, u_{L}, \rho_{L}, a_{L}) = (13.0, -4.0, 0.5, 2.5) \in G_{2}^{-},\\ & U_{R} = (p_{R}, u_{R}, \rho_{R}, a_{R}) = (9.0, -5.0, 0.3, 1.5) \in G_{2}^{-}. \end{array} $$
(5.7)

The exact solution is constructed by Construction D2:

$$\begin{array}{@{}rcl@{}} &&R_{1}(U_{L}, U^{*}) \oplus W_{2}(U^{*}, U_{R}^{-s@b}) \oplus W_{0}(U_{R}^{-s@b}, U_{R}^{-s@})\\ & \oplus& S_{3}(U_{R}^{-s@}, U_{R}^{-s}) \oplus W_{0}(U_{R}^{-s}, U_{R}^{-}) \oplus R_{3}(U_{R}^{-}, U_{R}),\end{array} $$

where U, \(U_{R}^{-s@b}\), \(U_{R}^{-s@}\), \(U_{R}^{-s}\), and \(U_{R}^{-}\) are reported in Table 9. Figure 12 displays exact solution and its approximations for the mesh size h = 1/640 corresponding to the Godunov-type scheme and the van Leer-type scheme. The errors and orders for different mesh sizes h = 1/40, h = 1/80, h = 1/160, h = 1/320, h = 1/640, and 1/1280 are reported in Table 10. We can see from Table 10 and Fig. 12 that the accuracy and the order of accuracy of the van Leer-type scheme are better than those of the Godunov-type scheme.

Fig. 12
figure 12

Exact solution and approximate solutions for the mesh size h = 1/640 corresponding to the Godunov-type scheme and the van Leer-type scheme in test 7

Table 9 States in test 7
Table 10 Errors and orders of accuracy for test 7

6 Conclusions and Discussions

Nonconservativeness often causes lots of inconvenience for standard numerical schemes in approximating solutions. This work deals with numerical approximations of solutions of a nonconservative system. A van Leer-type scheme is built and tested. Tests show that the scheme can work through for all types of data, and of the class of high-order numerical schemes. The proposed scheme can give very desirable results for approximating exact solutions, even in the resonance cases where the exact solution may contain several waves with coinciding shock speeds. Moreover, it has a much better accuracy than the Godunov-type scheme. Note that when we deal with non-smooth solutions, a high-order scheme may give orders of accuracy below 1. Further developments for numerical approximations of solutions of more complicated systems such as multi-phase flow models will be considered.