Skip to main content
Log in

An Approximate Lax–Wendroff-Type Procedure for High Order Accurate Schemes for Hyperbolic Conservation Laws

  • Published:
Journal of Scientific Computing Aims and scope Submit manuscript

Abstract

A high order time stepping applied to spatial discretizations provided by the method of lines for hyperbolic conservations laws is presented. This procedure is related to the one proposed in Qiu and Shu (SIAM J Sci Comput 24(6):2185–2198, 2003) for numerically solving hyperbolic conservation laws. Both methods are based on the conversion of time derivatives to spatial derivatives through a Lax–Wendroff-type procedure, also known as Cauchy–Kovalevskaya process. The original approach in Qiu and Shu (2003) uses the exact expressions of the fluxes and their derivatives whereas the new procedure computes suitable finite difference approximations of them ensuring arbitrarily high order accuracy both in space and time as the original technique does, with a much simpler implementation and generically better performance, since only flux evaluations are required and no symbolic computations of flux derivatives are needed.

This is a preview of subscription content, log in via an institution to check access.

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Fig. 1
Fig. 2
Fig. 3
Fig. 4

Similar content being viewed by others

References

  1. Donat, R., Marquina, A.: Capturing shock reflections: an improved flux formula. J. Comput. Phys. 125, 42–58 (1996)

    Article  MathSciNet  MATH  Google Scholar 

  2. Faá di Bruno, C.F.: Note sur un nouvelle formule de calcul différentiel. Quart. J. Math. 1, 359–360 (1857)

    Google Scholar 

  3. Hairer, E., Nørsett, S.P., Wanner, G.: Solving Ordinary Differential Equations I, 2nd edn. Springer, Berlin (1993)

    MATH  Google Scholar 

  4. Harten, A., Engquist, B., Osher, S., Chakravarthy, S.R.: Uniformly high order accurate essentially non-oscillatory schemes, III. J. Comput. Phys. 71(2), 231–303 (1987)

    Article  MathSciNet  MATH  Google Scholar 

  5. Hickernell, F.J., Yang, S.: Explicit hermite interpolation polynomials via the cycle index with applications. Int. J. Numer. Anal. Comp. 5(3), 457–465 (2008)

    MathSciNet  MATH  Google Scholar 

  6. Jiang, G.S., Shu, C.W.: Efficient implementation of weighted ENO schemes. J. Comput. Phys. 126, 202–228 (1996)

    Article  MathSciNet  MATH  Google Scholar 

  7. Qiu, J., Shu, C.W.: Finite difference WENO schemes with Lax–Wendroff-type time discretizations. SIAM J. Sci. Comput. 24(6), 2185–2198 (2003)

    Article  MathSciNet  MATH  Google Scholar 

  8. Shu, C.W., Osher, S.: Efficient implementation of essentially non-oscillatory shock-capturing schemes. J. Comput. Phys. 77, 439–471 (1988)

    Article  MathSciNet  MATH  Google Scholar 

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

    Article  MathSciNet  MATH  Google Scholar 

  10. Tiburce Abadie, J.C.F.: Sur la différentiation des fonctions de fonctions Nouvelles annales de mathématiques. Journal des candidats aux écoles polytechnique et normale 9(1), 119–125 (1850)

    Google Scholar 

  11. Tiburce Abadie, J.C.F.: Sur la différentiation des fonctions de fonctions. Séries de Burmann, de Lagrange, de Wronski. Nouvelles annales de mathématiques. Journal des candidats aux écoles polytechnique et normale 11(1), 376–383 (1852)

    Google Scholar 

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

    Book  MATH  Google Scholar 

  13. You, X., Zhao, J., Yang, H., Fang, Y., Wu, X.: Order conditions for RKN methods solving general second-order oscillatory systems. Numer. Algor. 66, 147–176 (2014)

    Article  MathSciNet  MATH  Google Scholar 

Download references

Acknowledgments

This research was partially supported by Spanish MINECO grants MTM 2011-22741 and MTM 2014-54388-P.

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to P. Mulet.

Appendices

Appendix 1

For the sake of completeness, we prove Theorem 1 in this appendix, for we have not found satisfactory references for its proof.

The following result is easily established.

Lemma 1

Assume \(T:\mathbb R^n \rightarrow \mathcal {M}(s, n)\) is differentiable (equivalently, \(T_{i_{1},\dots ,i_{i_s}}\) are differentiable) and that \(A:\mathbb R\rightarrow \mathbb R^{n\times s}\), \(u:\mathbb {R}\rightarrow \mathbb {R}^n\) are also differentiable. Then, \(\forall x\in \mathbb {R}\)

$$\begin{aligned} \frac{d}{dx}T(u(x))A(x)=T'(u(x))[u'(x)\ A(x)]+T(u(x))\sum _{j=1}^{s} d_j A(x), \end{aligned}$$

where we have used the notation \(d_j A(x)\) for the \(n\times s\) matrix given by the columns:

$$\begin{aligned} (d_j A(x))_{k}={\left\{ \begin{array}{ll} A_{k}(x) &{} k\ne j\\ A'_{j}(x) &{} k= j \end{array}\right. } \end{aligned}$$

We introduce some further notation for the proof of Theorem 1. For \(s\in \mathbb N\), we denote

$$\begin{aligned} \mathcal {P}_{s,j}&=\{ m\in \mathcal {P}_s / m_j\ne 0 \}. \end{aligned}$$

We denote also

$$\begin{aligned}&S_0:\mathcal {P}_{s}\rightarrow \mathcal {P}_{s+1,1},\quad S_0(m)_k= {\left\{ \begin{array}{ll} 0 &{} k=s+1\\ m_k&{} s\ge k\ne 1\\ m_{1}+1 &{} k=1, \end{array}\right. }\\&S_j:\mathcal {P}_{s,j}\rightarrow \mathcal {P}_{s+1,j+1},\quad S_j(m)_k= {\left\{ \begin{array}{ll} 0 &{} k=s+1\\ m_k&{} s\ge k\ne j, j+1\\ m_{j}-1 &{}s\ge k=j\\ m_{j+1}+1 &{}s\ge k=j+1. \end{array}\right. } \end{aligned}$$

for \(1\le j<s\), and \(S_s\) that maps \((0,\dots ,0,1)\in \mathbb N^s\) to \((0,\dots ,0,1)\in \mathbb N^{s+1}\).

Proof

(of Theorem 1) We use induction on s, the case \(s=1\) being the chain rule. By the induction hypothesis for s and Lemma 1 we deduce:

$$\begin{aligned} \frac{d^{s+1}f(u(x))}{dx^{s+1}} = \sum _{m\in \mathcal {P}_s} \left( \begin{array}{c} s\\ m \end{array} \right) \frac{d}{dx}\left( f^{(|m|)}(u(x)) D^m u(x)\right) \\ =\sum _{m\in \mathcal {P}_s} \left( \begin{array}{c} s\\ m \end{array} \right) \big ((f^{(|m|)})'(u(x)) [u'(x)\ D^m u(x)]+ f^{(|m|)}(u(x)) \sum _{j=1}^{n}d_j D^m u(x)\big )\\ =\sum _{m\in \mathcal {P}_s} \left( \begin{array}{c} s\\ m \end{array} \right) \big (f^{(|m|+1)}(u(x)) [u'(x)\ D^m u(x)]+ f^{(|m|)}(u(x)) \sum _{j=1}^{n}d_jD^m u(x)\big ). \end{aligned}$$

Now,

$$\begin{aligned} d_j D^{m} u(x)=D^{S_j(m)} u(x) P E, \end{aligned}$$

where P is a permutation matrix corresponding to the transposition of j and \(\sum _{l\le k} m_l\), with \(\sum _{l< k} m_l < j \le \sum _{l\le k} m_l\) and E is a diagonal matrix with \(k+1\) in the \(\sum _{l\le k} m_l\) entry and 1 in the rest.

By the symmetry of \(f^{(|m|)}\), if \(\sum _{l< k} m_l < j \le \sum _{l\le k} m_l\)

$$\begin{aligned} f^{(|m|)}(u(x)) d_jD^m u(x)= (k+1) f^{(|S_{k}(m)|}(u(x)) D^{S_{k}(m)} u(x), \end{aligned}$$

therefore, collecting identical terms,

$$\begin{aligned} \frac{d^{s+1}f(u(x))}{dx^{s+1}}= & {} \sum _{m\in \mathcal {P}_s} \left( \begin{array}{c} s\\ m \end{array} \right) \big (f^{(|S_0 (m)|)}(u(x)) D^{S_0 (m)}u(x)\\&+\, \sum _{j=1}^{n}f^{(|m|)}(u(x)) d_jD^{S_j (m)} u(x)\big ) \end{aligned}$$

can be written as

$$\begin{aligned} \begin{aligned} \frac{d^{s+1}f(u(x))}{dx^{s+1}}&= \sum _{m\in \mathcal {P}_s} \left( \begin{array}{c} s\\ m \end{array} \right) \big (f^{(|S_0 (m)|)}(u(x)) D^{S_0 (m)}u(x)\\&\quad +\sum _{k=1}^{n} m_k (k+1) f^{(|S_{k}(m)|)}(u(x)) D^{S_{k}(m)} u(x)\big ), \end{aligned} \end{aligned}$$
(25)

where we point out that in the last expression the only terms that actually appear are those for which \(m_k>0\). Since \(m_k-1=(S_{k}(m))_{k}\), by collecting the terms for mk such that \(S_k(m)=\widehat{m}\), (25) can be written as

$$\begin{aligned} \frac{d^{s+1}f(u(x))}{dx^{s+1}} = \sum _{\widehat{m}\in \mathcal {P}_{s+1}} a_{\widehat{m}} f^{(|\widehat{m}|)}(u(x)) D^{\widehat{m}} u(x), \end{aligned}$$
(26)

where

$$\begin{aligned} a_{\widehat{m}}= {\left\{ \begin{array}{ll} \widetilde{a_{\widehat{m}}} &{} \text{ if } \widehat{m_1}=0 \\ \widetilde{a_{\widehat{m}}}+\left[ \begin{array}{c} s\\ S_0^{-1}(\widehat{m}) \end{array} \right]&\text{ if } \widehat{m_1}\ne 0, \end{array}\right. } \quad \widetilde{a_{\widehat{m}}}=\sum _{\begin{array}{c}\widehat{m}=S_k (m), \\ k\in \{1,\dots ,s\},\\ m\in \mathcal {P}_{s,k} \end{array} } \left( \begin{array}{c} s\\ m \end{array} \right) m_k (k+1). \end{aligned}$$
(27)

For \(k\in \{1,\dots ,s\}\), and \( m\in \mathcal {P}_{s,k}\), such that \(\widehat{m}=S_k (m)\), i.e., \(\widehat{m}_i=m_i\), \(i\ne k, k+1\), \(\widehat{m}_{k}=m_{k}-1\), \(\widehat{m}_{k+1}=m_{k+1}+1\), we deduce:

$$\begin{aligned} \left( \begin{array}{c} s\\ m \end{array} \right) m_k (k+1)&= \frac{s!}{m_1!\dots (m_{k}-1)! m_{k+1}!\dots m_s!}(k+1)\\&=\frac{s!}{\widehat{m}_1!\dots \widehat{m}_{k}! (\widehat{m}_{k+1}-1)!\dots \widehat{m}_s!}(k+1)\\&=\frac{s!}{\widehat{m}_1!\dots \widehat{m}_{k}! \widehat{m}_{k+1}!\dots \widehat{m}_s!}\widehat{m}_{k+1}(k+1). \end{aligned}$$

Let \(\widehat{m}=S_k (m)\) with \(k<s\), then one has \(\widehat{m}_{s+1}=0\). The only element \(m\in \mathcal {P}_{s,s}\) is \((0,\dots ,0,1)\in \mathbb N^s\) and \(S_s(m)=(0,\dots ,0,1)\in \mathbb N^{s+1}\). Therefore

$$\begin{aligned} \widetilde{a_{\widehat{m}}}&=\frac{s!}{\widehat{m}_1!\dots \widehat{m}_{s+1}!}\sum _{\begin{array}{c}\widehat{m}=S_k (m), \\ k\in \{1,\dots ,s\},\\ m\in \mathcal {P}_{s,k} \end{array} } \widehat{m}_{k+1}(k+1)\nonumber \\ \widetilde{a_{\widehat{m}}}&=\frac{s!}{\widehat{m}_1!\dots \widehat{m}_{s+1}!}\sum _{k=1}^{s} \widehat{m}_{k+1}(k+1) =\frac{s!}{\widehat{m}_1!\dots \widehat{m}_{s+1}!}\sum _{k=2}^{s+1} \widehat{m}_{k}k. \end{aligned}$$
(28)

On the other hand, if \(\widehat{m}_1\ne 0\), then:

$$\begin{aligned} \left[ \begin{array}{c} s\\ S_0^{-1}(\widehat{m}) \end{array} \right] =\frac{s!}{(\widehat{m}_1-1)!\widehat{m}_2!\cdots \widehat{m}_s!} =\frac{s!}{\widehat{m}_1!\widehat{m}_2!\cdots \widehat{m}_s! \widehat{m}_{s+1}!}\widehat{m}_1, \end{aligned}$$
(29)

where the last equality holds since, as before, we have \(\widehat{m}_{s+1}=0\). Then, regardless of \(\widehat{m}_1\), (28) and (29) yield for \(\widehat{m}\in \mathcal {P}_{s+1}\)

$$\begin{aligned} a_{\widehat{m}}=\frac{s!}{\widehat{m}_1!\dots \widehat{m}_{s+1}!}\sum _{k=1}^{s+1} \widehat{m}_{k}k=\frac{s!}{\widehat{m}_1!\dots \widehat{m}_{s+1}!}(s+1)= \left( \begin{array}{c} s+1\\ \widehat{m} \end{array} \right) , \end{aligned}$$
(30)

since \(\widehat{m}\in \mathcal {P}_{s+1}\) means \(\sum _{k=1}^{s+1} \widehat{m}_{k}k=s+1\). We deduce from (26), (27) and (30) that

$$\begin{aligned} \frac{d^{s+1}f(u(x))}{dx^{s+1}} =\sum _{\widehat{m}\in \mathcal {P}_{s+1}} \left( \begin{array}{c} s+1\\ \widehat{m} \end{array} \right) f^{(|\widehat{m}|)}(u(x)) D^{\widehat{m}}u(x), \end{aligned}$$

which concludes the proof by induction. \(\square \)

Appendix 2

We include here the proof of Proposition 1.

Proof

For the accuracy analysis of the local truncation error, we take

$$\begin{aligned} \widetilde{u}^{(0)}_{i,n}=u(x_i, t_n). \end{aligned}$$
(31)

We now use induction on \(k=1,\dots ,R\) to prove that

$$\begin{aligned} \widetilde{u}^{(k)}_{i,n}&= u^{(k)}_{i,n}+c^{k}(x_i, t_n)h^{R-k+1}+\mathcal {O}(h^{R-k+2}), \end{aligned}$$
(32)

for continuously differentiable functions \(c^k\). The result in (32) for \(k=1\) immediately follows from the fact that WENO finite differences applied to the exact data in (31) yield approximations

$$\begin{aligned} \frac{\hat{f}_{i+\frac{1}{2},n}-\hat{f}_{i-\frac{1}{2},n}}{h}=f(u)_{x}(x_{i}, t_n)+\widetilde{c}^{1}(x_i, t_n)h^{2r-1}+\mathcal {O}(h^{2r}),\quad r=\nu . \end{aligned}$$

From the definition in (11) we deduce

$$\begin{aligned} \widetilde{u}^{(1)}_{i,n}=-\frac{\hat{f}_{i+\frac{1}{2},n}-\hat{f}_{i-\frac{1}{2},n}}{h}=u^{(1)}_{i,n}-\widetilde{c}^{1}(x_i, t_n)h^{2r-1}+\mathcal {O}(h^{2r}), \quad 2r\ge R+1, \end{aligned}$$

thus proving the case \(k=1\), by taking \(c^1=-\widetilde{c}^1\) if \(2r=R+1\) or \(c^1=0\) if \(2r>R+1\).

Assume now the result to hold for k and aim to prove it for \(k+1\le R\). For this purpose we first prove the following estimate:

$$\begin{aligned} \widetilde{f}^{(k)}_{i,n}&= f^{(k)}_{i,n}+a^k(x_i, t_n)h^{R-k}+b^k(x_i, t_n)h^{R-k+1}+\mathcal {O}(h^{R-k+2}), \end{aligned}$$
(33)

for continuously differentiable functions \(a^k, b^k\).

From (13) and (10), with \(q=\left\lceil \frac{R-k}{2}\right\rceil \) and the notation \(v=T_k[h, i, n]\), for fixed in:

$$\begin{aligned} \widetilde{f}^{(k)}_{i,n}&= (f(v))^{(k)}(0)+\alpha ^{k,q} (f(v))^{(k+2q)}(0)h^{2q} + \mathcal {O}(h^{2q+2}). \end{aligned}$$
(34)

Now, Faà di Bruno’s formula (7) and the fact that (12) implies \(v^{(p)}(0)=\widetilde{u}^{(p)}_{i,n}\), \(p=1,\dots ,k\), yields:

$$\begin{aligned} \begin{aligned} (f(v))^{(k)}(0)&=\sum _{s\in \mathcal {P}_{k}} \left( \begin{array}{c} k\\ s \end{array} \right) f^{(|s|)}(v(0))\big (D^{s} v(0)\big ),\\ D^{s} v (0)&= \begin{bmatrix} \overbrace{ \begin{array}{ccc} \frac{v^{(1)}(0)}{1!}&\dots&\frac{v^{(1)}(0)}{1!} \end{array} }^{s_1}&\dots&\overbrace{ \begin{array}{ccc} \frac{v^{(k)}(0)}{k!}&\dots&\frac{v^{(k)}(0)}{k!} \end{array} }^{s_k} \end{bmatrix}= \\&=\begin{bmatrix} \overbrace{ \begin{array}{ccc} \frac{\widetilde{u}_{i,n}^{(1)}}{1!}&\dots&\frac{\widetilde{u}_{i,n}^{(1)}}{1!} \end{array} }^{s_1}&\dots&\overbrace{ \begin{array}{ccc} \frac{\widetilde{u}_{i,n}^{(k)}}{k!}&\dots&\frac{\widetilde{u}_{i,n}^{(k)}}{k!} \end{array} }^{s_k}, \end{bmatrix} \end{aligned} \end{aligned}$$
(35)

where we remark that \(D^{s} v (0)\) is an \(m\times |s|\) matrix formed by the columns \(\frac{\widetilde{u}_{i,n}^{(p)}}{p!}\) appearing in the previous expression. Since \(v=T_k[h, i, n]\) is a k-th degree polynomial, \(v^{(j)}=0\) for \(j>k\). Therefore, in the same fashion as before,

$$\begin{aligned}&(f(v))^{(k+2q)}(0)=\sum _{s\in \mathcal {P}^{k}_{k+2q}} \left( \begin{array}{c} k\\ s \end{array} \right) f^{(|s|)}(v(0)) \big (D^{s} v(0)\big ) \end{aligned}$$
(36)

where \(\mathcal {P}^{k}_{k+2q}=\{s\in \mathcal {P}_{k+2q} / s_j=0, j>k\}\).

On the other hand, another application of Faà di Bruno’s formula to f(u), yields:

$$\begin{aligned} \begin{aligned} f_{i,n}^{(k)}&=f(u)^{(k)}(x_i, t_n)= \sum _{s\in \mathcal {P}_{k}} \left( \begin{array}{c} k\\ s \end{array} \right) f^{(|s|)}(u(x_i, t_n)) \big (D^{s} u(x_i, t_n)\big )\\ D^{s} u (x_i, t_n)&= \begin{bmatrix} \overbrace{ \begin{array}{ccc} \frac{u^{(1)}(x_i, t_n)}{1!}&\dots&\frac{u^{(1)}(x_i, t_n)}{1!} \end{array} }^{s_1}&\dots&\overbrace{ \begin{array}{ccc} \frac{u^{(k)}(x_i, t_n)}{k!}&\dots&\frac{u^{(k)}(x_i, t_n)}{k!} \end{array} }^{s_k} \end{bmatrix} \\&= \begin{bmatrix} \overbrace{ \begin{array}{ccc} \frac{u_{i,n}^{(1)}}{1!}&\dots&\frac{u_{i,n}^{(1)}}{1!} \end{array} }^{s_1}&\dots&\overbrace{ \begin{array}{ccc} \frac{u_{i,n}^{(k)}}{k!}&\dots&\frac{u_{i,n}^{(k)}}{k!} \end{array} }^{s_k} \end{bmatrix} \end{aligned} \end{aligned}$$
(37)

We have \( v(0)=\widetilde{u}_{i,n}^{(0)}=u(x_i, t_n)\) and, by induction,

$$\begin{aligned} \widetilde{u}_{i,n}^{(l)}=u_{i,n}^{(l)}+c^{l}(x_{i}, t_{n})h^{R-l+1}+\mathcal {O}(h^{R-l+2}),\quad l=1,\dots ,k. \end{aligned}$$
(38)

For any \(s\in \mathcal {P}_{k}\), \(D^{s}v(0)\) is a \(m\times |s|\) matrix, and for any \(\mu \in \{1,\dots ,m\}\) and \(\nu \in \{1,\dots ,|s|\}\), we have from (8), (35), (37) and (38) that

$$\begin{aligned} (D^s v(0)-D^s u(x_i, t_n))_{\mu , \nu } = \frac{(\widetilde{u}_{i,n}^{(l)}-u_{i,n}^{(l)})_{\mu }}{l!} = \frac{c^l_{\mu }(x_i, t_n)}{l!} h^{R-l+1} + \mathcal {O}(h^{R-l+2}), \end{aligned}$$
(39)

for some \(l=l(s, \nu )\le k\). From the definition of the set \(\mathcal {P}_k\), the only k-tuple \(s\in \mathcal {P}_{k}\) such that \(s_k\ne 0\) is \(s^*=(0,\dots ,1)\). Therefore, from the definition of the operator \(D^s\) in (8) (or (37) (35)), the only \(s\in \mathcal {P}_{k}\), \(\nu \le |s|\), such that \(l(s, \nu )=k\) is \(s^*\), \(\nu =|s^*|=1\). We deduce from (39) that

$$\begin{aligned}&(D^s v(0)-D^s u(x_i, t_n))_{\mu , \nu }=\mathcal {O}(h^{R-k+2}), \quad \forall s\in \mathcal {P}_s, s\ne s^*, \forall \mu \le m, \forall \nu \le |s| \end{aligned}$$
(40)
$$\begin{aligned}&(D^{s^*} v(0)-D^{s^*} u(x_i, t_n))_{\mu , 1}=\frac{c^k_{\mu }(x_i, t_n)}{k!} h^{R-k+1} + \mathcal {O}(h^{R-k+2}), \end{aligned}$$
(41)

We deduce from (39), (9), (35), (37), (40) that

$$\begin{aligned} f(v)^{(k)}(0)-f(u)^{(k)}(x_i, t_n)&= \left( \begin{array}{c} k\\ s^* \end{array} \right) f^{(|s^*|)}(u(x_i, t_n)) \big (D^{s^*} v(0)-D^{s^*} u(x_i, t_n)\big ) \nonumber \\&\quad + \sum _{s\in \mathcal {P}_{k}, s\ne s^*} \left( \begin{array}{c} k\\ s \end{array} \right) f^{(|s|)}(u(x_i, t_n)) \big (D^{s} v(0)-D^{s} u(x_i, t_n)\big )\nonumber \\&=\sum _{\mu =1}^{m}\frac{\partial f}{\partial u_{\mu }}(u(x_i, t_n))c^k_{\mu }(x_i, t_n) h^{R-k+1} + \mathcal {O}(h^{R-k+2}), \end{aligned}$$
(42)

where we have collected the order \(R-k+1\) leading terms originating from the first term associated to the k-tuple \(s^*=(0,\dots ,0,1)\). With a similar argument, taking into account that \(k+1\le R\), we deduce from (36) and (39) that

$$\begin{aligned} \begin{aligned} (f(v))^{(k+2q)}(0)&=e^{k,q}(x_i, t_n)+\mathcal {O}(h^{R-k+1})=e^{k,q}(x_i, t_n)+\mathcal {O}(h^2), \\ e^{k,q}(x, t)&=\sum _{s\in \mathcal {P}^{k}_{k+2q}} \left( \begin{array}{c} k\\ s \end{array} \right) f^{(|s|)}(v(0)) \big (D^{s} u(x, t)\big ). \end{aligned} \end{aligned}$$
(43)

Now, (34), (37), (43) and (42) yield:

$$\begin{aligned} \widetilde{f}^{(k)}_{i,n} -f^{(k)}_{i,n}= & {} \sum _{\mu =1}^{m}\frac{\partial f}{\partial u_{\mu }}(u(x_i, t_n))c^k_{\mu }(x_i, t_n) h^{R-k+1} + \mathcal {O}(h^{R-k+2}) \\&\quad + e^{k,q}(x_i, t_n)h^{2q}+\mathcal {O}(h^{2q+2}). \end{aligned}$$

Since \(2q= R-k\) or \(2q= R-k+1\), we deduce (33) with

$$\begin{aligned} a^{k}(x, t)&={\left\{ \begin{array}{ll} e^{k}(x, t) &{} 2q=R-k\\ 0&{} 2q=R-k+1\\ \end{array}\right. }\\ b^{k}(x, t)&={\left\{ \begin{array}{ll} \sum _{\mu =1}^{m}\frac{\partial f}{\partial u_{\mu }}(u(x, t))c^k_{\mu }(x, t) &{} 2q=R-k\\ \sum _{\mu =1}^{m}\frac{\partial f}{\partial u_{\mu }}(u(x, t))c^k_{\mu }(x, t) + e^{k, q}(x, t)&{} 2q=R-k+1. \end{array}\right. } \end{aligned}$$

To prove (32) for \(k+1\), we apply the linear operator \(-\varDelta _h^{1,q}\), for \(q=\left\lceil \frac{R-k}{2}\right\rceil \), to both sides of the already established equality (33), taking into account (10) and that \(2q\ge R-k\):

$$\begin{aligned} \widetilde{u}^{(k+1)}_{i,n}&=-\varDelta _h^{1,q} \widetilde{f}^{(k)}_{i+\cdot ,n} \\&=-\varDelta _h^{1,q} f_{i+\cdot ,n}^{(k)} -h^{R-k}\varDelta _h^{1,q}G_{x_i,h}(a^k(\cdot , t_n)) \\&\quad -h^{R-k+1}\varDelta _h^{1,q}G_{x_i,h}(b^k(\cdot , t_n)) +\mathcal {O}(h^{R-k+1})\\&=-\varDelta _h^{1,q} G_{x_i,h}\big (f(u)^{(k)}(\cdot , t_n)\big )\\&\quad -h^{R-k}(\frac{\partial a^k}{\partial x}(x_i, t_n)+ \mathcal {O}(h^{2q}))\\&\quad -h^{R-k+1}(\frac{\partial b^k}{\partial x}(x_i,t_n)+ \mathcal {O}(h^{2q})) +\mathcal {O}(h^{R-k+1})\\&=-[f(u)^{(k)}]_{x}(x_i, t_n)-\alpha ^{1,q}\frac{\partial ^{k+2q+1}f(u)}{\partial x^{2q+1}\partial t^{k}}(x_i, t_n) h^{2q}\\&\quad +\mathcal {O}(h^{2q+2} )- h^{R-k}\frac{\partial a^k}{\partial x}(x_i, t_n)+\mathcal {O}(h^{R-k+1})\\&=u^{(k+1)}(x_i, t_n)+c^{k+1}(x_i, t_n)h^{R-k}+\mathcal {O}(h^{R-k+1}), \end{aligned}$$

where

$$\begin{aligned} c^{k+1}(x, t)=-\frac{\partial a^k}{\partial x}(x, t)- {\left\{ \begin{array}{ll} 0 &{} 2q > R-k\\ \alpha ^{1,q}\frac{\partial ^{k+2q+1}f(u)}{\partial x^{2q+1}\partial t^{k}}(x, t) &{} 2q=R-k. \end{array}\right. } \end{aligned}$$

The local truncation error is given by

$$\begin{aligned}&u_{i,n+1}^{(0)}- \sum _{l=0}^R\frac{ (\varDelta t)^l}{l!}\widetilde{u}_{i,n}^{(l)}, \end{aligned}$$

where \(\widetilde{u}_{i,n}^{(l)}\) are computed from \(\widetilde{u}_{i,n}^{(0)}=u(x_i, t_n)\). Taylor expansion of the first term and the estimates in (32) yield that the local truncation error is:

$$\begin{aligned}&\sum _{l=1}^{R}\frac{(\varDelta t)^l }{l!}(u_{i,n}^{(l)} -\widetilde{u}_{i,n}^{(l)})+\mathcal {O}(h^{R+1})\\&\quad =\sum _{l=1}^{R}\frac{(\varDelta t)^l }{l!}\mathcal {O}(h^{R-l+1})+\mathcal {O}(h^{R+1}) =\mathcal {O}(h^{R+1}), \end{aligned}$$

since \(\varDelta t\) is proportional to h. \(\square \)

Rights and permissions

Reprints and permissions

About this article

Check for updates. Verify currency and authenticity via CrossMark

Cite this article

Zorío, D., Baeza, A. & Mulet, P. An Approximate Lax–Wendroff-Type Procedure for High Order Accurate Schemes for Hyperbolic Conservation Laws. J Sci Comput 71, 246–273 (2017). https://doi.org/10.1007/s10915-016-0298-2

Download citation

  • Received:

  • Revised:

  • Accepted:

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1007/s10915-016-0298-2

Keywords

Navigation