Potential flow theory


1 User input

The parameters that need to be input by the user are given in the followin paragraphs:

1.1 Location of the WAMIT reference point

WAMIT exports a set of non-dimensionalised hydrodynamic coefficientss, that are calculated for one given location of the floater. This point is called the WAMIT reference point. This is the point where the added mass and damping matrices should be applied applied. 

Note: in Ashes, the loads will be applied on one of the nodes of the finite element model. You have to ensure that there is a node in the odel that corresponds to the location of the WAMIT reference point and then set that node as the node of application for the loads


1.2 Parameters for non-dimensionalised coefficients

WAMIT coeffs are non-dimensionalised. To make them dimensional again, you need the following parameters:
  • water density 
    $$\rho$$
  • acceleration of gravity 
    $$g$$
  • incident wave amplitude 
    $$A$$
  • wave frequency 
    $$\omega$$
  • characteristics length 
    $$L$$
You need to make sure that 
$$\rho$$
 and 
$$g$$
 in Ashes are the same as in WAMIT.
$$A$$
and 
$$\omega$$
 will be taken directly from the Ashes simulation.
$$L$$
 needs to be input in the Floater part..

Note: in WAMIT, 
$$L$$
and 
$$g$$
can be found in the .gdf file.



1.3 Input files

To compute loads with linear potential flow theory, WAMIT outputs three files:
  • a .hst file, which contains the 6x6 linear hydrostatic restoring (stiffness) matrix
  • a .1 file, which contains the 6x6 frequency-dependent hydrodynamic added-mass and damping matrox of the platform for the radiation problem
  • a .3 file which contains the 6x1 frequency- and direction-dependent first-order wave excitation force vector of the platform for the linear diffraction problem

Note: Ashes does not use th .hst file. Instead, the hydrostatic restoring forces are computed according to the Buoyancy document. For completeness, we still explain how the .hst file is used in the Cummins equation below.



2 Theory

2.1 Input files format

WAMIT provides its input files in a nondimensional form, using the quantities listed in section 1.2.

2.1.1  Restoring coefficients: the .hst file

The .hst file contains the nondimensional 6x6 linear hydrostatic restoring (stiffness) matrix. It accounts for the restoring provided by buoyancy and by the relative positions of the center of mass and the center of buoyancy (which provide pitch and restoring moments), but does not account for restoring due to mooring lines. The definition of the components of the matrix is given in WAMIT (2019), section 3.1.

Such a matrix can be written

$$\overline{C} = \pmatrix{\overline{C}_{1,1}&\overline{C}_{1,2}&\cdots&\overline{C}_{1,6}\\ \overline{C}_{2,1}&\overline{C}_{2,2}&\cdots&\overline{C}_{2,6}\\ \vdots&\vdots&\ddots&\vdots\\ \overline{C}_{6,1}&\overline{C}_{6,2}&\cdots&\overline{C}_{6,6}}$$


$$\overline{C} = \pmatrix{0&0&0&0&0&0\\0&0&0&0&0&0\\0&0&\overline{C}_{3,3}&\overline{C}_{3,4}& \overline{C}_{3,5}&0\\0&0&\overline{C}_{4,3}&\overline{C}_{4,4}&\overline{C}_{4,5}&\overline{C}_{4,6}\\0&0&\overline{C}_{5,3}&\overline{C}_{5,4}&\overline{C}_{5,5}&\overline{C}_{5,6}\\ 0&0&0&0&0&0}$$

The .hst file is composed of 3 columns with no header. The first column contains index 
$$i$$
, the second column contains index 
$$j$$
 and the last column contains 
$$\overline{C}_{i,j}$$
. Since 
$$\overline{C}_{i,j}$$
 is a 6x6 matrix, the file contains 36 lines. Note that the values equal to 0 are written on the file as well.
The dimensional form of the restoring matrix, noted 
$$C$$
is obtained by multiplying the individual terms of 
$$\overline{C}$$
 such that 
$${C} = \pmatrix{0&0&0&0&0&0\\0&0&0&0&0&0\\0&0&\rho gL^2\overline{C}_{3,3}&\rho gL^3\overline{C}_{3,4}& \rho gL^3\overline{C}_{3,5}&0\\0&0&\rho gL^3\overline{C}_{4,3}&\rho gL^4\overline{C}_{4,4}&\rho gL^4\overline{C}_{4,5}&\rho gL^4\overline{C}_{4,6}\\0&0&\rho gL^3\overline{C}_{5,3}&\rho gL^4\overline{C}_{5,4}&\rho gL^4\overline{C}_{5,5}&\rho gL^4\overline{C}_{5,6}\\ 0&0&0&0&0&0}$$

Note that 
$$\overline{C}_{3,4}=\overline{C}_{4,3}$$
$$\overline{C}_{3,5}=\overline{C}_{5,3}$$
and 
$$\overline{C}_{4,5}=\overline{C}_{5,4}$$
.

These coefficients are not frequency-dependent. They are to be applied at the WAMIT reference point.

Note: as noted above, Ashes does not use the .hst file. The recommended way to add hydrostatic stiffness from WAMIT coefficients is to add a 6x6 stiffness matrix to the file defining the floater


2.1.2 Added madd and damping coefficients: the .1 file

The .1 file contains the frequency-dependent nondimensional added mass 
$$\overline{A}(T)$$
and damping 
$$\overline{B}(T)$$
coefficients for the floater. The file contains 5 columns. The first column contains the period 
$$T = \frac{2\pi}{\omega}$$
, the second and third columns contain the matrix indexes 
$$i$$
and 
$$j$$
, the fourth column contains 
$$\overline{A}_{i,j}(T)$$
and the fifth column contains 
$$\overline{B}_{i,j}(T)$$
. The file therefore looks as follows:
$$\begin{array}{lllll} \text{Period}&\text{Index 1}&\text{Index 2}&\text{Added mass}&\text{Damping}\\T_1&1&1&\overline{A}_{1,1}(T_1)&\overline{B}_{1,1}(T_1)\\ T_1&1&2&\overline{A}_{1,2}(T_1)&\overline{B}_{1,2}(T_1)\\ T_1&1&2&\overline{A}_{1,3}(T_1)&\overline{B}_{1,3}(T_1)\\ \vdots&&&&\\  T_1&6&6&\overline{A}_{6,6}(T_1)&\overline{B}_{6,6}(T_1)\\ T_2&1&1&\overline{A}_{1,1}(T_2)&\overline{B}_{1,1}(T_2)\\ T_2&1&2&\overline{A}_{1,2}(T_2)&\overline{B}_{1,2}(T_2)\\ \vdots&&&&\\ \end{array}$$


The definition of these components is given in WAMIT (2019), section 3.2.
Note that 
$$T=0$$
 provides the infinite frequency coefficients and 
$$T<0$$
 provides the 0 frequency coefficients. For these cases, no value for damping coefficients are given in the WAMIT file, as those are assumed to be zero (see WAMIT (2019), section 3.9).

Note: in the input file for Ashes, the value 0 has to be provided for the periods negative and equal to 0.
In addition, Ashes expects that the first line of the file contains a heading.



The dimensional form of these coefficients (see WAMIT (2019), section 3.2) is given by
$$A_{i,j}=\rho L^k\cdot\overline{A}_{i,j}$$
and 
$$B_{i,j}=\rho L^k\omega\cdot\overline{B}_{i,j}$$
where
$$\left\{\begin{array}{lll} k=3&for&(i,j = 1,2,3)\\ k=4&for&(i=1,2,3, j=4,5,6) \quad or\quad (i = 4,5,6, j = 1,2,3)\\ k=5&for&(i,j=4,5,6) \end{array}\right.$$


Note: Ashes only accepts constant frequency step


2.1.3 Excitation force: the .3 file

The .3 file contains the frequency- and direction-dependent nondimensional excitation diffraction loads 
$$\overline{X}(\omega,\beta)$$
. The file contains 7 colunms. The first column contains the period 
$$T = 2\pi/\omega$$
 , the second column contains the heading 
$$\beta$$
, the third column contains index 
$$i$$
 corresponding to the load component (respectively surge, sway, heave, roll, pitch, yaw) , the fourth and fifth columns contain the magnitude
$$\text{Abs}(\overline{X}(\omega,\beta))$$
 and the phase 
$$\text{Pha}(\overline{X}(\omega,\beta))$$
of the excitation load, respectively and the sixth and seventh column contain the real
$$\text{Re}(\overline{X}(\omega,\beta))$$
and imaginary
$$\text{Im}(\overline{X}(\omega,\beta))$$
components of the excitation force, respectively.

Note: columns 4 and 5 and columns 6 and 7 contain the same information


 The file therefore looks as follows:

$$\begin{array}{lllll} \text{Period}&\text{Heading}&\text{Index}&\text{Abs}&\text{Phase}&\text{Re}&\text{Im}\\T_1&\beta_1&1&\text{Abs}(\overline{X}_1(T_1,\beta_1))&\text{Pha}(\overline{X}_1(T_1,\beta_1))&\text{Re}(\overline{X}_1(T_1,\beta_1))&\text{Im}(\overline{X}_1(T_1,\beta_1))\\  T_1&\beta_1&2&\text{Abs}(\overline{X}_2(T_1,\beta_1))&\text{Pha}(\overline{X}_2(T_1,\beta_1))&\text{Re}(\overline{X}_2(T_1,\beta_1))&\text{Im}(\overline{X}_2(T_1,\beta_1))  \\\vdots&&&&&&\\T_1&\beta_1&6&\text{Abs}(\overline{X}_6(T_1,\beta_1))&\text{Pha}(\overline{X}_6(T_1,\beta_1))&\text{Re}(\overline{X}_6(T_1,\beta_1))&\text{Im}(\overline{X}_6(T_1,\beta_1))\\  T_1&\beta_2&1&\text{Abs}(\overline{X}_1(T_1,\beta_2))&\text{Pha}(\overline{X}_1(T_1,\beta_2))&\text{Re}(\overline{X}_1(T_1,\beta_2))&\text{Im}(\overline{X}_1(T_1,\beta_2))  \\\vdots&&&&&&\\T_1&\beta_n&6&\text{Abs}(\overline{X}_6(T_1,\beta_n))&\text{Pha}(\overline{X}_6(T_1,\beta_n))&\text{Re}(\overline{X}_6(T_1,\beta_n))&\text{Im}(\overline{X}_6(T_1,\beta_n))\\  T_2&\beta_2&1&\text{Abs}(\overline{X}_1(T_2,\beta_1))&\text{Pha}(\overline{X}_1(T_2,\beta_1))&\text{Re}(\overline{X}_1(T_2,\beta_1))&\text{Im}(\overline{X}_1(T_2,\beta_1))  \\\vdots&&&&&&\\\end{array}$$



Note: in the example above, the file has 
$$n$$
headings. Ashes only computes loads for one heading, namely 
$$\beta = 0$$
. It is recommended to remove the other headings to speed up the process of reading the files.


The dimensional form of these coefficients (see WAMIT (2019) , section 3.3) is given by

$$X_{i}=\rho g AL^k\cdot\overline{X}_{i}$$

where
$$\left\{\begin{array}{lll} k=2&\text{for}&(i = 1,2,3)\\  k=3&\text{for}&(i=4,5,6) \end{array}\right.$$

2.1.4 Difference frequency QTF: the .12d file

The .12d file contains the Quadratic Trasnfer Function (QTF), which specifies the force to be applied to a body in irregular waves corresponding to a pair of frequencies 
$$\overline{X^2}(\omega_1,\omega_2)$$
. Note that the superscript '2' here refers to second order, and not to sqaring. The .12d file is similar to the .3 file, but the .3 file only contains information for individual frequencies.


There are typically 2 QTFs: one for the loads corresponding to the difference of a pair of frequencies and one for the sum. These QTFs are simply named difference frequency QTF and sum frequency QTF.  Note that it is common to call the difference frequency QTF the wave drift QTF, since the difference QTF will produce a mean load that has the effect of slowly pushing a vessel away. The resulting loads are also often called slowly varying loads.

In Ashes, only loads corresponding to the difference frequency QTF are computed.


In the Ashes format, the first and second columns contain the two periods 
$$T_i = 2\pi/\omega_i$$
and 
$$T_J = 2\pi/\omega_j$$
of the considered components.
The third column contains the index 
$$i$$
corresponding to the load component (respectively surge, sway, heave, roll, pitch, yaw) 
the fourth and fifth columns contain the magnitude 
$$\text{Abs}(\overline{X}(\omega_i,\omega_j))$$
and the phase 
$$\text{Pha}(\overline{X}(\omega_i,\omega_j))$$
of the excitation load, respectively and the sixth and seventh column contain the real 
$$\text{Re}(\overline{X}(\omega_i,\omega_j))$$
and imaginary 
$$\text{Im}(\overline{X}(\omega_i,\omega_j))$$
components of the excitation force, respectively.


Note: the WAMIT file also contains two extra columns accounting for the headings of the two considered periods. in Ashes, only difference frequency loads corresponding to zero-heading are computed and therefore no columns with headings are expected.


Note: columns 4 and 5 and columns 6 and 7 contain the same information.

Newman's approximation
Ashes computes the difference frequency loads following the so-called Newman's approximation. More details are given in section 2.2.2, but a consequence of using that approximation is that the input file will only contain pairs of equal frequences. Therefore, column 1 and 2 will contain the same value.

It should also be noted that the diagonal terms of the QTF are real and therefore the last column will be 0.

The file therefore looks as follows:
$$\begin{array}{lllll} \text{Period1}&\text{Period2}&\text{Index}&\text{Abs}&\text{Phase}&\text{Re}&\text{Im}\\T_1&T_1&1&\text{Abs}(\overline{X^2}_1(T_1))&\text{Pha}(\overline{X^2}_1(T_1))&\text{Re}(\overline{X^2}_1(T_1))&\text{Im}(\overline{X^2}_1(T_1))\\  T_1&T_1&2&\text{Abs}(\overline{X^2}_2(T_1))&\text{Pha}(\overline{X^2}_2(T_1))&\text{Re}(\overline{X^2}_2(T_1))&\text{Im}(\overline{X^2}_2(T_1))  \\\vdots&&&&&&\\T_1&T_1&6&\text{Abs}(\overline{X^2}_6(T_1))&\text{Pha}(\overline{X^2}_6(T_1))&\text{Re}(\overline{X^2}_6(T_1))&\text{Im}(\overline{X^2}_6(T_1))\\  T_2&T_2&1&\text{Abs}(\overline{X^2}_1(T_2))&\text{Pha}(\overline{X^2}_1(T_2))&\text{Re}(\overline{X^2}_1(T_2))&\text{Im}(\overline{X^2}_1(T_2))  \\\vdots&&&&&&\\\end{array}$$


The dimensional form of these coefficients is given by

$$X^2_{i}=\rho g A^2L^k\cdot\overline{X}_{i}$$

where
$$\left\{\begin{array}{lll} k=1&\text{for}&(i = 1,2,3)\\  k=2&\text{for}&(i=4,5,6) \end{array}\right.$$


Note: we could not find information about this file in the latest version of the WAMIT manual, so we used this one: https://www.wamit.com/manual6.4/Chap11.pdf


2.1.5 Diagonal terms of the difference QTF from momentum conservation: the .8 file

The .8 file contains the diagonal terms of the difference-frequency QTF, corresponding to equal incident frequencies, computed using the momentum conservation approach. It is analogous to the .12d file, but restricted to diagonal elements only. Note that it is common to give only coefficients for surge, sway and yaw, as momentum conservation typically yields inaccurate results for other degrees of freedom.

The file has the following format:
$$\begin{array}{lllll} \text{Period}&\text{Heading1}&\text{Heading2}&\text{Index}&\text{Abs}&\text{Phase}&\text{Re}&\text{Im}\\T_1&\beta_1&\beta_1&1&\text{Abs}(\overline{X^2}_1(T_1,\beta_1))&\text{Pha}(\overline{X^2}_1(T_1,\beta_1))&\text{Re}(\overline{X^2}_1(T_1,\beta_1))&\text{Im}(\overline{X^2}_1(T_1,\beta_1))\\ T_1&\beta_1&\beta_1&2&\text{Abs}(\overline{X^2}_2(T_1,\beta_1))&\text{Pha}(\overline{X^2}_2(T_1,\beta_1))&\text{Re}(\overline{X^2}_2(T_1,\beta_1))&\text{Im}(\overline{X^2}_2(T_1,\beta_1))  \\T_1&\beta_1&\beta_1&6&\text{Abs}(\overline{X^2}_6(T_1,\beta_1))&\text{Pha}(\overline{X^2}_6(T_1,\beta_1))&\text{Re}(\overline{X^2}_6(T_1,\beta_1))&\text{Im}(\overline{X^2}_6(T_1,\beta_1))\\  T_1&\beta_2&\beta_2&1&\text{Abs}(\overline{X^2}_1(T_1,\beta_2))&\text{Pha}(\overline{X^2}_1(T_1,\beta_2))&\text{Re}(\overline{X^2}_1(T_1,\beta_2))&\text{Im}(\overline{X^2}_1(T_1,\beta_2))  \\\vdots&&&&&&\\T_2&\beta_1&\beta_1&1&\text{Abs}(\overline{X^2}_1(T_2,\beta_1))&\text{Pha}(\overline{X^2}_1(T_2,\beta_1))&\text{Re}(\overline{X^2}_1(T_2,\beta_1))&\text{Im}(\overline{X^2}_1(T_2,\beta_1))\\\vdots&&&&&&\end{array}$$


The dimensional form of these coefficients is given by

$$X^2_{i}=\rho g A^2L^k\cdot\overline{X}_{i}$$

where
$$\left\{\begin{array}{lll} k=1&\text{for}&(i = 1,2,3)\\  k=2&\text{for}&(i=4,5,6) \end{array}\right.$$



Note: If headings are only provided in the range 0–180°, Ashes will estimate the loads for negative headings by using the coefficients in the .8 file, assuming that sway and yaw take the opposite sign compared to their values at the corresponding positive headings..
In other words: ashes will assume that 
$$\text{Re}(\overline{X^2}_i(T,-\beta))=-\text{Re}(\overline{X^2}_i(T,\beta))$$
for sway and yaw, and 
$$\text{Re}(\overline{X^2}_i(T,-\beta))=\text{Re}(\overline{X^2}_i(T,\beta))$$
for surge.



2.2 Hydrodynamic forces

All forces calculated from potential flow theory are applied at the WAMIT reference point. The floater is considered a rigid body.

2.2.1 First order loads

The force is calculated following Cummings equation, as 
$$\overrightarrow{F}=\overrightarrow{F}_W+\overrightarrow{F}_{HS}+\overrightarrow{F}_{RD}+\overrightarrow{F}_{AM}$$
Equation 1


The added mass force is defined as
$$\overrightarrow{F}_{AM}(t) = -A(\infty)\overrightarrow{\ddot{x}}(t)$$
Equation 2

with
$$\overrightarrow{\ddot{x}}(t)$$
 is the acceleration of the point of reference of the floater (1x6 vector)

The hydrostatic force is defined as
$$\overrightarrow{F}_{HS}(t) = -C\overrightarrow{{x}}(t)$$
Equation 3

The radiation memory-effect force is defined as
$$\overrightarrow{F}_{RD}(t) = - \int_{\tau=0}^t K(\tau)\overrightarrow{\dot{x}}(t-\tau)d\tau$$
Equation 4
where 
$$K$$
 is the impulse response function (aka retardation function) defined by 
$$K(\tau) = f(\tau)\frac{2}{\pi}\int_{\omega=0}^\infty B(\omega)\cos(\omega\tau)d\omega$$
Equation 5
Since the retardation function decays to 0 for large values of 
$$\tau$$
, it is common to specify an integration time 
$$T$$
and only integrate up to that value. However, if the retardation function suddenly 
The function 
$$f(\tau)$$
 is a cut-off function. Currently, for an integration time 
$$T$$
, the cut-off function is defined as:
$$\left\{\begin{array}{lll} f(\tau)=1&\text{for}&\tau<0.75\cdot T\\  f(\tau)=0.5-0.5\cos\left(4\pi\left(\frac{\tau-T}{T}-0.5\right)\right)&\text{for}&\tau>0.75\cdot T \end{array}\right.$$


 This ensures a smooth transition from the retardation function to 0. The cut-off function
$$f$$
is plotted below:





Note: in Ashes, the retardation function is computed by trapezoidal integration




The incident wave excitation force is defined as

$$\overrightarrow{F}_W=\int_{\omega=0}^\infty A(\omega)|X(\omega)|\sin\left[\omega t + \epsilon(\omega) + \arg\left(X(\omega)\right)\right]d\omega$$
Equation 6

where 
$$A(\omega)$$
is the wave amplitude of the component of the wave spectrum at frequency 
$$\omega$$
and 
$$\epsilon(\omega)$$
is the phase.

It is common to find references describing the Cummins equation as Equation 1. However, it can be argued that the defining characteristic of the Cummings equation lies in how the radiation memory-effect force is computed, i.e. using a convolution integral on the retardation function.



2.2.2 Slow drift loads, Newman's approximation

Loads corresponding to the difference frequency QTF can be applied in Ashes. For a given load component (for example the surge component), the load is given by

$$F^-(t)=\sum_{i-1}^N\sum_{j=1}^NX^2(\omega_i,\omega_j)A_iA_j\cos\left((\omega_i-\omega_j)t-(\epsilon_i-\epsilon_j)\right)$$
Equation 7

where 
$$A_i$$
and 
$$\epsilon_i$$
are the wave amplitude and phase of the wave component, respectively.
It is suggested by Newman (1974) that the off-diagonal terms of the QTF - the 
$$X^2(\omega_i,\omega_j)$$
terms for which 
$$i$$
and 
$$j$$
are different - can be approximated by the diagonal terms.
Following the derivation from Newman (1974), the load is thus computed as

$$F^-(t)=\left(\sum_{i=1}^NA_i\sqrt{2X^{2+}_i}\cos(\omega_it)\right)^2-\left(\sum_{i=1}^NA_i\sqrt{-2X^{2-}_i}\cos(\omega_it)\right)^2$$
Equation 8


where 
$$X^2_i=X^2(\omega_i,\omega_i)$$
and the superscript 
$$+$$
or 
$$-$$
indicates that the real part of the QTF term  
$$X^2$$
- is positive or negative, respecitvely. This ensures that we do not take the square root of a negative number.

Note: as specified above, the imaginary part of the diagonal terms of the QTF are equal to 0


Note: wave heading is not accounted for in the current version of Ashes. The Newman's approximation will assume that the waves are aligned with the floater.


2.2.3 Mean drift (second-order) loads

Mean (steady) drift forces and moments from second-order potential flow (.8 WAMIT output) are computed once at the start of the simulation and then applied as a static (mean) load. The algorithm used in Ashes computes and caches the WAMIT .8-based contribution for each degree-of-freedom and reapplies the cached vector on subsequent timesteps.


For each wave component  in the wave spectrum, the code finds (or interpolates) the six WAMIT .8 mean-drift coefficients at the pair (period, heading):
$$\bar{X}_k(T,\beta),\quad k=1\ldots6$$

The WAMIT coefficients are then converted to dimensional mean-drift force and moment contributions following

$$ \begin{aligned} X_\text{force} &= \rho\, g\, a^2\, L\, \bar{X} \\ X_\text{moment} &= \rho\, g\, a^2\, L^2\, \bar{X} \end{aligned} $$

where 
$$\rho$$
is fluid density, 
$$g$$
is gravitational acceleration, 
$$a$$
is the wave amplitude of the component, and 
$$L$$
is the characteristic length used for non-dimensionalisation in the WAMIT tables.

The per-component dimensional contributions are accumulated into body-axis vectors (WAMIT body axes) for the six DOFs (surge, sway, heave, roll, pitch, yaw):
$$ F_i = \sum_{\text{components}} (\rho g a^2 L)\,\bar{X}_i$$
Equation 9


Note: the indices 1, 2, 3 coming from the WAMIT files correspond to the axes x, y and z in Ashes.