1 Introduction

The shallow water equations have been widely used to model flows in the atmosphere, rivers, lakes and oceans as well as gravity waves in a smaller domain. They are especially suitable to model tides which have very large length scales. In one space dimension, the shallow water equations take the form:

$$\begin{aligned} \left\{ \begin{aligned}&h_t+(hu)_x=0, \\&(hu)_t+(hu^2+\frac{1}{2}gh^2)_x=-ghb_x, \end{aligned} \right. \end{aligned}$$
(1.1)

where h denotes the water height, u is the velocity of the fluid, b is the bottom topography and g is the gravitational constant. The shallow water equations exactly preserve the still water equilibrium:

$$\begin{aligned} u=0\quad \text{ and }\quad h+b=\text{ constant }, \end{aligned}$$
(1.2)

which represents a still flat water surface. The shallow water equations also preserve the general moving water equilibrium:

$$\begin{aligned} m:=hu=\text{ constant }\quad \text{ and }\quad E:=\frac{1}{2}u^2+g(h+b)=\text{ constant }, \end{aligned}$$
(1.3)

where m, E are the moving water equilibrium variables. The still water equilibrium is just a special case of the moving water equilibrium when the velocity equals zero.

The well-balanced schemes are introduced to preserve exactly, at a discrete level, these equilibrium solutions. An important advantage of the well-balanced schemes is that they can accurately resolve small perturbations to such steady state solutions with relatively coarse meshes. Research on well-balanced numerical methods for the shallow water system has attracted many attentions in the past two decades. Researchers have developed many well-balanced schemes for the shallow water equations to preserve the still water equilibrium, e.g. [3, 25, 31, 34, 36, 38,39,40]. Most of the well-balanced methods which preserve the still water equilibrium cannot preserve the moving water equilibrium, and it is significantly more difficult to obtain well-balanced schemes for the moving water equilibrium. Some well-balanced schemes for the moving water equilibrium have been developed, see [8, 10, 21, 27, 30, 31]. In a recent paper [35], Xing designed a well-balanced discontinuous Galerkin (DG) scheme for arbitrary equilibrium of the shallow water equations. The key idea of this paper is a special way to recover the moving water equilibrium. Another important difficulty in solving the shallow water equations is the appearance of dry areas. The water height may become negative near the wet-dry front and may cause the breakdown of numerical simulations. There are some existing work to overcome this difficulty. In [6, 7], the authors cut off the outgoing numerical flux without reducing the global time step to maintain the positivity of the water height. In [11], a hydrostatic reconstruction scheme based on subcell reconstruction is introduced. Many other techniques can be found in [4, 9, 26]. A very popular technique for high order methods is a simple scaling positivity-preserving limiter, which can preserve the high order accuracy without losing local conservation [40].

The well-balanced schemes for shallow water equations were developed for static computational meshes, but in many applications, numerical methods with a deformable moving mesh are desirable for flexibility. In recent years, well-balanced moving mesh methods have been designed within several different frameworks, which preserve the still water equilibrium. In [44, 45], the authors introduced a new interpolation in finite volume methods to remap the flow variables to the new mesh while keeping the well-balanced property and height positive. In [1, 2], finite volume methods has been coupled pre-balanced ALE form of shallow water equations. In [28], space-time discontinuous DG methods on moving meshes and a new weak form were developed to preserve the steady states. A two-step moving mesh DG scheme was presented in [42], where the well-balanced DG methods with hydrostatic reconstruction on static grids and a remapping were coupled. We will choose the arbitrary Lagrangian–Eulerian discontinuous Galerkin (ALE-DG) method developed by Klingenberg et al. [19, 23] in this paper, which maintains mathematical properties of the DG methods on static grids, such as conservation, geometric conservation law (GCL), entropy stability and high order accuracy. Thereinto, the GCL property of the grid deformation method is essential for the development of well-balanced grid deformation schemes for the shallow water equations. It has been shown in [19] that the GCL property of the ALE-DG method can be satisfied for any time discretization methods with the order greater than or equal to the dimension. Thus the modified total variation diminishing Runge–Kutta (TVD-RK) methods has been introduced to guarantee the GCL property in each stage of Runge–Kutta methods for two or higher dimension cases. Besides, by adopting the time-dependent linear affine mapping, the ALE-DG algorithm requires only very mild Lipschitz continuity of the mesh movement function. Moreover, due to the GCL property, We can keep the water height average positive under suitable time steps, which is consistent with the one in DG methods [40] on static grids.

The DG method is a popular high order method for solving hyperbolic conservation laws. It has been developed and analyzed by Cockburn, Shu et al. in a series of papers, e.g. [12,13,14,15,16] and in a review article [33]. Researchers have developed many well-balanced DG schemes for the shallow water equations, e.g. [17, 18, 22, 28, 35, 39, 41], which can be classified as the hydrostatic reconstruction and special source term treatment schemes roughly. But well-balanced DG methods cannot be generalized to ALE-DG methods directly, due to the mesh movement and the time-dependent approximation space. We find that the GCL preserving fully discrete ALE-DG scheme with the modified TVD-RK methods can be adopted to develop high order accurate well-balanced schemes, also based on the techniques of well-balanced schemes on static grids. The main objective of this paper is to develop high-order accurate positivity-preserving well-balanced ALE-DG methods for the shallow water equations. We will describe the algorithms of the methods preserving the still and moving water equilibria and prove the well-balanced property of the schemes. We mainly concentrate on the formulation and show the feasibility of using ALE-DG methods for solving shallow water equations. We remark that the methods of the grid movement is not investigated in this work. The grid movement is prescribed explicitly and not derived from the computed solution in the numerical examples.

The rest of the paper is organized as follows. In Sect. 2, we give some important notations and properties for the ALE-DG method. In Sect. 3, we present the well-balanced ALE-DG methods for the shallow water equations which preserve the still water equilibrium in two space dimensions by adopting the modified TVD-RK time discretization. One-dimensional case is similar. In Sect. 4, we develop the well-balanced ALE-DG scheme for moving water equilibrium. In Sect. 5, we provide numerical examples both for still water equilibrium and moving water equilibrium to verify the well-balanced property, the positivity preserving property and high order accuracy. Finally, we will give some concluding remarks in Sect. 6. All the technical proof details in this paper are shown in “Appendices AB”.

2 Notations

In this section, we present the time-dependent cells and finite element spaces in one and two dimensions respectively.

2.1 Mesh Grids for 1D and Notations

We discretize the computational space domain \(\Omega \) into time-dependent cells. We assume that there are given points \(\left\{ x_{j-\frac{1}{2}}^n\right\} _{j=1}^{N+1}\) at time level \(t^n\) and \(\left\{ x_{j-\frac{1}{2}}^{n+1}\right\} _{j=1}^{N+1}\) at \(t^{n+1}\), such that

$$\begin{aligned} \Omega =\bigcup _{j=1}^{N}\left[ x_{j-\frac{1}{2}}^n,x_{j+\frac{1}{2}}^n\right] ,\quad \Omega =\bigcup _{j=1}^{N}\left[ x_{j-\frac{1}{2}}^{n+1},x_{j+\frac{1}{2}}^{n+1}\right] . \end{aligned}$$

Then we define straight lines connecting \(x_{j-\frac{1}{2}}^n\) and \(x_{j-\frac{1}{2}}^{n+1}\)

$$\begin{aligned} x_{j-\frac{1}{2}}(t):=x_{j-\frac{1}{2}}^n+\omega _{j-\frac{1}{2}}\left( t-t^n\right) ,\,\text{ for }\ t\in \left[ t^n,t^{n+1}\right] , \end{aligned}$$
(2.1)

where

$$\begin{aligned} \omega _{j-\frac{1}{2}}:=\frac{x_{j-\frac{1}{2}}^{n+1}-x_{j-\frac{1}{2}}^n}{t^{n+1}-t^n}. \end{aligned}$$
(2.2)

The straight lines (2.1) provide time-dependent cells \(K_j(t)=\left[ x_{j-\frac{1}{2}}(t),x_{j+\frac{1}{2}}(t)\right] \) at any time \(t\in \left[ t^n,t^{n+1}\right] \). The size of the j-th cell is denoted by

$$\begin{aligned} \Delta _j(t):=x_{j+\frac{1}{2}}(t)-x_{j-\frac{1}{2}}(t). \end{aligned}$$
(2.3)

For any time \(t\in [t^n,t^{n+1}]\) and cell \(K_j(t)\), we define the grid velocity field \(\omega \)

$$\begin{aligned} \omega (x,t)=\omega _{j+\frac{1}{2}}\frac{x-x_{j-\frac{1}{2}}(t)}{\Delta _j(t)}+\omega _{j-\frac{1}{2}}\frac{x_{j+\frac{1}{2}}(t)-x}{\Delta _j(t)}. \end{aligned}$$
(2.4)

We define the following finite dimensional test function space

$$\begin{aligned} {\mathcal {V}}_h(t):=\left\{ \psi \in L^2(\Omega )~\left| ~\,\psi |_{K_j(t)}\in P^k\left( K_j(t)\right) ,\ \forall \ 1\leqslant j\leqslant N\right. \right\} , \end{aligned}$$
(2.5)

where k denotes the polynomial degree and

$$\begin{aligned} \varvec{\Pi }_h(t):=\left\{ (\zeta ,\psi )^T~\left| ~\zeta ,\psi \in {\mathcal {V}}_h(t)\right. \right\} . \end{aligned}$$
(2.6)

For \(\psi \in {\mathcal {V}}_h(t)\), the values at the cell boundaries of \(x_{j+\frac{1}{2}}\) is defined by

$$\begin{aligned} \psi _{j+\frac{1}{2}}^-:=\lim _{\epsilon \rightarrow 0^+}\psi (x-\epsilon ),\quad \psi _{j+\frac{1}{2}}^+:=\lim _{\epsilon \rightarrow 0^+}\psi (x+\epsilon ). \end{aligned}$$
(2.7)

2.2 Mesh Grids for 2D and Notations

Similarly, we present the time-dependent cells in two dimensions. We assume that there exist triangle meshes \({\mathcal {T}}^n=\bigcup _{j=1}^{N}{\mathcal {K}}_j^n\) at time level \(t^n\) and \({\mathcal {T}}^{n+1}=\bigcup _{j=1}^{N}{\mathcal {K}}_j^{n+1}\) at \(t^{n+1}\) which cover the convex polyhedron domain \(\Omega \) such that

$$\begin{aligned} {\overline{\Omega }}=\displaystyle \bigcup _{j=1}^{N}\overline{{\mathcal {K}}_j^n}\quad \text{ and }\quad {\overline{\Omega }}=\displaystyle \bigcup _{j=1}^{N}\overline{{\mathcal {K}}_j^{n+1}}, \end{aligned}$$

and \(\{{\varvec{x}}_j^n\}_{j=1}^M\) and \(\{{\varvec{x}}_j^{n+1}\}_{j=1}^M\) are the mesh grids at time \(t^n\) and \(t^{n+1}\).

We define the straight lines between the points \({\varvec{x}}_j^n\) and \({\varvec{x}}_j^{n+1}\):

$$\begin{aligned} {\varvec{x}}_{j}(t):={\varvec{x}}_{j}^n+(t-t^n)\varvec{\omega }_{j}^n,\quad \varvec{\omega }_{j}^n:=\frac{1}{t^{n+1}-t^n}({\varvec{x}}_{j}^{n+1}-{\varvec{x}}_{j}^{n}). \end{aligned}$$
(2.8)

For each pair of triangles \({\mathcal {K}}_j^n\) and \({\mathcal {K}}_j^{n+1}\), assume \({\varvec{x}}_a^n\), \({\varvec{x}}_b^n\), \({\varvec{x}}_c^n\) are three vertices of \({\mathcal {K}}_j^n\) and \({\varvec{x}}_a^{n+1}\), \({\varvec{x}}_b^{n+1}\), \({\varvec{x}}_c^{n+1}\) are corresponding vertices of \({\mathcal {K}}_j^{n+1}\). We can define the time-dependent triangles by

$$\begin{aligned} {\mathcal {K}}_j(t)=\text{ conv }\{{\varvec{x}}_a(t),\ {\varvec{x}}_b(t),\ {\varvec{x}}_c(t)\}, \end{aligned}$$
(2.9)

where \(\text{ conv }(\cdot )\) denote the convex hull of a set. The area of cell \({\mathcal {K}}_j(t)\) is denoted by \(\Delta _j(t)\).

We then define the grid velocity field \(\varvec{\omega }({\varvec{x}},t)\) for \(t\in [t^n,t^{n+1}]\). We assume that \(\varvec{\omega }\) is a vector with two components: \(\omega _1\), \(\omega _2\). Each component is a piecewise linear polynomial, such that \(\omega _1,\,\omega _2|_{{\mathcal {K}}_j(t)}\in P^1({\mathcal {K}}_j(t))\). In each cell \({\mathcal {K}}_j(t)\), the components \(\omega _1,\,\omega _2\) are defined as follows:

$$\begin{aligned} \left| \begin{array}{cccc} {\varvec{x}}-{\varvec{x}}_a(t) &{} \omega _1({\varvec{x}},t)-\omega _{a,1}^n \\ {\varvec{x}}_b(t)-{\varvec{x}}_a(t) &{} \omega _{b,1}^n-\omega _{a,1}^n \\ {\varvec{x}}_c(t)-{\varvec{x}}_a(t) &{} \omega _{c,1}^n-\omega _{a,1}^n\\ \end{array}\right| =0,\quad \left| \begin{array}{cccc} {\varvec{x}}-{\varvec{x}}_a(t) &{} \omega _2({\varvec{x}},t)-\omega _{a,2}^n \\ {\varvec{x}}_b(t)-{\varvec{x}}_a(t) &{} \omega _{b,2}^n-\omega _{a,2}^n \\ {\varvec{x}}_c(t)-{\varvec{x}}_a(t) &{} \omega _{c,2}^n-\omega _{a,2}^n\\ \end{array}\right| =0.\nonumber \\ \end{aligned}$$
(2.10)

Here \(|\cdot |\) denotes the matrix determinant. \({\varvec{x}}_a^n,{\varvec{x}}_b^n,{\varvec{x}}_c^n\) are the vertexes of cell \({\mathcal {K}}_j(t)\) and \(\varvec{\omega }_a^n,\varvec{\omega }_b^n,\varvec{\omega }_c^n\) are the grid velocity of these vertexes defined in (2.8) respectively. \(\omega _{i,1}^n\), \(\omega _{i,2}^n\) are the two components of \(\varvec{\omega }_i^n\), for \(i=a,b,c\). The equation (2.10) means that for \(i=1,2\), the four points in three dimensional space, \(({\varvec{x}},\omega _i({\varvec{x}},t)),({\varvec{x}}_a,\omega _{a,i}^n),({\varvec{x}}_b,\omega _{b,i}^n),({\varvec{x}}_c,\omega _{c,i}^n)\) coplanar. The two matrices in (2.10) are both 3 by 3 matrices.

We define the following finite dimensional test function space

$$\begin{aligned} {\mathcal {V}}^{2d}_h(t):=\left\{ \psi \in L^2(\Omega )~|~\,\psi |_{{\mathcal {K}}_j(t)}\in P^k({\mathcal {K}}_j(t)),\ \forall \ 1\leqslant j\leqslant N\right\} , \end{aligned}$$
(2.11)

where k denotes the polynomial degree and

$$\begin{aligned} \varvec{\Pi }^{2d}_h(t):=\left\{ (\zeta ,\psi ,\delta )^T~|~ \zeta ,\psi ,\delta \in {\mathcal {V}}^{2d}_h(t)\right\} . \end{aligned}$$
(2.12)

For \(\psi \in {\mathcal {V}}^{2d}_h(t)\), the values on the boundary of a triangle \({\mathcal {K}}\) is defined by

$$\begin{aligned} \psi ^{int}({\varvec{x}}):=\lim _{\epsilon \rightarrow 0^+}\psi ({\varvec{x}}--\epsilon {\varvec{n}}),\quad \psi ^{ext}({\varvec{x}}):=\lim _{\epsilon \rightarrow 0^+}\psi ({\varvec{x}}+\epsilon {\varvec{n}}), \end{aligned}$$
(2.13)

where the vector \({\varvec{x}}\) is any point on the boundary of the triangle \({\mathcal {K}}\) and the vector \({\varvec{n}}\) is the outer normal vector of the triangle \({\mathcal {K}}\) at the point \({\varvec{x}}\).

3 The Well-Balanced ALE-DG Methods for Still Water Equilibrium

In this section, we present the positivity-preserving well-balanced high-order ALE-DG methods for the shallow water equations which preserve the still water equilibrium. According to the previous work in [19, 23], the ALE-DG methods can maintain almost all the mathematical properties of DG methods on static grids, such as conservation, geometric conservation law (GCL), entropy stability, and optimal error estimates. Our well-balanced ALE-DG methods for the still water equilibrium are mainly based on the GCL property on the moving mesh. We will develop two different well-balanced schemes and introduce their well-balanced property and positivity-preserving property in two dimensions. The one-dimensional case is similar to the two-dimensional case.

3.1 Equations

We first write out the shallow water equations in two dimensions:

$$\begin{aligned} \left\{ \begin{aligned}&h_t+(hu)_x+(hv)_y=0, \\&(hu)_t+(hu^2+\frac{1}{2}gh^2)_x+(huv)_y=-ghb_x,\\&(hv)_t+(huv)_x+(hv^2+\frac{1}{2}gh^2)_y=-ghb_y, \end{aligned} \right. \end{aligned}$$
(3.1)

where h represents the water height, (uv) denotes the velocity vector of the fluid, and b is the bottom topography. The still water equilibrium takes the form as follows

$$\begin{aligned} u=0,\quad v=0,\quad h+b=\text{ constant }. \end{aligned}$$
(3.2)

The GCL property means that the numerical scheme can preserve constant states, which fit the still water equilibrium very well. Our motivation is to achieve the well-balanced property by using GCL. The first step is to change the variables from conservative variables

$$\begin{aligned} {\varvec{u}}=(h,hu,hv)^T \end{aligned}$$

to equilibrium variables

$$\begin{aligned} {\varvec{v}}=(\eta ,hu,hv)^T, \text { with } \eta =h+b, \end{aligned}$$

where \(\eta \) denotes the surface level. In this case, the time discretization will not destroy the well-balanced property on the moving mesh. For the ease of presentation, we rewrite the shallow water equations (3.1) as follows:

$$\begin{aligned} {\varvec{v}}_t+{\varvec{f}}({\varvec{v}})_x+{\varvec{h}}({\varvec{v}})_y={\varvec{s}}({\varvec{v}},b), \end{aligned}$$
(3.3)

where

$$\begin{aligned} \begin{aligned}&{\varvec{f}}({\varvec{v}})=\left( \begin{matrix} hu\\ \frac{(hu)^2}{\eta -b}+\frac{1}{2}g(\eta -b)^2\\ \frac{(hu)(hv)}{\eta -b} \end{matrix}\right) ,\; {\varvec{h}}({\varvec{v}})=\left( \begin{matrix} hv\\ \frac{(hu)(hv)}{\eta -b}\\ \frac{(hv)^2}{\eta -b}+\frac{1}{2}g(\eta -b)^2 \end{matrix}\right) ,\\&\quad {\varvec{s}}({\varvec{v}},b) =\left( \begin{matrix} 0\\ -g(\eta -b)b_x\\ -g(\eta -b)b_y \end{matrix}\right) . \end{aligned} \end{aligned}$$

Because \(b({\varvec{x}})\) is independent of t, we can easily prove that the solution for (3.1) is the solution for (3.3). The variables in \({\varvec{v}}\) are constants in the case of the still water equilibrium. We denote the numerical solution still by \({\varvec{v}}\) and numerical bottom topography by b for simplicity.

3.2 The Standard ALE-DG Scheme

3.2.1 The Semi-discrete Scheme

For the shallow water equations (3.3), the semi-discrete ALE-DG scheme is the following: Find \({\varvec{v}}\in \varvec{\Pi }_h^{2d}(t)\), for any \(\varvec{\phi }\in \varvec{\Pi }_h^{2d}(t)\),

$$\begin{aligned} \frac{\mathrm {d}}{\mathrm {d}t}\int \limits _{{\mathcal {K}}_j(t)}{\varvec{v}}\cdot \varvec{\phi }\,\mathrm {d}{\varvec{x}}={\mathcal {L}}_j(\varvec{\omega },{\varvec{v}},\varvec{\phi },t) \end{aligned}$$
(3.4)

with

$$\begin{aligned} {\mathcal {L}}_j(\varvec{\omega },{\varvec{v}},\varvec{\phi },t)=\int \limits _{{\mathcal {K}}_j(t)}{\varvec{G}}(\varvec{\omega },{\varvec{v}})\varvec{:}\nabla \varvec{\phi }\,\mathrm {d}{\varvec{x}}-\int \limits _{\partial {\mathcal {K}}_j(t)}\widehat{{\varvec{G}}}\cdot \varvec{\phi }^{int}\,\mathrm {d}s+\int \limits _{{\mathcal {K}}_j(t)}{\varvec{s}}({\varvec{v}},b)\cdot \varvec{\phi }\,\mathrm {d}{\varvec{x}}, \end{aligned}$$

where

  • The operator \(\varvec{:}\) is defined as follows: \(A\varvec{:}B=\sum \limits _{i,j}a_{ij}b_{ij}\) for any matrices \(A=\left[ a_{ij}\right] \) and \(B=\left[ b_{ij}\right] \in {\mathbb {R}}^{n\times m}\).

  • \(\varvec{\omega }=(\omega _1,\omega _2)^T\) is the grid velocity field defined in (2.10).

  • Flux term \({\varvec{G}}(\varvec{\omega },{\varvec{v}})=({\varvec{f}}({\varvec{v}})-\omega _1 {\varvec{v}},{\varvec{h}}({\varvec{v}})-\omega _2 {\varvec{v}})\).

  • The numerical flux \(\widehat{{\varvec{G}}}=\widehat{{\varvec{G}}}(\varvec{\omega },{\varvec{v}}^{int},{\varvec{v}}^{ext},{\varvec{n}})\) is a monotone flux of \({\varvec{G}}(\varvec{\omega },{\varvec{v}})\). We adopt the Lax-Friedrichs flux [19] in this paper:

    $$\begin{aligned} \widehat{{\varvec{G}}}(\varvec{\omega },{\varvec{v}}^{int},{\varvec{v}}^{ext}, {\varvec{n}})=({\varvec{G}}(\varvec{\omega },{\varvec{v}}^{int})\cdot {\varvec{n}}+{\varvec{G}}(\varvec{\omega },{\varvec{v}}^{ext})\cdot {\varvec{n}}-\alpha ({\varvec{v}}^{ext}-{\varvec{v}}^{int}))/2, \end{aligned}$$
    (3.5)

    where \({\varvec{n}}\) is the outer normal vector, \(\alpha =\max (|((u, v)^T-\varvec{\omega })\cdot {\varvec{n}}|+\sqrt{gh})\) and the maximum is taken in the relevant domain.

3.2.2 The Runge–Kutta Time Discretization

In this paper, we will adopt the total variation diminishing Runge–Kutta (TVD-RK) time discretization method [20, 32]. The time discretization for moving mesh is slightly different with the static mesh, since the test functions will change over time. We first introduce the relationship between the test functions at different time level.

We define the following time-dependent linear mapping, for any interval \(K_j(t)\):

$$\begin{aligned} {\mathcal {X}}_j:[0,1]^2\rightarrow {\mathcal {K}}_j(t),\quad {\mathcal {X}}_j(\varvec{\xi },t)={\varvec{A}}_{{\mathcal {K}}_j(t)}\varvec{\xi }+{\varvec{x}}_{{\mathcal {K}}_j(t),a}, \end{aligned}$$
(3.6)

where the matrix \({\varvec{A}}_{{\mathcal {K}}_j(t)}\) is given by

$$\begin{aligned} {\varvec{A}}_{{\mathcal {K}}_j(t)}:=\left( {\varvec{x}}_{{\mathcal {K}}_j(t),b}-{\varvec{x}}_{{\mathcal {K}}_j(t),a},{\varvec{x}}_{{\mathcal {K}}_j(t),c}-{\varvec{x}}_{{\mathcal {K}}_j(t),a}\right) , \end{aligned}$$
(3.7)

and \({\varvec{x}}_{{\mathcal {K}}_j(t),a}\), \({\varvec{x}}_{{\mathcal {K}}_j(t),b}\), \({\varvec{x}}_{{\mathcal {K}}_j(t),c}\) are the three vertexes of cell \({\mathcal {K}}_j(t)\). Then we define corresponding basis functions. For time t, \({\hat{t}}\in [t^n, t^{n+1}]\), we call \(\phi \in {\mathcal {V}}_h(t)\), \({\hat{\phi }}\in {\mathcal {V}}_h({\hat{t}})\) are corresponding basis functions, if they satisfy that

$$\begin{aligned} {\hat{\phi }}({\mathcal {X}}_j(\varvec{\xi },{\hat{t}}))=\phi ({\mathcal {X}}_j(\varvec{\xi },t)),\quad \forall \varvec{\xi }\in [0,1]^2. \end{aligned}$$
(3.8)

Now, we write the third order TVD-RK method [32] as follows:

$$\begin{aligned} \int \limits _{{\mathcal {K}}_j^{n,1}}{\varvec{v}}^{n,1}\cdot \varvec{\phi }^{n,1}\mathrm {d}{\varvec{x}}=&\int \limits _{{\mathcal {K}}_j^n}{\varvec{v}}^n\cdot \varvec{\phi }^n\mathrm {d}{\varvec{x}}+\Delta t\,{\mathcal {L}}_j\left( \varvec{\omega }^n,{\varvec{v}}^n,\varvec{\phi }^n,t^n\right) , \end{aligned}$$
(3.9)
$$\begin{aligned} \int \limits _{{\mathcal {K}}_j^{n,2}}{\varvec{v}}^{n,2}\cdot \varvec{\phi }^{n,2}\mathrm {d}{\varvec{x}}=&\frac{3}{4}\int \limits _{{\mathcal {K}}_j^n}{\varvec{v}}^n\cdot \varvec{\phi }^n\mathrm {d}{\varvec{x}} \nonumber \\&+\frac{1}{4}\left( \int \limits _{{\mathcal {K}}_j^{n,1}}{\varvec{v}}^{n,1}\cdot \varvec{\phi }^{n,1}\mathrm {d}{\varvec{x}}+\Delta t\,{\mathcal {L}}_j\left( \varvec{\omega }^{n,1},{\varvec{v}}^{n,1},\varvec{\phi }^{n,1},t^{n,1}\right) \right) , \end{aligned}$$
(3.10)
$$\begin{aligned} \int \limits _{{\mathcal {K}}_j^{n+1}}{\varvec{v}}^{n+1}\cdot \varvec{\phi }^{n+1}\mathrm {d}{\varvec{x}}=&\frac{1}{3}\int \limits _{{\mathcal {K}}_j^n}{\varvec{v}}^n\cdot \varvec{\phi }^n\mathrm {d}{\varvec{x}}\nonumber \\&+\frac{2}{3}\left( \int \limits _{{\mathcal {K}}_j^{n,2}}{\varvec{v}}^{n,2}\cdot \varvec{\phi }^{n,2}\mathrm {d}{\varvec{x}}+\Delta t\,{\mathcal {L}}_j\left( \varvec{\omega }^{n,2},{\varvec{v}}^{n,2},\varvec{\phi }^{n,2},t^{n,2}\right) \right) , \end{aligned}$$
(3.11)

where \({\mathcal {K}}_j^{n,1}={\mathcal {K}}_j^{n+1}={\mathcal {K}}_j(t^{n+1})\), \({\mathcal {K}}_j^{n,2}={\mathcal {K}}_j(\frac{t^n+t^{n+1}}{2})\); \(\varvec{\phi }^{n,1}\), \(\varvec{\phi }^{n+1}\), \(\varvec{\phi }^n\) and \(\varvec{\phi }^{n,2}\) are equivalent in the sense of basis functions defined in (3.8). The spatial discretization \({\mathcal {L}}_j\) is defined in (3.4). Usually, it is obvious that the scheme (3.4) combined with (3.9)–(3.11) can not keep the well-balanced property. We need to have more treatments and will introduce two well-balanced schemes for the still water equilibrium below.

3.3 The Well-Balanced Semi-discrete ALE-DG Schemes

In this subsection, we will introduce the well-balanced modifications based on the standard ALE-DG scheme (3.4). We will introduce two different schemes in this subsection and show their properties in the following subsections.

3.3.1 The Semi-discrete ALE-DG Scheme with Hydrostatic Reconstruction

The semi-discrete scheme is the following: Find \({\varvec{v}}\in \varvec{\Pi }^{2d}_h(t)\), for any \(\varvec{\phi }\in \varvec{\Pi }^{2d}_h(t)\),

$$\begin{aligned} \frac{\mathrm {d}}{\mathrm {d}t}\int \limits _{{\mathcal {K}}_j(t)}{\varvec{v}}\cdot \varvec{\phi }\,\mathrm {d}{\varvec{x}}={\mathcal {L}}^{h}_j(\varvec{\omega },{\varvec{v}},\varvec{\phi },t) \end{aligned}$$
(3.12)

with

$$\begin{aligned} {\mathcal {L}}^{h}_j(\varvec{\omega },{\varvec{v}},\varvec{\phi },t)=\int \limits _{{\mathcal {K}}_j(t)}{\varvec{G}}(\varvec{\omega },{\varvec{v}})\varvec{:}\nabla \varvec{\phi }\,\mathrm {d}{\varvec{x}}-\int \limits _{\partial {\mathcal {K}}_j(t)}\widehat{{\varvec{G}}}^*\cdot \varvec{\phi }^{int}\mathrm {d}s+\int \limits _{{\mathcal {K}}_j(t)}{\varvec{s}}({\varvec{v}},b)\cdot \varvec{\phi }\,\mathrm {d}{\varvec{x}}, \end{aligned}$$

where

  • The well-balanced numerical flux is given by

    $$\begin{aligned} \begin{aligned} \widehat{{\varvec{G}}}^*=&\widehat{{\varvec{G}}}(\varvec{\omega },{\varvec{v}}^{*,int},{\varvec{v}}^{*,ext},{\varvec{n}})\\&+\left( \begin{aligned} \frac{1}{2}(\varvec{\omega }\cdot {\varvec{n}}-\alpha )(\eta ^{*,int}-\eta ^{int})&+\frac{1}{2}(\varvec{\omega }\cdot {\varvec{n}}+\alpha )(\eta ^{*,ext}-\eta ^{ext})\\ (\frac{g}{2}(\eta ^{int}-b^{int})^2&-\frac{g}{2}(h^{*,int})^2)n_1\\ (\frac{g}{2}(\eta ^{int}-b^{int})^2&-\frac{g}{2}(h^{*,int})^2)n_2 \end{aligned} \right) , \end{aligned} \end{aligned}$$
    (3.13)

    where \(\widehat{{\varvec{G}}}(\varvec{\omega },{\varvec{v}}^{int},{\varvec{v}}^{ext},{\varvec{n}})\) is defined in (3.5) and \({\varvec{n}}=(n_1,n_2)^T\) is the outer normal vector.

  • \({\varvec{v}}^{*,int/ext}\) and \(h^{*,int/ext}\) are the modified cell boundary values given by

    $$\begin{aligned} \begin{aligned} {\varvec{v}}^{*,int}&=(h^{*,int}+b^{int},(hu)^{int},(hv)^{int})^T,\\ {\varvec{v}}^{*,ext}&=(h^{*,ext}+b^{ext},(hu)^{ext},(hv)^{ext})^T,\\ h^{*,int}&=\max (0,\eta ^{int}-\max (b^{int},b^{ext})),\\ h^{*,ext}&=\max (0,\eta ^{ext}-\max (b^{int},b^{ext})). \end{aligned} \end{aligned}$$
    (3.14)

We note that we change the definition of numerical flux (3.13) in well-balanced scheme (3.12) compared with (3.4).

3.3.2 The Semi-discrete ALE-DG Scheme with Special Source Term Treatment

The ALE-DG scheme with special source term treatment is defined in the following form: find \({\varvec{v}}\in \varvec{\Pi }^{2d}_h(t)\), for any \(\varvec{\phi }=(\zeta ,\psi ,\delta )^T\in \varvec{\Pi }^{2d}_h(t)\),

$$\begin{aligned} \frac{\mathrm {d}}{\mathrm {d}t}\int \limits _{{\mathcal {K}}_j(t)}{\varvec{v}}\cdot \varvec{\phi }\,\mathrm {d}{\varvec{x}}={\mathcal {L}}^{s}_j(\varvec{\omega },{\varvec{v}},\varvec{\phi },t) \end{aligned}$$
(3.15)

with

$$\begin{aligned} {\mathcal {L}}^{s}_j(\varvec{\omega },{\varvec{v}},\varvec{\phi },t)=\int \limits _{{\mathcal {K}}_j(t)}{\varvec{G}}(\varvec{\omega },{\varvec{v}})\varvec{:}\nabla \varvec{\phi }\,\mathrm {d}{\varvec{x}}-\int \limits _{\partial {\mathcal {K}}_j(t)}\widehat{{\varvec{G}}}(\varvec{\omega },{\varvec{v}}^{int},{\varvec{v}}^{ext},{\varvec{n}})\cdot \varvec{\phi }^{int}\,\mathrm {d}s+s_j+r_j, \end{aligned}$$

where \(s_j\) denotes the approximation of the source term \(\int _{{\mathcal {K}}_j(t)}-ghb_x\psi \mathrm {d}{\varvec{x}}\) and \(r_j\) denotes the approximation of the source term \(\int _{{\mathcal {K}}_j(t)}-ghb_y\delta \mathrm {d}{\varvec{x}}\). They are defined as follows:

$$\begin{aligned} \begin{aligned} s_j=&\int \limits _{\partial {\mathcal {K}}_j(t)}\frac{1}{2}g\widetilde{b^2}\psi ^{int}\,\mathrm {d}s-\int \limits _{{\mathcal {K}}_j(t)}\frac{1}{2}gb^2\psi _x\,\mathrm {d}{\varvec{x}}\\&-g{\overline{\eta }}_j\left( \int \limits _{\partial {\mathcal {K}}_j(t)}{\widetilde{b}}\psi ^{int}\,\mathrm {d}s-\int \limits _{{\mathcal {K}}_j(t)}b\psi _x\,\mathrm {d}{\varvec{x}}\right) -\int \limits _{{\mathcal {K}}_j(t)}g(\eta -{\overline{\eta }}_j)b_x\psi \,\mathrm {d}{\varvec{x}}, \end{aligned} \end{aligned}$$
(3.16)
$$\begin{aligned} \begin{aligned} r_j=&\int \limits _{\partial {\mathcal {K}}_j(t)}\frac{1}{2}g\widetilde{b^2}\delta ^{int}\,\mathrm {d}s-\int \limits _{{\mathcal {K}}_j(t)}\frac{1}{2}gb^2\delta _y\,\mathrm {d}{\varvec{x}}\\&-g{\overline{\eta }}_j\left( \int \limits _{\partial {\mathcal {K}}_j(t)}{\widetilde{b}}\delta ^{int}\,\mathrm {d}s-\int \limits _{{\mathcal {K}}_j(t)}b\delta _y\,\mathrm {d}{\varvec{x}}\right) -\int \limits _{{\mathcal {K}}_j(t)}g(\eta -{\overline{\eta }}_j)b_y\delta \,\mathrm {d}{\varvec{x}}, \end{aligned} \end{aligned}$$
(3.17)

where the notations are defined by

$$\begin{aligned} \bar{\eta }_j=\frac{1}{|{{\mathcal {K}}}_j(t)|}\int \limits _{{{\mathcal {K}}}_j(t)}\eta \,\mathrm {d}{\varvec{x}},\quad {\widetilde{b}}=\frac{b^{int}+b^{ext}}{2}, \quad \widetilde{b^2}=\frac{(b^{int})^2+(b^{ext})^2}{2}. \end{aligned}$$

Compared with (3.4), we note that we change the definition of the source term approximation \(\int _{{\mathcal {K}}_j(t)}{\varvec{s}}({\varvec{v}},b)\cdot \varvec{\phi }\,\mathrm {d}{\varvec{x}}\) to \(s_j+r_j\) in well-balanced scheme (3.15).

3.3.3 Well-Balanced Property for Semi-discrete Schemes

For the well-balanced semi-discrete schemes (3.12) and (3.15), we have the following lemma as key of the well-balanced property.

Lemma 3.1

If \({\varvec{v}}\) is equal to the still water equilibrium, then the semi-discrete ALE-DG schemes (3.12) in Sect. 3.3.1 and (3.15) in Sect. 3.3.2 can both be simplified to

$$\begin{aligned} \frac{d}{dt}\int \limits _{{\mathcal {K}}_j(t)}{\varvec{v}}\cdot \varvec{\phi }\,\mathrm {d}{\varvec{x}}=\int \limits _{{\mathcal {K}}_j(t)}(\nabla \cdot (\varvec{\omega }\otimes {\varvec{v}}))\cdot \varvec{\phi }\,\mathrm {d}{\varvec{x}}, \end{aligned}$$
(3.18)

where \(\otimes \) is the tensor product such that \(\varvec{\omega }\otimes {\varvec{v}}=\left( \begin{matrix} \omega _1{\varvec{v}}&\omega _2{\varvec{v}} \end{matrix}\right) \) and

$$\begin{aligned} \nabla \cdot (\varvec{\omega }\otimes {\varvec{v}})=(\omega _1{\varvec{v}})_x+(\omega _2{\varvec{v}})_y. \end{aligned}$$
(3.19)

In order to show the main idea of the proofs, the one-dimensional cases for schemes (3.12) and (3.15) are given in “Appendices A.1 and A.2” respectively. The two-dimensional case is similar and we omit the corresponding proof in two dimensions.

3.4 The Fully Discrete Schemes and Well-Balanced Property

For the DG schemes on static grids, usually Lemma 3.1 indicate the well-balanced property of the corresponding fully-discrete schemes. But for the ALE-DG schemes, this is not the case. The schemes need the property so-called geometric conservation law (GCL) to maintain the well-balanced property in the temporal discretization.

The GCL is an important property to keep high order accuracy for the grid deformation method. We introduce the GCL briefly and refer [23] for details. If a method satisfies the GCL, that means it can preserve the constant states. In one dimension, [23] proved that for the ALE-DG method for conservation laws, semi-discrete ALE-DG scheme satisfies the GCL and the fully discrete scheme with TVD-RK methods (3.9)-(3.11) satisfies discrete geometric conservation law (dGCL). In two dimensions, a modified TVD-RK methods was presented in [19], where each equation of (3.9)–(3.11) adds a coefficient shown in [19]. For example, the Euler forward time discretization in two dimensions is given as follows

$$\begin{aligned} \beta \frac{|{\mathcal {K}}_j^n|}{|{\mathcal {K}}_j^{n+1}|}\int \limits _{{\mathcal {K}}_j^{n+1}}{\varvec{v}}^{n+1}\cdot \varvec{\phi }^{n+1}\,\mathrm {d}{\varvec{x}}=\int \limits _{{\mathcal {K}}_j^n}{\varvec{v}}^n\cdot \varvec{\phi }^n\,\mathrm {d}{\varvec{x}}+\Delta t\,{\mathcal {L}}_j(\varvec{\omega }^n,{\varvec{v}}^n,\varvec{\phi }^n,t^n), \end{aligned}$$
(3.20)

where \(\beta =1+\Delta t(\nabla \cdot \varvec{\omega }^n)\) and \(|{\mathcal {K}}|\) represent the area of the cell \({\mathcal {K}}\). In one dimension, we note that (3.20) and the standard Euler forward scheme are the same, since coefficient

$$\begin{aligned} \beta \frac{|K_j^n|}{|K_j^{n+1}|}=(1+\Delta t\omega ^n_x)\frac{x_{j+\frac{1}{2}}^n-x_{j-\frac{1}{2}}^n}{x_{j+\frac{1}{2}}^{n+1}-x_{j-\frac{1}{2}}^{n+1}}=\left( 1+\Delta t\frac{\omega _{j+\frac{1}{2}}^n-\omega _{j-\frac{1}{2}}^n}{x_{j+\frac{1}{2}}^n-x_{j-\frac{1}{2}}^n}\right) \frac{x_{j+\frac{1}{2}}^n-x_{j-\frac{1}{2}}^n}{x_{j+\frac{1}{2}}^{n+1}-x_{j-\frac{1}{2}}^{n+1}}=1. \end{aligned}$$

The second equality is due to (2.4) and the third equality is due to (2.2). For the modified TVD-RK methods, the fully discrete scheme has the dGCL property and we refer [19] for its proof.

For the shallow water equations, which are conservation laws with source terms, we adopt the modified TVD-RK method in [19] and similar dGCL property can be proved for ALE-DG methods. This is essential for our proof about the well-balanced property. We show the well-balanced property of the fully-discrete ALE-DG scheme with the Euler forward discretization (3.20) and the well-balanced property about the modified TVD-RK methods is the same.

Proposition 3.2

The semi-discrete ALE-DG schemes (3.12) and (3.15) coupled with the Euler forward scheme (3.20) maintain the still water equilibrium (3.2) exactly.

The main idea of the proof for Proposition 3.2 in one dimension is shown in “Appendix A.3”. The proof in two dimensions is similar and we omit the details for simplicity.

Remark 3.3

Spurious oscillations can occur in numerical solutions of ALE-DG methods when the solution contains discontinuities, so a slope limiter is needed after each time stage of TVD-RK methods. We use the total variation bounded (TVB) limiter presented in [40]. Such limiter on static mesh still works well on moving meshes for ALE-DG methods. Since we have changed the variables of the shallow water equations from \({\varvec{u}}\) to \({\varvec{v}}\) and \({\varvec{v}}\) equals constants for still water equilibrium, so the TVB limiter won’t destroy the well-balanced property.

3.5 The Approximation of the Bottom Topography and Mass Conservation

We haven’t discussed the choice of the bottom topography b in our proposed schemes. Actually, different approximations of the bottom topography won’t affect the well-balanced property but may affect the mass conservation or the positivity-preserving property. We discuss how to choose the approximations of the bottom topography and the mass conservation property in this subsection and the positivity-preserving property will be introduced in the next subsection.

There are some different choices for the approximations of the bottom topography and in [1] has some discussion about it. Two main choices are:

  1. 1.

    \(b\in {\mathcal {V}}_h(t)\) is the \(L^2\) projection of the exact bottom topography.

  2. 2.

    Use the ALE-DG method to remap b on moving meshes, which means that according to equation \(b_t=0\), find \(b\in {\mathcal {V}}_h(t)\), for any \(\delta \in {\mathcal {V}}_h(t)\),

    $$\begin{aligned} \frac{\mathrm {d}}{\mathrm {d}t}\int \limits _{{\mathcal {K}}_j(t)}b\delta \,\mathrm {d}{\varvec{x}}=-\int \limits _{{\mathcal {K}}_j(t)}\varvec{\omega } b\cdot \nabla \delta \,\mathrm {d}{\varvec{x}}+\int \limits _{\partial {\mathcal {K}}_j(t)}\widehat{\varvec{\omega } b}\delta ^{int}\,\mathrm {d}s, \end{aligned}$$
    (3.21)

    where \(\widehat{\varvec{\omega } b}\) is the numerical flux based on our numerical schemes. In this work, based on the Lax-Friedrichs flux, we set

    $$\begin{aligned} \widehat{\varvec{\omega } b}=(\varvec{\omega }(b^{int}+b^{ext})\cdot {\varvec{n}}+\alpha (b^{ext}-b^{int}))/2, \end{aligned}$$
    (3.22)

    where we take the same \(\alpha \) in (3.5). We note that (3.21) is semi-discrete scheme, and we choose the same time discretization as \({\varvec{v}}\), i.e. the modified TVD-RK methods in [19].

The first approach is shown in [1] and is thought to be more accurate than the second approach for bottom topography in poor condition. But the first approach don’t have the exactly mass conservation, which means that an accuracy enough integration quadrature must be adopted in computations and don’t have the weak positivity property, which is essential for the robustness of schemes and will be introduced in the next subsection.

We claim that our proposed well-balanced ALE-DG schemes have mass conservation coupled with the numerical bottom. First, we claim that the numerical flux of \(\eta \) is single-valued. This is obvious true for the scheme (3.15) and also true for the scheme (3.12) according to the discussion in (A.3), which means that the scheme (3.12) has single-valued numerical flux for \(\eta \). So we have that our proposed schemes conserve the surface level \(\eta =h+b\). If our schemes conserve the bottom topography b, we can conclude that our schemes have mass conservation. This is obvious true for the scheme (3.21) of b with single-valued numerical flux.

3.6 Positivity-Preserving Property and Limiter

A simple positivity-preserving limiter has been proposed and implemented for the shallow water equations in [40] for the DG method. Such a limiter can keep the water height non-negative under suitable time step size and preserve the local conservation and does not affect the high-order accuracy. The basis of such limiter is a weak positivity property satisfied by the cell average of the water height. In our work, we will show how to couple this limiter with our proposed schemes in one dimension and the two-dimensional case is similar.

We begin with the quadrature rules. Let \(\{{\hat{x}}_j^{(\nu )}\}_{1\le \nu \le L}\) be the Gauss-Lobatto nodes in the interval \(K_j^n\), and \(\{{\hat{\omega }}_\nu \}_{1\le \nu \le L}\) be the associated quadrature weight satisfying

$$\begin{aligned} \sum _{\nu =1}^{L}{\hat{\omega }}_\nu =1, \quad {\hat{\omega }}_1={\hat{\omega }}_L=\frac{1}{L(L-1)}, \text { with }L\ge (k+3)/2. \end{aligned}$$
(3.23)

We note that such quadrature rule is only used for the following proof and we denote the set of quadrature points by

$$\begin{aligned} {\mathbb {S}}_{K_j^n}=\{{\hat{x}}_j^{(\nu )},\,\nu =1,\ldots ...,L\}. \end{aligned}$$
(3.24)

3.6.1 The Weak Positivity Property for the Well-Balanced Schemes

We will show the weak positivity property of our schemes (3.12) and (3.15) combined with the Euler forward time discretization (3.20) and the property for the high-order TVD-RK methods are similar with it.

Theorem 3.4

If \(\forall x\in {\mathbb {S}}_{K_j^n}\), \(\eta _j^n(x)-b_j^n(x)>0\) holds, we have

$$\begin{aligned} {\bar{\eta }}_j^{n+1}>{\bar{b}}_j^{n+1}, \end{aligned}$$

for both two schemes (3.12) and (3.15) with the Euler forward discretization (3.20) under the CFL-type condition

$$\begin{aligned} \hat{\alpha _0}\Delta t<\Delta _j^n, \end{aligned}$$
(3.25)

with

$$\begin{aligned} {\hat{\alpha }}_0&=\frac{\alpha }{{\hat{\omega }}_1}, \end{aligned}$$

where \(\alpha \) is the parameter adopted in the Lax-Friedrichs flux (3.5) and \(\hat{\omega _1}\) is the quadrature weight in (3.23).

The proof of Theorem 3.4 is shown in “Appendix A.4”.

3.6.2 The Positivity-Preserving Limiter

For this part, we mainly refer the results in [40]. Since our numerical methods satisfy the weak positivity property in Theorem 3.4, we can apply a simple scaling limiter to make the values of height at points \(x\in {\mathbb {S}}_{K_j^n}\) positive. We assume \({\bar{h}}_j^n>0\), then the scaling limiter is given by

$$\begin{aligned} {\tilde{h}}_j^n(x)=\Theta (h_j^n-{\bar{h}}_j^n)+{\bar{h}}_j^n,\quad \Theta =\min \left( 1,\frac{{\bar{h}}_j^n-\epsilon }{{\bar{h}}_j^n-\min _{x\in {\mathbb {S}}_{K_j^n}}h_j^n(x)}\right) . \end{aligned}$$

where \(\epsilon \) is sufficiently small positive numbers to avoid the effect of the round-off error, for example \(\epsilon =\min (10^{-11},{\bar{h}}_j^n)\). Now we get \({\tilde{h}}_j^n(x)>0\) for \(x\in {\mathbb {S}}_{K_j^n}\).

We note that, to preserve the still water equilibrium, we do not change the surface level \(\eta \). We use the idea in [42] and update the bottom \(b_j^n(x)\) by

$$\begin{aligned} {\tilde{b}}_j^n(x)=\eta _j^n(x)-{\tilde{h}}_j^n(x). \end{aligned}$$
(3.26)

Such an approach can preserve the still water equilibrium and keep the water height positive at the same time.

4 The Well-Balanced ALE-DG Method for Moving Water Equilibrium

In this section, we will present the well-balanced ALE-DG scheme for the moving water equilibrium. Since there is no general form of the moving water equilibrium states in two dimensions, we only discuss about the one-dimensional case (1.1) in this paper. For the ease of presentation, we denote the shallow water equations (1.1) as follows:

$$\begin{aligned} {\varvec{u}}_t+{\varvec{f}}({\varvec{u}})_x={\varvec{s}}({\varvec{u}},b), \end{aligned}$$
(4.1)

where

$$\begin{aligned} {\varvec{f}}({\varvec{u}})= & {} \left( \begin{matrix} hu \\ \frac{(hu)^2}{h}+\frac{1}{2}gh^2 \end{matrix} \right) , \end{aligned}$$
(4.2)
$$\begin{aligned} {\varvec{s}}({\varvec{u}},b)= & {} \left( \begin{matrix} 0 \\ -ghb_x \end{matrix} \right) . \end{aligned}$$
(4.3)

The numerical solution is still denoted by \({\varvec{u}}\) with an abuse of notation. Since the mesh grids are moving with time, it is difficult to preserve the moving water equilibrium. In [35], a well-balanced DG scheme has been developed based on hydrostatic reconstruction. Such approach can’t extend to ALE-DG methods directly. Standard TVD-RK time discretization can’t preserve the moving water equilibrium and conserve the mass at the same time. Inspired by the work on the well-balanced scheme for Euler equations with explicitly given equilibrium state in [24], we proposed a well-balanced ALE-DG scheme for moving water equilibrium.

4.1 Preliminary Preparation

4.1.1 Relation Between Conservative and Equilibrium Variables

The variables \({\varvec{u}}=(h,hu)^T\) are called conservative variables and the equilibrium variables \({\varvec{v}}\) for moving water are defined as follows:

$$\begin{aligned} {\varvec{v}}=(E,m)^T=\left( \frac{1}{2}u^2+g(h+b),hu\right) ^T. \end{aligned}$$
(4.4)

For the still water case, the transformation between \({\varvec{u}}\) and \({\varvec{v}}\) is linear. But the transform functions are nonlinear and complicated for the moving water case. It is necessary to find the exactly transform functions between \({\varvec{u}}\) and \({\varvec{v}}\).

  • Given \({\varvec{u}}\) and the bottom function b, the value of \({\varvec{v}}\) can be computed directly. We denote this transform function by \({\varvec{v}}={\varvec{V}}({\varvec{u}},b)\).

  • Given \({\varvec{v}}\) and the bottom function b, the value of \({\varvec{u}}\) can not be computed directly. We mainly follow the idea presented in [35] and present the main idea as follows.

If \(m=0\), the solution is trivial. Next, we assume that \(m\ne 0\). From (4.4), we have

$$\begin{aligned} E=\frac{m^2}{2h^2}+g(h+b). \end{aligned}$$
(4.5)

Thus we have

$$\begin{aligned} 2gh^3-2(E-gb)h^2+m^2=0. \end{aligned}$$
(4.6)

This is a cubic polynomial of h with coefficients determined by \({\varvec{v}}\).

We use the Cardan formula to get three roots for the polynomial. If

$$\begin{aligned} E\geqslant \frac{3}{2}(g|m|)^\frac{2}{3}+gb, \end{aligned}$$

we can claim that there are two real roots greater than zero and one real root less then zero. By using this result, we can compute \({\varvec{u}}\) exactly. We denote the two real roots greater than zero by \(r_1\) and \(r_2\), and assume that \(r_1\leqslant r_2\) without loss of generality.

We define the Froude number Fr and the sign function \(\sigma \):

$$\begin{aligned} Fr:=|u|/\sqrt{gh}, \quad \sigma :=\text{ sign }(Fr-1). \end{aligned}$$
(4.7)

Then we introduce the three different flow states

  • sonic flow: \(\sigma =0\), \(h=r_1=r_2\);

  • subsonic flow: \(\sigma <0\), \(h=r_2\);

  • supersonic flow: \(\sigma >0\), \(h=r_1\).

Finally we get the following lemma.

Lemma 4.1

( [35]) We assume that \({\varvec{v}}\) and b are given suitably such that

$$\begin{aligned} E\geqslant \frac{3}{2}(g|m|)^\frac{2}{3}+gb. \end{aligned}$$

If we also know the flow state (sonic, sub- or supersonic), then we can compute the unique solution h exactly. We denote this transform function by \(h=H({\varvec{u}},b,\sigma )\).

We denote the transform function \({\varvec{u}}={\varvec{U}}({\varvec{v}},b,\sigma )=\left( H({\varvec{v}},b,\sigma ),m\right) ^T\).

4.1.2 Definition of Well-Balanced Property on Moving Meshes

Since the meshes are moving with time, the numerical solution must become different with different meshes. So it’s hard to define the well-balanced property on moving meshes. We assume that the desired moving water equilibrium is explicitly given and is denoted by \({\varvec{u}}^d\). We note that such equilibrium states can be obtained according to Sect. 4.1.1 by giving \(({\varvec{v}},b,\sigma )\). Set \({\varvec{u}}^e\) as an approximation of \({\varvec{u}}^d\), which is independent of the flux term and source term of the shallow water equations. For example, the \(L^2\) projection of \({\varvec{u}}^d\) is a choice that meet the conditions. We define the well-balanced property on moving meshes as: if the numerical solution \({\varvec{u}}\) equals \({\varvec{u}}^e\) for all time \(t\ge 0\), we call that the scheme can preserve the moving water equilibrium. Such a definition is reasonable and in our numerical examples in Sect. 5, our proposed scheme can capture the small perturbation to the moving water equilibrium well. Like the still water equilibrium case, considering the mass conservation and the positivity-preserving property, we define \({\varvec{u}}^e\) by using the ALE-DG scheme of \(({\varvec{u}}^d)_t\) instead of \(L^2\) projection in our proposed scheme, which is introduced as follow:

For initialization, we define \({\varvec{u}}^{e,0}=P{\varvec{u}}^d\in \varvec{\Pi }_h(0)\). The way to update \({\varvec{u}}^e\) is by using the ALE-DG scheme of \({\varvec{u}}^e_t=0\): Find \({\varvec{u}}^e\in \varvec{\Pi }_h(t)\), for any \(\varvec{\delta }\in \varvec{\Pi }_h(t)\),

$$\begin{aligned} \frac{\mathrm {d}}{\mathrm {d}t}\int \limits _{K_j(t)}{\varvec{u}}^e\cdot \varvec{\delta }\mathrm {d}x=\widehat{\omega {\varvec{u}}^e}_{j+\frac{1}{2}}\cdot \varvec{\delta }_{j+\frac{1}{2}}^--\widehat{\omega {\varvec{u}}^e}_{j-\frac{1}{2}}\cdot \varvec{\delta }_{j-\frac{1}{2}}^+-\int \limits _{K_j(t)}\omega {\varvec{u}}^e\cdot \varvec{\delta }_x\mathrm {d}x, \end{aligned}$$
(4.8)

where \(\widehat{\omega {\varvec{u}}^e}\) is the numerical flux, which is given by

$$\begin{aligned} \widehat{\omega {\varvec{u}}^e}=\omega {\varvec{u}}^d. \end{aligned}$$
(4.9)

We note that \(\widehat{\omega {\varvec{u}}^e}=0\) at the cell boundary when \({\varvec{u}}^d\) is discontinuous, since we assume that the mesh grids must locate exactly at the discontinuity and won’t move i.e. \(\omega =0\).

4.1.3 Hydrostatic Reconstruction

We will use the idea of hydrostatic reconstruction [35] to modify numerical fluxes. First, we define \({\varvec{u}}^r\) by

$$\begin{aligned} {\varvec{u}}^r={\varvec{u}}-{\varvec{u}}^e\in \varvec{\Pi }_h(t). \end{aligned}$$
(4.10)

We can think that \({\varvec{u}}\) is divided into two parts, \({\varvec{u}}^e\) in (4.8) and \({\varvec{u}}^r\). \({\varvec{u}}^e\) represents the equilibrium part and \({\varvec{u}}^r\) denotes the residue part, which means that if \({\varvec{u}}_{ex}\) is in equilibrium state, we have \({\varvec{u}}={\varvec{u}}^e\) and \({\varvec{u}}^r=0\).

Secondly we will modify the cell boundary value of \({\varvec{u}}\). There are two steps to get the modified boundary value \({\varvec{u}}_{j+\frac{1}{2}}^{*,\pm }\):

  1. 1.

    Compute the cell boundary value \({\varvec{u}}_{j+\frac{1}{2}}^{r,\pm }\) of \({\varvec{u}}^r\).

  2. 2.

    Then the modifed boundary value are defined as follow:

    $$\begin{aligned} {\varvec{u}}_{j+\frac{1}{2}}^{*,\pm }=\left( \max \left( 0,h_{j+\frac{1}{2}}^{d,\pm }+h_{j+\frac{1}{2}}^{r,\pm }\right) ,m_{j+\frac{1}{2}}^{d,\pm }+m_{j+\frac{1}{2}}^{r,\pm }\right) ^T. \end{aligned}$$
    (4.11)

We note that although the desired equilibrium states \({\varvec{u}}^d\notin \varvec{\Pi }_h(t)\), it can be discontinuous at the cell boundary due different \(\sigma \) or discontinuous bottom topography. So in the definition, we distinguish its right and left limits as \({\varvec{u}}^{d,\pm }\).

4.1.4 Treatment for the Source Term

As in [35], we define the approximation of the source term \(\int _{K_j(t)}{\varvec{s}}({\varvec{u}},b)\cdot \varvec{\phi }\mathrm {d}x\) by

$$\begin{aligned} s_j=-\int \limits _{K_j(t)}{\varvec{f}}({\varvec{u}}^e)\cdot \varvec{\phi }_x\mathrm {d}x+f({\varvec{u}}_{j+\frac{1}{2}}^{e,-})\cdot \varvec{\phi }_{j+\frac{1}{2}}^--{\varvec{f}}({\varvec{u}}_{j-\frac{1}{2}}^{e,+})\cdot \varvec{\phi }_{j-\frac{1}{2}}^++\int \limits _{K_j(t)} {\varvec{s}}({\varvec{u}}^r,b)\cdot \varvec{\phi }\mathrm {d}x, \nonumber \\ \end{aligned}$$
(4.12)

where \({\varvec{u}}^e\) and \({\varvec{u}}^r\) is defined in (4.8) and (4.10); \({\varvec{u}}_{j+\frac{1}{2}}^{e,\pm }\) are the boundary value of \({\varvec{u}}^e\); \(\varvec{\phi }\) is the test function vector. It can be proved that \(s_j\) has a high-order approximation (See [35] for details).

4.2 Semi-discrete ALE-DG Scheme

The semi-discrete scheme is the following: Find \({\varvec{u}}\in \varvec{\Pi }_h(t)\), for any \(\varvec{\phi }\in \varvec{\Pi }_h(t)\),

$$\begin{aligned} \frac{\mathrm {d}}{\mathrm {d}t}\int \limits _{K_j(t)}{\varvec{u}}\cdot \varvec{\phi }\mathrm {d}x={\mathcal {L}}^m_j(\omega ,{\varvec{u}},\varvec{\phi },t) \end{aligned}$$
(4.13)

with

$$\begin{aligned} {\mathcal {L}}^m_j(\omega ,{\varvec{u}},\varvec{\phi },t)=\int \limits _{K_j(t)}{\varvec{g}}(\omega ,{\varvec{u}})\cdot \varvec{\phi }_x\mathrm {d}x-\hat{{\varvec{g}}}_{j+\frac{1}{2}}^l \cdot \varvec{\phi }_{j+\frac{1}{2}}^-+\hat{{\varvec{g}}}_{j-\frac{1}{2}}^r\cdot \varvec{\phi }_{j-\frac{1}{2}}^++s_j, \end{aligned}$$

where

  • \({\varvec{g}}(\omega ,{\varvec{u}})={\varvec{f}}({\varvec{u}})-\omega {\varvec{u}}\);

  • \(\hat{{\varvec{g}}}^l\) and \(\hat{{\varvec{g}}}^r\) are defined as

    $$\begin{aligned} \hat{{\varvec{g}}}_{j+\frac{1}{2}}^l= & {} \hat{{\varvec{g}}}(\omega _{j+\frac{1}{2}},{\varvec{u}}_{j+\frac{1}{2}}^{*,-},{\varvec{u}}_{j+\frac{1}{2}}^{*,+})+{\varvec{f}}({\varvec{u}}_{j+\frac{1}{2}}^-)-{\varvec{f}}({\varvec{u}}_{j+\frac{1}{2}}^{*,-}), \end{aligned}$$
    (4.14)
    $$\begin{aligned} \hat{{\varvec{g}}}_{j-\frac{1}{2}}^r= & {} \hat{{\varvec{g}}}(\omega _{j-\frac{1}{2}},{\varvec{u}}_{j-\frac{1}{2}}^{*,-},{\varvec{u}}_{j-\frac{1}{2}}^{*,+})+{\varvec{f}}({\varvec{u}}_{j-\frac{1}{2}}^+)-{\varvec{f}}({\varvec{u}}_{j-\frac{1}{2}}^{*,+}); \end{aligned}$$
    (4.15)
  • \({\varvec{u}}_{j+\frac{1}{2}}^{*,\pm }\) are given by (4.11);

  • \(\widehat{{\varvec{g}}}(\omega ,{\varvec{u}}^{*,-},{\varvec{u}}^{*,+})\) is a monotone numerical flux of \({\varvec{g}}(\omega ,{\varvec{u}}^*)\). We use the Lax-Friedrichs flux, which is defined as follow:

    $$\begin{aligned} \hat{{\varvec{g}}}(\omega ,{\varvec{u}}^l,{\varvec{u}}^r)=&\frac{1}{2}\left( {\varvec{g}}(\omega ,{\varvec{u}}^l)+{\varvec{g}}(\omega ,{\varvec{u}}^r)-\alpha ({\varvec{u}}^r-{\varvec{u}}^l)\right) , \end{aligned}$$
    (4.16)
    $$\begin{aligned} \alpha =&\max _{{\varvec{u}}\in \{{\varvec{u}}^l,{\varvec{u}}^r\}}(|u-\omega |+\sqrt{gh}), \end{aligned}$$
    (4.17)

    if \({\varvec{u}}^d\) is continuous at the cell boundary and we use the Roe’s flux in the scheme, which is defined as follow:

    $$\begin{aligned}&\hat{{\varvec{g}}}(\omega ,{\varvec{u}}^l,{\varvec{u}}^r)=\frac{1}{2}\left( {\varvec{g}}(\omega ,{\varvec{u}}^l)+{\varvec{g}}(\omega ,{\varvec{u}}^r)-A_\omega ({\varvec{u}}^r-{\varvec{u}}^l)\right) ,\\&A_\omega =R\left( \begin{matrix} |{\hat{q}}-{\hat{c}}| &{} 0\\ 0 &{} |{\hat{q}}+{\hat{c}}| \end{matrix}\right) R^{-1},\quad R=\left( \begin{matrix} 1 &{} 1\\ {\hat{q}}-{\hat{c}} &{}{\hat{q}}+{\hat{c}} \end{matrix}\right) ,\\&{\hat{c}}=\sqrt{g{\hat{h}}},\quad {\hat{h}}=\frac{1}{2}\left( h^l+h^r\right) ,\quad {\hat{q}}=\frac{u^l\sqrt{h^l}+u^r\sqrt{h^r}}{\sqrt{h^l}+\sqrt{h^r}}-\omega , \end{aligned}$$

    if \({\varvec{u}}^d\) has a stationary shock at the cell boundary.

  • \(s_j\) is defined in (4.12).

Next, similar to the case of the still water equilibrium, we will show the property of the semi-discrete ALE-DG scheme (4.13) is in Lemma 4.2 and its proof in “Appendix B.1”.

Lemma 4.2

If the numerical solution \({\varvec{u}}={\varvec{u}}^e\) where \({\varvec{u}}^e\) is defined in (4.8) and the stationary shocks of \({\varvec{u}}^d\) are all located at the cell boundaries, the semi-discrete ALE-DG scheme (4.13) satisfies

$$\begin{aligned} {\mathcal {L}}^m_j(\omega ,{\varvec{u}},\varvec{\phi },t) =\omega _{j+\frac{1}{2}}{\varvec{u}}_{j+\frac{1}{2}}^{d,-}\cdot \varvec{\phi }_{j+\frac{1}{2}}^--\omega _{j-\frac{1}{2}}{\varvec{u}}_{j-\frac{1}{2}}^{d,+}\cdot \varvec{\phi }_{j-\frac{1}{2}}^+-\int \limits _{K_j(t)}\omega {\varvec{u}}^e\cdot \varvec{\phi }_x\mathrm {d}x. \qquad \end{aligned}$$
(4.18)

4.3 Fully-Discrete ALE-DG Scheme and Well-Balanced Property

For the time discretization, we adopt the same TVD-RK method (3.9)–(3.11) for the semi-discrete scheme (4.13) of \({\varvec{u}}\) and semi-discrete scheme (4.8) of \({\varvec{u}}^e\) to keep the well-balanced property.

Remark 4.3

We claim that our ALE-DG scheme (4.13) coupled with TVD-RK time discretization conserves the mass. Since \(m^e\) always equals constant, we \(m_{j+\frac{1}{2}}^{*,-}=m_{j+\frac{1}{2}}^{*,+}\). This leads to the numerical flux of h is single-valued. Then we can say our claim holds true.

Since TVD-RK time discretizations are convex combinations of the Euler forward operators, it’s enough to use the fully-discrete ALE-DG scheme with the Euler forward discretization for the proofs in the following two subsections:

$$\begin{aligned} \int \limits _{K^{n+1}_j}{\varvec{u}}^{n+1}\cdot \varvec{\phi }^{n+1}\mathrm {d}x=&\int \limits _{K^n_j}{\varvec{u}}^n\cdot \varvec{\phi }^n\mathrm {d}x+\Delta t{\mathcal {L}}^m_j(\omega ^n,{\varvec{u}}^n,\varvec{\phi }^n,t^n), \end{aligned}$$
(4.19)

combined with

$$\begin{aligned}&\int \limits _{K^{n+1}_j}{\varvec{u}}^{e,n+1}\cdot \varvec{\delta }^{n+1}\mathrm {d}x\nonumber \\&\quad =\int \limits _{K^n_j}{\varvec{u}}^{e,n}\cdot \varvec{\delta }^n\mathrm {d}x+\Delta t\left( \widehat{\omega {\varvec{u}}^e}_{j+\frac{1}{2}}^n \cdot \varvec{\delta }_{j+\frac{1}{2}}^{n,-} -\widehat{\omega {\varvec{u}}^e}_{j-\frac{1}{2}}^n\cdot \varvec{\delta }_{j-\frac{1}{2}}^{n,+}-\int \limits _{K_j^n} \omega ^n{\varvec{u}}^{e,n}\cdot \varvec{\delta }_x^n\mathrm {d}x\right) . \end{aligned}$$
(4.20)

Proposition 4.4

The scheme described in (4.19) maintain the moving water equilibrium exactly, which means that

$$\begin{aligned} {\varvec{u}}={\varvec{u}}^e,\quad {\varvec{u}}^r=0, \end{aligned}$$
(4.21)

hold exactly.

The proof of Proposition 4.4 is shown in “Appendix B.2”.

Remark 4.5

We also want to apply the TVB limiter to the numerical solution after each time stage of TVD-RK methods. Different from the well-balanced scheme for still water equations, the TVB limiter may destroy the moving water equilibrium. We use the strategy in [35] on static mesh, which is the same for moving meshes. We divide the TVB limiter into two parts: First, we check if the TVB limiter is needed based on \({\varvec{u}}-{\varvec{u}}^e\); Second, we apply TVB limiter to the ’trouble’ cells found in the first step.

4.4 Positivity Property of the Well-Balanced Scheme for the Moving Water Equilibrium

We want to adopt the same positivity-preserving limiter in [40] to ensure the robustness of our proposed scheme. As shown in [35, 40], the positivity-preserving limiter is based on the weak positivity property of the cell average of water height h. In the following, we will show the weak positivity property of our proposed scheme coupled with Euler forward time discretization (4.19). We can obtain the equation for the cell average of h in the scheme (4.19) as follows

$$\begin{aligned} \begin{aligned}&\frac{\Delta _j^{n+1}}{\Delta _j^n}{\bar{h}}_j^{n+1}={\bar{h}}_j^n-\lambda \left( \hat{{\varvec{g}}}_{j+\frac{1}{2}}^{l,[1]}-\hat{{\varvec{g}}}_{j-\frac{1}{2}}^{r,[1]}\right) , \end{aligned} \end{aligned}$$
(4.22)

where \(\hat{{\varvec{g}}}^{l/r,[1]}\) denote the first component of \(\hat{{\varvec{g}}}^{l/r}\) and \(\lambda =\frac{\Delta t}{\Delta _j^n}\). Then we introduce the following weak positivity property with Lax-Friedrichs numerical flux (4.16) in (4.22) and its proof is shown in “Appendix B.3”.

Theorem 4.6

If \(\forall x\in {\mathbb {S}}_{K_j^n}\), \(h_j^n(x)>0\) holds, for \({\bar{h}}_j^{n+1}\) calculated from (4.22), we have

$$\begin{aligned} {\bar{h}}_j^{n+1}>0, \end{aligned}$$
(4.23)

for the scheme (4.19) under CFL-type condition

$$\begin{aligned} {\hat{\alpha }}_0\Delta t<\Delta _j^n, \end{aligned}$$
(4.24)

with

$$\begin{aligned} {\hat{\alpha }}_0&=\frac{\alpha }{{\hat{\omega }}_1}\max _{x\in \{x_{j-\frac{1}{2}}^+,x_{j+\frac{1}{2}}^-\}}\frac{h_j^*(x)}{h_j^n(x)}, \end{aligned}$$
(4.25)

where \(h_{j+\frac{1}{2}}^{*,\pm }\) is defined in (4.11).

Now, we can apply the positivity-preserving limiter introduced in Sect. 3.6.2 for both \({\varvec{u}}\) and \({\varvec{u}}^e\) at each TVD-RK stage to keep the water height positive as before. Note that this positivity-preserving limiter preserves the local conservation and does not destroy the high order accuracy.

Moreover, we note that our proposed scheme can keep the water height h positive and preserve the moving water equilibrium at the same time. When the desired equilibrium \({\varvec{u}}^d\) involve low water height or dry area, the limiter may change the numerical solution \({\varvec{u}}^n,{\varvec{u}}^{e,n}\), but we still have \({\varvec{u}}^n={\varvec{u}}^{e,n}\) and \({\varvec{u}}^{r,n}=0\) since we applied the same limiter to \({\varvec{u}}^n,{\varvec{u}}^{e,n}\). So we still can use Lemma 4.2 and Proposition 4.4 to get \({\varvec{u}}^{n+1}={\varvec{u}}^{e,n+1}\) since the assumption of \({\varvec{u}}^n={\varvec{u}}^{e,n}\) still holds true.

4.5 Algorithm

In summary, we will implement our scheme by following steps.

  1. 1.

    Initialization at time \(t=0\) to get \({\varvec{u}}^0\) and \({\varvec{u}}^{e,0}=P{\varvec{u}}^d\).

  2. 2.

    We apply the same TVD-RK methods (3.9)–(3.11) for both \({\varvec{u}}\) and \({\varvec{u}}^e\).

  3. 3.

    For each time stage in TVD-RK methods, we apply the positivity-preserving limiter \(\Theta \) in Sect. 3.6.2 to both \({\varvec{u}}\) and \({\varvec{u}}^{e}\); We apply the TVB limiter in [35] to \({\varvec{u}}\).

  4. 4.

    We compute \({\mathcal {L}}_j^m\) in (4.13) for \({\varvec{u}}\) and (4.8) for \({\varvec{u}}^e\) to finish the spatial discretization.

  5. 5.

    Repeat the steps 2-4 to continue numerical simulations.

5 Numerical Examples

In this section we provide numerical results. We first give some basic settings. The gravitation constant g is taken as \(9.812m/s^2\). In the following numerical examples, to verify the well-balanced property and the positivity-preserving property of the ALE-DG schemes on moving mesh, the grid movement is prescribed explicitly and is not derived from the computed solution. We adopt the moving grid

$$\begin{aligned} x_{j+\frac{1}{2}}(t)=x_{j+\frac{1}{2}}(0)+\frac{1}{3(x_r-x_l)^2}\sin \left( \frac{2\pi t}{t_{end}}\right) \left( x_{j+\frac{1}{2}}(0)-x_r\right) \left( x_{j+\frac{1}{2}}(0)-x_l\right) , \end{aligned}$$
(5.1)

where \(x_l\) and \(x_r\) are the endpoints of the computational domain in most 1D examples and

$$\begin{aligned} \begin{aligned} x_j(t)&=x_j(0)+0.03\sin \left( \frac{2\pi x_j(0)}{x_r-x_l}\right) \sin \left( \frac{2\pi y_j(0)}{y_r-y_l}\right) \sin \left( \frac{2\pi t}{t_{end}}\right) ,\\ y_j(t)&=y_j(0)+0.02\sin \left( \frac{2\pi x_j(0)}{x_r-x_l}\right) \sin \left( \frac{2\pi y_j(0)}{y_r-y_l}\right) \sin \left( \frac{4\pi t}{t_{end}}\right) , \end{aligned} \end{aligned}$$
(5.2)

where \(t_{end}\) is the stop time and \(x_r,x_l,y_r,y_l\) are the vertexes of the rectangle domain in most 2D examples and \(P^2\) piecewise polynomials in most numerical examples, unless otherwise stated. The CFL number is set as 0.15 for 1D examples according to [35, 40] and 0.1 for 2D examples according to [43].

In Sects. 5.15.3, numerical examples are shown to demonstrate the properties of the numerical schemes for the still water equilibrium in 1D and 2D, the moving water equilibrium in 1D respectively. Examples 5.1, 5.6 and 5.10 are well-balanced tests. Examples 5.3, 5.8 and 5.11 are small perturbation tests. Examples 5.2, 5.7 and 5.9 are accuracy tests. Examples 5.4 and 5.12 are positivity-preserving tests.

5.1 Still Water Equilibrium in 1D

Example 5.1

Test for the well-balanced property

The purpose of this example is to verify that our schemes indeed maintain the well-balanced property on moving grid with smooth or discontinuous bottom. We choose two different functions for the bottom topography for \(0\leqslant x\leqslant 1\).

  • Smooth bottom

    $$\begin{aligned} b(x)=5e^{-40(x-0.5)^2}. \end{aligned}$$
    (5.3)
  • Discontinuous bottom

    $$\begin{aligned} b(x)= {\left\{ \begin{array}{ll} 4,&{} \text {if } \ 0.4\leqslant x\leqslant 0.8,\\ 0,&{} \text {otherwise.} \end{array}\right. } \end{aligned}$$
    (5.4)

The initial data is

$$\begin{aligned} h+b=10, \quad hu=0. \end{aligned}$$

We set stop time \(t_{end}=0.5\) and use \(N=200\) uniform cells at the beginning. We show the \(L^1\) and \(L^\infty \) errors for two cases at different precision. We use the schemes hydrostatic reconstruction (3.12) and special source term (3.15). Table 1 shows the results of two schemes with the smooth bottom (5.3) and Table 2 shows the results of two schemes with the discontinuous bottom (5.4). We can see all results can reach the round-off error, which means the schemes are well-balanced.

Table 1 (Example 5.1) The hydrostatic reconstruction scheme and the special source term scheme, \(L^1\) and \(L^\infty \) errors for different precision with the smooth bottom (5.3)
Table 2 (Example 5.1) The hydrostatic reconstruction scheme and the special source term scheme, \(L^1\) and \(L^\infty \) errors for different precision with the discontinuous bottom (5.4)

Example 5.2

Accuracy test with moving boundary

In this example, we will show that our ALE-DG schemes can achieve high order accuracy for the problem with moving boundary. We choose the following bottom function and initial conditions

$$\begin{aligned} b(x)=\sin ^2(\pi x),\ h(x,0)=5+\mathrm {e}^{\cos (2\pi x)},\ (hu)(x,0)=\sin (\cos (2\pi x)),\ x\in [0,1], \end{aligned}$$

with periodic boundary conditions. Since the exact solution is not known explicitly, we use the fifth order finite volume WENO scheme with \(N=12800\) cells to compute a reference solution, and treat this reference solution as the exact solution in computing the numerical errors. We set stop time \(t_{end}=0.1\) and the solution is still smooth. A moving computational domain at each time step is used and the grid velocity is set as follows

$$\begin{aligned} \omega _{j+\frac{1}{2}}(t)=1+\sin \left( \frac{2\pi t}{t_{end}}\right) \left( x_{j+\frac{1}{2}}(0)-x_1\right) \left( x_{j+\frac{1}{2}}(0)-x_0\right) . \end{aligned}$$

The initial mesh is set as uniform mesh. So the mesh at every time step \(t^k\) can be defined as

$$\begin{aligned} x_{j+\frac{1}{2}}(t^k)=x_{j+\frac{1}{2}}(t^{k-1})+(t^k-t^{k-1})\omega _{j+\frac{1}{2}}(t^{k-1}), \end{aligned}$$

which is consist with the definition of the grid velocity. The meshes with 25 cells for different time are shown in Fig. 1 for example, where the boundaries move with the speed \(\omega =1\). Since this moving boundary problem is periodic, the boundary movement is easy to be implemented in the current algorithm framework. The \(L^1\) errors are shown in Table 3 for both two schemes, hydrostatic reconstruction (3.12) and special source term (3.15). Figure 2 shows the numerical solutions with 200 cells compared with reference solution. We can see that our schemes can calculate the problem correctly in high-order accurate with moving boundaries.

Fig. 1
figure 1

Example 5.2. The meshes with 25 cells at different time t for the moving domain problem. The boundaries move with speed \(\omega =1\)

Table 3 (Example 5.2) The hydrostatic reconstruction scheme and the special source term scheme, \(L^1\) error table for the moving boundary problem
Fig. 2
figure 2

(Example 5.2) The numerical solution of surface level \(\eta \) and discharge hu with 200 cells compared with reference solution for the moving domain problem

Example 5.3

A small perturbation test

We will test the situation when a small perturbation added into the still water equilibrium. We first show that our ALE-DG methods can capture the perturbation correctly when involving moving meshes (5.1). Then we will adopt a specific adaptive mesh to show the efficiency of the ALE-DG methods. The initial conditions are

$$\begin{aligned} (hu)(x,0)=0,\ h(x,0)= {\left\{ \begin{array}{ll} 1-b(x)+\epsilon , &{} \text {if } \ 1.1\leqslant x\leqslant 1.2,\\ 1-b(x), &{} \text {otherwise,} \end{array}\right. } \end{aligned}$$
(5.5)

where \(\epsilon \) is the perturbation constant, with the bottom topography

$$\begin{aligned} b(x)= {\left\{ \begin{array}{ll} 0.25(\cos (10\pi (x-1.5))+1),&{} \text {if } \ 1.4\leqslant x\leqslant 1.6,\\ 0,&{} \text {otherwise.} \end{array}\right. } \end{aligned}$$
(5.6)

In this example, we consider a quiet small perturbation \(\epsilon =0.001\) and set the stop time as \(t_{end}=0.2\). The transmissive boundary conditions are used in our numerical tests. For the exact solution, the perturbation will propagate to the left and right at the characteristic speeds \(\pm \sqrt{gh}\). The reference solutions computed by the hydrostatic reconstruction scheme with \(N=3000\) cells are plotted in Fig. 3, together with the initial surface level and bottom topography. In Fig. 4, we plot the numerical results by two ALE-DG schemes (3.12) and (3.15) on the coarse mesh with \(N=200\). It shows that both ALE-DG schemes can capture the small perturbation near the equilibrium on the relative coarse meshes.

Fig. 3
figure 3

(Example 5.3) The numerical solution of surface level \(\eta \) compared with initial data and bottom topography with \(\epsilon =0.001\). Right is the zoom in of the left figure for \(\eta \in [0.997,1.003]\)

Fig. 4
figure 4

(Example 5.3). \(\epsilon =0.001\) and \(N=200\). Left: the surface level \(\eta \); right: the discharge hu

Then we adopt a special moving grid to compare the ALE-DG method with the DG method on the uniform static grid. We use the hydrostatic reconstruction scheme (3.12) in this test. With \(N=200\) cells, the moving grid is defined as follows. The initial grid is

$$\begin{aligned} x_{j+\frac{1}{2}}(0)= {\left\{ \begin{array}{ll} \displaystyle \frac{j}{59},&{}\text {if } \ 0\leqslant j\leqslant 59,\\ 1+0.003(j-59),&{}\text {if } \ 60\leqslant j\leqslant 159,\\ 1.3+\displaystyle \frac{7(j-159)}{410},&{}\text {if } \ 160\leqslant j\leqslant 200, \end{array}\right. } \end{aligned}$$
(5.7)

and the final grid at the stop time \(t_{end}=0.2\) is

$$\begin{aligned} x_{j+\frac{1}{2}}(0.2)= {\left\{ \begin{array}{ll} \displaystyle \frac{11}{650}j,&{}\text {if } \ 0\leqslant j\leqslant 26,\\ 0.44+0.003(j-26),&{}\text {if } \ 27\leqslant j\leqslant 76,\\ 0.59+0.016875(j-76),&{}\text {if } \ 77\leqslant j\leqslant 140,\\ 1.67+0.003(j-140),&{}\text {if } \ 141\leqslant j\leqslant 190,\\ 1.82+0.018(j-190),&{}\text {if }\ 191\leqslant j\leqslant 200. \end{array}\right. } \end{aligned}$$
(5.8)

Then we define straight lines connecting two meshes and have

$$\begin{aligned} \omega _{j+\frac{1}{2}}=5(x_{j+\frac{1}{2}}(0.2)-x_{j+\frac{1}{2}}(0)), \end{aligned}$$
(5.9)

and for \(0<t<0.2\)

$$\begin{aligned} x_{j+\frac{1}{2}}(t)=x_{j+\frac{1}{2}}(0)+\omega _{j+\frac{1}{2}}t. \end{aligned}$$
(5.10)

The moving grid is plotted in Fig. 5. The numerical solutions are shown in Fig. 6. The reference solution is computed by the hydrostatic DG scheme (i.e. the grid velocity \(\omega \equiv 0\) in the ALE-DG scheme (3.12)) on the uniform grid with \(N=3000\) cells. We can see that the ALE-DG solution has better resolution than the DG solution. Additionally, we compute the CPU time in this test. For the solution on moving mesh with 200 cells, the CPU time is 45.28s, which is comparable to the CPU time 41.95s on static mesh with 200 cells. It is also found that with suitable moving mesh, the ALE-DG solution has less numerical dissipation than DG solutions on static mesh and the size of the small perturbation is almost the same as the reference solution.

Fig. 5
figure 5

(Example 5.3) The meshes at different time t

Fig. 6
figure 6

(Example 5.3) The comparison with ALE-DG method and DG method for a small perturbation \(\epsilon =0.001\) of the still water equilibrium. We use the hydrostatic reconstruction scheme. Left: the surface level \(\eta \); right: the discharge hu

Example 5.4

Parabolic bowl

This example is used to demonstrate the positivity-preserving ability of our methods. The parabolic bottom is given by

$$\begin{aligned} b(x)=h_0(x/a)^2, \end{aligned}$$
(5.11)

with \(h_0=10\) and \(a=3000\). The computational domain is set as \([-5000,5000]\). The analytical water surface level is given in [40]

$$\begin{aligned} \eta (x,t)=h_0-\frac{B^2}{4g}\cos (2\kappa t)-\frac{B^2}{4g}-\frac{Bx}{2a}\sqrt{\frac{8h_0}{g}}\cos (\kappa t), \end{aligned}$$
(5.12)

where \(\kappa =\sqrt{2gh_0}/a\) and \(B=5\). The exact location of wet/dry front takes the form

$$\begin{aligned} x_0=-\frac{B\kappa a^2}{2gh_0}\cos (\kappa t)\pm a. \end{aligned}$$
(5.13)

We use the exact solution for the initial data and the boundary conditions. The CFL number is set as 0.15, which is little smaller than \({\hat{\omega }}_1=\frac{1}{6}\) and the stop time is set as \(t_{end}=6000\) with 200 cells. In practical computation, in order to avoid the influence of round-off error, we set the minimum of h equals \(10^{-11}\) in condition data. The sufficiently small number \(\epsilon \) in positivity-preserving limiter is set as \(10^{-11}\) too. The numerical solutions and the analytical solutions of the surface level are shown in Fig. 7. The minimum of the water height is shown in Table 4 and it certainly keeps the minimum of the water height. We can see that the numerical solution agree with the analytical solutions very well.

Fig. 7
figure 7

(Example 5.4) The numerical surface level \(\eta \) using 200 cells compared with analytical solution and bottom b at different time. From top left to bottom right: \(t=1000,2000,3000,4000,5000,6000\)

Table 4 (Example 5.4) The minimum of the water height h at time \(t=1000,2000,3000,4000,5000,6000\) for two schemes

Example 5.5

The dam breaking problem over a rectangular bump

The purpose of this example is to show the capacity of the well-balanced schemes for the situations away from the steady states. The bottom function is

$$\begin{aligned} b(x)= {\left\{ \begin{array}{ll} 8,&{} \text {if } \ \frac{4500}{8}\leqslant x\leqslant \frac{7500}{8},\\ 0,&{} \text {otherwise,} \end{array}\right. } \end{aligned}$$
(5.14)

for \(x\in [0,1500]\). The initial conditions are:

$$\begin{aligned} (hu)(x,0)=0,\ h(x,0)= {\left\{ \begin{array}{ll} 20-b(x),&{} \text {if } \ x\leqslant 750,\\ 15-b(x),&{} \text {otherwise.} \end{array}\right. } \end{aligned}$$

We test two cases: \(t_{end}=15\) and \(t_{end}=60\) and set \(N=400\). The reference solution is computed by the hydrostatic reconstruction scheme (3.12) on the uniform grid with \(N=4000\) cells. We plot the figure of surface level \(\eta \) in Figs. 8 and 9 with two schemes (3.12) and (3.15) respectively. It shows that our well-balanced methods still perform well when the solution is far away from the steady states.

Fig. 8
figure 8

(Example 5.5) The surface level \(\eta \) at time \(t=15\). Left: the numerical solution using hydrostatic reconstruction with \(N=400\), together with the initial condition and the bottom; right: the comparison between the numerical solution of two schemes and the reference solution

Fig. 9
figure 9

(Example 5.5) The surface level \(\eta \) at time \(t=60\). Left: the numerical solution using hydrostatic reconstruction with \(N=400\), together with the initial condition and the bottom; right: the comparison between the numerical solution of two schemes and the reference solution

5.2 Still Water Equilibrium in 2D

Example 5.6

Test for the well-balanced property

This example is used to verify that our schemes indeed maintain the still water equilibrium for 2D shallow water equations. The two-dimensional bottom is given by

$$\begin{aligned} b(x,y)=0.8\mathrm {e}^{-50((x-0.5)^2+(y-0.5)^2)},\quad x,y\in [0,1] \end{aligned}$$
(5.15)

The initial data is \(h(x,y,0)=1-b(x,y)\) and \(hu(x,y,0)=0\), \(hv(x,y,0)=0\). A static uniform criss-triangular mesh with 800 triangles is used at the beginning. We set stop time \(t_{end}=0.1\) and use double and quadruple precision separately. Tables 5 and 6 contain the \(L^1\) errors for h and hu and hv. We can clearly see that the \(L^1\) errors are at the level of round-off errors for different precision.

Table 5 (Example 5.6) Hydrostatic reconstruction, \(L^1\) errors for different precision of the surface level \(\eta \) and the discharges hu and hv
Table 6 (Example 5.6) Special source term, \(L^1\) errors for different precision of the surface level \(\eta \) and the discharges hu and hv

Example 5.7

Accuracy test in 2D

In this example we will show that our schemes have high order accuracy for a smooth solution. The bottom function and the initial data are given by:

$$\begin{aligned} b(x,y)= & {} \sin (2\pi x)+\cos (2\pi y),\quad \quad h(x,y,0)=10+e^{\sin (2\pi x)}\cos (2\pi y),\\ (hu)(x,y,0)= & {} \sin (\cos (2\pi x))\sin (2\pi y),\quad \quad (hv)(x,y,0)=\cos (2\pi x)\cos (\sin (2\pi y)), \end{aligned}$$

where \((x,y)\in [0,1]\times [0,1]\) with periodic boundary conditions. We set stop time \(t_{end}=0.05\) when the solution is still smooth. We use the same fifth order WENO scheme with an extremely refined mesh consisting of 1600\(\times \)1600 rectangle cells to compute a reference solution, according to [39]. Tables 7 and 8 contain the \(L^1\) errors and orders. We see that ALE-DG schemes can achieve the optimal convergence rate.

Additionally, we compare the CPU time of our scheme (3.12) on the moving mesh defined in (5.2) and the static mesh in this example. We use 3200 triangle cells and the efficiency is comparable: the CPU time is 181.60s on the moving mesh and 178.75s on the static mesh.

Table 7 (Example 5.7) \(L^1\) errors and numerical orders of accuracy for hydrostatic reconstruction
Table 8 (Example 5.7) \(L^1\) errors and numerical orders of accuracy for special source term

Example 5.8

A small perturbation test

In this example, we will test the ability of our schemes to capture the small perturbation of the still water equilibrium in 2D. This is a classical example to show the capability of the well-balanced scheme for the perturbation of the equilibrium state, which was used in [25].

The initial data and the bottom function are given by:

$$\begin{aligned}&h(x,y,0)= {\left\{ \begin{array}{ll} 1-b(x,y)+0.01, &{} \text {if } \ 0.05\leqslant x\leqslant 0.15,\\ 1-b(x,y), &{} \text {otherwise,} \end{array}\right. }\end{aligned}$$
(5.16)
$$\begin{aligned}&hu(x,y,0)=hv(x,y,0)=0,\end{aligned}$$
(5.17)
$$\begin{aligned}&b(x,y)=0.5\mathrm {e}^{-5(x-0.9)^2-50(y-0.5)^2}. \end{aligned}$$
(5.18)

where \((x,y)\in [0,2]\times [0,1]\) and the bottom is an isolated elliptical shaped hump. We show the numerical solution of surface level \(h+b\) with \(2\times 160\times 80\) criss-triangle cells at different times. Note that the wave speed is slower above the hump than elsewhere, leading to a distortion of the initially planar disturbance. In addition, different from the one-dimensional perturbation tests, the left-going pulse has already cleanly left the domain at the first time shown, due to the outflow boundary conditions. We can see that ALE-DG schemes can capture the small perturbation correctly (Fig. 10).

Fig. 10
figure 10

(Example 5.8) Left: hydrostatic reconstruction; Right: special source term treatment. The contours of the surface level \(h+b\) for Example 5.8 using a mesh of 25600 triangles. 30 uniformly spaced contour lines. From top to bottom: at time \(t = 0.12\) from 0.99942 to 1.00656; at time \(t = 0.24\) from 0.99318 to 1.01659; at time \(t = 0.36\) from 0.98814 to 1.01161; at time \(t = 0.48\) from 0.99023 to 1.00508; and at time \(t = 0.6\) from 0.99514 to 1.00555

5.3 Moving Water Equilibrium in 1D

Example 5.9

Test for the accuracy

In this example we will test the high order accuracy of our schemes for a smooth solution. We have the following bottom function and initial conditions

$$\begin{aligned} b(x)=\sin ^2(\pi x),\ h(x,0)=5+\mathrm {e}^{\cos (2\pi x)},\ (hu)(x,0)=\sin (\cos (2\pi x)),\ x\in [0,1] \end{aligned}$$

with periodic boundary conditions. The exact solution is not known explicitly and we use the fifth order finite volume WENO scheme with \(N=12800\) cells to compute a reference solution [35] in computing the numerical errors. We compute up to \(t_{end}=0.1\) when the solution is still smooth. Table 9 shows the \(L^1\) errors and numerical orders for \({\varvec{u}}\). It is found that ALE-DG scheme has the third order accuracy for piecewise \(P^2\) polynomial basis.

Table 9 (Example 5.9) \(L^1\) errors and numerical orders of accuracy of the ALE-DG solutions with piecewise \(P^2\) polynomial basis

Example 5.10

Test for the well-balanced property

The purpose is to verify that our schemes maintain the well-balanced property. We choose three different moving water equilibrium which are classical cases and have been widely used. The bottom function is given by:

$$\begin{aligned} b(x)= {\left\{ \begin{array}{ll} 0.2-0.05(x-10)^2,&{} \text {if } \ 8\leqslant x\leqslant 12,\\ 0,&{} \text {otherwise,} \end{array}\right. } \end{aligned}$$
(5.19)

for a channel of length 25 meters. Three cases, subcritical or transcritical flow with or without a steady shock are in exactly equilibrium for the initial condition, which means E and m are constants:

  1. (a)

    Subcritical flow: The initial condition is \(E=22.06605\) and \(m=4.42\). The boundary condition is \(m=4.42\) at \(x=0\) and \(h=2\) at \(x=25\).

  2. (b)

    Transcritical flow without a shock: The initial condition is \(E=11.08071\) and \(m=1.53\). The boundary condition is \(m=1.53\) at \(x=0\) and \(h=0.66\) at \(x=25\) when the flow is subsonic.

  3. (c)

    Transcritical flow with a shock. The initial condition is \(E=4.15408\) when \(x<11.66550\) and \(E=3.38672\) when \(x>11.66550\) and \(m=0.18\). The boundary condition is \(m=0.18\) at \(x=0\) and \(h=0.33\) at \(x=25\).

Here we choose mesh to make sure that \(x=8,12\) and \(x=11.66550\) if there is a shock are located at the cell boundary. For the first two cases, we choose uniform mesh at the beginning and

$$\begin{aligned} \begin{aligned} x_{j+\frac{1}{2}}(t)=&x_{j+\frac{1}{2}}(0)+\frac{1}{3(x_1-x_0)^4}\sin \left( \frac{t}{t_{end}}\right) \\&(x_{j+\frac{1}{2}}(0)-25)\left( x_{j+\frac{1}{2}}(0)-8\right) \left( x_{j+\frac{1}{2}}(0)-12\right) x_{j+\frac{1}{2}}(0). \end{aligned} \end{aligned}$$
(5.20)

For the third case, since the equilibrium states on both sides of the shock are not the same, we recover two different equilibrium states and set the one of mesh grids exactly on the shock \(x=11.66550\) and assume this mesh grid unchanged over time. So we choose uniform mesh and shift the point near the shock to \(x=11.66550\) at the beginning and

$$\begin{aligned} \begin{aligned} x_{j+\frac{1}{2}}(t)=&x_{j+\frac{1}{2}}(0)+\frac{1}{3(x_1-x_0)^5}\sin \left( \frac{t}{t_{end}}\right) \\&(x_{j+\frac{1}{2}}(0)-25) \left( x_{j+\frac{1}{2}}(0)-8\right) \left( x_{j+\frac{1}{2}}(0)-11.66550\right) \left( x_{j+\frac{1}{2}}(0)-12\right) x_{j+\frac{1}{2}}(0). \end{aligned} \end{aligned}$$
(5.21)

We compute their solutions until \(t_{end}=5\) using \(N=200\) points. we show the \(L^1\) and \(L^\infty \) errors for the water height h and the discharge hu in Table 10 with two different precision, where we can clearly see that the \(L^1\) and \(L^\infty \) errors are at the level of round-off errors.

Table 10 (Example 5.10) \(L^1\) errors and \(L^\infty \) errors of the water height h and the discharge hu for moving water equilibrium

Example 5.11

A small perturbation test

In this example, we continue to test the three cases in Example 5.10 to demonstrate that our scheme can capture the small perturbation of moving water equilibrium correctly. Our initial conditions are almost the same as Example 5.10 that we additionally impose a small perturbation of size 0.05 on the h in the interval [5.75, 6.25]. We use transmissive boundary conditions. We take \(N=200\) cells and use the same meshes in Example 5.10. The stopping time \(t_{end}=1.5\) for the first two cases, \(t_{end}=3\) for the third case. We show the numerical results in Figs. 11, 12 and 13 and can clearly see that the propagated small perturbation is captured correctly for the both three cases.

Fig. 11
figure 11

(Example 5.11) Small perturbation of the subcritical flow (a) with 200 cells

Fig. 12
figure 12

(Example 5.11) Small perturbation of the transcritical flow without a shock (b) with 200 cells

Fig. 13
figure 13

(Example 5.11) Small perturbation of the transcritical flow with a shock (c) with 200 cells

Example 5.12

Riemann problem over a flat bottom

In this example, we want to demonstrate that our ALE-DG well-balanced methods for moving water equilibrium have the positivity-preserving property. We consider Riemann problem containing dry area over a flat bottom, which means \(b(x)\equiv 0\). This example was used in [40]. The initial conditions are given by

$$\begin{aligned} hu(x)=0,\quad h(x)={\left\{ \begin{array}{ll} 10&{}\text{ if }\,x\le 0,\\ 0&{}\text{ otherwise }. \end{array}\right. } \end{aligned}$$
(5.22)

We set the computational domain as [-300,300] with transmissive boundary conditions and 200 uniform cells. The analytical solutions can be found in [5]. In practical computation, in order to avoid the influence of round-off error, we set the minimum of h equals \(10^{-11}\) in condition data. The sufficiently small number \(\epsilon \) in positivity-preserving limiter is set as \(10^{-11}\) too. We plot the numerical solution of the water height h at time \(t=4,8,12\) compared with the analytical solutions in Fig. 14. We can see our scheme keeps the height positive and captures the exact solution well. The minimum of the water height is shown in Table 11 and it certainly keeps the minimum of the water height positive.

Fig. 14
figure 14

(Example 5.12) The numerical solution of water height h compared with exact solutions for the Riemann problem. Left: water height h; Right: the zoom in of the left figure for \(x\in [0,250]\), where water height h is near 0

Table 11 (Example 5.12) The minimum of the water height h at time \(t=4,8,12\)

6 Conclusion

In this paper we developed the well-balanced ALE-DG methods for both still and moving water equilibria of the shallow water equations. For the ALE-DG methods, the well-balanced property is based on the GCL and corresponding modification of time discretization, besides the techniques of DG methods on static grids. For the still water equilibrium, the well-balanced ALE-DG method can be extended to the two-dimensional case. And the well-balanced scheme for the moving water equilibrium is only for the one-dimensional case, since there is no general form of moving water equilibrium in two dimensions. Numerical examples have been given to show the well-balanced property, positivity-preserving property and high order accuracy. In this work, we mainly focus on the scheme design on the moving mesh. The grid movement in all the numerical examples is prescribed and is not derived from the computed solution. The performance of these schemes in applications is also dependent on the mesh optimization for the specific problem and its bottom topography due to the “time-dependent" approximation of the bottom. The methodology of mesh adaptation will be considered in our future work on applications. These techniques in moving water equilibrium part can also be extended to many other balance laws, such as Euler equations etc.