4.2.8.2. Input Files

The user configures the hydrodynamic model parameters as well as the substructure geometry and properties via a primary HydroDyn input file. 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.

No lines should be added or removed from the input files, except in tables where the number of rows is specified.

4.2.8.2.1. Units

HydroDyn uses the SI system (kg, m, s, N).

4.2.8.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 are necessary to control the hydrodynamic simulation for uncoupled models. A sample HydroDyn driver input file is given in Appendix B.

Set the Echo flag in this file to TRUE if you wish to have HydroDynDriver 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. 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}}\). 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). WaveMod and PotMod are specified in the HydroDyn primary input file.

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 shown in Table 4.6. All motions are specified in the global inertial-frame coordinate system.

Table 4.6 WAMIT Inputs Time-Series Data File Contents

Column Number

Input

Units

1

Time step value

\[s\]

2-4

Translational displacements along X, Y, and Z

\[m\]

5-7

Rotational displacements about X, Y, and Z (small angle assumptions apply)

\[\text{radians}\]

8-10

Translational velocities along X, Y, and Z

\[\frac{m}{s}\]

11-13

Rotational velocities about X, Y, and Z

\[\frac{\text{radians}}{s}\]

14-16

Translational accelerations along X, Y, and Z

\[\frac{m}{s^{2}}\]

17-19

Rotational accelerations about X, Y, and Z

\[\frac{\text{radians}}{s^{2}}\]

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 × 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).

4.2.8.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 Appendix A: OC4 Semi-submersible Input File.

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 FAST when running a coupled simulation.

4.2.8.2.3.1. Environmental Conditions

Environmental conditions are now specified in the driver input file but are left in the primary input file for legacy compatibility. Use the keyword DEFAULT to pass in values specified by the driver input file. Otherwise, values given in the primary input file will overwrite those given in the driver input file. 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).

4.2.8.2.3.2. 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 FAST. 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 FAST, WaveDT may be specified arbitrarily independently from the glue code time step of FAST (the wave kinematics will be interpolated in time as necessary); WaveDT must equal the glue code time step of FAST 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 (COS:sup:2S) 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 (pRNG) needed to derive the internal wave kinematics from the wave frequency and direction spectra. If both are numeric values, the Fortran intrinsic pRNG is used. If WaveSeed(2) is the string “RANLUX”, an alternative pRNG included with the NWTC Library is used and the value of WaveSeed(1) is the seed. 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 WaveTMaxWaveDT 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 FAST, WaveDT must equal the glue code time step of FAST. 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.

4.2.8.2.3.3. 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.

4.2.8.2.3.4. 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 FAST. 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 Fig. 4.48. All three currents are vector summed, along with the wave particle kinematics velocity.

../../../_images/current_sub_models.jpg

Fig. 4.48 Standard Current Sub-Models

The sub-surface current model follows a power law,

(4.193)\[U_{SS}(Z) = U_{0_{SS}} \left( \frac{Z+d}{d} \right)^{ \frac{1}{7} }\]

where \(Z\) is the local depth below the SWL (negative downward), \(d\) is the water depth (equal to WtrDpth + MSL2SWL), and \(U_{0_{SS}}\) 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,

(4.194)\[U_{NS}(Z) = U_{0_{NS}} \left( \frac{Z+h_{ref}}{h_{ref}} \right), Z\in[-h_{ref},0]\]

otherwise,

(4.195)\[U_{NS}(Z) = 0\]

where \(h_{ref}\) is the reference depth corresponding to CurrNSRef and must be positive valued. \(U_{0_{NS}}\) 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.

4.2.8.2.3.5. 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 [LN06].

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 tRdtnTMax, 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 (FAST/driver program) simulation time step; the DEFAULT keyword can be used for this.

4.2.8.2.3.6. 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.

4.2.8.2.3.7. 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.

(4.196)\[\overrightarrow{F}_{Add} = \overrightarrow{F}_{0} - [C] \overrightarrow{q} - [B] \dot{\overrightarrow{q}} - [B_{quad}] ABS \left(\dot{\overrightarrow{q}}\right) \dot{\overrightarrow{q}}\]

where \(\overrightarrow{F}_{0}\) corresponds to the AddF0 6x1 static load (preload) vector, \([C]\) corresponds to the AddCLin 6x6 linear restoring (stiffness) matrix, \([B]\) corresponds to the AddBLin 6x6 linear damping matrix, \([B_{quad}]\) corresponds to the AddBQuad 6x6 quadratic drag matrix, and \(\overrightarrow{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 4.2.8.4.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 FAST, get applied to the platform in ElastoDyn (bypassing SubDyn for fixed-bottom systems). See Modeling Considerations for addition guidance for where these terms are necessary.

4.2.8.2.3.8. 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.

4.2.8.2.3.9. 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.

4.2.8.2.3.10. 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.2.8.2.3.12 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.

4.2.8.2.3.11. 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, 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.2.8.2.3.14. 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, , 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.

4.2.8.2.3.11.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.2.8.2.3.12 by selecting MCoefMod = 1.

4.2.8.2.3.11.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.

4.2.8.2.3.11.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.

4.2.8.2.3.12. 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. 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.

4.2.8.2.3.13. 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.

4.2.8.2.3.14. 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.

4.2.8.2.3.15. 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 Appendix C. List of Output Channels determines which quantities are actually output at these locations.

4.2.8.2.3.16. 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 Appendix C. List of Output Channels determines which quantities are actually output at these joints.

4.2.8.2.3.17. 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 FAST program when running a coupled simulation. See Section 4.2.8.3.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 (FAST) 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

4.2.8.2.3.18. 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.