Abstract
A high order finite difference numerical scheme is developed for the shallow water equations on curvilinear meshes based on an alternative flux formulation of the weighted essentially non-oscillatory (WENO) scheme. The exact C-property is investigated, and comparison with the standard finite difference WENO scheme is made. Theoretical derivation and numerical results show that the proposed finite difference WENO scheme can maintain the exact C-property on both stationarily and dynamically generalized coordinate systems. The Harten-Lax-van Leer type flux is developed on general curvilinear meshes in two dimensions and verified on a number of benchmark problems, indicating smaller errors compared with the Lax-Friedrichs solver. In addition, we propose a positivity-preserving limiter on stationary meshes such that the scheme can preserve the non-negativity of the water height without loss of mass conservation.
Similar content being viewed by others
References
Balsara, D.S., Shu, C.-W.: Monotonicity preserving weighted essentially non-oscillatory schemes with increasingly high order of accuracy. J. Comput. Phys. 160(2), 405–452 (2000)
Bermudez, A., Vazquez, M.E.: Upwind methods for hyperbolic conservation laws with source terms. Comput. Fluid 23(8), 1049–1071 (1994)
Bryson, S., Epshteyn, Y., Kurganov, A., Petrova, G.: Well-balanced positivity preserving central-upwind scheme on triangular grids for the Saint-Venant system. ESAIM: Math. Modell. Numer. Anal. 45(3), 423–446 (2011)
Cai, X., Ladeinde, F.: Performance of WENO scheme in generalized curvilinear coordinate systems. In: 46th AIAA Aerospace Sciences Meeting and Exhibit, AIAA 2008-36, Reno, Nevada (2008)
Christlieb, A.J., Feng, X., Jiang, Y., Tang, Q.: A high-order finite difference WENO scheme for ideal magnetohydrodynamics on curvilinear meshes. SIAM J. Sci. Comput. 40(4), A2631–A2666 (2018)
Gao, Z., Hu, G.: High order well-balanced weighted compact nonlinear schemes for shallow water equations. Commun. Comput. Phys. 22(4), 1049–1068 (2017)
Hubbard, M.: On the accuracy of one-dimensional models of steady converging/diverging open channel flows. Int. J. Numer. Meth. Fluids 35(7), 785–808 (2001)
Jiang, G.S., Shu, C.-W.: Efficient implementation of weighted ENO schemes. J. Comput. Phys. 126(1), 202–228 (1996)
Jiang, Y., Shu, C.-W., Zhang, M.: An alternative formulation of finite difference weighted ENO schemes with Lax-Wendroff time discretization for conservation laws. SIAM J. Sci. Comput. 35(2), A1137–A1160 (2013)
Jiang, Y., Shu, C.-W., Zhang, M.: Free-stream preserving finite difference schemes on curvilinear meshes. Methods Appl. Anal. 21(1), 1–30 (2014)
LeVeque, R.J.: Balancing source terms and flux gradients in high-resolution Godunov methods: the quasi-steady wave-propagation algorithm. J. Comput. Phys. 146(1), 346–365 (1998)
Li, P., Don, W.S., Gao, Z.: High order well-balanced finite difference WENO interpolation-based schemes for shallow water equations. Comput. Fluid 201, 104476 (2020)
Liu, H., Qiu, J.: Finite difference Hermite WENO schemes for conservation laws, II: an alternative approach. J. Sci. Comput. 66(2), 598–624 (2016)
Liu, X.D., Osher, S., Chan, T.: Weighted essentially non-oscillatory schemes. J. Comput. Phys. 115(1), 200–212 (1994)
Navas-Montilla, A., Murillo, J.: Improved Riemann solvers for an accurate resolution of 1D and 2D shock profiles with application to hydraulic jumps. J. Comput. Phys. 378, 445–476 (2019)
Nonomura, T., Iizuka, N., Fujii, K.: Freestream and vortex preservation properties of high-order WENO and WCNs on curvilinear grids. Comput. Fluid 39(2), 197–214 (2010)
Shu, C.-W.: High order weighted essentially nonoscillatory schemes for convection dominated problems. SIAM Rev. 51(1), 82–126 (2009)
Shu, C.-W., Osher, S.: Efficient implementation of essentially non-oscillatory shock-capturing schemes. J. Comput. Phys. 77(2), 439–471 (1988)
Thomas, P.D., Lombard, C.K.: Geometric conservation law and its application to flow computations on moving grids. AIAA J. 17(10), 1030–1037 (1979)
Visbal, M.R., Gaitonde, D.V.: On the use of higher-order finite-difference schemes on curvilinear and deforming meshes. J. Comput. Phys. 181(1), 155–185 (2002)
Xing, Y., Shu, C.-W.: High order finite difference WENO schemes with the exact conservation property for the shallow water equations. J. Comput. Phys. 208(1), 206–227 (2005)
Xing, Y., Shu, C.-W.: High-order finite volume WENO schemes for the shallow water equations with dry states. Adv. Water Resour. 34(8), 1026–1038 (2011)
Xing, Y., Zhang, X.: Positivity-preserving well-balanced discontinuous Galerkin methods for the shallow water equations on unstructured triangular meshes. J. Sci. Comput. 57(1), 19–41 (2013)
Xing, Y., Zhang, X., Shu, C.-W.: Positivity-preserving high order well-balanced discontinuous Galerkin methods for the shallow water equations. Adv. Water Resour. 33(12), 1476–1493 (2010)
Xiong, T., Qiu, J.M., Xu, Z.: A parametrized maximum principle preserving flux limiter for finite difference RK-WENO schemes with applications in incompressible flows. J. Comput. Phys. 252, 310–331 (2013)
Xiong, T., Qiu, J.M., Xu, Z.: Parametrized positivity preserving flux limiters for the high order finite difference WENO scheme solving compressible Euler equations. J. Sci. Comput. 67(3), 1066–1088 (2016)
Xu, Z.: Parametrized maximum principle preserving flux limiters for high order schemes solving hyperbolic conservation laws: one-dimensional scalar problem. Math. Comput. 83(289), 2213–2238 (2014)
Yu, Y., Jiang, Y., Zhang, M.: Free-stream preserving finite difference schemes for ideal magnetohydrodynamics on curvilinear meshes. J. Sci. Comput. 82(1), 1–26 (2020)
Acknowledgements
This work is supported by the National Natural Science Foundation of China (11901555, 11871448, 12001009).
Author information
Authors and Affiliations
Corresponding author
Ethics declarations
Conflict of Interest
The authors declare that they have no conflict of interest.
Appendices
Appendix A WENO Interpolation
Given the point values \(\{\mathbf{Q }_{i}\}\), we will approximate the values at half points \(\mathbf{Q} _{i+1/2}^{\pm }\) as follows.
-
(i)
Compute an average state \(\mathbf{Q} _{i+1/2}\), using either the simple arithmetic mean or a Roe average. Construct the right and left eigenvectors of the Jacobian \(\partial \mathbf{F} / \partial \mathbf{Q}\), and denote their matrices by
$$\begin{aligned} \mathbf {R}_{i+1/2}=\mathbf {R}(\mathbf{Q} _{i+1/2}),\quad \mathbf {R}^{-1}_{i+1/2}=\mathbf {R}^{-1}(\mathbf{Q} _{i+1/2}). \end{aligned}$$ -
(ii)
Project the conserved quantities \(\mathbf{Q}\) to the local characteristic variables \(\mathbf{v}\),
$$\begin{aligned} \mathbf{v} _{j} = \mathbf {R}^{-1}_{i+1/2} \mathbf{Q} _{j}, \quad \text {for } j = i-2, \cdots , i+3. \end{aligned}$$ -
(iii)
Perform a scalar WENO interpolation on each component of the characteristic variable \(\mathbf{v} _{j}\) to obtain the corresponding component of \(\mathbf{v} _{i+1/2}^{\pm }\). Here, the procedure of a fifth-order WENO interpolation to obtain the k-th component \(v^{-}_{k,i+1/2}\) is described, and the process to obtain \(\mathbf{v} ^{+}_{i+1/2}\) is mirror-symmetric to the procedure described above with respect to the target point \(x_{i+1/2}\).
-
(a)
Choose one big stencil as \(S = \{x_{i-2},\cdots ,x_{i+2}\}\), and three small stencils as \(S^{(r)} _{i}= \{x_{i-r},\cdots , x_{i-r+2}\}\), \(r=0,1,2\). On each small stencil, the standard interpolation gives
$$\begin{aligned}&v^{(0)}_{k,i+1/2} = \frac{3}{8}v_{k,i} +\frac{3}{4}v_{k,i+1} -\frac{1}{8}v_{k,i+2},\\&v^{(1)}_{k,i+1/2} = -\frac{1}{8}v_{k,i-1} +\frac{3}{4}v_{k,i} +\frac{3}{8}v_{k,i+1},\\&v^{(2)}_{k,i+1/2} = \frac{3}{8}v_{k,i-2} -\frac{5}{4}v_{k,i-1} +\frac{15}{8}v_{k,i}, \\&v^\text {big}_{k,i+1/2} = d_{0} v^{(0)}_{k,i+1/2} +d_{1} v^{(1)}_{k,i+1/2} +d_{2} v^{(2)}_{k,i+1/2}, \end{aligned}$$with the linear weights being \(d_{0}={5}/{16}\), \(d_{1}={5}/{8}\) and \(d_{2}={1}/{16}\).
-
(b)
Compute nonlinear weights \(\omega _r\) from the linear weights \(d_r\),
$$\begin{aligned} \omega _{r}=\frac{\alpha _{r}}{\alpha _{0}+\alpha _{1}+\alpha _{2}}, \quad \alpha _{r}=\frac{d_{r}}{(\beta _{r}+\epsilon )^2}, \quad r=0,1,2, \end{aligned}$$where \(\epsilon = 10^{-6}\) is used to avoid division by zero, and the smoothness indicators are given by
$$\left\{ \begin{aligned} \begin{aligned}&\beta _{0} = \frac{13}{12}\left( v_{k,i}-2v_{k,i+1}+v_{k,i+2}\right) ^2 +\frac{1}{4}\left( 3v_{k,i}-4v_{k,i+1}+v_{k,i+2}\right) ^2,\\&\beta _{1} = \frac{13}{12}\left( v_{k,i-1}-2v_{k,i}+v_{k,i+1}\right) ^2 +\frac{1}{4}\left( v_{k,i-1}-v_{k,i+1}\right) ^2,\\&\beta _{2} = \frac{13}{12}\left( v_{k,i-2}-2v_{k,i-1}+v_{k,i}\right) ^2 +\frac{1}{4}\left( v_{k,i-2}-4v_{k,i-1}+3v_{k,i}\right) ^2. \end{aligned} \end{aligned}\right.$$(A1) -
(c)
The WENO interpolation is defined by
$$\begin{aligned} v^{-}_{k,i+1/2}=\sum _{r=0}^{2}\omega _{r}v^{(r)}_{k,i+1/2}. \end{aligned}$$
-
(a)
-
(iv)
Finally, project \(\mathbf{v} _{i+1/2}^{\pm }\) back to the conserved quantities,
$$\begin{aligned} \mathbf{Q} _{i+1/2}^{\pm } = \mathbf {R}_{i+1/2} \mathbf{v} _{i+1/2}^{\pm }. \end{aligned}$$
Appendix B Construction of \(\sigma _{i+1/2}\)
Compute the coefficient \(\sigma _{i+1/2}\), which is based the smoothness indicators of \(\mathbf {Q}^M\) on the WENO stencils.
-
(i)
Consider each component of \(Q^M_l\), \(l=1, 2, 3\). On the left biased stencil \(\{x_{i-2},\cdots ,x_{i+2}\}\), calculate the smooth indicators on each smooth stencils \(\beta _{r,l}\). The formulations of the smooth indicators are the same as those in WENO procedure (A1). We can obtain a candidate for the coefficient \(\sigma ^{-}\) by
$$\begin{aligned} \sigma ^{-}_l = \frac{\sigma _{l,\min }}{\sigma _{l,\max }} \end{aligned}$$with
$$\begin{aligned}&\sigma _{l,\max } = 1 + \frac{|\beta _{0,l} - \beta _{2,l}|}{\epsilon +\min (\beta _{0,l}, \beta _{2,l}) }, \\&\sigma _{l,\min } = 1+ \frac{|\beta _{0,l} - \beta _{2,l}|}{\epsilon +\max (\beta _{0,l}, \beta _{2,l}) }, \end{aligned}$$and \(\epsilon\) is a small positive number (taken to be \(10^{-6}\) in all the numerical examples) to avoid division by zero.
-
(ii)
A similar formula to another candidate \(\sigma ^+\) based on the right biased stencil \(\{x_{i-1}, \cdots , x_{i+3}\}\).
-
(iii)
Then, we take the minimum of those candidates for all components:
$$\begin{aligned} \sigma _{i+1/2} = \min _{l} (\sigma _{l}^-, \sigma _{l}^+). \end{aligned}$$
Notice that for the still water steady-state solution, i.e., \(\mathbf {Q}^M=\text {const}\), the smoothness indicators would be zeroes. Hence, we can easily prove that \(\sigma _{i+1/2}=1\).
Appendix C The HLLC Flux
The HLLC flux for shallow water equations in curvilinear coordinates is given by
where
Here \(\tilde{u}=\tilde{\xi }_{t}+\tilde{\xi }_{x}u+\tilde{\xi }_{y}v,\tilde{v}=\tilde{\xi }_{y}u-\tilde{\xi }_{x}v\). The wave speed estimates \(S_{\text L}\) and \(S_{\text R}\) are computed by
Take \(\tilde{u}=\tilde{\eta }_{t}+\tilde{\eta }_{x}u+\tilde{\eta }_{y}v, \tilde{v}=\tilde{\eta }_{y}u-\tilde{\eta }_{x}v\) instead, we have
where
and
We give the proof of \(\tilde{\mathbf{F }}_{*\text L}\) as an example, then \(\tilde{\mathbf{F }}_{*\text R},\tilde{\mathbf{G }}_{*\text L},\tilde{\mathbf{G }}_{*\text R}\) do not cause any trouble. Recall that
where \(\tilde{u}=\tilde{\xi }_{t}+\tilde{\xi }_{x}u+\tilde{\xi }_{y}v, \tilde{v}=\tilde{\xi }_{y}u-\tilde{\xi }_{x}v\). Let
and consider the matrix
Then we have \(\mathbf{M} \tilde{\mathbf{F }}=\bar{\mathbf{F }}\). We approximate the HLLC flux of \(\tilde{\mathbf{F }}\) by
Since the third component of \(\bar{\mathbf{F }}\) can be expressed by the first component and variable \(\tilde{v}\), we may consider the first two components of \(\bar{\mathbf{F }}\) at first, which actually is the HLL flux for SWEs problem in one dimension. Denote \(S_{\text L}\) and \(S_{\text R}\) as the estimates of wave speed \(\tilde{u}-\sqrt{\left( \tilde{\xi }_{x}^{2}+\tilde{\xi }_{y}^{2}\right) gh}\) and \(\tilde{u}+\sqrt{\left( \tilde{\xi }_{x}^{2}+\tilde{\xi }_{y}^{2}\right) gh}\). When \(S_{\text L}\leqslant 0\leqslant S_{\text R}\), applying Rankine-Hugoniot conditions across the left and right waves respectively, we obtain
where \(\bar{\mathbf{F }}=\left( h\tilde{u},h\tilde{u}^{2}+\frac{1}{2}gh^{2}\left( \tilde{\xi }_{x}^{2}+\tilde{\xi }_{y}^{2}\right) \right) ^{\mathrm {T}}\) and \(\bar{\mathbf{Q }}=\left( h, h\tilde{u}\right) ^{\mathrm {T}}\). Combine the two formulas and substitute \(\bar{\mathbf{Q }}^{\text {HLL}}\), and we have
Therefore, the flux can be written as
Then we consider all components together, the eigenvalues of \(\bar{\mathbf{F }}\) are
which respectively represents the wave speeds \(S_{\text L}\), \(S_{*}\), and \(S_{\text R}\). The third component of the flux can be expressed in terms of the first component and the variable \(\tilde{v}\), that is, \(\bar{\mathbf{F }}^{(3)}=\bar{\mathbf{F }}^{(1)}\tilde{v}\). Note that it is only the third component of the flux changes across the middle wave, we retain the HLL flux for the first two components of the flux and combine \(\tilde{v}\) with the first component of the HLL flux. One can obtain an expression for the third component as
where
If \(S_{\text L}\leqslant 0\leqslant S_{*}\),
where \(\tilde{\xi }^{2}=\tilde{\xi }_{x}^{2}+\tilde{\xi }_{y}^{2}\). Thus we obtain our approximation of flux
Finally, we change \(\mathbf {Q}_{\text L,\text R}\) to \(\mathbf {Q}^M_{\text L,\text R}\), in order to satisfy the still water steady state condition, namely
For the still water steady state condition, the variables \(\tilde{u}\) and \(\tilde{v}\) become
Hence,
and
Finally, we obtain the desired convex combination expression
which directly leads to the exact C-property.
Appendix D Design of \(\Lambda\) in PP-Limiter
-
(i)
If \(p_{i+1/2,j}\geqslant 0\), \(p_{i-1/2,j}\geqslant 0\), \(q_{i,j+1/2}\geqslant 0\), and \(q_{i,j-1/2}\geqslant 0\), then
$$\begin{aligned} \Lambda ^{-}_{i+1/2,j} = \Lambda ^{+}_{i-1/2,j} = \Lambda ^{-}_{i,j+1/2} = \Lambda ^{+}_{i,j-1/2} = 1. \end{aligned}$$ -
(ii)
If \(p_{i+1/2,j}< 0\), \(p_{i-1/2,j}\geqslant 0\), \(q_{i,j+1/2}\geqslant 0\), and \(q_{i,j-1/2}\geqslant 0\), then
$$\begin{aligned} \Lambda ^{-}_{i+1/2,j} = \min \left( 1,\frac{\Gamma _{i,j}}{ p_{i+1/2,j}}\right) ,\quad \Lambda ^{+}_{i-1/2,j} = \Lambda ^{-}_{i,j+1/2} = \Lambda ^{+}_{i,j-1/2} = 1. \end{aligned}$$ -
(iii)
If \(p_{i+1/2,j}\geqslant 0\), \(p_{i-1/2,j}<0\), \(q_{i,j+1/2}\geqslant 0\), and \(q_{i,j-1/2}\geqslant 0\), then
$$\begin{aligned} \Lambda ^{+}_{i-1/2,j} = \min \left( 1,\frac{\Gamma _{i,j}}{ p_{i-1/2,j}}\right) ,\quad \Lambda ^{-}_{i+1/2,j} = \Lambda ^{-}_{i,j+1/2} = \Lambda ^{+}_{i,j-1/2} = 1. \end{aligned}$$ -
(iv)
If \(p_{i+1/2,j}\geqslant 0\), \(p_{i-1/2,j}\geqslant 0\), \(q_{i,j+1/2}<0\), and \(q_{i,j-1/2}\geqslant 0\), then
$$\begin{aligned} \Lambda ^{-}_{i,j+1/2} = \min \left( 1,\frac{\Gamma _{i,j}}{ q_{i,j+1/2}}\right) ,\quad \Lambda ^{+}_{i+1/2,j} = \Lambda ^{-}_{i-1/2,j} = \Lambda ^{+}_{i,j-1/2} = 1. \end{aligned}$$ -
(v)
If \(p_{i+1/2,j}\geqslant 0\), \(p_{i-1/2,j}\geqslant 0\), \(q_{i,j+1/2}\geqslant 0\), and \(q_{i,j-1/2}<0\), then
$$\begin{aligned} \Lambda ^{+}_{i,j-1/2} = \min \left( 1,\frac{\Gamma _{i,j}}{ q_{i,j-1/2}}\right) ,\quad \Lambda ^{+}_{i+1/2,j} = \Lambda ^{-}_{i-1/2,j} = \Lambda ^{-}_{i,j+1/2} = 1. \end{aligned}$$ -
(vi)
If \(p_{i+1/2,j}< 0\), \(p_{i-1/2,j}<0\), \(q_{i,j+1/2}\geqslant 0\), and \(q_{i,j-1/2}\geqslant 0\), then
$$\begin{aligned} \Lambda ^{-}_{i+1/2,j} =\Lambda ^{+}_{i-1/2,j} = \min \left( 1,\frac{\Gamma _{i,j}}{ p_{i+1/2,j}+p_{i-1/2,j}}\right) ,\quad \Lambda ^{-}_{i,j+1/2} = \Lambda ^{+}_{i,j-1/2} = 1. \end{aligned}$$ -
(vii)
If \(p_{i+1/2,j}< 0\), \(p_{i-1/2,j}\geqslant 0\), \(q_{i,j+1/2}<0\), and \(q_{i,j-1/2}\geqslant 0\), then
$$\begin{aligned} \Lambda ^{-}_{i+1/2,j} =\Lambda ^{-}_{i,j+1/2} = \min \left( 1,\frac{\Gamma _{i,j}}{ p_{i+1/2,j}+q_{i,j+1/2}}\right) ,\quad \Lambda ^{+}_{i-1/2,j} = \Lambda ^{+}_{i,j-1/2} = 1. \end{aligned}$$ -
(viii)
If \(p_{i+1/2,j}< 0\), \(p_{i-1/2,j}\geqslant 0\), \(q_{i,j+1/2}\geqslant 0\), and \(q_{i,j-1/2}<0\), then
$$\begin{aligned} \Lambda ^{-}_{i+1/2,j} =\Lambda ^{+}_{i,j-1/2} = \min \left( 1,\frac{\Gamma _{i,j}}{ p_{i+1/2,j}+q_{i,j-1/2}}\right) ,\quad \Lambda ^{+}_{i-1/2,j} = \Lambda ^{-}_{i,j+1/2} = 1. \end{aligned}$$ -
(ix)
If \(p_{i+1/2,j}\geqslant 0\), \(p_{i-1/2,j}<0\), \(q_{i,j+1/2}<0\), and \(q_{i,j-1/2}\geqslant 0\), then
$$\begin{aligned} \Lambda ^{+}_{i-1/2,j} =\Lambda ^{-}_{i,j+1/2} = \min \left( 1,\frac{\Gamma _{i,j}}{ p_{i-1/2,j}+q_{i,j+1/2}}\right) ,\quad \Lambda ^{-}_{i+1/2,j} = \Lambda ^{+}_{i,j-1/2} = 1. \end{aligned}$$ -
(x)
If \(p_{i+1/2,j}\geqslant 0\), \(p_{i-1/2,j}<0\), \(q_{i,j+1/2}\geqslant 0\), and \(q_{i,j-1/2}<0\), then
$$\begin{aligned} \Lambda ^{+}_{i-1/2,j} =\Lambda ^{+}_{i,j-1/2} = \min \left( 1,\frac{\Gamma _{i,j}}{ p_{i-1/2,j}+q_{i,j-1/2}}\right) ,\quad \Lambda ^{-}_{i+1/2,j} =\Lambda ^{-}_{i,j+1/2} = 1. \end{aligned}$$ -
(xi)
If \(p_{i+1/2,j}\geqslant 0\), \(p_{i-1/2,j}\geqslant 0\), \(q_{i,j+1/2}<0\), and \(q_{i,j-1/2}<0\), then
$$\begin{aligned} \Lambda ^{-}_{i,j+1/2} =\Lambda ^{+}_{i,j-1/2} = \min \left( 1,\frac{\Gamma _{i,j}}{ q_{i,j+1/2}+q_{i,j-1/2}}\right) ,\quad \Lambda ^{-}_{i+1/2,j} =\Lambda ^{+}_{i-1/2,j} = 1. \end{aligned}$$ -
(xii)
If \(p_{i+1/2,j}< 0\), \(p_{i-1/2,j}< 0\), \(q_{i,j+1/2}< 0\), and \(q_{i,j-1/2}\geqslant 0\), then
$$\begin{aligned}&\Lambda ^{-}_{i+1/2,j} =\Lambda ^{+}_{i-1/2,j} \\&\quad =\Lambda ^{-}_{i,j+1/2} = \min \left( 1,\frac{\Gamma _{i,j}}{ p_{i+1/2,j}+p_{i-1/2,j}+q_{i,j+1/2}}\right) ,\quad \Lambda ^{+}_{i,j-1/2} = 1. \end{aligned}$$ -
(xiii)
If \(p_{i+1/2,j}< 0\), \(p_{i-1/2,j}<0\), \(q_{i,j+1/2}\geqslant 0\), and \(q_{i,j-1/2}<0\), then
$$\begin{aligned}&\Lambda ^{-}_{i+1/2,j} =\Lambda ^{+}_{i-1/2,j} =\Lambda ^{+}_{i,j-1/2} \\&\quad = \min \left( 1,\frac{\Gamma _{i,j}}{ p_{i+1/2,j}+p_{i-1/2,j}+q_{i,j-1/2}}\right) ,\quad \Lambda ^{-}_{i,j+1/2} = 1. \end{aligned}$$ -
(xiv)
If \(p_{i+1/2,j}< 0\), \(p_{i-1/2,j}\geqslant 0\), \(q_{i,j+1/2}<0\), and \(q_{i,j-1/2}<0\), then
$$\begin{aligned}&\Lambda ^{-}_{i+1/2,j} =\Lambda ^{-}_{i,j+1/2} =\Lambda ^{+}_{i,j-1/2}\\&\quad = \min \left( 1,\frac{\Gamma _{i,j}}{ p_{i+1/2,j}+q_{i,j+1/2}+q_{i,j-1/2}}\right) ,\quad \Lambda ^{+}_{i-1/2,j} = 1. \end{aligned}$$ -
(xv)
If \(p_{i+1/2,j}\geqslant 0\), \(p_{i-1/2,j}<0\), \(q_{i,j+1/2}<0\), and \(q_{i,j-1/2}<0\), then
$$\begin{aligned}&\Lambda ^{+}_{i-1/2,j} =\Lambda ^{-}_{i,j+1/2} =\Lambda ^{+}_{i,j-1/2} \\&\quad = \min \left( 1,\frac{\Gamma _{i,j}}{ p_{i-1/2,j}+q_{i,j+1/2}+q_{i,j-1/2}}\right) ,\quad \Lambda ^{-}_{i+1/2,j} = 1. \end{aligned}$$ -
(xvi)
If \(p_{i+1/2,j}< 0\), \(p_{i-1/2,j}<0\), \(q_{i,j+1/2}<0\), and \(q_{i,j-1/2}<0\),
-
if (48) is satisfied with \(\theta _{i\pm 1/2,j} = \theta _{i,j\pm 1/2} =1\), then
$$\begin{aligned} \Lambda ^{+}_{i,j-1/2} = \Lambda ^{-}_{i+1/2,j} = \Lambda ^{+}_{i-1/2,j} = \Lambda ^{-}_{i,j+1/2} = 1; \end{aligned}$$ -
else
$$\begin{aligned}&\Lambda ^{-}_{i+1/2,j} = \Lambda ^{+}_{i-1/2,j} = \Lambda ^{-}_{i,j+1/2} = \Lambda ^{+}_{i,j-1/2} = \frac{\Gamma _{i,j}}{ p_{i+1/2,j} + p_{i-1/2,j} + q_{i,j+1/2} + q_{i,j-1/2} }. \end{aligned}$$
-
Rights and permissions
About this article
Cite this article
Liu, Z., Jiang, Y., Zhang, M. et al. High Order Finite Difference WENO Methods for Shallow Water Equations on Curvilinear Meshes. Commun. Appl. Math. Comput. 5, 485–528 (2023). https://doi.org/10.1007/s42967-021-00183-w
Received:
Revised:
Accepted:
Published:
Issue Date:
DOI: https://doi.org/10.1007/s42967-021-00183-w
Keywords
- Shallow water equation
- Well-balanced
- High order accuracy
- WENO scheme
- Curvilinear meshes
- Positivity-preserving limiter