ESYSWAMIT user guide#
When modelling floating structures in waves, it is common to obtain the hydrodynamic properties through radiation-diffraction theory. One of the most widely used commercial codes for such purpose is WAMIT, developed at MIT.
HAWC2 can handle WAMIT outputs and use them to represent hydrodynamic loads on e.g. floating wind turbines. The interface that couples the WAMIT output to the time-domain HAWC2 model is called ESYSWAMIT. This guide explains the ESYSWAMIT interface, including coordinate systems, how to set up the inputs, and the list of output channels. The reader is assumed to have some knowledge of radiation-diffraction theory in general, and some experience with WAMIT in particular. In the WAMIT website there are several resources including manuals, theory and more.
Coordinate systems#
WAMIT, ESYSWAMIT and HAWC2 all use different global coordinate systems, as illustrated in Figure 1.
Different coordinate systems. The wave propagates in the positive \(y\) direction in the HAWC2 coordinate system.#
Due to the different coordinate systems, the same wave heading direction \(\beta\) (deg) is defined differently and according to:
For example, a 30 deg wave heading in WAMIT would correspond to -30 deg in HAWC2 and to -150 deg (or 210 deg) in ESYSWAMIT.
Running WAMIT#
Instructions on how to run a WAMIT analysis are out of the scope of this guide. However, here we point at specific points to take into account when running a WAMIT analysis with the purpose of coupling it to HAWC2.
Center of gravity: the hydrostatic stiffness of a floating body in pitch and roll depends on the \(z\) coordinate of the global center of gravity, \(z_g\). However, the hydrostatic properties are internally corrected by ESYSWAMIT to include the effect of the global \(z_g\) (including tower, rotor, etc.). Thus, for consistency the WAMIT analysis should be carried out with \(z_g=0\).
Coordinate system: for the reasons explained in Section Coordinate systems, the floater in the WAMIT setup must be rotated 180 deg around the \(z\) axis. Consequently, the desired wave headings must be offset according to ((1)). For example, if the original WAMIT analysis was to be carried out for \(\beta_{WAMIT}=0\), after rotating the floater in WAMIT by 180 deg around \(z\) the analysis should be carried out for \(\beta_{WAMIT}=180\).
Once the WAMIT analysis is completed, the following files will be needed by ESYSWAMIT:
The .hst file, which contains the hydrostatic restoring matrix.
The .1 file, which contains the frequency-dependent radiation matrices (added mass and damping).
The .3 file, which contains the frequency- and wave direction-dependent transfer function from free-surface elevation to wave loads.
For rapid visualization of WAMIT panels and output data, we recommend the open-source tool BEMRosetta.
Running HAWC2 with ESYSWAMIT#
Obl. |
Command name |
Explanation |
|---|---|---|
* |
begin ext_sys |
First line in ESYSWAMIT. |
* |
module ESYSWamit |
Module ID (fixed) |
* |
name floater |
Name of system used as reference |
* |
dll esyswamit.dll |
DLL file |
* |
ndata <n> |
Number of data input lines below including “data END” |
* |
data WAMIT_FILE <s> |
path to WAMIT files |
* |
data GRAVITY <g> |
Gravity acceleration [m/s\(^2\)] |
* |
data DENSITY <\(\rho\)> |
Water density [kg/m\(^3\)] |
* |
data TIME_STEP <dt> |
Global time step [s] |
* |
data MASS <m> |
Mass of floating substructure (including ballast) [kg] |
* |
data COG <x> <y> <z> |
Center of gravity coordinates [m] |
* |
data BUOY <F_B> |
Buoyancy force [N] |
* |
data COB_XY <x> <y> |
Center of Buoyancy (x,y) coordinates [m] |
* |
data RIJ_COG <i> <j> <RIJ> |
Radii of gyration (relative to COG) J(i,j) = MASS * ABS( RIJ ) * RIJ |
* |
data INI_POS <x> <y> <z> |
Initial position [m] |
* |
data INIT_ROT <x> <y> <z> |
Initial rotation [deg] |
* |
data STIF <i> <j> <K(i,j)> |
Linear stiffness coefficient, so that the external FORCE(i) += -K(i,j)*X(j) |
* |
data DAMP <i> <j> <C(i,j)> |
Linear drag/damping coefficient, so that the external FORCE(i) += -C(i,j)*V(j) |
* |
data QUAD_DRAG <i> <j> <QC(i,j)> |
Quadratic drag coefficient, so that the external FORCE(i) += -QC(i,j)*ABS(V(j))*V(j) |
* |
data IRF_TIME_SPAN <T_irf> |
Truncation time for radiation/diffraction IRF functions [s]. Note that both the first and last 2*IRF_TIME_SPAN should be discarded from the simulation. |
* |
data WAVE_DIR <beta> |
Wave direction (0 deg: Going in the X-direction, 90 going in in Y-direction, etc.) (Default = 0 deg) |
* |
data DUMP_FILE_PREFIX <s> |
prefix for dump of radiation/diffraction files |
* |
data DIFFRACTION_METHOD <s> |
Calculation method of diffraction force. Options: |
* |
“IRF_0” = convolution using wave at the initial position (default) |
|
* |
“IRF_1” = convolution using wave at the instantaneous position |
|
* |
“FFT_0” = pre-generated using IFFT |
|
* |
data INCLUDE_QTF <SUM> <DIFF> <fcut> |
Include sum-frequency QTF; Include difference-frequency QTF; Cut-off Frequency |
* |
data END |
MUST be the last line in the input block |
* |
end ext_sys |
Last line in ESYSWAMIT. |
Adding drag loads#
If inertia loads on a submerged member are already modelled through WAMIT, then HAWC2 must only add viscous drag loads through the Morison equation. To disable the inertia Morison loads, the following must be done in the corresponding sec command of the hydro_element block:
Column |
Description |
Value |
|---|---|---|
2 |
added mass coefficient, \(C_a\) |
-1 |
4 |
cross-sectional area, \(A\) |
\(\tfrac{\pi}{4}D^2\) |
5 |
cross-sectional area for \(C_a\), \(A_r\) |
\(\tfrac{\pi}{4}D^2\) |
6 |
width or diameter, \(D\) |
\(D\) |
9 |
axial added mass coefficient, \(C_{a,ax}\) |
0 |
11 |
internal cross-sectional area, \(S_i\) |
\(\tfrac{\pi}{4}D^2\) |
Floater visualization#
It is now possible to visualize the floater in the HAWC2Visualization tool. HAWC2 currently supports only one mesh format, namely the .stl binary files. A specification for the format is available f.ex. here. You can easily export the geometry from any CAD program. If a different mesh format is required, please file a feature request.
For a successful use of this functionality, it must be noted that:
The mesh coordinates need to be stored in the WAMIT coordinate system, see Figure 1 for further specifications.
The
.stlfile needs to have the same name of the files specified via thedata WAMIT_FILE <s>command.The file needs to be in the folder before the simulation is run, as the ESYSWamit is storing the coordinates of the mesh in the HDF5 file produced by the
visualizationcommand from thesimulationblock.To visualize the floater, you need to have version 0.8.1 of the HAWC2Visualization tool, and at least version 12.9.15 of HAWC2MB.
ESYSWAMIT output channels#
The ESYSWAMIT output comes in blocks of 6 corresponding to the 6 states (3 displacements and 3 rotations) of the floater, in the following order: floater motion (displacement, velocity, acceleration), loads (radiation, diffraction, sum QTF, diff QTF, total QTF, constraint, drag), and free-surface elevation.
The QTF channels only exist if the QTF option is enabled. The constraint force is the sum all external constraint forces, e.g. if you have 3 mooring lines and a tower structure connected, it will be the sum of those four force/moment contributions. In total one would have 6\(\times\)7+1=43 channels if QTF is disabled (see Section Channel list without QTF), or 6\(\times\)10+1=61 channels if QTF is enabled (see Section Channel list with QTF).
Note also that the ESYSWAMIT output is given in the ESYSWAMIT coordinate system, which is different from the HAWC2 coordinate system.
Channel list without QTF#
ESYS floater SENSOR 1 surge displacement
ESYS floater SENSOR 2 sway displacement
ESYS floater SENSOR 3 heave displacement
ESYS floater SENSOR 4 roll displacement
ESYS floater SENSOR 5 pitch displacement
ESYS floater SENSOR 6 yaw displacement
ESYS floater SENSOR 7 surge velocity
ESYS floater SENSOR 8 sway velocity
ESYS floater SENSOR 9 heave velocity
ESYS floater SENSOR 10 roll velocity
ESYS floater SENSOR 11 pitch velocity
ESYS floater SENSOR 12 yaw velocity
ESYS floater SENSOR 13 surge acceleration
ESYS floater SENSOR 14 sway acceleration
ESYS floater SENSOR 15 heave acceleration
ESYS floater SENSOR 16 roll acceleration
ESYS floater SENSOR 17 pitch acceleration
ESYS floater SENSOR 18 yaw acceleration
ESYS floater SENSOR 19 surge radiation force
ESYS floater SENSOR 20 sway radiation force
ESYS floater SENSOR 21 heave radiation force
ESYS floater SENSOR 22 roll radiation moment
ESYS floater SENSOR 23 pitch radiation moment
ESYS floater SENSOR 24 yaw radiation moment
ESYS floater SENSOR 25 surge diffraction force
ESYS floater SENSOR 26 sway diffraction force
ESYS floater SENSOR 27 heave diffraction force
ESYS floater SENSOR 28 roll diffraction moment
ESYS floater SENSOR 29 pitch diffraction moment
ESYS floater SENSOR 30 yaw diffraction moment
ESYS floater SENSOR 31 surge constraint force
ESYS floater SENSOR 32 sway constraint force
ESYS floater SENSOR 33 heave constraint force
ESYS floater SENSOR 34 roll constraint moment
ESYS floater SENSOR 35 pitch constraint moment
ESYS floater SENSOR 36 yaw constraint moment
ESYS floater SENSOR 37 free-surface elevation
Channel list with QTF#
ESYS floater SENSOR 1 surge displacement
ESYS floater SENSOR 2 sway displacement
ESYS floater SENSOR 3 heave displacement
ESYS floater SENSOR 4 roll displacement
ESYS floater SENSOR 5 pitch displacement
ESYS floater SENSOR 6 yaw displacement
ESYS floater SENSOR 7 surge velocity
ESYS floater SENSOR 8 sway velocity
ESYS floater SENSOR 9 heave velocity
ESYS floater SENSOR 10 roll velocity
ESYS floater SENSOR 11 pitch velocity
ESYS floater SENSOR 12 yaw velocity
ESYS floater SENSOR 13 surge acceleration
ESYS floater SENSOR 14 sway acceleration
ESYS floater SENSOR 15 heave acceleration
ESYS floater SENSOR 16 roll acceleration
ESYS floater SENSOR 17 pitch acceleration
ESYS floater SENSOR 18 yaw acceleration
ESYS floater SENSOR 19 surge radiation force
ESYS floater SENSOR 20 sway radiation force
ESYS floater SENSOR 21 heave radiation force
ESYS floater SENSOR 22 roll radiation moment
ESYS floater SENSOR 23 pitch radiation moment
ESYS floater SENSOR 24 yaw radiation moment
ESYS floater SENSOR 25 surge diffraction force
ESYS floater SENSOR 26 sway diffraction force
ESYS floater SENSOR 27 heave diffraction force
ESYS floater SENSOR 28 roll diffraction moment
ESYS floater SENSOR 29 pitch diffraction moment
ESYS floater SENSOR 30 yaw diffraction moment
ESYS floater SENSOR 31 surge sum QTF force
ESYS floater SENSOR 32 sway sum QTF force
ESYS floater SENSOR 33 heave sum QTF force
ESYS floater SENSOR 34 roll sum QTF moment
ESYS floater SENSOR 35 pitch sum QTF moment
ESYS floater SENSOR 36 yaw sum QTF moment
ESYS floater SENSOR 37 free-surface elevation
ESYS floater SENSOR 38 surge diff QTF force
ESYS floater SENSOR 39 sway diff QTF force
ESYS floater SENSOR 40 heave diff QTF force
ESYS floater SENSOR 41 roll diff QTF moment
ESYS floater SENSOR 42 pitch diff QTF moment
ESYS floater SENSOR 43 yaw diff QTF moment
ESYS floater SENSOR 44 surge total QTF force
ESYS floater SENSOR 45 sway total QTF force
ESYS floater SENSOR 46 heave total QTF force
ESYS floater SENSOR 47 roll total QTF moment
ESYS floater SENSOR 48 pitch total QTF moment
ESYS floater SENSOR 49 yaw total QTF moment
ESYS floater SENSOR 50 surge constraint force
ESYS floater SENSOR 51 sway constraint force
ESYS floater SENSOR 52 heave constraint force
ESYS floater SENSOR 53 roll constraint moment
ESYS floater SENSOR 54 pitch constraint moment
ESYS floater SENSOR 55 yaw constraint moment
ESYS floater SENSOR 56 surge drag force
ESYS floater SENSOR 57 sway drag force
ESYS floater SENSOR 58 heave drag force
ESYS floater SENSOR 59 roll drag moment
ESYS floater SENSOR 60 pitch drag moment
ESYS floater SENSOR 61 yaw drag moment