1 Introduction

The GN theory adopts a shape function representation that approximates the vertical structure of the velocity field; no other assumptions and approximations are introduced. The GN models are categorized into different levels because of the different vertical velocity assumptions used at each level. The governing equations are the depth-integrated form of Euler’s equations. Both the bottom boundary condition and the nonlinear free-surface boundary conditions are satisfied exactly. No restriction is used in the rotationality of the flow field. The GN theory was first introduced about 40 years ago (Green et al. 1974; Green and Naghdi 1976). Ertekin et al. (1986) utilized the GN-1 model to simulate waves generated by ships and made the GN-1 model more applicable to real-world problems.

The GN model was extended to deep-water waves by Webster and Kim (1991). Demirbilek and Webster (1992) applied the GN-2 model to time-domain simulation of wave transformation problems for the first time. Due to the rapid increase in algebraic complexity at higher levels, the GN models up to Level III have been derived (Shields and Webster 1988; Demirbilek and Webster 1992, 1999), but the applications of the GN-3 model, and even higher models, were made in two-dimensions in recent years by Zhao et al. (2014a) who showed that high-level GN models are strongly nonlinear, strongly dispersive wave models. We mention that a simplified form of the GN model, introduced by Webster et al. (2011), was used by Zhao et al. (2014a) in two dimensions. The traditional form of the high-level GN models (Demirbilek and Webster 1992) is quite complicated to be applied to wave analysis.

Le Métayer et al. (2010) proposed a hybrid numerical method using a Godunov-type scheme to solve the Green–Naghdi model for dispersive shallow-water waves. Chazel et al. (2011) derived a three-parameter Green–Naghdi model for uneven bottoms. Zhang et al. (2013) showed that properties of the so-called Boussinesq–Green–Naghdi equations may be substantially improved for a given order of approximation using asymptotic rearrangements. However, the numerical results of the models developed by Chazel et al. (2011) and Zhang et al. (2013) did not provide as good results as the converged high-level GN models (Zhao et al. 2014a).

Xu et al. (1993) applied the deep-water GN-2 model to three-dimensional irregular wave propagation problems. An iterative scheme is used in their research, but unfortunately it is not easy to apply their scheme to high-level shallow-water GN models. Only the GN-1 model has been utilized in three-dimensional problems (Neill and Ertekin 1997; Ertekin and Sundararaghavan 2003) until now. The three-dimensional GN-2 model is applied to wave transformation problems by Zhao et al. (2010). They did not give the algorithm in their paper, and since GN-2 equations are rather complicated, this prevented extension of the calculations to the GN-3 equations. The even higher-level GN (such as GN-3 and GN-4) models have not yet been applied to any wave-flow problems. Recent research on simplified form of high-level GN equations (Webster et al. 2011) and its successful application to two-dimensional wave problems (Zhao et al. 2014a, b) make the application of the three-dimensional GN models possible.

The irrotational version of the GN equations (IGN equations in short) were derived by Kim et al. (2001) and have recently been applied to some shallow-water wave problems at high levels by Ertekin et al. (2014).

The main motivation for this study is to introduce the algorithm for three-dimensional GN equations and apply the three-dimensional GN model to some nonlinear and unsteady wave problems. The intent of this paper is not to include very large waves and all the ranges of \(kh ,\) where \(k\) is the wave number and \(h\) is the water depth. In Sect. 2, high-level three-dimensional GN equations are introduced. Section 3 presents the algorithm used in solving the GN equations. Section 4 introduces the boundary conditions that are used in this study. Some test cases simulated by the three-dimensional GN models are presented in Sect. 5. These are followed by the conclusions in Sect. 6.

2 GN models

In this work, three-dimensional wave problems are considered. \((x, y)\) are the horizontal and \(z\) is the vertical coordinate and the origin of the coordinate system is located on the still-water level. In the GN approach, the horizontal velocities \(u,v\) and the vertical velocity \(w\) are given by

$$\begin{aligned} u(x,y,z,t) = \sum \limits _{n = 0}^{K} {{u_n}(x,y,t){z^n}}, \end{aligned}$$
(1a)
$$\begin{aligned} v(x,y,z,t) = \sum \limits _{n = 0}^{K} {{v_n}(x,y,t){z^n}}, \end{aligned}$$
(1b)
$$\begin{aligned} w(x,y,z,t) = \sum \limits _{n = 0}^K {{w_n}(x,y,t){z^n}}, \end{aligned}$$
(1c)

where \(u_n, v_n, w_n\) \((n=0,1,\ldots ,K)\) are the unknown velocity coefficients. In this work, we use \(z=\beta (x,y,t)\) to represent the free surface and \(z=\alpha (x,y)\) to represent the sea-floor, assumed to be stationary here (this is not necessary in general in the GN theory). The reduced set of differential equations for Level \(K\) GN (referred to as GN-\(K\)) theory are as follows (see Webster et al. 2011):

$$\begin{aligned} \frac{{\partial \beta }}{{\partial t}} = \sum \limits _{n = 0}^K \,{\beta ^n}\left( {{w_n} - \frac{{\partial \beta }}{{\partial x}}{u_n} - \frac{{\partial \beta }}{{\partial y}}{v_n}} \right) , \end{aligned}$$
(2)
$$\begin{aligned}&\frac{\partial }{{\partial x}}( {{G_n} + gS{1_n}}) + n{E_{n - 1}} - {\alpha ^n}\frac{\partial }{{\partial x}}( {{G_0} + gS{1_0}} ) = 0\nonumber \\&\quad (n=1,2,\ldots ,K), \end{aligned}$$
(3a)
$$\begin{aligned}&\frac{\partial }{{\partial y}}( {{G_n} + gS{1_n}} ) + n{F_{n - 1}} - {\alpha ^n}\frac{\partial }{{\partial y}}( {{G_0} + gS{1_0}} ) = 0\nonumber \\&\quad (n=1,2,\ldots ,K), \end{aligned}$$
(3b)

where

$$\begin{aligned} {E_n} = \sum \limits _{m = 0}^K \left( \! {\frac{{\partial {u_m}}}{{\partial t}}S{2_{mn}} + \frac{{\partial {u_m}}}{{\partial x}}{Q_{mn}} + \frac{{\partial {u_m}}}{{\partial y}}{R_{mn}} + {u_m}{H_{mn}}}\! \right) \!,\nonumber \\ \end{aligned}$$
(4a)
$$\begin{aligned} {F_n} = \sum \limits _{m = 0}^K \,\left( {\frac{{\partial {v_m}}}{{\partial t}}S{2_{mn}} \,{+}\, \frac{{\partial {v_m}}}{{\partial x}}{Q_{mn}} \,{+}\, \frac{{\partial {v_m}}}{{\partial y}}{R_{mn}} \,{+}\, {v_m}{H_{mn}}} \right) ,\nonumber \\ \end{aligned}$$
(4b)
$$\begin{aligned} {G_n} = \sum \limits _{m = 0}^K \!\left( \! {\frac{{\partial {w_m}}}{{\partial t}}S{2_{mn}} \,{+}\, \frac{{\partial {w_m}}}{{\partial x}}{Q_{mn}} \,{+}\, \frac{{\partial {w_m}}}{{\partial y}}{R_{mn}} \,{+}\, {w_m}{H_{mn}}} \!\right) \!,\nonumber \\ \end{aligned}$$
(4c)
$$\begin{aligned}&{Q_{mn}} = \sum \limits _{r = 0}^K {{u_r}{S3_{mrn}}},\,\, {R_{mn}} = \sum \limits _{r = 0}^K \,{v_r}S{3_{mrn}}, \nonumber \\&{H_{mn}} = \sum \limits _{r = 0}^K {{w_r}S4_{mrn}}, \end{aligned}$$
(4d)
$$\begin{aligned} S1_n = \int _\alpha ^\beta {z^n \mathrm{d}z},S2_{mn} = \int _\alpha ^\beta {z^{m + n} \mathrm{d}z}, \end{aligned}$$
(4e)
$$\begin{aligned} S3_{mrn} = \int _\alpha ^\beta {z^{m + r + n} \mathrm{d}z},S4_{mrn} = m\int _\alpha ^\beta {z^{m + r + n - 1} \mathrm{d}z}, \end{aligned}$$
(4f)
$$\begin{aligned} u_K = 0,\,\,v_K = 0, \end{aligned}$$
(4g)
$$\begin{aligned} {w_n} = - \frac{1}{n}\left( {\frac{{\partial {u_{n - 1}}}}{{\partial x}} + \frac{{\partial {v_{n - 1}}}}{{\partial x}}} \right) \quad (n = 1,2, \ldots , K), \end{aligned}$$
(4h)
$$\begin{aligned} {w_0} = - \sum \limits _{n = 1}^K \,{\alpha ^n}\left( {{w_n} - \frac{{\partial \alpha }}{{\partial x}}{u_n} - \frac{{\partial \alpha }}{{\partial y}}{v_n}} \right) + \frac{{\partial \alpha }}{{\partial x}}{u_0} + \frac{{\partial \alpha }}{{\partial y}}{v_0},\nonumber \\ \end{aligned}$$
(4i)

where \(m ,\) \(r\) and \(n\) are nonnegative integers, \(g\) is the gravitational acceleration, and \(t\) is time. The GN-\(K\) equations, Eqs. (2) and (3), are solved for the unknown values \(\beta \), \(u_0 ,\) \(u_1 , \ldots \) and \(v_0 ,\) \(v_1 , \ldots \).

3 Algorithm

Following Zhao et al. (2014a), for the GN-\(K\) (\(K\) is the level), Eqs. (3a) and (3b) can be expressed by

$$\begin{aligned} {\tilde{\mathbf{A}}}^u {\dot{\varvec{\upxi }} ^u_{,xx}} + {\tilde{\mathbf{B}}}^u{\dot{\varvec{ \upxi }} ^u_{,x}} + {\tilde{\mathbf{C}}}^u {\dot{ \varvec{ \upxi }}^{u}} = {\tilde{\mathbf{f}}}^u, \end{aligned}$$
(5a)
$$\begin{aligned} {\tilde{\mathbf{A}}}^v {\dot{\varvec{\upxi }} ^v_{,yy}} + {\tilde{\mathbf{B}}}^v{\dot{\varvec{ \upxi }} ^v_{,y}} + {\tilde{\mathbf{C}}}^v {\dot{ \varvec{ \upxi }}^{v}} = {\tilde{\mathbf{f}}}^v, \end{aligned}$$
(5b)

where the superscript \(u\) and \(v\) are used to differentiate the \(x\) and \(y\) directions of the conservation of momentum. The dot over \(\varvec{\upxi }\) indicates the local time derivative. In the \(x\) direction, the GN momentum equation, Eq. (5a), for example, can be written as \({\varvec{\upxi }^u}= {[{{ u}_0},{{ u}_1}, \ldots ,{{ u}_{K - 1}}]^\mathrm{T}}.\) Similarly, \({\varvec{\upxi }^v}= {[{{ v}_0},{{ v}_1}, \ldots ,{{ v}_{K - 1}}]^\mathrm{T}}\) in the \(y\) direction. The subscript comma stands for differentiation with respect to the indicated variable. \({\varvec{\upxi }^u_{,x}}\) and \({\varvec{\upxi }^u_{,xx}}\), for example, indicate the first and second derivatives of \({\varvec{\upxi }^{u}}\), respectively. \({\tilde{\mathbf{A}} }^u\), \({\tilde{\mathbf{B}}}^u \) and \( {\tilde{\mathbf{C}}} ^u\) are \(K \times K\) matrices, and \({\tilde{\mathbf{f}}} ^u\) is a \(K\)-dimensional vector. \({\tilde{\mathbf{A}}}^u, \) \({\tilde{\mathbf{B}}}^u,\) \({\tilde{\mathbf{C}}} ^u\) and \({\tilde{\mathbf{f}}}^u\) are functions of \(\alpha ,\) \(\beta \), \({\varvec{\upxi }} ^u\), \({\varvec{\upxi }} ^v\) and their spatial derivatives, although this dependence will not be shown here for simplicity.

The finite central-difference method is used here for spatial derivatives. The \((x, y)\) domain over which a solution to the GN equations is desired is uniformly discretized by \((\Delta x, \Delta y)\) intervals. The ith point on the grid will be denoted by \({x_i} = i\Delta x\) for \(i = 1, 2, \ldots , nx\) and \({y_j} = j\Delta y\) for \(j = 1, 2, \ldots , ny\). For a given \(j\), \({\dot{ \varvec{ \upxi }}^{u}(i,j)} (i=1,2,\ldots ,nx)\) can be obtained by solving Eq. (5a). Details on numerical solution of Eq. (5a), can be found in Zhao et al. (2014a). Similarly, for a given \(i\), we can obtain \({\dot{ \varvec{ \upxi }}^{v}(i,j)} (j=1,2,\dots ,ny)\) from Eq. (5b). Time is also assumed to be discretized with intervals \(\Delta t\), such that \({t_k} = k\Delta t (k=1,2,\dots )\). We use the fourth-order Adams predictor–corrector scheme to march in time.

4 Boundary conditions

In this section, the boundary conditions along the boundaries that surround the domain are presented. These boundary conditions complete the definition of the boundary-value problem, which can be solved using a numerical method such as the finite-difference method.

4.1 Wave-maker boundary

In this study, it is assumed that the boundary of the domain is chosen in such a way that the wave enters normal to this entrance boundary. At this boundary, the values of the surface elevation \(\beta \), the velocity coefficient \(u_k\) and \(v_k\) (\(k=0,1,\ldots ,K-1\)) are specified. We do these at the wave-maker by use of the stream-function wave theory (Chaplin 1980; Rienecker and Fenton 1981). When the wave-maker is located at \(x=0\) m and the waves propagate in the positive \(x\) direction, the below quantities at \(x=-\Delta x\), \(-2\Delta x\) and \(-3\Delta x\) should be known around the wave-maker. These quantities are

$$\begin{aligned} \beta (0,j)=\beta ^{\mathrm{2D}}(-\Delta x), \end{aligned}$$
(6a)
$$\begin{aligned} \beta (-1,j)=\beta ^{\mathrm{2D}}(-2\Delta x), \end{aligned}$$
(6b)
$$\begin{aligned} \beta (-2,j)=\beta ^{\mathrm{2D}}(-3\Delta x), \end{aligned}$$
(6c)
$$\begin{aligned} u_k(0,j)={u_k}^{\mathrm{2D}}(-\Delta x), \end{aligned}$$
(6d)
$$\begin{aligned} u_k(-1,j)={u_k}^{\mathrm{2D}}(-2\Delta x), \end{aligned}$$
(6e)
$$\begin{aligned} u_k(-2,j)={u_k}^{\mathrm{2D}}(-3\Delta x), \end{aligned}$$
(6f)
$$\begin{aligned} v_k(0,j)=0, \end{aligned}$$
(6g)
$$\begin{aligned} v_k(-1,j)=0, \end{aligned}$$
(6h)
$$\begin{aligned} v_k(-2,j)=0, \end{aligned}$$
(6i)

where, \(k=0,1,\ldots ,K-1\) and \(j=1,2,\ldots ,ny\). We use seven points to discretize the first-order, up to third-order, spatial derivatives, such as \(u_{k,xxx}\). Therefore, we need to know these values at these three locations \(x=-3\Delta x\), \(-2\Delta x\) and \(-\Delta x\) (i.e., \(u_k(-2,j)\), \(u_k(-1,j)\) and \(u_k(0,j)\)). The superscript ‘2D’ means these values are calculated from the two-dimensional stream-function wave theory, such as \(\beta ^{\mathrm{2D}}\) and \({u_k}^{\mathrm{2D}}\).

Only the regular waves are generated in this study. The stream-function theory directly yields the wave heights, \(\beta ^{\mathrm{2D}}(-\Delta x)\), \(\beta ^{\mathrm{2D}}(-2\Delta x)\), \(\beta ^{\mathrm{2D}}(-3\Delta x)\). However, the variables \({u_k}^{\mathrm{2D}}(-\Delta x)\), \({u_k}^{\mathrm{2D}}(-2\Delta x)\) and \({u_k}^{\mathrm{2D}}(-3\Delta x)\) are determined by a least-squares matching method (Zhao et al. 2014a).

When the wave-maker is located at \(y=0\) m and the waves propagate in the positive \(y\) direction, the following quantities are given in a similar way:

$$\begin{aligned} \beta (i,0)=\beta ^{\mathrm{2D}}(-\Delta y), \end{aligned}$$
(7a)
$$\begin{aligned} \beta (i,-1)=\beta ^{\mathrm{2D}}(-2\Delta y), \end{aligned}$$
(7b)
$$\begin{aligned} \beta (i,-2)=\beta ^{\mathrm{2D}}(-3\Delta y), \end{aligned}$$
(7c)
$$\begin{aligned} u_k(i,0)=0, \end{aligned}$$
(7d)
$$\begin{aligned} u_k(i,-1)=0, \end{aligned}$$
(7e)
$$\begin{aligned} u_k(i,-2)=0, \end{aligned}$$
(7f)
$$\begin{aligned} v_k(i,0)={u_k}^{\mathrm{2D}}(-\Delta y), \end{aligned}$$
(7g)
$$\begin{aligned} v_k(i,-1)={u_k}^{\mathrm{2D}}(-2\Delta y), \end{aligned}$$
(7h)
$$\begin{aligned} v_k(i,-2)={u_k}^{\mathrm{2D}}(-3\Delta y), \end{aligned}$$
(7i)

where, \(k=0,1,\ldots ,K-1\) and \(i=1,2,\ldots ,nx\).

4.2 Reflected-wave-absorbing boundary

In the GN simulations, we need to absorb the reflected waves caused by the slope or obstacle to prevent these reflections from interfering with the wave-maker. Mayer et al. (1998) introduced a method to absorb the left-going reflective waves caused by the breakwater. Zhao et al. (2014a) used this method in two-dimensional GN simulations. Here, we use the same method with extensions.

In this study, the length of this zone for absorbing reflected waves is \(L1\). The theoretical solution in this zone is \({\beta ^a}\), \({u_k} ^a\) and \({v_k} ^a\) (\(k=0,1,\ldots ,K-1\)). The solution obtained from the GN equations are \({\beta }\), \({u_k}\) and \({v_k}\) (\(k=0,1,\ldots ,K-1\)). For example, the wave-maker is located at \(x=0\) m, and the generated waves are right-going. The reflected wave absorbing region should be located in \(0 \le x \le L1\). We use the following new values instead of the solved ones:

$$\begin{aligned} {{\beta } ^{\mathrm{new}}} ={c_{\mathrm{damp}}} {\beta } +({1-c_{\mathrm{damp}}}) {{\beta } ^{a}}, \end{aligned}$$
(8a)
$$\begin{aligned} {{{ u}_k} ^{\mathrm{new}}} = {c_{\mathrm{damp}}} {{u_k}} +({1-c_{\mathrm{damp}}}) {{u_k}^a}, \end{aligned}$$
(8b)
$$\begin{aligned} {{{ v}_k} ^{\mathrm{new}}} = {c_{\mathrm{damp}}} {{v_k}} +({1-c_{\mathrm{damp}}}) {{v_k}^a}, \end{aligned}$$
(8c)

where, \(k=0,1,\ldots ,K-1\) and

$$\begin{aligned} {c_{\mathrm{damp}}} = 3{{\left( \frac{x}{L1}\right) }^2} - 2{\left( \frac{x}{L1}\right) ^3}. \end{aligned}$$
(9)

When the \(x\) position changes from \(x=0\) to \(x=L1\), the value of \(c_{\mathrm{damp}}\) changes from \(0\) to \(1\). Therefore, the wave elevation will change from \({{\beta } ^{a}}\) at \(x=0\) to \({{\beta }}\) at \(x=L1\). The procedure for the velocity coefficient is similar to the above. This procedure helps absorb the reflected waves. When the wave-maker is located at \(y=0\) m and waves are propagating in the positive \(y\) direction, the reflected wave absorbing region should be located in \(0 \le y \le L1\), and the treatment is similar.

4.3 Radiation-wave-absorbing boundary

When the waves generated by the wave-maker propagates to the other end of the computational domain, we need to absorb the waves. When the wave-maker is located at \(x=0\) m, we need a damping zone at the right end of the computational domain to absorb the transmitted waves. The length of this zone is \(L2\). In this zone (\(L-L2 \le x \le L\)), we use \({{{\beta }} ^{\mathrm{new}}}\), \({{ {u_k}} ^{\mathrm{new}}}\) and \({{ {v_k}} ^{\mathrm{new}}}\) to replace the solved \({{{\beta }}}\), \({{ {u_k}}}\) and \({{ {v_k}}}\). The expressions are

$$\begin{aligned} {{\beta } ^{\mathrm{new}}} ={c_{\mathrm{damp}}} {\beta }, \end{aligned}$$
(10a)
$$\begin{aligned} {{{ u}_k} ^{\mathrm{new}}} = {c_{\mathrm{damp}}} {{u_k}}, \end{aligned}$$
(10b)
$$\begin{aligned} {{{ v}_k} ^{\mathrm{new}}} = {c_{\mathrm{damp}}} {{v_k}}, \end{aligned}$$
(10c)

where, \(k=0,1,\ldots ,K-1\) and

$$\begin{aligned} {c_{\mathrm{damp}}} = 3{{\left( \frac{L-x}{L2}\right) }^2} - 2{\left( \frac{L-x}{L2}\right) ^3} \end{aligned}$$
(11)

When the \(x\) position change from \(x=L-L2\) to \(x=L\), the value of \(c_{damp}\) change from \(1\) to \(0\). Therefore, the wave elevation and wave velocity are all zero at \(x=L\). When the wave-maker is located at \(y=0\)m, the radiation wave absorbing region should be located in \(L-L2 \le y \le L\), and the treatment is similar.

4.4 Wall boundary

The wall condition is given by the fact that there is no normal flow across the boundary. This is written as

$$\begin{aligned} \mathbf {u} \cdot \mathbf {n}=0, \end{aligned}$$
(12)

where, \(\mathbf {n}\) represents the unit normal to the wall. In this paper, the wall is positioned along the \(x\) direction or the \(y\) direction depending on the problem. For example, the wall is positioned at \(y=0\) (i.e., \(j=1\)). The region above the wall (\(y>0\)) is the computational domain. We need the wave elevation and the velocity coefficient below this wall (\(j=0\), \(-1\) and \(-2\)). They are given by

$$\begin{aligned} \beta (i,0)=\beta (i,2), \end{aligned}$$
(13a)
$$\begin{aligned} \beta (i,-1)=\beta (i,3), \end{aligned}$$
(13b)
$$\begin{aligned} \beta (i,-2)=\beta (i,4), \end{aligned}$$
(13c)
$$\begin{aligned} u_k(i,0)=u_k(i,2), \end{aligned}$$
(13d)
$$\begin{aligned} u_k(i,-1)=u_k(i,3), \end{aligned}$$
(13e)
$$\begin{aligned} u_k(i,-2)=u_k(i,4), \end{aligned}$$
(13f)
$$\begin{aligned} v_k(i,0)=-v_k(i,2), \end{aligned}$$
(13g)
$$\begin{aligned} v_k(i,-1)=-v_k(i,3), \end{aligned}$$
(13h)
$$\begin{aligned} v_k(i,-2)=-v_k(i,4), \end{aligned}$$
(13i)

where, \(k=0,1,\ldots ,K-1\) and \(i=-2,-1,\ldots ,nx+3.\)

5 Test cases

In this section, we will present the results of high-level GN models in three dimensions in three test cases. Results are compared with some existing laboratory experiments, and with the available theoretical and numerical solutions of the problems.

5.1 Wave evolution in a closed basin

To study the accuracy of the three-dimensional GN model and the algorithm used here, we first consider the problem of the wave evolution in a closed basin of size \(L_x= L_y=7.5\) m.

We consider the domain \(-L_x/2 \le x \le L_x/2\), \(-L_y/2 \le y \le L_y/2\) bounded by reflective vertical walls. Within this domain, we take the initial condition to be a superelevation of the surface \(\eta _0(x,y), \) above an otherwise constant water depth \(h_0=0.45\) m. For the case shown here, the initial surface elevation is of Gaussian shape defined by

$$\begin{aligned} \eta _0(x,y)=H_0 \text{ exp }[-2(x^2+y^2)], \end{aligned}$$
(14)

where \(H_0=0.01h_0=0.0045\) m in this test case. We start from GN-1 model and also we need GN-2 model to compare with GN-1 model for convergence test. Grid size of \(\Delta x=\Delta y=0.15\) m and time step size of \(\Delta t=0.05\) s are used here. The comparison between the GN-1 results and GN-2 results on wave elevation at two points is shown in Fig. 1. These two points are: point (a) at \(x=0\) m and \(y=0\) m, i.e., the center of the computational domain, and point (b) at \(x=-L_x/2\) and \(y=-L_y/2\), i.e., the corner.

Fig. 1
figure 1

Time histories of wave elevation at two points. a \(x=0\) m and \(y=0\) m and b \(x=-L_x/2\) and \(y=-L_y/2\)

We observe that there are big differences between the GN-1 model and GN-2 model. Therefore, we conclude that the GN-1 results are not the converged GN results. The GN-1 model can only simulate weakly dispersive waves (kh \(<1.0\)). Webster et al. (2011) has shown that as the level of the GN model goes up, the GN model could become a strongly dispersive wave model, see Fig. 1 of Webster et al. (2011). GN-2, GN-3 and GN-4 models have different dispersive limits, they are kh \(<2.5\), kh \(<5.5\) and kh \(<9.0\), respectively. We need to increase the level to GN-3 to see whether the GN-2 results are the converged GN results or not. The comparison between the GN-2 results and GN-3 results on wave elevation at the central point and the corner are shown in Fig. 2.

Fig. 2
figure 2

Time histories of wave elevation at two points. a \(x=0\) m and \(y=0\) m and b \(x=-L_x/2\) and \(y=-L_y/2\)

We observe that the differences between the GN-2 model and GN-3 model are quite smaller than the differences between the GN-1 model and GN-2 model. However, there still are some small differences between the GN-2 and the GN-3 results. This means the GN-2 results are not the converged GN results. And we have to increase the level to GN-4 to check whether the GN-3 model can provide the converged GN results. The comparison between GN-3 results and GN-4 results on wave elevation at the central point and the corner are shown in Fig. 3.

Fig. 3
figure 3

Time histories of wave elevation at two points. a \(x=0\) m and \(y=0\) m and b \(x=-L_x/2\) and \(y=-L_y/2\)

We observe that the GN-4 results shown in Fig. 3 are almost the same as the GN-3 results. We could not find any difference between the GN-3 results and GN-4 results from Fig. 3. Therefore, we regard the GN-3 results as the converged GN results for this case. We then use GN-3 results to compare with the linear analytical solution of this problem (Wei and Kirby 1995). The comparison is shown in Fig. 4.

Fig. 4
figure 4

Time histories of wave elevation at two points. a \(x=0\) m and \(y=0\) m and b \(x=-L_x/2\) and \(y=-L_y/2\)

Due to the small initial wave amplitude, \(H_0=0.01h\), the agreement between the GN-3 results and the linear solution of the problem is good. The initial superelevation is symmetric about the center of the basin (\(x=0\) m, \(y=0\) m). As a result, the surface at anytime should be symmetric about the center. The contours of the free surface at \(t=50\) s calculated by GN-3 model are shown in Fig. 5.

Fig. 5
figure 5

Surface contours at \(t=50\) s, illustrating rotational symmetry of evolving waves

The axisymmetric contours of wave evolution about the center of the basin, seen in Fig. 5, reveals that the momentum equations in the \(x\) direction work as well as in the \(y\) direction. Since no water can escape from the basin, the water volume should remain constant in time. The total volume at \(t=0\) s is \(25.31957\,\mathrm{m}^3\). During the first \(100\) s, the changes in volume is less than \(1.0\times 10^{-7}\,\mathrm{m}^3\) for the GN model, showing that mass is conserved accurately.

5.2 Wave propagation over a three-dimensional slope (Berkhoff et al. 1982)

Berkhoff et al. (1982) conducted laboratory experiments on wave diffraction due to a three-dimensional slope, on which an elliptic shoal was placed. We will also use this case to test the three-dimensional GN models. The numerical simulation domain used in these tests is shown in Fig. 6, indicating the dimensions and water depth.

Fig. 6
figure 6

Bottom contours for the experiments of Berkhoff et al. (1982)

The center of the shoal is at \(x=0\) m and \(y=0\) m. The slope-oriented coordinates (\(x'\),\(y'\)) are related to the computational coordinates as follows:

$$\begin{aligned} x'=x \, \text{ cos } (20^\circ ) -y \, \text{ sin } (20^\circ ), \end{aligned}$$
(15a)
$$\begin{aligned} y'=x \, \text{ cos } (70^\circ ) +y \, \text{ sin } (70^\circ ). \end{aligned}$$
(15b)

The origin of the \(oxy\) and the \(o'x'y'\) coordinates is the same point shown in Fig. 6. The water depth on the bed slope is described by

$$\begin{aligned} h_\mathrm{s}=0.45-0.02(y'+5.84)\quad \text{ for }\quad y' \ge -5.84, \end{aligned}$$
(16a)
$$\begin{aligned} h_\mathrm{s}=0.45\quad \text{ for }\quad y' < -5.84. \end{aligned}$$
(16b)

We note that the minimum water depth used in the GN calculations is \(h=0.1\) m.

For the points located on the shoal, i.e.,

$$\begin{aligned} {\left( {\frac{x'}{4}} \right) ^2} + {\left( {\frac{y'}{3}} \right) ^2} < 1, \end{aligned}$$
(17)

the water depth is defined by

$$\begin{aligned} h=h_\mathrm{s}+0.3-0.5 \sqrt{1 - {{\left( {\frac{x'}{5}} \right) }^2} - {{\left( {\frac{y'}{{3.75}}} \right) }^2}}. \end{aligned}$$
(18)

The wave-maker is located at \(y=-14\) m. At the location of the wave-maker, the constant water depth is \(h=0.45\) m, the wave height is \(H_0=0.0464\) m and the period of the incoming wave is \(T=1\) s. Two wave absorbers are used in the GN calculations. One, located in the region \(-14 \le y \le -10~\mathrm{m}\), prevents the reflected waves to interfere with the wave-maker. Another wave absorber, located at \(14 \le y \le 24~\mathrm{m}\) absorbs the wave in the open boundary to prevent reflected waves moving back into the numerical wave tank. We find that kh \(=1.88\) at the wave-maker, and this value is beyond the capability of the GN-1 model. Therefore, we use the GN-2, GN-3 and GN-4 models to do the simulations in this case. The grid space \(\Delta x = \Delta y = 0.1\) m, and the time step \(\Delta t = 0.0333\) s are used for the calculations in this case. The numerical calculations are performed for 1,100 time steps. The GN results are presented in Fig. 7.

Fig. 7
figure 7figure 7

Comparison on the relative wave height among the GN models, the fully nonlinear Boussinesq model (Wei et al. 1999) and the experimental data (Berkhoff et al. 1982). a \(y=1\) m, b \(y=3\) m, c \(y=5\) m, d \(y=7\) m, e \(y=9\) m, f \(x=2\) m, g \(x=0\) m and h \(x=-2\) m

Relative wave heights (\(H/H_0\)) along eight sections (\(x= 1, 3, 5, 7, 9\) m and \(y=2, 0, -2\) m) are shown in Fig. 7. We mention that \(H\) means the wave height at the local position, and it was calculated by averaging the wave height in the last \(100\) s of the calculations. The predictions of the GN-2 model shows some differences with that of the GN-3 model. The GN-4 results are almost on top of the GN-3 results, as seen in Fig. 7. Therefore, we conclude that the GN-3 results are the converged GN results in this case. We observe that both the GN-3 model and the fully nonlinear Boussinesq model (Wei et al. 1999) shows good agreement with the experimental data (Berkhoff et al. 1982). The Boussinesq model (Wei et al. 1999) shows closer agreement with the laboratory measurements of the maximum wave height along the section \(y=9\) m, while the GN-3 results are in better agreement with the laboratory measurements of the width of the profile (see Fig. 7e).

5.3 Wave transformation over a circular shoal (Chawla and Kirby 1996)

Chawla and Kirby (1996) conducted a series of physical experiments for wave transformation over a circular shoal. Their experiments consist of test cases of regular waves and directional random waves, including breaking and nonbreaking cases. To study the combined wave refraction/diffraction in two horizontal dimensions, we present comparisons with the nonbreaking monochromatic wave cases. Figure 8 shows the setup of the computational domain.

Fig. 8
figure 8

Bottom contours for the experiments of Chawla and Kirby (1996)

As shown in Fig. 8, a circular shoal is placed on an otherwise flat bottom in the basin. The domain dimensions \(-3 \le x \le 28\) m and \(0 \le y \le 18.2\) m in Fig. 8 are used in the GN calculations. The part \(0 \le x \le 20\) m in Fig. 8 corresponds to the physical wave tank used in Chawla and Kirby (1996). We extend the \(x\) range in the numerical wave tank to include the two wave-absorbing regions. \(-3 \le x \le 1\) m region is used to absorb the reflected waves by the shoal back to the wave-maker, and \(18 \le x \le 28\) m region is used to absorb the waves on the right end of the domain. At \(x=-3\) m, monochromatic waves are generated, and they propagate in the positive \(x\) direction over the circular shoal. The center of the shoal is located at \(x = 5\) m and \(y = 8.98\) m. The perimeter of the shoal is defined by

$$\begin{aligned} (x-5)^2+(y-8.98)^2=(2.57)^2. \end{aligned}$$
(19)

And the water depth on the submerged shoal is given by

$$\begin{aligned} h=h_0+8.73-\sqrt{82.81-(x-5)^2-(y-8.98)^2}, \end{aligned}$$
(20)

where \(h_0=0.45\) m is the constant water depth of the wave basin.

The wave height of the incoming wave is \(H_0=1.18\) cm, and the wave period is \(1.0\) s. On the top of the circular shoal, the water depth is \(h = 8\) cm. We find that kh \(=1.89\) at the wave-maker, which is beyond the capability of the GN-1 model. Therefore, we use the GN-2, GN-3 and GN-4 models to simulate this case. We choose a uniform grid spacing of \(\Delta x = \Delta y = 0.1\) m in both the \(x\) and \(y\) directions. Time step of \(\Delta t =0.0333\) s is chosen in the calculations. We run this case for \(1,000\) time steps. The comparison of the relative wave height (\(H/H_0\)) between the GN model and the fully nonlinear Boussinesq model of Chen et al. (2000), and the laboratory measurements (Chawla and Kirby 1996) at different locations in the tank are shown in Fig. 9.

Fig. 9
figure 9figure 9

Comparison of the relative wave height among the GN models, the fully nonlinear Boussinesq model (Chawla and Kirby 1996) and the experimental data (Chawla and Kirby 1996). a \(y=8.98\) m, b \(x=3.8\) m, c \(x=5.0\) m, d \(x=6.2\) m, e \(x=8.0\) m, f \(x=9.7\) m and g \(x=11.2\) m

We observe that there are some differences between the predictions of the GN-2 and the GN-3 models, while as seen in Fig. 9, the GN-3 and GN-4 predictions are almost the same. Therefore, we regard the GN-3 model as the converged GN model for this case. A close agreement between the GN-3 results and the experimental data (Chawla and Kirby 1996) is observed. In this case, the \(H/H_0\) ratio reaches the value of \(H/H_0=2.7\), as seen in Fig. 9a, indicating a strongly nonlinear wave condition compared to the case discussed in Sect. 5.2. The close agreement between the calculations, by both the GN-3 model and the Boussinesq model (Chawla and Kirby 1996), observed along the transects at \(x=3.8\), \(x=5.0\), \(x=6.2\), \(x=8.0\), \(x=9.7\) and \(x=11.2\) m (see Fig. 9b–g) implies that the combined refraction/diffraction effects are captured successfully by these models. The shoal center is located at the \(y=8.98\) m (the width of the tank is \(18.2\) m), which is slightly closer to one of the side walls (\(y=0\) m). Therefore, the distribution of wave height in the \(y\) direction is not symmetric, which can be seen in Fig. 9b–g.

6 Summary

The numerical method to solve the three-dimensional, high-level GN equations and the boundary conditions used in the GN models are introduced for the first time. Here, we present three test cases to study the accuracy of the GN models. The first case is on wave evolution in a closed basin. The GN-3 results show good agreement with the linear analytical solution for small wave heights. The symmetric contour of the free surface shows that the algorithm performs well in both the \(x\) and \(y\) directions.

In the second test case, we numerically recreate the experiments of Berkhoff et al. (1982) on wave diffraction due to a three-dimensional slope (with an elliptic shoal placed on the slope). The GN-3 model, as the converged GN model in this case, agrees well with the Boussinesq model (Wei et al. 1999) and the experimental data (Berkhoff et al. 1982).

In the last case, the experiment of Chawla and Kirby (1996) is simulated by the GN-2, GN-3 and GN-4 models. Comparisons between the GN results of different levels shows that the GN-3 model is the converged GN model in this case. A close agreement between the GN-3 model, the laboratory data (Chawla and Kirby 1996) and the Boussinesq model (Chen et al. 2000) is observed.