1 Introduction

In this article, the development of surface waves across a gently sloping bottom is in view. Our main goal is the prediction of the wave height and the set-down of a periodic wave as it enters an area of shallower depth. This problem is known as the shoaling problem and has a long history, with contributions from a large number of authors going back as far as Green and Boussinesq.

The shoaling problem itself may be studied from a number of angles, and there is an abundant literature reporting on field and laboratory studies as well as numerical simulations. One of the earliest studies was the experimental investigation of the transformation of a solitary wave on sloping bed [19]. This configuration has attracted a lot of attention, and is still studied from various points of view (see, for example, [5, 16, 35]). Shoaling of periodic waves was considered experimentally in [10, 48], and many other classic works on shoaling waves and associated phenomena are summarized in [28, 46].

One important issue in operational wave modeling is the prediction of local nearshore wave conditions from offshore data. In general, the description of waves in the nearshore zone is a difficult task involving a multitude of bathymetric effects such as for example changes in wave height and wavelength due to shoaling, changes in propagation direction due to refraction and diffraction, as well as bottom friction and percolation. On the other hand, since offshore conditions provided by buoy measurements or simulations from spectral wave models are generally sparse, the introduction of some simplifying assumptions will most likely not compromise the overall accuracy of the forecast. Moreover, since from a practical point of view, the main interest has traditionally been in forecasting the waveheight of the shoaling waves, we follow the classical approach of reducing the problem to the most essential factors of the wave transformation.

An idealized form of the shoaling problem is obtained by making three key assumptions. First, the bottom slope is small enough to allow the waves to continuously adjust to the changing depth without altering their basic shape or breaking up. Second, reflections are assumed to be negligible so that the energy flux of a wave is conserved as it transforms on the slope. Third, the period T of a wave is assumed to be constant as it progresses. This last point is sometimes termed the conservation of waves as the number of waves in a group will remain constant during the shoaling process.

Rather than following a wave in space and time as it propagates over the slope, we estimate wave properties as functions of the depth using conservation of period T and energy flux, and a prescribed change in momentum due to the effect of the radiation stress. These conservation equations are due to the assumptions stated above, and they form the basis for the description of the shoaling process as first envisioned by Rayleigh [44], and subsequently used by a number of authors. The crucial factor which guarantees that the shoaling assumptions are valid is that the relative change in water depth over a wavelength is smaller than the wave steepness. This point is explained in more detail in [42, 54].

In the context of linear wave theory, the process outlined above is the classical approach to wave shoaling and can be found in textbooks on coastal engineering such as [15, 51]. This approach depends on the assumption that the waves can be described by a sinusoidal function of the form \(\frac{H}{2} \cos (kx-\omega t)\), where H is the wave height, k is the wavenumber, \(\omega \) is the circular frequency, t is the time and x is a spatial coordinate along which the bottom is sloping. Recall that the wavelength is \(\lambda = \frac{2 \pi }{k}\) and the wave period is \(T = \frac{2 \pi }{\omega }\), and these are related by the dispersion relation \(\omega ^2 = gk \tanh {(kh)}\) at local depth h. In the linear shoaling theory, the conservation of energy flux is central. The energy flux is generally formulated as the average over one period of the energy density E times the group speed \(C_g\). The energy density is given in terms of the fluid density \(\rho \), the gravitational acceleration g and the wave height H as \(E=\frac{1}{8} \rho g H^2\), and the group speed is given by \(C_g = \frac{d \omega }{d k}\).

As mentioned above, if the bathymetry is sloping only gently upwards, then it may be assumed that the waves adjust adiabatically to the changing conditions, and that reflections and distortions are negligible. The wave-height transformation of a shoaling wave is obtained by imposing conservation of the energy flux \(E C_g\) across the shoaling region. If a wave measurement \(H_0\), \(T_0\) at some point offshore is given, then the wave height at a point closer to shore may be computed from the conservation of energy flux given in the form

$$\begin{aligned} H C_g = H_0 C_{g0}, \end{aligned}$$
(1)

where the group speed \(C_g\) at local depth h can be found from the conservation of the wave period T. Similar considerations using the linear definition of the radiation stress yield a formula for the set-down [37].

The procedure outlined above is computationally extremely efficient since only one nonlinear equation has to be solved numerically. As a result, it would be a natural to use this method in conjunction with Monte Carlo simulations to bridge the divide between offshore conditions which are usually given statistically as sea states, and the requirement of phase-resolved data such as would be required to determine expected run-up for example [45]. However, the linear theory is not valid for waves with moderate or larger waveheight, and nonlinear effects should be included for waves approaching the surf zone.

The authors of [55] used cnoidal functions in connection with the linear formulation of the energy flux defined above to obtain a hybrid theory of shoaling. Unfortunately, this approach led to a discontinuity in wave height at the matching point between the linear shoaling equation (1) and the nonlinear theory based on the cnoidal functions. The problem was remedied to some degree in [56] by requiring continuity in wave height effected through the use of conversion tables. This approach led to good agreement with the experimental data, but was cumbersome to implement, and as already noted in [56], the continuity of the wave height at the matching point in the shoaling curve led to a discontinuity in energy flux.

The problem can be resolved by defining a shoaling equation based on the full water-wave problem using the streamfunction method [15], for example. Such an approach has been documented in [57]. While accurate, the streamfunction approach depends on discretizing the steady Euler equations leading to large systems of equations which need to be solved numerically. If the approach is to be used in connection with ocean-wave statistics, the approach based on the steady Euler equations might be too computationally demanding. Moreover, the agreement of the combined linear-cnoidal approach of [56] already gave good agreement with experiments while being much less expensive.

In present work, we will show that the discrepancy between conservation of wave height and conservation of energy flux can be resolved in the context of the KdV theory using a definition of the energy flux consistent with the KdV equation [4, 21], and without using the fully nonlinear approach of [57]. Recall that the KdV equation is given in the form

$$\begin{aligned} \eta _t + c_0\eta _x + \frac{3}{2}\frac{c_0}{h_0}\eta \eta _x + \frac{c_0 h_0^2}{6}\eta _{xxx} = 0, \end{aligned}$$
(2)

where \(\eta (x,t)\) is the deflection of the free surface from rest at a point x and a time t, g is the gravitational acceleration, \(h_0\) is the local water depth, and \(c_0 = \sqrt{g h_0}\) is the long-wave speed.

Shoaling in the context of steady solutions of the KdV equation is then described as follows. Given a steady wavetrain of wave height H, wavelength \(\lambda \) and period T, the variation of the wave as it propagates from depth \(h^A\) to \(h^B\) is obtained by imposing conservation of T, conservation of the energy flux \(q_E\), and balance of forces using the bottom forcing by the pressure force, and the radiation stress.

To execute this plan, one needs to have in hand formulations for the energy flux \(q_E\) and the radiation stress \(S_{xx}\) in the context of the KdV equation. These expressions can be developed using ideas first put forward in [3, 4]. Using the methods in these papers, it can be seen that we have

and

where the overbar indicates that an average is taken over one wave period. Note that the energy flux is defined in a pointwise sense while the radiation stress is defined in an average sense. However, for the shoaling problem \(q_E\) will also be averaged over one wave period.

Before we continue, it should be mentioned that another viable approach to solving the shoaling problem would be to define a model equation with a realistic non-constant bathymetry, and simulate space and time-dependent solutions. In fact, due to the ready availability of computational resources, shoaling is nowadays usually computed by utilizing nearshore wave models which are used to forecast wave conditions in the coastal zone. These models are generally known as Boussinesq models, and probably the first such model was developed by Peregrine [43]. Some of the models currently in use are described in [11, 39, 45]. It is also possible to derive simpler KdV-type equations with variable bathymetry, such as shown in [17, 20, 40, 58]. While some concerns with this approach were raised recently in [24], the authors of [40] found fair agreement of their hybrid spectral KdV-type model with shoaling experiments. A more recent approach is the inclusion of bathymetry in higher order, fully nonlinear or fully dispersive models, such as, for example, found in [13, 14, 59].

The plan of the paper is as follows. In the next section, the formulation of momentum and energy balance in the context of the KdV equation will be recalled, leading to the expression for flow force \(q_I\) and energy flux \(q_E\). In Sect. 3, a formulation of the radiation stress consistent with the KdV equation will be found. Section 4 contains the formulation of the nonlinear shoaling equations, details on the numerical implementation and a comparison with wave tank experiments with particular focus on the set-down. Section 6 details the comparison with other nonlinear shoaling theories without set-down, and in particular with the shoaling curves obtained by Svendsen and Buhr Hansen [56]. In Sect. 7, we provide a comparison with the experimental results of [56]. In the Conclusion we put our work into context and mention possibilities for further work.

2 Momentum and Energy Balance in the KdV Approximation

We start this section with a brief description of the water-wave problem of an inviscid, incompressible and homogeneous fluid with a free surface. Due to the assumption that the relative change in water depth over one wavelength is less than the wave steepness, the problem can be locally formulated with a constant undisturbed depth \(h_0\) (see Fig. 1).

Fig. 1
figure 1

A periodic wave of wave height H and wavelength \(\lambda \) propagating at the free surface of a fluid of undisturbed depth \(h_0\). The free surface is given by \(z=\eta (x,t)\)

If the flow is assumed to be irrotational, the problem can be formulated in terms of a velocity potential \(\phi (x,z,t)\) in addition to the surface deflection \(\eta (x,t)\). The velocity field (u(xzt), v(xzt)) is then given as the gradient of \(\phi \), and the pressure P can be found using the Bernoulli equation. In terms of \(\phi \) and \(\eta \), the problem is described by the Laplace equation

$$\begin{aligned} \phi _{xx} + \phi _{zz} = 0 \quad \text { for }\quad -h_0<z < \eta (x,t) \end{aligned}$$
(3)

in the fluid domain, and the boundary conditions

$$\begin{aligned} \eta _t + \phi _x\eta _x - \phi _z&= 0 \quad \text {on} \quad z = \eta (x,t),\\ \phi _t + \frac{1}{2}(\phi _x^2 + \phi _z^2) + g\eta&= 0 \quad \text {on} \quad z = \eta (x,t), \\ \phi _z&= 0 \quad \text {on} \quad z = -h_0. \end{aligned}$$

It is well known that this problem is difficult to treat both mathematically and numerically. While it is known that solutions of the equations above exist on time scales relevant for coastal applications [30], numerical discretization of the full problem on the field scale remains completely out of reach. Thus in practical situations, an asymptotic approximation of the Euler equations is usually required. The traditional asymptotic theories are the linearized (Airy) theory and the hyperbolic (Saint-Venant) shallow-water theory such as outlined in [53]. The work of Boussinesq [9] and Korteweg and de Vries [25] led to another asymptotic regime, the so-called Boussinesq scaling which can be used for long waves of small to moderate amplitude. In the present work, we consider waves in the Boussinesq regime, and since we consider waves propagating in the shoreward direction only, we restrict attention to the Korteweg–de Vries (KdV) equation. Indeed, the KdV equation describes unidirectional waves in the presence of weakly nonlinear and dispersive effects in the case when these corrections are approximately balanced. To make this statement precise, it is useful to define the relative amplitude \(\alpha = a/h_0\) and the shallowness parameter \(\beta = h_0^2/\lambda ^2\), where \(a=H/2\) denotes a representative amplitude and \(\lambda \) a representative wavelength of the wavefield to be studied. Using an asymptotic expansion and a dimensional argument it can be shown that the KdV equation is a good model for long waves of small amplitude if terms of order \({\mathcal {O}}(\alpha ^2,\alpha \beta , \beta ^2)\) are neglected [61].

To derive the KdV equation, one defines the non-dimensional variables \(x = \lambda {\tilde{x}}\), \(z = h_0({\tilde{z}}-1)\), \(t = \frac{\lambda }{c_0}{\tilde{t}}\), and \(\phi = \frac{ga\lambda }{c_0} {\tilde{\phi }}\), then assumes that the velocity potential takes the form

$$\begin{aligned} {\tilde{\phi }} = {\tilde{f}} - \beta \frac{{\tilde{z}}^2}{2}{\tilde{f}}_{{\tilde{x}}{\tilde{x}}} + {\mathcal {O}}(\beta ^2), \end{aligned}$$
(4)

where \({\tilde{f}}\) is the velocity potential evaluated at the bed. Following the description in [61], the free-surface boundary conditions can then be used to obtain the KdV equation (2). In the process, it comes to light that the horizontal velocity at the bottom for a right-moving wave is given by

$$\begin{aligned} {\tilde{u}} = {\tilde{\eta }} - \frac{1}{4} \alpha {\tilde{\eta }}^2 + \frac{1}{3}\beta {\tilde{\eta }}_{{\tilde{x}}{\tilde{x}}} + {\mathcal {O}}(\alpha ^2 + \beta ^2). \end{aligned}$$
(5)

Moreover, as noted for example in [4], combining (5) and the derivative of (4) with respect to x one finds that the horizontal component of the velocity field is given by

$$\begin{aligned} {\tilde{\phi }}_{{\tilde{x}}}({\tilde{x}},{\tilde{z}},{\tilde{t}}) = {\tilde{\eta }} - \frac{1}{4} \alpha {\tilde{\eta }}^2 + \beta \Big ( \frac{1}{3}-\frac{{\tilde{z}}^2}{2} \Big ) {\tilde{\eta }}_{{\tilde{x}}{\tilde{x}}} + {\mathcal {O}}(\alpha ^2,\alpha \beta , \beta ^2) \end{aligned}$$
(6)

in the KdV approximation. This relation will be needed later in the derivation of the the momentum and energy balance, and the formulation of the radiation stress. In addition, we need the vertical component of the velocity field and the pressure. The vertical velocity is given by

$$\begin{aligned} {\tilde{\phi }}_{{\tilde{z}}}({\tilde{x}},{\tilde{z}},{\tilde{t}}) = - \beta {\tilde{z}} {\tilde{\eta }}_{{\tilde{x}}} + {\mathcal {O}}(\alpha \beta , \beta ^2). \end{aligned}$$

To express the pressure in terms of the surface excursion \(\eta \), assuming unit density for the moment, one first defines the dynamic pressure in the usual way:

$$\begin{aligned} P' = P - P_{\text {atm}} + gz, \quad P' = ag {\tilde{P}}'. \end{aligned}$$

Then using the Bernoulli equation and following the computations outlined in [4] leads to the non-dimensional perturbation pressure in the KdV approximation:

$$\begin{aligned} {\tilde{P}}' = {\tilde{\eta }} - \frac{1}{2}\beta ({\tilde{z}}^2 - 1){\tilde{\eta }}_{{\tilde{x}}{\tilde{x}}} + {\mathcal {O}}(\alpha \beta , \beta ^2). \end{aligned}$$
(7)

Approximations of the momentum and energy balance laws in the KdV scaling regime will now be derived. In the context of the full Euler equations with surface boundary conditions, the momentum balance is expressed by

$$\begin{aligned} \frac{\partial }{{\partial t}}\int _{{ - h_{0} }}^{\eta } {\phi _{x} } dz + \frac{\partial }{{\partial x}}\int _{{ - h_{0} }}^{\eta } \{ \phi _{x}^{2} + P\} dz = 0. \end{aligned}$$
(8)

Using the previously defined scaling, the momentum balance is

$$\begin{aligned} \alpha \frac{\partial }{\partial {\tilde{t}}} \int _{0}^{1+\alpha {\tilde{\eta }}}{\tilde{\phi }}_{{\tilde{x}}} h_0 d{\tilde{z}} + \frac{\partial }{\partial {\tilde{x}}} \int _{0}^{1+\alpha {\tilde{\eta }}} \big \{ \alpha ^2 {\tilde{\phi }}^2_{{\tilde{x}}} + \alpha {\tilde{P}}' + (1-{\tilde{z}}) \big \} h_0 d{\tilde{z}} = 0. \end{aligned}$$

Substituting the two expressions \({\tilde{\phi }}_x\), \({\tilde{P}}'\) and evaluating the integral one finds

$$\begin{aligned} \Big ( \alpha {\tilde{\eta }} + \frac{3}{4}\alpha ^2 {\tilde{\eta }}^2 + \frac{1}{6} \alpha \beta {\tilde{\eta }}_{{\tilde{x}}{\tilde{x}}} \Big )_{{\tilde{t}}} + \Big ( \frac{1}{2} + \alpha {\tilde{\eta }} + \frac{3}{2}\alpha {\tilde{\eta }}^2 + \frac{1}{3}\beta {\tilde{\eta }}_{{\tilde{x}}{\tilde{x}}} \Big )_{{\tilde{x}}} = {\mathcal {O}}(\alpha ^2,\alpha \beta ,\beta ^2). \end{aligned}$$

From this relation, we identify the non-dimensional momentum density

$$\begin{aligned} {\tilde{I}} = \alpha {\tilde{\eta }} + \frac{3}{4}\alpha ^2 {\tilde{\eta }}^2 + \frac{1}{6} \alpha \beta {\tilde{\eta }}_{{\tilde{x}}{\tilde{x}}}, \end{aligned}$$

and the non-dimensional momentum flux

$$\begin{aligned} \tilde{q_I} = \frac{1}{2} + \alpha {\tilde{\eta }} + \frac{3}{2}\alpha {\tilde{\eta }}^2 + \frac{1}{3}\beta {\tilde{\eta }}_{{\tilde{x}}{\tilde{x}}}. \end{aligned}$$

Returning the expression to its dimensional forms through the scaling \(I = c_0h_0 {\tilde{I}}\) and \(q_I = c_0^2h_0{\tilde{q}}_I\) yields

and

(9)

Note that the expression for \(q_I\) combines the momentum flux and the pressure force. Following Benjamin and Lighthill [7], we will use the term flow force for this quantity. Similarly, we can give the energy balance in the full Euler equations as

and following the same procedure as above will lead to the expressions

$$\begin{aligned} E = c_0^2 \Big ( \frac{1}{h_0}\eta ^2 + \frac{1}{4h_0^2}\eta ^3 + \frac{h_0}{6} \eta \eta _{xx} + \frac{h_0}{6} \eta _{x}^2 \Big ), \end{aligned}$$

and

$$\begin{aligned} q_E = c_0^3 \Big ( \frac{1}{h_0}\eta ^2 + \frac{5}{4h_0^2}\eta ^3 + \frac{h_0}{2}\eta \eta _{xx} \Big ), \end{aligned}$$
(10)

for the energy density and energy flux respectively.

Note that \(q_E\) is of second order, while the energy flux in the linear approximation is of first order. Indeed, it will be instructive to compare (10) to the well known expression for the energy flux in the linear theory. Denoting the amplitude of a linear wave by \(a=H/2\) and the group velocity by \(C_g\) as before, it can shown (see, for example, [29]) that the energy flux averaged over one period is

$$\begin{aligned} \overline{q_E^{\mathrm {linear}}} = g \overline{\eta ^2} C_g = \frac{1}{2} g a^2 C_g. \end{aligned}$$

On the other hand, for cnoidal waves of very large wavelength and very small amplitude (10) can be approximated by

$$\begin{aligned} q_{E} \sim c_0^3 \frac{1}{h_0}\eta ^2 = c_0 g \eta ^2. \end{aligned}$$

Averaging over one period and using the fact that the cnoidal wave is similar to a sinusoidal function for very small amplitudes, we obtain

$$\begin{aligned} \overline{q_{E}} \sim \frac{1}{2} g a^2 c_0. \end{aligned}$$

Finally, the two expressions are seen to be approximately equal if it is recognized that \(c_0\) is the group velocity for long linear waves in shallow water.

Note that in previous works on cnoidal shoaling such as [55, 56], the linear formulation of the energy flux was used. In addition to being obviously inconsistent, this approach also had practical drawbacks. Indeed as already mentioned, the method put forward in these works led to a discontinuity in the wave height at the matching point between linear and nonlinear theory. As will be shown momentarily, keeping the nonlinear terms in the expression for \(q_E\) resolves this problem, and indeed is essential to obtain the correct shoaling behavior for larger wave amplitudes.

In the next section, we will use the definition of the flow force \(q_I\), and ideas outlined above to derive an expression for the radiation stress in the context of the KdV equation. Incorporating the radiation stress into the shoaling equations will then enable us to identify the set-down in addition to the wave height of a shoaling wave.

3 Radiation Stress in the KdV Approximation

In linear water-wave theory, the radiation stress is well understood as a second-order response to a periodic wave train which is akin to the energy flux. Wave radiation stress is an important ingredient in the study of wave-current interactions, and also plays a major role in the understanding of wave setup in the context of breaking waves. The reader may consult [36] for the mathematical development of an expression for the radiation stress in the context of linear waves. A discussion of the radiation stress based on a more heuristic physical understanding is given by Longuet–Higgins and Stewart [37]. In the present work, we aim to expand the definition of the radiation stress to the nonlinear case, in particular in the context of the KdV equation. Using the momentum balance equation derived in the previous section, a nonlinear version of the radiation stress will be formulated. With this expression in hand, some consequences of the radiation stress on wave shoaling will be investigated.

Analyzing the definition given in [37], one can simply think of radiation stress as the total flow force of a progressive wave averaged over one period minus the hydrostatic pressure force at rest. As previously discussed we consider a wave propagating solely in the \(x-\)direction, and neglect all transverse effects. Then the definition of the principal component of the radiation stress is given by

$$\begin{aligned} {\overline{S}}_{xx} = \overline{\int _{-h_0}^{\eta } (\rho u^2 + P ) dz} + \int _{-h_0}^{0}\rho g z dz. \end{aligned}$$

The first term expresses the total flux of momentum across a plane integrated from the bottom to the free surface and with unit width, and as usual, the overbar denotes that the average over one wave period with respect to time is taken. The second term expresses the flow force in the absence of any wave motion.

In the context of the KdV equation, the flow force is given by equation (9) when rescaled for a fluid with unit density. Consequently, the \(x-\)component of the radiation stress is obtained in the KdV theory as

(11)

This formulation represents an improvement over the formulation given in [54] which only recorded the middle term \( \rho g \frac{3}{2} \overline{\eta ^2}\) in the final expression for the radiation stress. The middle term represents nonlinear effects on the radiation stress, but if shoaling is to be studied in the context of the KdV equation, both nonlinear and dispersive effects should be included in the radiation stress if it is to be consistent with the level of approximation. The last term in the expression above represents dispersive effects, and the first term appears due to a different in the normalization of the vertical axis as compared to [54]. A preliminary version of (11) was also presented in [26].

To apply the radiation stress to the formulation of the shoaling problem, let us consider a wave encountering a gently sloping beach. As indicated in Figure 2, the momentum flux is reduced in the onshore direction due to an opposing horizontal force exerted by the bed, and opposing the fluid pressure.

Fig. 2
figure 2

Schematic of the forces acting on a control volume given by a differential interval of length dx and reaching through the whole fluid column

When accounting for the set-down of the mean surface level, the flow force on the offshore side of the boundary of the control volume is given in terms of radiation stress by

$$\begin{aligned} q_I = S_{xx} + \int _{-h}^{{\overline{\eta }}} \rho g ({\overline{\eta }} - z) dz = S_{xx} + \frac{1}{2} \rho g ({\overline{\eta }} + h)^2. \end{aligned}$$

This relation can be found for example in [15, 37]. As already mentioned above, the momentum flux is reduced by the reaction force exerted by the sea bed on the fluid due to the weight of the fluid. This force is equal in magnitude to the horizontal component of the pressure force at the bottom \(\rho g (h + {\overline{\eta }}) dz\), where dz denotes the vertical variation in the sea bed over the horizontal distance dx. Thus, the horizontal component of the pressure force exerted on the bottom can be written as

$$\begin{aligned} \rho g (h + {\overline{\eta }}) dz = \rho g (h + {\overline{\eta }}) h_x dx. \end{aligned}$$
(12)

As indicated in Figure 2, the difference in flow force between the shoreward face and the offshore face of the control volume is given by

$$\begin{aligned} \frac{d}{dx}\Big [ S_{xx} + \frac{1}{2}\rho g (h + {\overline{\eta }})^2 \Big ] dx. \end{aligned}$$
(13)

Evidently, momentum balance requires (12) and (13) to be equal, and simplifying yields the relation

$$\begin{aligned} \frac{dS_{xx}}{dx} + \rho g ({\overline{\eta }} + h) \frac{d{\overline{\eta }}}{dx} = 0. \end{aligned}$$
(14)

To develop the shoaling equation, we integrate over the control interval \([x, x+dx]\) to get

$$\begin{aligned} \int _{x}^{x+dx}\frac{dS_{xx}}{dx} + \int _{x}^{x+dx} \rho g {\overline{\eta }} \frac{d {\overline{\eta }} }{dx} + \int _{x}^{x+dx} \rho g h \frac{d{\overline{\eta }} }{dx}=0. \end{aligned}$$

The first two integrals are straightforward to compute. The third integral is evaluated using integration by parts and then approximated using the trapezoidal rule. Defining the difference of any quantity F as \(\Delta F = F|_{x+dx} - F|_{x}\), we get the relation

$$\begin{aligned} \Delta S_{xx} = - \frac{\rho g}{2}\Delta {\overline{\eta }}^2 - \frac{\rho g}{2}(2h+h_x dx)\Delta {\overline{\eta }}. \end{aligned}$$
(15)

Recall that we are interested in the averaged behavior of the wave height for a wave-train approaching the beach. We therefore find it useful to define the changes in radiation stress averaged over a period by

(16)

where \({\overline{S}}_{xx}\) is defined by (11). With this identity in hand, it will be possible to include the development of the set-down \({\overline{\eta }}\) in the shoaling problem. The formulation of the complete shoaling equation will be the subject of the next section.

4 The Nonlinear Shoaling Equations

An explicit set of equations describing the shoaling of long waves on a gently sloping beach will now be given. The idea is to use the well known cnoidal wave solution for periodic waves in the KdV equation together with the assumption that the bottom slope is gentle enough so that reflections can be neglected, and the waves are able to adjust adiabatically to the new local depth. The wave profile \(\eta \) will distort, but the underlying cnoidal shape and periodicity are preserved.

A solution of the KdV equation for periodic waves of constant form was first discovered by Korteweg and de Vries in 1895 [25]. Assuming a traveling-wave solution of constant shape, one may make the ansatz \(\eta (x,t) = f(x-ct)\), and reduce the KdV equation to an ordinary differential equation of the form

$$\begin{aligned} -\frac{h_0^2}{3}(f')^2 = F(f) = \frac{1}{4} \frac{c_0}{h_0}f^3 + \Big ( \frac{c-c_0}{2}\Big ) f^2 + Af + B, \end{aligned}$$
(17)

with A and B being constants of integration. This differential equation has a number of solutions, but for practical applications only periodic real-valued and bounded solutions correspond to realistic wave profiles. Since F(f) is a third-order polynomial it has three roots. Periodic solutions occur only in the case where the roots are distinct, so that they can be labeled \(f_3<f_2<f_1\), and this convention allows us to write

$$\begin{aligned} F(f) = (f - f_1) (f - f_2) (f - f_3). \end{aligned}$$
Fig. 3
figure 3

Graph of the function \(-F(f)\). The roots are labelled by \(f_3< f_2 <f_1\). The red lines denote the values of f such that \(-F\ge 0\)

Requiring the solution to be real, it can be seen from (17) that \(-F(f)\) must be positive. Examining the phase plane plot in Figure 3, it is clear that periodic solutions will oscillate between \(f_2\) and \(f_1\). Since \(f_2 < f_1\) by assumption, \(f_1\) will denote the wavecrest while \(f_2\) will be the trough. Consequently, the wave height H is given by the difference \(H = f_1 - f_2\). As is well known, the periodic solutions of (17) are given in terms of the Jacobian elliptic function cn. The solution of the KdV equation is then

$$\begin{aligned} \eta (x,t) = f_2 - (f_2 - f_1) \text {cn}^2 \Big ( 2K(m) \big ( {\textstyle \frac{t}{T}} - {\textstyle \frac{x}{\lambda }} \big ), m \Big ), \end{aligned}$$
(18)

where m is the elliptic modulus defined by \(m=\frac{f_{1}-f_{2}}{f_{1}-f_{3}}\), and K(m) is the complete elliptic integral of first kind [32]. The wavespeed c and the wavelength \(\lambda \) are then given by

(19)

To use these formulas in practice, it is convenient to take the wave height H, the mean surface level \({\overline{\eta }}\) and the elliptic parameter m as given parameters. The roots of F can then by computed explicitly and are given as follows.

$$\begin{aligned} {\left\{ \begin{array}{ll} f_3 &{} = {\overline{\eta }} - \frac{H E(m)}{mK(m)}, \\ f_1 &{} = f_3 + \frac{H}{m}, \\ f_2 &{} = f_1 - H. \end{array}\right. } \end{aligned}$$
(20)

The shoaling problem can be formulated as follows. Suppose we know that a periodic wave train of wave height H, wavelength \(\lambda \) and mean-surface level \({\overline{\eta }}\) is given at a local depth \(h^A\). Assuming that the waves can be approximately described by the the KdV equation, a unique cnoidal wave solution can be found, and the frequency \(\nu \), the energy flux \(q_E\) and the radiation stress \(S_{xx}\) be found. The shoaling problem now consists of finding an appropriate cnoidal solution at a smaller depth \(h^B\). Relying on the conservation of frequency and energy flux, and a prescribed change in the radiation stress, the shoaling equations can be written as

$$\begin{aligned} \nu ^B(f_1,f_2,f_3,h^B) \ =&\ \ \nu ^A \ = \ \frac{c^A}{\lambda ^A}, \end{aligned}$$
(21)
$$\begin{aligned} {\overline{q}}_E^B(f_1,f_2,f_3,h^B) \ =&\ \ {\overline{q}}_E^A \ = \ \frac{1}{T}\int _0^{T} \Big \{\frac{1}{h^A} \eta ^2 + \frac{5}{4 (h^A)^2}\eta ^3 + \frac{h^A}{2}\eta \eta _{xx} \Big \} dt, \end{aligned}$$
(22)
$$\begin{aligned} {\overline{S}}^B_{xx}(f_1,f_2,f_3,h^B) \ =&\ \ {\overline{S}}^A_{xx} -\frac{1}{T}\int _0^{T} \Big \{ \frac{\rho g}{2}\Delta \eta ^2 + \frac{\rho g}{2}(h^B+h^A)\Delta \eta \Big \} dt. \end{aligned}$$
(23)

The first equation is conservation of frequency \(\nu \), while the second equation expresses conservation of energy flux integrated over a period T [4]. Finally, the third equation is (16), and is indeed a formulation of conservation of momentum expressed in terms of radiation stress. In previous work [27], a similar system was found, and then solved for the parameters \(f_1\), \(f_2\) and \(f_3\). However, the method used in [27] had several drawbacks. First, due to a lack of a definition of radiation stress, the equation for momentum conservation was replaced by conservation of the mean fluid level. This approach was therefore not able to predict the wave set-down. Moreover, solving for the parameters \(f_1\), \(f_2\) and \(f_3\) was not optimal from a numerical point of view, and the algorithm terminated long before the highest wave was reached. In the present work, we use the explicit form of the parameters to solve directly for H, m and \({\overline{\eta }}\). This approach is more expedient from a numerical point of view, and allows us to go much higher up on the shoaling curve. In terms of the wave height H, the conservation of frequency (21) turns into the following cubic equation for H:

$$\begin{aligned}&\frac{-3g(\frac{3E(m)}{mK(m)} - \frac{2}{m} + 1)^2}{64K(m)^2h^4m}H^3 + \frac{3g(\frac{3{\overline{\eta }}}{2h} + 1)(\frac{3E(m)}{mK(m)} - \frac{2}{m} + 1)}{16K(m)^2h^3m}H^2 + -\frac{3g(\frac{3{\overline{\eta }}}{2h} + 1)^2}{16K(m)^2h^2m}\nonumber \\&\quad \times H + \frac{1}{T^2} = 0. \end{aligned}$$
(24)

Similarly, we can manipulate the equation describing the changes in radiation stress to find an expression for the set-down. Indeed, (23) reduces to the quadratic equation

$$\begin{aligned} - {\overline{\eta }}^2 + {\mathcal {A}} {\overline{\eta }} + {\mathcal {B}} = 0, \end{aligned}$$
(25)

with

$$\begin{aligned} {\mathcal {A}} = \Big ( 3H - \frac{3h^B}{2} + \frac{h^A}{2} - 3H\overline{\text {cn}^2}(m) - \frac{3H}{m} + \frac{3HE(m)}{mK(m)} \Big ) \end{aligned}$$

and

$$\begin{aligned} {\mathcal {B}} = {\overline{S}}^A_{xx}(m) - \frac{\overline{\eta ^2}^A(m)}{2} - \frac{3}{2}H^2\overline{\text {cn}^4}(m) - \frac{(h^B)^3 \overline{\eta _{xx}}^B(m)}{3} +\frac{3}{2}h^A {\overline{\eta }}^A(m)- \frac{1}{2}h^B{\overline{\eta }}^A(m) \\ - \frac{3}{2}( H - \frac{H}{m} + \frac{HE(m)}{mK(m)})^2 + 3H \overline{\text {cn}^2}(m)(H - \frac{H}{m} + \frac{HE(m}{mK(m)} ). \end{aligned}$$

Note that we had to integrate various powers and derivatives of \(\text {cn}^2({\xi ;m})\). These formulas are based on calculations that can be found in [32] and [1], and are given in explicit form in the appendix. Having this representation in hand, we can in principle solve (24) using the well-known formula for the solution of a cubic polynomial. The result is written as \(H = {\mathcal {F}}(m,{\overline{\eta }})\). Similarly, (25) can be solved using the quadratic formula. This is written as \({\overline{\eta }} = {\mathcal {G}}(m,H)\). These two equations can be written in explicit form as two coupled equations. To solve these two equations simultaneously, we may iterate between them at current local depth \(h^B\) as follows; first, initialize the procedure with an initial guess \({\overline{\eta }}^0(m)\) which is generally taken as the value of the set-down at the previous depth on the shoaling curve and then find H using the exact solution of the cubic equation given by

$$\begin{aligned} H(m)^{i+1} = {\mathcal {F}}(m,{\overline{\eta }}^{i}(m)). \end{aligned}$$

This can in turn be used to update the set-down using the solution of the quadratic, viz.

$$\begin{aligned} {\overline{\eta }}(m)^{i+1} = {\mathcal {G}}(m, H^{i+1}(m)). \end{aligned}$$

Repeating this process, we continue to approximate H and \({\overline{\eta }}\) until a stopping criterion has been reached. Using this reduction allows us to solve the nonlinear system (21),(22),(23), by the following procedure. From the value of m at depth \(h^A\), we increment up, at each step iterating the above equations for H and \({\overline{\eta }}\), and then checking whether (22) is satisfied to a specified tolerance. If that is the case, we consider the system solved at depth \(h^B\), and move on to the next step with depth \(h^C\), thereby moving up the slope.

5 Implementation of the Shoaling Equations

Having explained the nonlinear shoaling equations, and the strategy for finding approximate solutions, we will now implement the equations and produce shoaling curves for various deep-water data. The method used here proceeds in three stages, such as originally developed in [55, 56]. Suppose an incoming wave of wavelength \(\lambda _0\) is given at a starting depth \(h_0\). While this depth may not be deep water, it is assumed that \(h_0 > 0.28 \lambda _0\), so that we label this starting value the deep-water wavelength. First, the linear shoaling equation is used up to the point \(h/\lambda _0 = 0.1\). At this point the cnoidal theory is valid [50], and we propose a matching technique to obtain the fundamental parameters of the nonlinear wave. Lastly, we use the nonlinear KdV theory to follow the shoaling curve into the nonlinear region.

Stage 1. Linear theory: The essential ingredient in this step is the linear dispersion relation

$$\begin{aligned} \omega ^2 - gk \tanh {(kh)} = 0, \end{aligned}$$
(26)

and the conservation of energy as stated in (1).

Since the circular frequency \(\omega \) is conserved, the nonlinear equation \(\omega ^2 - gk^B \tanh {(k^Bh^B)} = 0\) needs to be solved numerically for the wave number \(k^B\) using a Newton solver. The wave height is then found from the conservation of energy as

$$\begin{aligned} H^B = H^A \sqrt{\frac{C_g^A}{C_g^B}}, \end{aligned}$$
(27)

where \(C_g = \frac{d \omega }{d k}\) is the group velocity depending on the wave number and depth. The derivation of equation (27) is described in detail by for example in [15]. The set-down can be solved similarly using the procedure outlined in [37] using the radiation stress.

Stage 2. Matching linear and nonlinear theory: Due to increasing waveheight, the nonlinear algorithm must be utilized on the final stretch of the shoaling curve. The transition must be made in a region where both theories are valid, and some general conditions on the transition depth are given in [56]. To initialize the nonlinear solver at the transition depth, three parameters need to be specified. We choose to match the wave height H and the set-down \({\overline{\eta }}\) with the linear theory. In addition one of the parameters \(\lambda \), c, \(\nu \), \({\overline{q}}_E\) can be be matched. To do this we choose one of these parameters and then keeping H and \({\overline{\eta }}\) constant, we find an elliptic modulus \(m\in (0,1)\) which leads to equality in the chosen parameter. In principle we can only match one parameter, and it is not clear which one will be the most convenient. To investigate this issue, we define the root problems

$$\begin{aligned}&\lambda ^{lin}-\lambda ^{nonlin}(m) = 0, \quad c^{lin} - c^{nonlin}(m) = 0, \\&\nu ^{lin} - \nu ^{nonlin}(m) = 0, \quad {\overline{q}}_E^{lin} - {\overline{q}}_E^{nonlin}(m) = 0. \end{aligned}$$

Here the linear parameter is a fixed constant while the nonlinear quantity is a function of m given that H and \({\overline{\eta }}\) are given. Plotting the root problems we observe that the wavelength is most sensitive to varying m, and therefore is the best candidate for a matching parameter. Figure 4 shows a particular example. In practice, m is always found so that the red curve in the figure is minimized, which means that the difference in the wavelength between the last linear step and the first nonlinear step in the wavelength is negligible. As Figure 4 indicates the difference in frequency and wavespeed are then also minimal. The difference in the energy flux is always near machine precision since the nonlinear energy flux is chosen in the correct asymptotic form.

Fig. 4
figure 4

Root problems defined by the parameters \(\lambda , c, \nu , {\overline{q}}_E\) as functions of m

Stage 3. Cnoidal shoaling: The final step in the shoaling procedure is solving for wave height and set-down using the scheme defined in Section 6. First, define H and \({\overline{\eta }}\) as functions of m as given by formula (24) and (25). Then use a nonlinear solver to find m from equation (22). With m in hand, one can determine the wave height H(m) at the current local depth. Repeating this procedure will then determine changes of wave height and set-down at consecutive points, allowing us to move up the slope.

Fig. 5
figure 5

Profile of the mean water level \({\overline{\eta }}\) and the wave height H as functions of the depth, compared to data points taken from [10]. In this case, we have wave period \(T=1.14\)s incident wave height \(H_0 = 6.45\)cm and breaking wave height \(H_b = 8.55\)cm. In the experiment, the beach slope is \(\mathrm {tan}(\theta ) = 0.082\). The shaded area on the left represents the sloping fluid bed. The lower panel depicts a zoom-in around the still water line (S.W.L.) to show the set-down more closely

Having defined the shoaling equations and the numerical approach, we may plot the development of the wave height and set-down for a practical shoaling problem. A comparison of our numerical results with the wave tank data obtained by Bowen et al. [10] and the classical linear theory is shown in Figure 5. In this figure, the red circles represent the wave height of the shoaling wave according to the experimental data of [10], and the red asterisks represent the experimentally determined set-down and set-up, i.e. the deviation of the mean depth from the still water line (S.W.L.). The dashed blue curves show the prediction of the linear theory as already presented in [10]. Finally, the solid curves represent the shoaling model put forward in the present article. The waves under consideration had an initial wave length of \(\lambda _0 = 202\)cm and an initial wave height \(H_0 = 6.45\)cm before they reached the toe of the slope. The beach had a slope of 1 : 12.

The linear shoaling model agrees well with the experimental data up to moderate wave heights. On the other hand, the benefit of the nonlinear formulation can be clearly seen. Indeed, the nonlinear theory clearly yields a better fit of both wave height and set-down close to the breaking point of the wave. One interesting detail in the lower panel of Figure 5 is that the mean depth appears to rise in the nonlinear theory while it continues on downwards in the linear theory. This nonlinear mid-elevation rise was acknowledged in [33] has been found previously with higher-order methods. For example, a combination of third-order hyperbolic waves near the shore and Stokes waves further offshore was used in [23], and Cokelet’s extension of Stokes’ approximation of periodic waves was used in [52]. In both works, a similar rise of the nonlinear set-down was observed. In the present work, the computed set-down matches the experimental data even well beyond the breaking point, but we have to acknowledge that the KdV model ceases to be valid for breaking waves.

6 Shoaling Without Set-Down

It was argued in [54] that the wave set-down is negligible in many practical cases. With this assumption, the shoaling problem can be simplified since only two equations need to be solved. This approach has been taken in many works on wave shoaling.

The particular aim of this section is to improve the method put forward in [55]. As already mentioned, the use of a first-order approximation of the energy flux [55] gave rise to a discontinuity in wave height at the matching point between the linear and their nonlinear theory due to the inconsistency of the approximation of the energy flux. A partial fix was presented in [56] where a continuous shoaling curve is obtained by the use of conversion tables but at the cost of not conserving the energy flux. More recently, the shoaling theory was extended in [27] using the nonlinear definition of the energy flux developed in [3, 4]. However, due to the specific way the problem was formulated, it was not possible to reach all the way up the shoaling curve due to numerical instabilities.

In the present section, it will be shown that with the definition of the shoaling equation from Sect. 4, and the implementation explained in Sect. 5, we can find a continuous shoaling curve that reaches all the way up to the highest wave and agrees well with the more accurate methods of [47] using Cokelet’s theory and that of [57] using the fully nonlinear steady Euler equations.

The algorithm is the same as in Sect. 5, except that in equation (25) we set \({\overline{\eta }} = 0\) at each step. We then use the same three stages as explained in Sect. 5 to determine the development of the wave height in the shoaling region. First formulate \(H = H(m)\) according to formula (24) given in Sect. 6. Then use the assumption of zero set-down to find the roots given by (20). Having the roots as functions of m we may use energy conservation to define a nonlinear equation as done in equation (22). Solving for m we are free to determine the wave height at a specified depth h.

Fig. 6
figure 6

Shoaling curves based on present theory in blue compared to the theory presented by Svendsen and Brink-Kjær [55] in red. Deep water values \(H_0/\lambda _0 = \{0.001, 0.002, 0.004, 0.006,0.01\}\) (Color figure online)

We note that the present implementation is able to determine the wave height further into the shoaling region as compared to the curves presented by [27]. This is due to the simplicity of the implementation, solving two nonlinear equations rather than three. We also see in Figure 6 that our theory is in fairly good agreement with the shoaling curves presented in [55] which are in reasonable agreement with higher-order theories. Moreover, it is clearly visible in Fig. 6 that our curves do not feature a discontinuity in wave height.

Finally, comparisons of shoaling curves computed using the method at hand with data provided by wave tank experiments are presented. The experimental data are taken from [56] where considerable pains were taken to stay within the correct scaling regime. The waves were generated with a piston-type wavemaker, then propagated over a flat bottom with still water depth of 36 cm before shoaling on a 1 : 35 beach.

Fig. 7
figure 7

Comparisons of shoaling curves computed using the present theory with shoaling experiments on a 1 : 35 beach conducted in [56]. The three cases shown here have larger to moderate wave steepness. The numerical values are shown in blue and the experimental data are indicated by red crosses. The horizontal dashed lines represent the extent of the respective theory, i.e. red for linear, and blue for nonlinear theory (Color figure online)

Fig. 8
figure 8

Comparisons of shoaling curves computed using the present theory with shoaling experiments on a 1 : 35 beach conducted in [56]. The three cases shown here have lower wave steepness. The numerical values are shown in blue and the experimental data are indicated by red crosses. The horizontal dashed lines represent the extent of the respective theory, i.e. red for linear, and blue for nonlinear theory (Color figure online)

We initialize the code with wave height and wavelength at depth \(h=36\)cm at the toe of the slope. The code then computes wave height H with the linear model up to \(h/\lambda _0>0.1\) at which time the code switches to the cnoidal theory.

We observe in Figs. 7 and 8 that there is very good agreement between the numerical model (shown in blue) and the experimental data (indicated by red crosses). The only exception is the experiment with deep water steepness \(H_0/\lambda _0 = 0.064\), shown in the uppermost panel in Fig. 7. This is a rather steep wave and it can be observed that even the linear theory fails to get good agreement. This error is then propagated and compounded by the nonlinear theory. On the other hand, as long as the deep-water steepness is moderate enough, the linear theory does an adequate job, and we observe fairly good agreement in the plots between experimental data and numerical simulations for both linear and nonlinear regimes. One should note that the higher order theory by Cokelet was used numerically for the same data set in [47], but no better agreement was found than with the present theory. We have also done some preliminary computations with a full Boussinesq model [45], and similar agreement with the wavetank data was found after some experimentation with grid size and friction coefficients.

7 Conclusion

In this paper, we have shown how to derive expressions for the energy flux and radiation stress of a wavetrain in the context of the well-known KdV equation. The derivations are based on a general approach developed in [3, 4], and yield approximations of the same order as the KdV equation itself. Compared to previous definitions of such quantities as, for example, in [54, 55], these expressions feature additional terms which are required by the theoretical underpinnings of the method used here.

The energy flux and radiation stress are used to develop shoaling equations for long waves of small to moderate amplitude, and since such waves can be described by cnoidal functions, the shoaling equations can be posed as a \(3\times 3\) system of equations for the three parameters of the cnoidal functions. The shoaling equations are then formulated in a numerically convenient way, and it is shown that they can be solved to yield shoaling curves up to the breaking point. In particular, our formulation resolves a problem encountered in earlier work [27] where the curves terminated prematurely due to numerical instability. The curves are compared with experimental data and higher order theories, and are found to be quite accurate. In addition, since the shoaling equations are defined using approximations of energy flux and radiation stress which are consistent with the approximations made in the KdV equation itself, the shoaling curves are continuous, and no ad hoc fixes such as advocated for in [56] are necessary to get a continuous development of the wave height.

Finally, since the radiation stress is included in the formulation of the shoaling equations, it is possible to compute the set-down as part of the shoaling problem. Comparisons with experimental data from [10] show that the set-down can be computed accurately. The nonlinear set-down defined here may also potentially be useful in the study of waves interacting with currents [54].

As already mentioned in Introduction, wave shoaling is nowadays usually computed by with nearshore Boussinesq models. These models have become fairly sophisticated in recent years, being able to treat even fairly short waves due to extending the dispersion properties using ideas of Nwogu [41] and Witting [62]. In particular, as shown for example in [38], shoaling can be computed accurately with such models. Following ideas of [49], some models have been extended to be able to treat larger-amplitude waves, and it is now possible to simulate waves with fully nonlinear and highly dispersive models [31, 60] or with the full Euler equations [16]. Nevertheless, for practical purposes, these models need to be initialized with data which are generally given by stochastic wave models, and in general the transition between stochastic and deterministic models is still poorly understood. The method of computing wave height and set-down put forward here may have some potential if coupled with stochastic input data (see [18]) since the computational complexity of our method is by far smaller than for any phase-resolving nearshore model and no tuning is necessary with the current model.