6.3.2. Input Files¶
The user configures the hydrodynamic model parameters via a primary HydroDyn input file, as well as separate input files for the potential flow model and state-space radiation model. When used in standalone mode, an additional driver input file is required. This driver file specifies initialization inputs normally provided to HydroDyn by OpenFAST, as well as the per-time-step inputs to HydroDyn.
As an example, the driver.dvr
file is the main driver, the input.dat
is the
primary input file. If a potential flow model is being used,
WAMIT output files with a common root name, for example``platform``, are required.
These files contain the linear, nondimensionalized, hydrostatic restoring matrix (.hst extension),
the frequency-dependent hydrodynamic added mass matrix and damping matrix (.1 extension),
and the frequency- and direction-dependent wave excitation force vector per unit wave amplitude (.3 extension).
If the state-space radiation model is being used, a platform.ss
file contains the state-space radiation model
for the platform. Example input files are included in Section 6.3.7.
No lines should be added or removed from the input files, except in tables where the number of rows is specified.
6.3.2.1. Units¶
HydroDyn uses the SI system (\(kg\), \(m\), \(s\), \(N\)). Angles are assumed to be in radians unless otherwise specified.
6.3.2.2. HydroDyn Driver Input File¶
The driver input file is only needed for the standalone version of HydroDyn and contains inputs normally generated by OpenFAST, and necessary to control the hydrodynamic simulation for uncoupled models. A sample HydroDyn driver input file is given in Section 6.3.7.
Set the Echo
flag in this file to TRUE if you wish to have the
HydroDyn_Driver
executeable echo the contents of the driver input file (useful
for debugging errors in the driver file). The echo file has the naming
convention of OutRootName.dvr.ech
, where OutRootName
is
specified in the HYDRODYN section of the driver input file. Set the gravity
constant using the Gravity
parameter. HydroDyn expects a magnitude, so in SI units this would be set to 9.80665 \(\frac{m}{s^2}\).?
HDInputFile
is the filename of the primary HydroDyn input file. This name should be in
quotations and can contain an absolute path or a relative path. All HydroDyn-generated output
files will be prefixed with OutRootName
. If this parameter includes a file path, the output will be generated in that folder.
NSteps
specifies the number of simulation time steps, and TimeInterval
specifies the time between steps.
Setting WAMITInputsMod
= 0 forces all WAMIT reference point (WRP) input motions to zero for all time.
If you set WAMITInputsMod
= 1, then you must set the steady-state inputs in the
WAMIT STEADY STATE INPUTS section of the file. Setting WAMITInputsMod
= 2, requires the time-series
input file whose name is specified via the WAMITInputsFile
parameter.
The WAMIT inputs file is a text-formatted file. This file has no header lines. Each data row corresponds to a given time step,
and the whitespace separated columns of floating point values represent the necessary motion
inputs as follows:
- Column 1 : Time step value (\(s\))
- Columns 2-4 : Translational displacements along X, Y, and Z (\(m\))
- Columns 5-7 : Rotational displacements about X, Y, and Z [small angle] (\(radians\))
- Columns 8-10: Translational velocities along X, Y, and Z (\(\frac{m}{s}\))
- Columns 11-13: Rotational velocities about X, Y, and Z (\(\frac{radians}{s}\))
- Columns 14-16: Translational accelerations along X, Y, and Z (\(\frac{m}{s^2}\))
- Columns 17-19: Rotational accelerations about X, Y, and Z (\(\frac{radians}{s^2}\))
All motions are specified in the global inertial-frame coordinate system.
In a similar fashion, the input motions for the Morison members (strip-theory model)
are set to zero if MorisonInputsMod
= 0. If you select MorsionInputsMod
= 1 then
the motions at each substructure joint are set to the steady-state values given
in the MORISON STEADY STATE INPUTS section. Currently, option 2 is unavailable
for the Morison inputs.
The standalone HydroDyn does not check for physical consistency between motions specified for the WRP and Morison members in the driver file.
Setting WaveElevSeriesFlag
to TRUE enables the outputting of a grid of wave
elevations to a text-based file with the name OutRootName.WaveElev.out
.
The grid consists of WaveElevNX
by WaveElevNY
wave elevations (centered at \(X = 0\),
\(Y = 0\) i.e., (\(0,0\))) with a dX and dY spacing in the global inertial-frame
coordinate system. These wave elevations are distinct and output separately
from the wave elevations determined by NWaveElev
in the HydroDyn primary input file,
such that the total number of wave elevation outputs is NWaveElev
\(+\)
( WaveElevNX
\(\times\) WaveElevNY
). The wave-elevation output file OutRootName.WaveElev.out
contains the total wave elevation, which is the sum of the first- and second-order
terms (when the second-order wave kinematics are optionally enabled).
6.3.2.3. HydroDyn Primary Input File¶
The HydroDyn input file defines the substructure geometry, hydrodynamic coefficients,
incident wave kinematics and current, potential-flow solution options, flooding/ballasting
and marine growth, and auxiliary parameters. The geometry of strip-theory members is
defined by joint coordinates of the undisplaced substructure in the global reference system,
with the origin at the intersection of the undeflected tower centerline with MSL. A member
connects two joints; multiple members can use a common joint. The hydrodynamic loads are
computed at nodes, which are the resultant of member refinement into multiple (MDivSize
input)
elements (nodes are located at the ends of each element), and they are calculated by the
module. Member properties include outer diameter, thickness, and dynamic-pressure, added-mass
and viscous-drag coefficients. Member properties are specified at the joints; if properties
change from one joint to the other, they will be linearly interpolated for the inner nodes.
The file is organized into several functional sections. Each section corresponds to an aspect
of the hydrodynamics model or the submerged substructure. A sample HydroDyn
primary input file is given in
Section 6.3.7.
If this manual refers to an ID in a table entry, this is an integer identifier for the table
entry, and these IDs do not need to be consecutive or increasing, but they must be unique
for a given table entry. The input file begins with two lines of header information which
is for your use, but is not used by the software. On the next line, set the Echo
flag to
TRUE if you wish to have HydroDyn echo the contents of the HydroDyn input file (useful for
debugging errors in the input file). The echo file has the naming convention of
OutRootName.HD.ech
. OutRootName
is either specified in the HYDRODYN section of the driver
input file when running HydroDyn standalone, or by OpenFAST when running a coupled simulation.
6.3.2.4. Environmental Conditions¶
WtrDens
specifies the water density and must be a value greater than or equal to zero;
a typical value of seawater is around 1025 kg/m3. WtrDpth
specifies the water depth
(depth of the flat seabed), based on the reference MSL, and must be a value greater than zero.
MSL2SWL
is the offset between the MSL and SWL, positive upward. This parameter is useful when
simulating the effect of tides or storm-surge sea-level variations without having to alter the
substructure geometry information. This parameter is unused with WaveMod
= 6 and must be set
to zero if you are using a potential-flow model (PotMod
= 1 or 2).
6.3.2.5. Waves¶
The WAVES section of the input file controls the internal generation of first-order waves or the use of externally generated waves, used by both the strip-theory and potential-flow solutions. The wave spectrum settings in this section only pertain to the first-order wave frequency components. When second-order terms are optionally enabled—see the 2ND-ORDER WAVES and 2ND-ORDER FLOATING PLATFORM FORCES sections below—the second-order terms are calculated using the first-order wave-component amplitudes and extra energy is added to the wave spectrum (at the difference and sum frequencies).
WaveMod
specifies the incident wave kinematics model. The options are:
* 0: none = still water
* 1: regular (periodic) waves
* 1P#: regular (periodic) waves with user-specified phase, for example 1P20.0 for
regular waves with a 20˚ phase (without P#, the phase will be random, based on WaveSeed
);
0˚ phase represents a cosine function, starting at the peak and decreasing in time
* 2: Irregular (stochastic) waves based on the JONSWAP or Pierson-Moskowitz frequency spectrum
* 3: Irregular (stochastic) waves based on a white-noise frequency spectrum
* 4: Irregular (stochastic) waves based on a user-defined frequency spectrum from routine UserWaveSpctrm(); see Appendix D for compiling instructions
* 5: Externally generated wave-elevation time series
* 6: Externally generated full wave-kinematics time series
Option 4 requires that the UserWaveSpctrm()
subroutine of the Waves.f90
source file be
implemented by the user, and will require recompiling either the standalone HydroDyn
program or OpenFAST. Option 5 allows the use of externally generated wave-elevation time
series, from which the hydrodynamic loads in the potential-flow solution or the wave
kinematics used in the strip-theory solution are derived internally. Option 6 allows
the use of full externally generated wave kinematics for use with the strip-theory solution
(but not the potential-flow solution). With options 5 and 6, the externally generated wave
data is provided through input files, all of which have the root name given by the
WvKinFile
parameter below.
This version does not include the ability to model stretching of internally generated
incident wave kinematics to the instantaneous free surface; you must set WaveStMod
= 0.
WaveTMax
sets the length of the incident wave kinematics time series, but it also determines
the frequency step used in the inverse FFT, from which the internal wave time series are
derived (Δω = 2π/WaveTMax). If WaveTMax
is less than the total simulation time, HydroDyn implements
repeating wave kinematics that have a period of WaveTMax
; WaveTMax
must not be less than the total
simulation time when WaveMod
= 5. WaveDT
determines the time step for the wave kinematics time series,
but it also determines the maximum frequency in the inverse FFT (ωmax = π/WaveDT). When modeling
irregular sea states, we recommend that WaveTMax
be set to at least 1 hour (3600 s) and that WaveDT
be a value in the range between 0.1 and 1.0 s to ensure sufficient resolution of the wave spectrum
and wave kinematics. When HydroDyn is coupled to OpenFAST, WaveDT
may be specified arbitrarily independently
from the glue code time step of OpenFAST (the wave kinematics will be interpolated in time as necessary);
WaveDT
must equal the glue code time step of OpenFAST when WaveMod
= 6.
For internally generated waves, the wave height (crest-to-trough, twice the amplitude) for
regular waves and the significant wave height for irregular waves is set using WaveHs
(only used when WaveMod
= 1, 2, or 3). The wave period for regular waves and the peak-spectral
wave period for irregular waves is controlled with the WaveTp
parameter (only used when
WaveMod
= 1 or 2). WavePkShp
is the peak-shape parameter of JONSWAP irregular wave spectrum
(only used when WaveMod
= 2). Set WavePkShp
to DEFAULT to obtain the value recommended in
the IEC 61400-3 Annex B, derived based on the peak-spectral period and significant wave height
[IEC, 2009]. Set WavePkShp
to 1.0 for the Pierson-Moskowitz spectrum.
WvLowCOff
and WvHiCOff
control the lower and upper cut-off frequencies (in rad/s) of
the first-order wave spectrum; the first-order wave-component amplitudes are zeroed below and
above these cut-off frequencies, respectively. WvLowCOff
may be set lower than the
low-energy limit of the first-order wave spectrum to minimize computational expense. Setting
a proper upper cut-off frequency (WvHiCOff
) also minimizes computational expense and is
important to prevent nonphysical effects when approaching of the breaking-wave limit and to
avoid nonphysical wave forces at high frequencies (i.e., at short wavelengths) when using a
strip-theory solution. WvLowCOff
and WvHiCOff
are unused when WaveMod
= 0, 1, or 6.
WaveDir
(unused when WaveMod
= 0 or 6) is the mean wave propagation heading direction
(in degrees), and must be in the range (-180,180]. A heading of 0 corresponds to wave propagation
in the positive X-axis direction. And a heading of 90 corresponds to wave propagation in the
positive Y-axis direction. WaveDirMod specifies the wave directional spreading model (only
used when WaveMod
= 2, 3, or 4). Setting WaveDirMod
to 0 disables directional spreading,
resulting in long-crested (plane-progressive) sea states propagating in the WaveDir
direction.
Setting WaveDirMod
to 1 enables the modeling of short-crested sea states, with a mean
propagation direction of WaveDir
, through the commonly used cosine spreading function
(COS2S) to define the directional spreading spectrum, based on the spreading coefficient (S)
defined via WaveDirSpread
. The wave directional spreading spectrum is discretized with an
equal-energy method using WaveNDir
number of equal-energy bins. WaveNDir
is an odd-valued
integer greater or equal to 1 (1 or 3 or 5…), but HydroDyn may slightly increase the specified value
of WaveNDir
to ensure that there is the same number of wave components within each direction
bin; setting WaveNDir
= 1 is equivalent to setting WaveDirMod
= 0. The range of the
directional spread (in degrees) is defined via WaveDirSpread
. The equal-energy method assumes
that the directional spreading spectrum is the product of a frequency spectrum and a spreading
function i.e. S(ω,β) = S(ω)D(β). Directional spreading is not permitted when using Newman’s
approximation of the second-order difference-frequency potential-flow loads.
WaveSeed(1)
and WavedSeed(2)
(unused when WaveMod
= 0, 5, or 6) combined determine
the initial seed (starting point) for the internal pseudorandom number generator needed to
derive the internal wave kinematics from the wave frequency and direction spectra. If you
want to run different time-domain realizations for given boundary conditions (of significant
wave height, and peak-spectral period, etc.), you should change one or both seeds between simulations.
While the phase of each wave frequency and direction component of the wave spectrum is always based on
a uniform distribution (except when using the 1P# WaveMod
option), the amplitude of the wave
frequency spectrum can also be randomized (following a normal distribution) by setting WaveNDAmp
to TRUE. Setting WaveNDAmp
to FALSE means that the amplitude of the wave frequency spectrum
always matches the target spectrum. WaveNDAmp
is only used with WaveMod
= 2, 3, or 4.
When using externally generated wave data (WaveMod
= 5 or 6), input parameter WvKinFile
should
be set to the root name of the input file(s) (without extension) containing the data.
Using externally generated wave-elevation time series (WaveMod
= 5) requires a text-formatted
input data file with the extension .Elev containing two columns of data—the first is time
(starting at zero) (in s) and the second is the wave elevation at (0,0) (in m), separated by whitespace.
Header lines (identified as those not beginning with a number) are ignored. The time series must be
at least WaveTMax
in length and not less than the total simulation time and the time step must
match WaveDT
. The wave-elevation time series specified is assumed to be of first order
and long-crested, but is not checked for physical correctness. When second-order terms are
optionally enabled—see the 2ND-ORDER WAVES and 2ND-ORDER FLOATING PLATFORM FORCES sections below—the
second-order terms are calculated using the wave-component amplitudes derived from the provided
wave-elevation time series and extra energy is added to the wave spectrum (at the difference and sum frequencies).
Using full externally generated wave kinematics (WaveMod
= 6) requires eight text-formatted input
data files, all without headers. Seven files with extensions .Vxi, .Vyi, .Vzi, .Axi, .Ayi, .Azi, and
.DynP correspond to the X, Y, and Z velocities (in m/s) and accelerations (in m/s2) in the global
inertial-frame coordinate system and the dynamic pressure (in Pa) time series. Each of these
files must have exactly WaveTMax/DT
rows and N whitepace-separated columns, where N
is the total number of internal HydroDyn analysis nodes (corresponding exactly to those written to
the HydroDyn summary file). Time is absent from the files, but is assumed to go from zero to
WaveTMax
– WaveDT
in steps of WaveDT
. To use this feature, it is the burden of
the user to generate wave kinematics data at each of HydroDyn’s time steps and analysis nodes.
HydroDyn will not interpolate the data; as such, when HydroDyn is coupled to OpenFAST, WaveDT
must equal the glue code time step of OpenFAST. A numerical value (including 0) in a file is
assumed to be valid data (with 0 corresponding to 0 m/s, 0 m/s2, or 0 Pa); a nonnumeric string
will designate that the node is outside of the water at that time step (above the instantaneous
water elevation or below the seabed)—externally generated wave kinematics used with WaveMod
= 6
are not limited to the domain between a flat seabed and SWL and may consider wave stretching,
higher-order wave theories, or an uneven seabed. All seven files must have nonnumeric strings
in the same locations within the file. The eighth file, with extension .Elev, must contain the
wave elevation (in m) at each of the NWaveElev
points on the SWL where wave elevations can be
output—see below; this data is required for output purposes only and is not used by HydroDyn for
other means. This file must have exactly WaveTMax/DT
rows and NWaveElev
whitepace-separated
columns and only valid numeric data is allowed (the file will have NWaveElev
+
( WaveElevNX
× WaveElevNY
) columns when HydroDyn is operated in standalone mode).
The data in these files is not processed (filtered, etc.) or checked for physical correctness
(other than for consistency in the location of the nonnumeric strings). Full externally generated
wave kinematics (WaveMod
= 6) cannot be used in conjunction with the potential-flow solution.
You can generate up to 9 wave elevation outputs. NWaveElev
determines the number (between 0 and 9),
and the whitespace-separated lists of WaveElevxi
and WaveElevyi
determine the locations of
these NWaveElev
number of points on the SWL plane in the global inertial-frame coordinate system.
6.3.2.6. 2nd-Order Waves¶
The 2ND-ORDER WAVES section (unused when WaveMod
= 0 or 6) of the input file allows the option of
adding second-order contributions to the wave kinematics used by the strip-theory solution. When
second-order terms are optionally enabled, the second-order terms are calculated using the
first-order wave-component amplitudes and extra energy is added to the wave spectrum (at the
difference and sum frequencies). The second-order terms cannot be computed without also including
the first-order terms from the WAVES section above. Enabling the second-order terms allows one
to capture some of the nonlinearities of real surface waves, permitting more accurate modeling
of sea states and the associated wave loads at the expense of greater computational effort
(mostly at HydroDyn initialization).
While the cut-off frequencies in this section apply to both the second-order wave kinematics used by strip theory and the second-order diffraction loads in potential-flow theory, the second-order terms themselves are enabled separately. The second-order wave kinematics used by strip theory are enabled in this section while the second-order diffraction loads in potential-flow theory are enabled in the 2ND-ORDER FLOATING PLATFORM FORCES section below. While the second-order effects are included when enabled, the wave elevations output from HydroDyn will only include the second-order terms when the second-order wave kinematics are enabled in this section.
To use second-order wave kinematics in the strip-theory solution, set WvDiffQTF
and/or
WvSumQTF
to TRUE. When WvDiffQTF
is set to TRUE, second-order difference-frequency terms,
calculated using the full difference-frequency QTF, are incorporated in the wave kinematics.
When WvSumQTF
is set to TRUE, second-order sum-frequency terms, calculated using the full
sum-frequency QTF, are incorporated in the wave kinematics. The full difference- and sum-frequency
wave kinematics QTFs are implemented analytically following [Sharma and Dean, 1981], which extends
Stokes second-order theory to irregular multidirectional waves. A setting of FALSE disregards
the second-order contributions to the wave kinematics in the strip-theory solution.
WvLowCOffD
and WvHiCOffD
control the lower and upper cut-off frequencies (in rad/s) of the
second-order difference-frequency terms; the second-order difference-frequency terms are zeroed
below and above these cut-off frequencies, respectively. The cut-offs apply directly to the physical
difference frequencies, not the two individual first-order frequency components of the difference
frequencies. When enabling second-order potential-flow theory, a setting of WvLowCOffD
= 0 is
advised to avoid eliminating the mean-drift term (second-order wave kinematics do not have a nonzero
mean). WvHiCOffD
need not be set higher than the peak-spectral frequency of the first-order
wave spectrum (ωp = 2π/WaveTp
) to minimize computational expense.
Likewise, WvLowCOffS
and WvHiCOffS
control the lower and upper cut-off frequencies
(in rad/s) of the second-order sum-frequency terms; the second-order sum-frequency terms are zeroed
below and above these cut-off frequencies, respectively. The cut-offs apply directly to the physical
sum frequencies, not the two individual first-order frequency components of the sum frequencies.
WvLowCOffS
need not be set lower than the peak-spectral frequency of the first-order wave
spectrum (ωp = 2π/WaveTp
) to minimize computational expense. Setting a proper upper
cut-off frequency (WvHiCOffS
) also minimizes computational expense and is important to (1)
ensure convergence of the second-order summations, (2) avoid unphysical “bumps” in the wave troughs,
(3) prevent nonphysical effects when approaching of the breaking-wave limit, and (4) avoid nonphysical
wave forces at high frequencies (i.e., at short wavelengths) when using a strip-theory solution.
Because the second-order terms are calculated using the first-order wave-component amplitudes,
the second-order cut-off frequencies (WvLowCOffD
, WvHiCOffD
, WvLowCOffS
, and WvHiCOffS
)
are used in conjunction with the first-order cut-off frequencies (WvLowCOff
and WvHiCOff
) from
the WAVES section. However, the second-order cut-off frequencies are not used by Newman’s approximation
of the second-order difference-frequency potential-flow loads, which are derived solely from first-order effects.
6.3.2.7. Current¶
You can include water velocity due to a current model by setting CurrMod
= 1. If CurrMod
is
set to zero, then the simulation will not include current. CurrMod
= 2 requires that the
UserCurrent()
subroutine of the Current.f90
source file be implemented by the user,
and will require recompiling either the standalone HydroDyn program or OpenFAST. Current induces
steady hydrodynamic loads through the viscous-drag terms (both distributed and lumped) of
strip-theory members. Current is not used in the potential-flow solution or when WaveMod
= 6.
HydroDyn’s standard current model includes three sub-models: near-surface, sub-surface, and depth-independent, as illustrated in Figure 1. All three currents are vector summed, along with the wave particle kinematics velocity.
The sub-surface current model follows a power law, .. math:
:label: ssCurrent
U(Z) = \mathrm{WndSpeed} \times \left( \frac{Z+d}{\mathrm{HubHt}} \right)^\mathrm{ShearExp}
where \(\mathrm{Z}\) is the local depth below the SWL (negative downward), \(\mathrm{d}\) is the water depth (equal to
WtrDpth
+ MSL2SWL
), and \(\mathrm{U0SS}\) is the current velocity at SWL, corresponding to CurrSSV0
. The
heading of the sub-surface current is defined using CurrSSDir
, following the same convention as WaveDir
.
The near-surface current model follows a linear relationship down to a reference depth such that, .. math:
:label: nsCurrent
U(Z) = \mathrm{WndSpeed} \times \left( \frac{Z+d}{\mathrm{HubHt}} \right)^\mathrm{ShearExp}
where \(\mathrm{href}\) is the reference depth corresponding to CurrNSRef
, and must be positive valued.
\(\mathrm{U0NS}\) is the current velocity at SWL, corresponding to CurrNSV0
. The heading of the near-surface
current is defined using CurrNSDir
, following the same convention as WaveDir
.
The depth-independent current velocity everywhere equals CurrDIV
. This current has
a heading direction CurrDIDir
, following the same convention as WaveDir
.
6.3.2.8. Floating Platform¶
This and the next few sections of the input file have “Floating Platform” in the title,
but the input parameters control the potential-flow model, regardless of whether the substructure
is floating or not. The potential-flow solution cannot be used in conjunction with nonzero MSL2SWL
or WaveMod
= 6.
If the load contributions from potential-flow theory are to be used, set PotMod
to 1 for the use of
frequency-to-time-domain transforms based on WAMIT output or 2 for the use of FIT (FIT is not yet
documented in this manual). With PotMod
= 1, include the root name (without extensions) for the
WAMIT-related output files in PotFile
. These files consist of the .1, .3,.hst and second-order files.
These are written by the WAMIT program and should not include any file headers. When the linear
state-space model is used in placed of convolution, the .ss file generated by SS_Fitting must have
the same root name as the other WAMIT-related files (see RdtnMod
below). The remaining parameters
in this section are only used when PotMod
= 1.
The output files from WAMIT are in a standard nondimensional form that HydroDyn will dimensionalize
internally upon input. WAMITULEN
is the characteristic body length scale used to
redimensionalize the WAMIT output. The body motions and forces in these files are in relation
to the WAMIT reference point (WRP) in HydroDyn, which for the undisplaced substructure is the
same as the origin of the global inertial-frame coordinate system (0,0,0). The .hst file contains
the 6x6 linear hydrostatic restoring (stiffness) matrix of the platform. The .1 file contains
the 6x6 frequency-dependent hydrodynamic added-mass and damping matrix of the platform from the
radiation problem. The .3 file contains the 6x1 frequency- and direction-dependent first-order
wave-excitation force vector of the platform from the linear diffraction problem. While HydroDyn
expects hydrodynamic coefficients derived from WAMIT, if you are not using WAMIT, it is recommended
that you reformat your data according to the WAMIT format (including nondimensionalization) before
inputting them to HydroDyn. Information on the WAMIT format is available from Chapter 4 of the
WAMIT User’s Guide [Lee, 2006].
PtfmVol0
is the displaced volume of water when the platform is in its undisplaced position.
This value should be set equal to the value computed by WAMIT as output in the WAMIT .out file.
PtfmCOBxt
and PtfmCOByt
are the X and Y offsets of the center of buoyancy from the WRP.
HydroDyn has two methods for calculating the radiation memory effect. Set RdtnMod
to 1 for the
convolution method, 2 for the linear state-space model, or 0 to disable the memory effect
calculation. For the convolution method, RdtnTMax
determines how long to track the memory effect
(truncating the convolutions at t – RdtnTMax
, where t is the current simulation time), but it
also determines the frequency step used in the cosine transform, from which the time-domain
radiation kernel (radiation impulse-response function) is derived. A RdtnTMax
of 60 s is usually
more than sufficient because the radiation kernel decays to zero after a short amount of time;
setting RdtnTMax
much greater than this will cause HydroDyn to run significantly slower.
(RdtnTMax
does not need to match or exceed the total simulation length.) Setting RdtnTMax
to
0 s disables the memory effect, akin to setting RdtnMod
to 0. For the convolution method,
RdtnDT
is the time step for the radiation calculations (numerical convolutions), but also
determines the maximum frequency in the cosine transform. For the state-space model, RdtnDT
is
the time step to use for time integration of the linear state-space model. In this version of
HydroDyn, RdtnDT
must match the glue code (OpenFAST/driver program) simulation time step;
the DEFAULT keyword can be used for this.
6.3.2.9. 2nd-Order Floating Platform Forces¶
The 2ND-ORDER FLOATING PLATFORM FORCES section of the input file allows the option of adding
second-order contributions to the potential-flow solution. When second-order terms are
optionally enabled, the second-order terms are calculated using the first-order wave-component
amplitudes and extra energy is added to the wave spectrum (at the difference and sum frequencies).
The second-order terms cannot be computed without also including the first-order terms from the
FLOATING PLATFORM section above (PotMod
= 1). Enabling the second-order terms allows one
to capture some of the nonlinearities of real surface waves, permitting more accurate modeling
of sea states and the associated wave loads at the expense of greater computational effort
(mostly at HydroDyn initialization).
While the cut-off frequencies in the 2ND-ORDER WAVES section above apply to both the second-order wave kinematics used by strip theory and the second-order diffraction loads in potential-flow theory, the second-order terms themselves are enabled separately. The second-order wave kinematics used by strip theory are enabled in the 2ND-ORDER WAVES section above while the second-order diffraction loads in potential-flow theory are enabled in this section. While the second-order effects are included when enabled, the wave elevations output from HydroDyn will only include the second-order terms when the second-order wave kinematics are enabled in the 2ND-ORDER WAVES section above.
The second-order difference-frequency potential-flow terms can be enabled in one of three ways.
To compute only the mean-drift term, set MnDrift
to a nonzero value; to estimate the mean-
and slow-drift terms using Standing et al.’s extension to Newman’s approximation, based only
on first-order effects, set NewmanApp
to a nonzero value; or to compute the mean- and slow-drift
terms using the full difference-frequency QTF set DiffQTF
to a nonzero value. Valid values of
MnDrift
are 0, 7, 8, 9, 10, 11, or 12 corresponding to which WAMIT output file the mean-drift
terms will be calculated from. Valid values of NewmanApp
are 0, 7, 8, 9, 10, 11, or 12 corresponding
to which WAMIT output file the Newman’s approximation will be calculated from. Newman’s approximation
cannot be used in conjunction with directional spreading (WaveDirMod
must be 0) and the second-order
cut-off frequencies do not apply to Newman’s approximation. Valid values of DiffQTF
are 0, 10, 11,
or 12 corresponding to which WAMIT output file the full difference-frequency potential-flow solution
will be calculated from. Only one of MnDrift
, NewmanApp
, and DiffQTF
can be nonzero;
a setting of 0 disregards the second-order difference-frequency contributions to the potential-flow solution.
The .7 WAMIT file refers to the mean-drift loads (diagonal of the difference-frequency QTF) in all 6 DOFs derived from the control-surface integration method based on the first-order solution. The .8 WAMIT file refers to the mean-drift loads (diagonal of the difference-frequency QTF) only in surge, sway, and roll derived from the momentum conservation principle based on the first-order solution. The .9 WAMIT file refers to the mean-drift loads (diagonal of the difference-frequency QTF) in all six DOFs derived from the pressure integration method based on the first-order solution. For the difference-frequency terms, 10, 11, and 12 refer to the WAMIT .10d, .11d, and .12d files, corresponding to the full QTF of (.10d) loads in all 6 DOFs associated with the quadratic interaction of first-order quantities, (.11d) total (quadratic plus second-order potential) loads in all 6 DOFs derived by the indirect method, and (.12d) total (quadratic plus second-order potential) loads in all 6 DOFs derived by the direct method, respectively.
The second-order sum-frequency potential-flow terms can only be enabled using the full
sum-frequency QTF, by setting SumQTF
to a nonzero value. Valid values of SumQTF
are
0, 10, 11, or 12 corresponding to which WAMIT output file the full sum-frequency
potential-flow solution will be calculated from; a setting of 0 disregards the second-order
sum-frequency contributions to the potential-flow solution. For the sum-frequency terms,
10, 11, and 12 refer to the WAMIT .10s, .11s, and .12s files, corresponding to the full QTF of (.10s)
loads in all 6 DOFs associated with the quadratic interaction of first-order quantities, (.11s)
total (quadratic plus second-order potential) loads in all 6 DOFs derived by the indirect method,
and (.12s) total (quadratic plus second-order potential) loads in all 6 DOFs derived by
the direct method, respectively.
6.3.2.10. Floating Platform Force Flags¶
This release requires that all platform force flags be set to TRUE. Future releases will allow you to turn on/off one or more of the six platform force components.
6.3.2.11. Platform Additional Stiffness and Damping¶
The vectors and matrices of this section are used to generate additional loads on the platform (in addition to other hydrodynamic terms calculated by HydroDyn), per the following equation.
[][]()0AddquadFFCqBqBABSqq=−−−CC CCCC CCCC CCCC CCCC ,
where 0F corresponds to the AddF0
6x1 static load (preload) vector, [𝐶] corresponds to
the AddCLin
6x6 linear restoring (stiffness) matrix, [𝐵] corresponds to the AddBLin
6x6 linear
damping matrix, [𝐵𝑞𝑞𝑞𝑞] corresponds to the AddBQuad
6x6 quadratic drag matrix,
and q corresponds to the WRP 6x1 (six-DOF) displacement vector (three translations and
three rotations), where the overdot refers to the first time-derivative.
These terms can be used, e.g., to model a linearized mooring system, to augment strip-theory members with a linear hydrostatic restoring matrix (see Section 6.8.3), or to “tune” HydroDyn to match damping to experimental results, such as free-decay tests. While likely most useful for floating systems, these matrices can also be used for fixed-bottom systems; in both cases, the resulting load is applied at the WRP, which when HydroDyn is coupled to OpenFAST, get applied to the platform in ElastoDyn (bypassing SubDyn for fixed-bottom systems). See Section 6 for addition modeling considerations where these terms are necessary.
6.3.2.12. Axial Coefficients¶
This and the next several sections of the input file control the strip-theory model for both fixed-bottom and floating substructures.
HydroDyn computes lumped viscous-drag, added-mass, fluid-inertia, and static pressure loads
at member ends (joints). The hydrodynamic coefficients for the lumped the lumped loads at
joints are referred to as “axial coefficients” and include viscous-drag coefficients, AxCd
,
added-mass coefficients, AxCa
, and dynamic-pressure coefficients, AxCp
. AxCa
influences
both the added-mass loads and the scattering component of the fluid-inertia loads. Any
number of separate axial coefficient sets, distinguished by AxCoefID
, may be specified
by setting NAxCoef
> 1.
Axial viscous-drag loads will be calculated for all specified member joints. Axial added-mass,
fluid-inertia, and static-pressure loads will only be calculated for member joints of members
not modeled with potential flow (PropPot
= FALSE). Axial loads are only calculated at
user-specified joints. Axial loads are not calculated at joints HydroDyn may automatically
create as part its solution process. For example, if you want axial effects at a
marine-growth boundary (where HydroDyn automatically adds a joint), you must explicitly
set a joint at that location.
6.3.2.13. Member Joints¶
The strip-theory model is based on a substructure composed of joints interconnected by members.
NJoints
is the user-specified number of joints and determines the number of rows in the
subsequent table. Because a member connects two nodes, NJoints
must be exactly zero or
greater than or equal to two. Each joint listed in the table is identified by a unique integer,
JointID
. The (X,Y,Z) coordinate of each joint is specified in the global inertial-frame
coordinate system via Jointxi
, Jointyi
, and Jointzi
, respectively. JointAxID
corresponds to an entry in the AXIAL COEFFICIENTS table and sets the axial coefficients
for a joint. This version of HydroDyn cannot calculate joint overlap when multiple members
meet at a common joint; therefore JointOvrlp
must be set to 0. Future releases will
enable joint overlap calculations.
Modeling a fixed-bottom substructure embedded into the seabed (e.g., through piles or suction buckets) requires that the lowest member joint(s) lie below the water depth. Placing a joint at or above the water depth results in static pressure loads being applied.
6.3.2.14. Member Cross-Sections¶
Members in HydroDyn are assumed to be straight circular (and possibly tapered) cylinders.
Apart from the hydrodynamic coefficients, the circular cross-section properties needed
for the hydrodynamic load calculations are member outer diameter, PropD
, and member
thickness, PropThck
. You will need to create an entry in this table, distinguished
by PropSetID
, for each unique combination of these two properties. The member
property-set table contains NPropSets
rows. The member property sets are referred
to by their PropSetID
in the MEMBERS table, as described in Section 4.3.13 below.
PropD
determines the static buoyancy loads exterior to a member, as well as the area
used in the viscous-drag calculation and the volume used in the added-mass and
fluid-inertia calculations. PropThck
determines the interior volume for
fluid-filled (flooded/ballasted) members.
6.3.2.15. Hydrodynamic Coefficients¶
HydroDyn computes distributed viscous-drag, added-mass, fluid-inertia, and static buoyancy loads along members.
The hydrodynamic coefficients for the distributed strip-theory loads are specified using any of three models, which we refer to as the simple model, a depth-based model, and a member-based model. All of these models require the specification of both transverse and axial hydrodynamic coefficients for viscous drag, added mass, and dynamic pressure (axial viscous drag is not yet available). The added-mass coefficient influences both the added-mass loads and the scattering component of the fluid-inertia loads. There are separate set of hydrodynamic coefficients both with and without marine growth. A given element will either use the marine growth or the standard version of a coefficient, but never both. Note that input members are split into elements per Section 7.5.2, one of the splitting rules guarantees the previous statement is true. Which members have marine growth is defined by the MARINE GROWTH table of Section 4.3.15.
You can specify only one model type, MCoefMod
, for any given member in the MEMBERS
table. However, different members can specify different coefficient models.
In the hydrodynamic coefficient input parameters, Cd
, Ca
, and Cp
refer
to the viscous-drag, added-mass, and dynamic-pressure coefficients, respectively, MG
identifies the coefficients to be applied for members with marine growth (the standard
values are identified without MG
), and Ax
identifies the axial coefficients
to be applied for tapered members (the transverse coefficients are identified without Ax
).
It is noted that for the transverse coefficients, CP + CA = CM, the inertia coefficient.
While the strip-theory solution assumes circular cross sections, the hydrodynamic coefficients can include shape corrections; however, there is no distinction made in HydroDyn between different transverse directions.
6.3.2.15.1. Simple Model¶
This table consists of a single complete set of hydrodynamic coefficients as
follows: SimplCd
, SimplCdMG
, SimplCa
, SimplCaMG
, SimplCp
,
SimplCpMG
, SimplAxCa
, SimplAxCaMG
, SimplAxCp
, and SimplAxCpMG
.
These hydrodynamic coefficients are referenced in the members table of Section 4.3.13
by selecting MCoefMod
= 1.
6.3.2.15.2. Depth-Based Model¶
The depth-based coefficient model allows you to specify a series of depth-dependent
coefficients. NCoefDpth
is the user-specified number of depths and determines
the number of rows in the subsequent table. Currently, this table requires that the
rows are ordered by increasing depth, Dpth
; this is equivalent to a decreasing
global Z-coordinate. The hydrodynamic coefficients at each depth are as follows:
DpthCd
, DpthCdMG
, DpthCa
, DpthCaMG
, DpthCp
, DpthCpMG
, DpthAxCa
,
DpthAxCaMG
, DpthAxCp
, and DpthAxCpMG
. Members use these hydrodynamic
coefficients by setting MCoefMod
= 2. The HydroDyn module will interpolate
coefficients for a node whose Z-coordinate lies between table Z-coordinates.
6.3.2.15.3. Member-Based Model¶
The member-based coefficient model allows you to specify a hydrodynamic coefficients
for each particular member. NCoefMembers
is the user-specified number of members
with member-based coefficients and determines the number of rows in the subsequent table.
The hydrodynamic coefficients for a member distinguished by MemberID
are as follows:
MemberCd1
, MemberCd2
, MemberCdMG1
, MemberCdMG2
, MemberCa1
, MemberCa2
,
MemberCaMG1
, MemberCaMG2
, MemberCp1
, MemberCp2
, MemberCpMG1
, MemberCpMG2
,
MemberAxCa1
, MemberAxCa2
, MemberAxCaMG1
, MemberAxCaMG2
, MemberAxCp1
,
MemberAxCp2
, MemberAxCpMG1
, and MemberAxCpMG2
, where 1 and 2 identify the
starting and ending joint of the member, respectively. Members use these hydrodynamic
coefficients by setting MCoefMod
= 3.
6.3.2.16. Members¶
NMembers
is the user-specified number of members and determines the number of rows in
the subsequent table. For each member distinguished by MemberID
, MJointID1
specifies
the starting joint and MJointID2
specifies the ending joint, corresponding to an
identifier (JointID
) from the MEMBER JOINTS table. Likewise, MPropSetID1
corresponds
to the starting cross-section properties and MProSetID2
specify the ending cross-section
properties, allowing for tapered members. MDivSize
determines the maximum spacing (in meters)
between simulation nodes where the distributed loads are actually computed; the smaller the number,
the finer the resolution and longer the computational time. Section 7.5.2 discusses the
difference between the user-supplied discretization and the simulation discretization.
Each member in your model will have hydrodynamic coefficients, which are specified using one
of the three models (MCoefMod
). Model 1 uses a single set of coefficients found in the
SIMPLE HYDRODYNAMIC COEFFICIENTS section. Model 2 is depth-based, and is determined via the
table found in the DEPTH-BASED HYDRODYNAMIC COEFFICIENTS section. Model 3 specifies coefficients
for a particular member, by referring to the MEMBER-BASED HYDRODYNAMIC COEFFICIENTS section.
The PropPot
flag indicates whether the corresponding member coincides with the body represented
by the potential-flow solution. When PropPot
= TRUE, only viscous-drag loads, and ballasting
loads will be computed for that member.
6.3.2.17. Filled Members¶
Members—whether they are also modeled with potential-flow or not—may be fluid-filled, meaning that they are flooded and/or ballasted. Fluid-filled members introduce interior buoyancy that subtracts from the exterior buoyancy and a mass. Both distributed loads along a member and lumped loads at joints are applied. The volume of fluid in the member is derived from the outer diameter and thickness of the member and a fluid-filled free-surface level. The fluid in the member is assumed to be compartmentalized such that it does not slosh. Rotational inertia of the fluid in the member is ignored. A member’s filled configuration is defined by the filled-fluid density and the free-surface level. Filled members that have the same configuration are collected into fill groups.
NFillGroups
specifies the number of fluid-filled member groups and determines
the number of rows in the subsequent table. FillNumM
specifies the number of
members in the fill group. FillMList
is a list of FillNumM whitespace-separated
MemberIDs
. FillFSLoc
specifies the Z-height of the free-surface (0 for MSL).
FillDens
is the density of the fluid. If FillDens
= DEFAULT, then FillDens
= WtrDens
.
6.3.2.18. Marine Growth¶
Members not also modeled with potential-flow theory may be modeled with marine growth. Marine growth causes three effects. First, marine growth introduces a static weight and mass to a member, applied as distributed loads along the member. Second, marine growth increases the outer diameter of a member, which impacts the diameter used in the viscous-drag, added-mass, fluid-inertia, and static buoyancy load calculations. Third, the hydrodynamic coefficients for viscous drag, added mass, and dynamic pressure are specified distinctly for marine growth. Rotational inertia of the marine growth is ignored and marine growth is not added to member ends.
Marine growth is specified using a depth-based table with NMGDepths
rows. This table
must have exactly zero or at least 2 rows. The columns in the table include the local depth,
MGDpth
, the marine growth thickness, MGThck
, and marine growth density, MGDens
.
Marine growth for a particular location in the substructure geometry is added by linearly
interpolating between the marine-growth table entries. The smallest and largest values of
MGDpth
define the marine growth region. Outside this region the marine growth thickness
is set to zero. If you want sub-regions of zero marine growth thickness within these bounds,
you must generate depth entries which explicitly set MGThck
to zero. The hydrodynamic
coefficient tables contain coefficients with and without marine growth. If MGThck
= 0
for a particular node, the coefficients not associated with marine growth are used.
6.3.2.19. Member Output List¶
HydroDyn can output distributed load and wave kinematic quantities at up to 9 locations on
up to 9 different members, for a total of 81 possible local member output locations.
NMOutputs
specifies the number of members. You must create a table entry for each
requested member. Within a table entry, MemberID
is the ID
specified in the MEMBERS
table, and NOutLoc
specifies how many output locations are generated for this member.
NodeLocs
specifies those locations as a normalized distance from the starting joint
(0.0) to the ending joint (1.0) of the member. If the chosen location does not align with a
calculation node, the results at the two surrounding nodes will be linearly interpolated.
The outputs specified in the OUTPUT CHANNELS section determines which quantities are actually output at these locations.
6.3.2.20. Joint Output List¶
HydroDyn can output lumped load and wave kinematic quantities at up to 9 different joints.
JOutLst
contains a list of NJOutputs
number of JointIDs
. The outputs specified
in the OUTPUT CHANNELS section determines which quantities are actually output at these joints.
6.3.2.21. Output¶
Specifying HDSum
= TRUE causes HydroDyn to generate a summary file with name
OutRootname.HD.sum
. OutRootName
is either specified in the HYDRODYN section of
the driver input file when running HydroDyn standalone, or by the OpenFAST program when running
a coupled simulation. See section 5.3 for summary file details.
For this version, OutAll
must be set to FALSE. In future versions, setting OutAll
= TRUE
will cause HydroDyn to auto-generate outputs for every joint and member in the input file.
If OutSwtch
is set to 1, outputs are sent to a file with the name OutRootname.HD.out
. If
OutSwtch
is set to 2, outputs are sent to the calling program (OpenFAST) for writing. If
OutSwtch
is set to 3, both file outputs occur. In standalone mode, setting OutSwitch
to 2 results in no output file being produced.
The OutFmt
and OutSFmt
parameters control the formatting for the output data and the
channel headers, respectively. HydroDyn currently does not check the validity of these format strings.
They need to be valid Fortran format strings. Since the OutSFmt
is used for the column header
and OutFmt
is for the channel data, in order for the headers and channel data to align properly,
the width specification should match. For example,
"ES11.4" OutFmt
"A11" OutSFmt
6.3.2.22. Output Channels¶
This section controls output quantities generated by HydroDyn. Enter one or more lines containing quoted strings that in turn contain one or more output parameter names. Separate output parameter names by any combination of commas, semicolons, spaces, and/or tabs. If you prefix a parameter name with a minus sign, ?-?, underscore, ?_?, or the characters ?m? or ?M?, HydroDyn will multiply the value for that channel by ?1 before writing the data. The parameters are not necessarily written in the order they are listed in the input file. HydroDyn allows you to use multiple lines so that you can break your list into meaningful groups and so the lines can be shorter. You may enter comments after the closing quote on any of the lines. Entering a line with the string ?END? at the beginning of the line or at the beginning of a quoted string found at the beginning of the line will cause HydroDyn to quit scanning for more lines of channel names. Member- and joint-related quantities are generated for the requested MEMBER OUTPUT LIST and JOINT OUTPUT LIST. If HydroDyn encounters an unknown/invalid channel name, it warns the users but will remove the suspect channel from the output file. Please refer to Appendix C for a complete list of possible output parameters.