Green function in finite depth¶
Green function’s Hankel form¶
Denoting by \(h\) the water depth, the Green function can be written as (eq (2.33) from [Del87])
where \(r = \sqrt{(\xi_1 - x_1)^2 + (\xi_2 - x_2)^2}\) and \(S_h\) denotes the symmetry across the horizontal plane \(z=h\):
Note
And \(F\) is defined as (eq. (2.36) from [Del87]):
As in infinite depth, the integrand of (109) is singular for \(\kappa = k\), where \(k\) the wavenumber solution of \(\omega^2/g = k \tanh(kh)\). Replacing \(\omega^2/g\) in the definition of \(F\):
Reduced variables¶
We have by definition of \(\cosh\):
hence
Following Newman [N85], we notice that the Green function can be written as two calls to a single function of three variables:
where
Since \(x_3 \in [-h, 0]\) and \(\xi_3 \in [-h, 0]\), we have \(x_3 - \xi_3 \in [-h, h]\) and \(2h + x_3 + \xi_3 \in [0, 2h]\), hence \(\mathcal{L}\) should be defined for \(z \in [-h, 2h]\). We kept a factor \(e^{-2\kappa h}\) outside of \(F\), such that the exponent of the exponential is negative, in order to use Lipschitz-Hankel integral later.
Singularities extraction¶
We extract the simple \(\kappa = k\) singularity in \(F\):
such that
with \(F_1\) a bounded function (on \([0, \infty)\) for \(kh > 0\)) and \(A\) is defined as:
also written in [Del87] and in the code as
or
Revisiting \(\mathcal{L}\):
Terms of the form \(\int_0^\infty \frac{e^{\kappa Z}}{\kappa - k} J_0(\kappa r) d\kappa\) have been seen in Green function in infinite depth as infinite-depth free surface term, and the same numerical evaluation method can be used.
Namely,
For the evaluation of the remaining term involving \(F_1\), the strategy chosen by Guével, Daubisse and Delhommeau is to approximate it by Prony decomposition, that is as a sum of exponentials, in order to employ the other kind of integral that was evaluated in Green function in infinite depth, namely the Lipschitz integrals.
We look for a Prony decomposition of \(F_1\) of the following form:
with \(\forall i \ge 1, \lambda_i > 0\) to always recover \(\lim_{\kappa \rightarrow \infty} F_1(\kappa) = 2\). Note that \(F_1\) depends on the water depth and the frequency, and so does \(a_i\) and \(\lambda_i\). They are recomputed for each new \((k, h)\). The number of terms \(N\) is chosen big enough to ensure a good accuracy of the approximation.
Then,
So \(\mathcal{L}\) reads:
And the full unabrigde Green function reads:
Notice it contains six Rankine terms that appears in all expressions of the finite depth Green function, \(4N\) other Rankine terms due to the approximation we used for the residual term, and four infinite-depth wave terms.
The Rankine terms are real-valued. The four infinite-depth Green functions \(\mathcal{G}^+\) are complex-valued.
Note
Interpreting the Rankine terms as reflections
Besides (111) and (112), the Green function contains the following Rankine terms:
but also
such that most terms of the Green function can be interpreted as Rankine term with \(6 + 4N\) reflexions of \(\xi\) (or \(x\)).
Note
Singularities
Since \(\lambda_i > 0\), all the reflected terms are outside of the fluid domain and do not need a special treatment when integrating the Green function on a panel to avoid a singularity.
The only terms that should be taken care of are (111) (always), (112) (when the panel is on the sea bottom) and (132) (when the panel is on the free surface).
Beside the singularities of Rankine term, the infinite-depth wave terms \(\mathcal{G}^+\) have a logarithmic singularity, but only the \(\mathcal{G}^+(r, x_3 + \xi_3)\) term may reach its singularity.
Evaluation of the Prony decomposition¶
For each \(k\) and \(h\), the coefficients \(a_i\) and \(\lambda_i\) need to be precomputed.
The function \(\kappa h \mapsto F(\kappa h) - \frac{A(kh)}{\kappa h - k h} - 2\) is evaluated for a range of values of \(\kappa h\) in \([-0.1, 20]\). Looking for an approximation as small as possible, we start by evaluating the function at a few reference points and fit a Prony decomposition with few exponentials. If the resulting accuracy computed with more reference evaluations of the function is not sufficient, the number of points and the number of exponentials is increased (until a maximal value of 30 exponential terms).
Because of the singularity, the expression above cannot be evaluated when \(\kappa = k\), even if the function is mathematically smooth at this point. In Nemoh and in the legacy Fortran code of Capytaine, the function is replaced by a polynomial interpolation in \([k - \max(0.1, 0.1k), k + \max(0.1, 0.1k)]\) to avoid this. In practice we noticed that, in double floating point precision, the effect of the singularity on the computational accuracy is restricted to a much smaller interval. Instead of patching the function, we add some small noise on the choice of the reference points ensure that among the several tries with different resolutions, most of them will not hit the singularity.
A remaining issue with this method is the second singularity of \(F\): the function has another pole of opposite sign in \(\kappa = -k\). When \(kh\) is small, this singularity interferes with the evaluation of the Prony decomposition (see also GH635). For this reason, it is currently not possible to compute finite depth problems in Capytaine with \(kh < 0.1\).
Asymptotics¶
Deep water asymptotics¶
When \(h \rightarrow \infty\), we have
and (116) becomes:
recovering the expression found in Green function in infinite depth.
Alternatively, showing that
and
hence
makes (129) simplify as follows
hence
where we also used the fact that
Infinite frequency asymptotics¶
When \(k \rightarrow \infty\), we have
There is no \(\kappa - k\) singularity directly visible anymore at the high-frequency asymptotics, so no infinite-depth wave terms, only Rankine terms are left.
Note
because the \(\kappa - k\) singularity is still around and messing with us.
A Prony decomposition of \(F\) can be written as
and the Green function reads
or equivalently
That is an infinity of identical (up to the sign) reflected Rankine terms meant to enforce the boundary conditions
Zero frequency asymptotics¶
As discussed in Evaluation of the Prony decomposition, the function \(F\) has a second singularity in \(\kappa+k\) cancelling out the \(\kappa-k\) singularity for \(k = 0\).
which would result in a infinite sum of Rankine kernels, similarly to the infinite-frequency case, ensuring the zero-frequency boundary conditions:
This is currently not implemented in Capytaine.
Gradient of the Green function¶
We already know from Green function in infinite depth how to compute the derivative of all the terms constituing the finite depth Green function.