Green function in infinite depth¶
The boundary integral equations relate the potential \(\Phi\) to the normal velocity \(u \cdot n\) via the Green function \(G\). Let us now discuss the evaluation of this function for an infinite water depth. See also [X18] for a review of several expression and evaluation methods for this expression.
Green function’s Hankel form¶
The infinite depth Green function takes the following form
The first term of \(G\) is the usual Green function for the 3D Laplace equation without our specific boundary conditions. The wave term \(\mathcal{G}\) is complex-valued and it is introduced to satisfy the boundary conditions (16).
Property 1 (Symmetries)
The infinite depth Green function \(G\) is scaling-invariant in the sense of
(hence the dependency to \(k\) will never be explicitly written in the following formulas)
It is also symmetric in the sense of
The first term of (61) is invariant under all rotations and translations, whereas the wave term is invariant under isometric transformations that don’t change the vertical coordinate (reflection across a vertical plane, rotation around a vertical axis, translation following an horizontal vector).
Introducing the dimensionless variables \(r = k \sqrt{(\xi_1 - x_1)^2 + (\xi_2 - x_2)^2}\) and \(z = k (x_3 + \xi_3)\), the wave term in its usual Hankel transform form reads:
where \(J_0\) is the Bessel function of the first kind. The integrand above is singular for \(\kappa = k\). Avoiding the singularity with a proper integral path avoiding the singularity in the complex plane leads to
where \(\mathop{PV}\) stands for the principal value of the integral.
Singularities extraction¶
Lemma 1 (Lipschitz integral)
Also called Lipschitz-Hankel integral
(66)¶\[\forall z < 0,\, \forall r \in \mathbb{R}, \quad \frac{1}{\sqrt{r^2 + z^2}} = \int_0^\infty \exp \left(\kappa z \right) J_0 \left(\kappa r \right) d \kappa\](see e.g. https://mathworld.wolfram.com/LipschitzsIntegral.html)
Using the Lipschitz integral, the wave part of the infinite depth Green function can be rewritten as:
that is
where \(S_0(\xi)\) is the reflection of \(\xi\) across the free surface \(S_0(\xi) = (\xi_1, \xi_2, -\xi_3)\).
The newly introduced term is a similar to the Rankine term \(\frac{1}{|x - \xi|}\) except one point has been mirrored across the free surface, and is thus referred to as the reflected Rankine term. It is singular when \(x = S_0(\xi)\), which only appends when computing the interaction of a panel horizontal on the free surface with itself. Note that for horizontal panels on the free surface, there is another logarithmic singularity in \(\mathcal{G}^+(kr, kz)\) which needs to be handled.
Note
For convenience, the reflected Rankine term \(\frac{1}{|x - S_0(\xi)|}\) can also be written as \(\frac{1}{|S_0(x) - \xi|}\). This is especially useful when computing the integral of this term \(\int_{\Gamma} \frac{1}{|x - S_0(\xi)|} d\xi\).
Alternatively, the Lipschitz integral can also be used to rewrite (64) as
that is
The notation \(\mathcal{G}^-\) and \(\mathcal{G}^+\) are based on the one from [X18]. In Capytaine, the variants above are referred to as the low-frequency variant for (67) and the high-frequency variant for (69), due to the asymptotic behavior of the Green function:
that is
and
that is
As discussed in [A24], working with the low-frequency variant is usually more accurate and is thus the default in recent version of Capytaine.
Property 2
From the definitions of \(\mathcal G^+\) and \(\mathcal G^-\), we have
Guével-Delhommeau formulation¶
Lemma 2 (Integral form of the Bessel function)
(see e.g. https://en.wikipedia.org/wiki/Bessel_function#Bessel’s_integrals):
Inputing the integral form of the Bessel function into (67) gives:
which can be rewritten as
where
and \(E_1\) is the first exponential integral, defined as
where we used the following property
Note
In [Del87] integrals of the form \(\int_{-\pi/2}^{\pi/2} \ldots d \theta\) are used. Given the parity of the integrand with respect to \(\theta\), we prefer to simplify them as \(2 \int_{0}^{\pi/2} \ldots d \theta\).
Lemma 3
The above lemma allows to retrieve the expression of the Green function found e.g. in [BD15]:
Alternative formulations¶
Lemma 4
The zeroth order Bessel function of the first kind \(J_0\) and the Struve function \(H_0\) are such that
hence
The function \(\mathcal{G}\) can also be rewritten as
Noblesse [N82] splits the function \(\mathcal{G}\) into a near field term \(N\) and a wave field \(W\) such that
Note that \(E_1\), \(J_0\) and \(H_0\) are available for instance in the Scipy library.
The literature also contains alternative formulation with another variant of the \(\zeta\) function as seen in the lemma below.
Lemma 5
For any function \(f\), the following two formulations of the integral are equivalent [Del89]:
where \(\zeta\) is defined in (79) and \(\tilde{\zeta}\) is defined as
Proof. Let us note that:
where \(r\) and \(\alpha\) are defined by
Finally note that:
\[ \int_{-\frac{\pi}{2}-\alpha}^{\frac{\pi}{2}-\alpha} f \left(\zeta(\theta) \right) \mathrm{d} \theta = \int_{-\frac{\pi}{2}}^{\frac{\pi}{2}} f \left(\zeta(\theta) \right) \mathrm{d} \theta \]
Gradient of the Green function¶
The gradient of the Green function with respect to its first variable (that is \(x\)) can be written as
with
or equivalently using \(\mathcal G^+\) from (78):
The derivative of \(\mathcal G^+\) with respect to \(z\) can be handled with Property 2. Let us now focus on the derivative with respect to \(r\). From the definition of the exponential integral, we have
hence
that is
Note
The derivative of \(G\) with respect to \(x_1\) and \(x_2\) are antisymmetric in the sense of
Its derivative with respect to \(x_3\) is symmetric in infinite depth.
In finite depth, some terms of the derivative with respect to \(x_3\) are symmetric and some are antisymmetric.
Higher order derivatives¶
From Property 2, one has
and
Since the Green function is solution of the Laplace equation, it follows that
then
All higher order derivative can be expressed with the help of \(\mathcal{G}\) and \(\frac{\partial \mathcal{G}}{\partial r}\).
Note
The same derivation is done in e.g. [N20] using instead the function \(F = \mathcal{G} - \frac{1}{\sqrt{r^2 + z^2}}\) for which the expressions are slightly simpler.
Delhommeau’s method for evaluation¶
The current version of Capytaine can use either the low-frequency variant (78) or high-frequency variant (83) when evaluating the Green function and its integral over a panel. For this purpose, the following values needs to be computed:
The integral are computed using Simpson’s rule for around 1000 points between \(0\) and \(\pi/2\).
and (83) reads (still using (98) for the derivative):
To limit the computational cost of the evaluation of these integrals, they are precomputed for selected values of \(r\) and \(z\) and stored in a table. When evaluating the Green function, the values of the integrals are retrieved by interpolating the values in the tables.
For large values of \(r\) and \(z\), these integrals are asymptotically approximated by the following expressions:
Incorporating these asymptotic approximation in the expression of the Green function, one gets:
Integration¶
TODO
As seen in Property 2, new reflected-Rankine-type
terms might appear in the derivative of the Green wave term.
By default, they are integrated with the same method used for the same
numerical quadrature method as the rest of the wave term.
The setting gf_singularities="low_freq_with_rankine_term" is an attempt to
integrate them exactly using the same code as the main reflected Rankine term.