Linear Water Waves

We solve for very small ampitude waves in a layer of "water" between z=-H and z=0.  All fields are assumed to be proportional to (e^(i(kx-ωt))).  The velocity potential is ϕ and the surface displacement is η.  We know that a separable solution for ϕ is ϕ=f(z)(e^(i(kx-ωt)))where f(z)=A(e^kz)+B(e^(-kz)).  We assume η=C(e^(i(kx-ωt))).  A, B and C are complex  constants.  We find ω, A and B.  See Kundu, page 190.

ϕ:=f*phase

η:=C*phase

phase=Exp[I(k*x-ω*t)]

f=A*Exp[k*z]+B*Exp[-k*z]

The bottom boundary condition is w=0, or ((∂ϕ)/(∂z))=0, at z=-H.

bottombc=(D[ϕ,z]==0)/.z->-H

The top dynamic boundary condition is ((∂ϕ)/(∂t))=-gη, at z=0.

dynbc=(D[ϕ,t]==-g*η)/.z->0

The top kinematic bottom boundary  ((∂η)/(∂t))=((∂ϕ)/(∂z)), at z=0.

kinbc=(D[ϕ,z]==D[η,t])/.z->0

The three boundary condition equationshave a trivial solution A=B=C=0. We seek the nontrivial solution that occurs when the eiqenvalue ω assumes certain values.  We first eliminate two of the unknowns A and B and reduce the three equations to one.

oneeq=Simplify[Eliminate[{bottombc,dynbc,kinbc},{A,B}]]

We have no use for the C=0 solution in the above equation, so we go on  to solve for ω:

dis1=Solve[oneeq,ω]

I will next try converting the above rules to a more familiar dispersion relation:

dis2=ω^2==(ω^2/.dis1[[1,1]])

That still does not look too familiar.  Let's beat on it some more:

dis3=FullSimplify[ExpToTrig[dis2]]

What do the waves look like?  Let's eliminate C between two equations and find A and B in terms of C:

AB=Flatten[Solve[{bottombc,kinbc},{A,B}]]

Now find f(z):

f=FullSimplify[ExpToTrig[Factor[f/.AB]]]

Recall ϕ was defined with a delayed assignment, ϕ:=f*phase, so we can use ϕ and the above f will be used:

w=D[ϕ,z]

We have use for((∂η)/(∂t)) also:

detadt=D[η,t]

We normalize w by((∂η)/(∂t)):

wnorm=w/detadt

We also normalize the height, expressing height by a dimensionless Z:

wnondim=wnorm/.z->Z*H

We next make a plot of w(z) for a moderate wavelength k=7/H and a long wavelength k=1/H.

ParametricPlot[{{wnondim/. k->(7/H),Z},{wnondim/. k->(1/H),Z}},{Z,-1,0},PlotStyle->{{RGBColor[1.`,0.`,0.`]},{RGBColor[0.`,0.`,1.`]}}]

u=D[ϕ,x]

We next make a plot of u(z) for a moderate wavelength k=7/H and a long wavelength k=1/H .But first we make
a dimensionless profile:

unondim=u/(η*ω)/.z->Z*H

ParametricPlot[{{unondim/. k->(7/H),Z},{unondim/. k->(1/H),Z}},{Z,-1,0},PlotStyle->{{RGBColor[1.`,0.`,0.`]},{RGBColor[0.`,0.`,1.`]}}]

What have we learned that is new?  Hopefully a lot about Mathematica !  But also in the plots we are seeing how the assumptions of shallow water theory are becoming apparent in the long-wavelength wave.  Feel free to play with the above plot.  Try a very long wavelength, just for fun.