Hydrodynamic Drag loads formulation

Dear Jason,
I am trying to implement the hydrodynamic drag effect in my model, but my results do not match those of FAST (they are an order of magnitude higher).
The wording I used is the following:
Fxd = 0.5 * Cd * A * Vx ^ 2 * rho
Where:
-Cd = 0.6 (drag coefficient);
-A = 1120m^2 (platform cross area);
-Vx (platform speed in x direction)
-rho = 1025 kg / m ^ 3 (water density).
Similarly Fyd = 0.5 * Cd * A * Vy ^ 2 * rho
However I don’t know how to calculate Mxd and Myd (while I know that Fzd = 0 and Mzd = 0)
Could you tell me the formulation of Mxd and Myd, as well as tell me if there is any error in my formulation of Fxd and Fyd?

Thanks for the help,
Lorenzo

1 Like

Dear Lorenzo,

The hydrodynamics module of FAST/OpenFAST (HydroDyn) calculates the viscous drag by computing both the drag force on strips/elements distributed along the member and lumped drag forces at member ends. I assume you are only refer to the drag loads along the member, and not end effects. Because HydroDyn computes the drag force distribution, it does not directly compute a drag moment, but a moment is created by integrating the strip loads along the member. Assuming 2D flow (in x and y) and cylindrical member of diameter D along z from the water line to a depth L, the equations HydroDyn uses for the drag force-per unit length along the member would be:

dFx/dz = 0.5CdrhoDVxSQRT(Vx^2 + Vy^2)
dFy/dz = 0.5
CdrhoDVySQRT(Vx^2 + Vy^2)

To calculate the total integrated force and moment (relative to the waterline), these would be integrated along the member:

Fx = INTEGRAL( dFx/dzdz, z=-L, z=0 )
Fy = INTEGRAL( dFy/dz
dz, z=-L, z=0 )
Mx = INTEGRAL( -zdFy/dzdz, z=-L, z=0 )
My = INTEGRAL( zdFx/dzdz, z=-L, z=0 )

Note that Vx and Vy may be depth-dependent (i.e., dependent on z) and can include contributions both from wave / current kinematics and structural motions (the relative velocity between fluid and structure is used).

In your equation, I assume you mean that “A” is the projected area of the structure normal to the flow, i.e. A = D*L; is that correct? Please note that your equations have an error if the flow has both x and y components.

Best regards,

Dear Jason,
Thanks for the reply.
How is it possible to derive the spatial and temporal arrangement of Vx and Vy of the waves to be used in the formulas? Can it be obtained from FAST?
Best regards,
Lorenzo.

Dear Lorenzo,

Yes, the HydroDyn module of FAST / OpenFAST can output the wave particle velocities at the hydrodynamic analysis nodes, i.e. MαNβVxi, MαNβVyi, MαNβVzi for output node β of output member α.

Best regards,

Dear Jason,
I am finding it difficult to obtain as output the values indicated by you (MαNβVxi, MαNβVyi, MαNβVzi). It gives me the following error:
"Error using Run_OpenLoop1 (line 31)
Error reported by S-function ‘FAST_SFunc’ in ‘OpenLoop1 / FAST Nonlinear Wind Turbine / S-Function’:
FAST_InitializeAll: SrvD_Init: ValidatePrimaryData: Yaw angle and rate are not commanded from Simulink model.
ValidatePrimaryData: Pitch angles are not commanded from Simulink model.
ValidatePrimaryData: Generator torque and power are not commanded from Simulink model.
ValidatePrimaryData: HSS brake is not commanded from Simulink model.
FAST_InitializeAll: HydroDyn_Init: HydroDynInput_GetInput: Invalid numerical input for file
“… \ … \ OC3 \ 5MW_Baseline / NRELOffshrBsline5MW_OC3Hywind_HydroDyn.dat” occurred while trying to read JOutLst. "

The code I used is the following:

------- HydroDyn v2.03.* Input File --------------------------------------------
NREL 5.0 MW offshore baseline floating platform HydroDyn input properties for the OC3 Hywind.
False            Echo           - Echo the input file data (flag)
---------------------- ENVIRONMENTAL CONDITIONS --------------------------------
          1025   WtrDens        - Water density (kg/m^3)
           250   WtrDpth        - Water depth (meters)
             0   MSL2SWL        - Offset between still-water level and mean sea level (meters) [positive upward; unused when WaveMod = 6; must be zero if PotMod=1 or 2]
---------------------- WAVES ---------------------------------------------------
             2   WaveMod        - Incident wave kinematics model {0: none=still water, 1: regular (periodic), 1P#: regular with user-specified phase, 2: JONSWAP/Pierson-Moskowitz spectrum (irregular), 3: White noise spectrum (irregular), 4: user-defined spectrum from routine UserWaveSpctrm (irregular), 5: Externally generated wave-elevation time series, 6: Externally generated full wave-kinematics time series [option 6 is invalid for PotMod/=0]} (switch)
             0   WaveStMod      - Model for stretching incident wave kinematics to instantaneous free surface {0: none=no stretching, 1: vertical stretching, 2: extrapolation stretching, 3: Wheeler stretching} (switch) [unused when WaveMod=0 or when PotMod/=0]
          3630   WaveTMax       - Analysis time for incident wave calculations (sec) [unused when WaveMod=0; determines WaveDOmega=2Pi/WaveTMax in the IFFT]
          0.25   WaveDT         - Time step for incident wave calculations     (sec) [unused when WaveMod=0; 0.1<=WaveDT<=1.0 recommended; determines WaveOmegaMax=Pi/WaveDT in the IFFT]
          2.75   WaveHs         - Significant wave height of incident waves (meters) [used only when WaveMod=1, 2, or 3]
           6.5   WaveTp         - Peak-spectral period of incident waves       (sec) [used only when WaveMod=1 or 2]
"DEFAULT"        WavePkShp      - Peak-shape parameter of incident wave spectrum (-) or DEFAULT (string) [used only when WaveMod=2; use 1.0 for Pierson-Moskowitz]
             0   WvLowCOff      - Low  cut-off frequency or lower frequency limit of the wave spectrum beyond which the wave spectrum is zeroed (rad/s) [unused when WaveMod=0, 1, or 6]
           500   WvHiCOff       - High cut-off frequency or upper frequency limit of the wave spectrum beyond which the wave spectrum is zeroed (rad/s) [unused when WaveMod=0, 1, or 6]
             0   WaveDir        - Incident wave propagation heading direction                         (degrees) [unused when WaveMod=0 or 6]
             0   WaveDirMod     - Directional spreading function {0: none, 1: COS2S}                  (-)       [only used when WaveMod=2,3, or 4]
             1   WaveDirSpread  - Wave direction spreading coefficient ( > 0 )                        (-)       [only used when WaveMod=2,3, or 4 and WaveDirMod=1]
             1   WaveNDir       - Number of wave directions                                           (-)       [only used when WaveMod=2,3, or 4 and WaveDirMod=1; odd number only]
            90   WaveDirRange   - Range of wave directions (full range: WaveDir +/- 1/2*WaveDirRange) (degrees) [only used when WaveMod=2,3,or 4 and WaveDirMod=1]
     123456789   WaveSeed(1)    - First  random seed of incident waves [-2147483648 to 2147483647]    (-)       [unused when WaveMod=0, 5, or 6]
    1011121314   WaveSeed(2)    - Second random seed of incident waves [-2147483648 to 2147483647]    (-)       [unused when WaveMod=0, 5, or 6]
TRUE             WaveNDAmp      - Flag for normally distributed amplitudes                            (flag)    [only used when WaveMod=2, 3, or 4]
""               WvKinFile      - Root name of externally generated wave data file(s)        (quoted string)    [used only when WaveMod=5 or 6]
             1   NWaveElev      - Number of points where the incident wave elevations can be computed (-)       [maximum of 9 output locations]
             0   WaveElevxi     - List of xi-coordinates for points where the incident wave elevations can be output (meters) [NWaveElev points, separated by commas or white space; usused if NWaveElev = 0]
             0   WaveElevyi     - List of yi-coordinates for points where the incident wave elevations can be output (meters) [NWaveElev points, separated by commas or white space; usused if NWaveElev = 0]
---------------------- 2ND-ORDER WAVES ----------------------------------------- [unused with WaveMod=0 or 6]
FALSE            WvDiffQTF      - Full difference-frequency 2nd-order wave kinematics (flag)
FALSE            WvSumQTF       - Full summation-frequency  2nd-order wave kinematics (flag)
             0   WvLowCOffD     - Low  frequency cutoff used in the difference-frequencies (rad/s) [Only used with a difference-frequency method]
           3.5   WvHiCOffD      - High frequency cutoff used in the difference-frequencies (rad/s) [Only used with a difference-frequency method]
           0.1   WvLowCOffS     - Low  frequency cutoff used in the summation-frequencies  (rad/s) [Only used with a summation-frequency  method]
           3.5   WvHiCOffS      - High frequency cutoff used in the summation-frequencies  (rad/s) [Only used with a summation-frequency  method]
---------------------- CURRENT ------------------------------------------------- [unused with WaveMod=6]
             0   CurrMod        - Current profile model {0: none=no current, 1: standard, 2: user-defined from routine UserCurrent} (switch)
             0   CurrSSV0       - Sub-surface current velocity at still water level  (m/s) [used only when CurrMod=1]
"DEFAULT"        CurrSSDir      - Sub-surface current heading direction (degrees) or DEFAULT (string) [used only when CurrMod=1]
            20   CurrNSRef      - Near-surface current reference depth            (meters) [used only when CurrMod=1]
             0   CurrNSV0       - Near-surface current velocity at still water level (m/s) [used only when CurrMod=1]
             0   CurrNSDir      - Near-surface current heading direction         (degrees) [used only when CurrMod=1]
             0   CurrDIV        - Depth-independent current velocity                 (m/s) [used only when CurrMod=1]
             0   CurrDIDir      - Depth-independent current heading direction    (degrees) [used only when CurrMod=1]
---------------------- FLOATING PLATFORM --------------------------------------- [unused with WaveMod=6]
             1   PotMod         - Potential-flow model {0: none=no potential flow, 1: frequency-to-time-domain transforms based on WAMIT output, 2: fluid-impulse theory (FIT)} (switch)
"HydroData/Spar"    PotFile        - Root name of potential-flow model data; WAMIT output files containing the linear, nondimensionalized, hydrostatic restoring matrix (.hst), frequency-dependent hydrodynamic added mass matrix and damping matrix (.1), and frequency- and direction-dependent wave excitation force vector per unit wave amplitude (.3) (quoted string) [MAKE SURE THE FREQUENCIES INHERENT IN THESE WAMIT FILES SPAN THE PHYSICALLY-SIGNIFICANT RANGE OF FREQUENCIES FOR THE GIVEN PLATFORM; THEY MUST CONTAIN THE ZERO- AND INFINITE-FREQUENCY LIMITS!]
             1   WAMITULEN      - Characteristic body length scale used to redimensionalize WAMIT output (meters) [only used when PotMod=1]
       8029.21   PtfmVol0       - Displaced volume of water when the platform is in its undisplaced position (m^3) [only used when PotMod=1; USE THE SAME VALUE COMPUTED BY WAMIT AS OUTPUT IN THE .OUT FILE!]
             0   PtfmCOBxt      - The xt offset of the center of buoyancy (COB) from the platform reference point (meters)  [only used when PotMod=1]
             0   PtfmCOByt      - The yt offset of the center of buoyancy (COB) from the platform reference point (meters)  [only used when PotMod=1]
             1   RdtnMod        - Radiation memory-effect model {0: no memory-effect calculation, 1: convolution, 2: state-space} (switch) [only used when PotMod=1; STATE-SPACE REQUIRES *.ss INPUT FILE]
            60   RdtnTMax       - Analysis time for wave radiation kernel calculations (sec) [only used when PotMod=1; determines RdtnDOmega=Pi/RdtnTMax in the cosine transform; MAKE SURE THIS IS LONG ENOUGH FOR THE RADIATION IMPULSE RESPONSE FUNCTIONS TO DECAY TO NEAR-ZERO FOR THE GIVEN PLATFORM!]
          0.05   RdtnDT         - Time step for wave radiation kernel calculations (sec) [only used when PotMod=1; DT<=RdtnDT<=0.1 recommended; determines RdtnOmegaMax=Pi/RdtnDT in the cosine transform]
---------------------- 2ND-ORDER FLOATING PLATFORM FORCES ---------------------- [unused with WaveMod=0 or 6, or PotMod=0 or 2]
             0   MnDrift        - Mean-drift 2nd-order forces computed                                       {0: None; [7, 8, 9, 10, 11, or 12]: WAMIT file to use} [Only one of MnDrift, NewmanApp, or DiffQTF can be non-zero]
             0   NewmanApp      - Mean- and slow-drift 2nd-order forces computed with Newman's approximation {0: None; [7, 8, 9, 10, 11, or 12]: WAMIT file to use} [Only one of MnDrift, NewmanApp, or DiffQTF can be non-zero. Used only when WaveDirMod=0]
             0   DiffQTF        - Full difference-frequency 2nd-order forces computed with full QTF          {0: None; [10, 11, or 12]: WAMIT file to use}          [Only one of MnDrift, NewmanApp, or DiffQTF can be non-zero]
             0   SumQTF         - Full summation -frequency 2nd-order forces computed with full QTF          {0: None; [10, 11, or 12]: WAMIT file to use}
---------------------- FLOATING PLATFORM FORCE FLAGS  -------------------------- [unused with WaveMod=6]
True             PtfmSgF        - Platform horizontal surge translation force (flag) or DEFAULT
True             PtfmSwF        - Platform horizontal sway translation force (flag) or DEFAULT
True             PtfmHvF        - Platform vertical heave translation force (flag) or DEFAULT
True             PtfmRF         - Platform roll tilt rotation force (flag) or DEFAULT
True             PtfmPF         - Platform pitch tilt rotation force (flag) or DEFAULT
True             PtfmYF         - Platform yaw rotation force (flag) or DEFAULT
---------------------- PLATFORM ADDITIONAL STIFFNESS AND DAMPING  --------------
             0             0             0             0             0             0   AddF0    - Additional preload (N, N-m)
             0             0             0             0             0             0   AddCLin  - Additional linear stiffness (N/m, N/rad, N-m/m, N-m/rad)
             0             0             0             0             0             0
             0             0             0             0             0             0
             0             0             0             0             0             0
             0             0             0             0             0             0
             0             0             0             0             0      98340000
        100000             0             0             0             0             0   AddBLin  - Additional linear damping(N/(m/s), N/(rad/s), N-m/(m/s), N-m/(rad/s))
             0        100000             0             0             0             0
             0             0        130000             0             0             0
             0             0             0             0             0             0
             0             0             0             0             0             0
             0             0             0             0             0      13000000
             0             0             0             0             0             0   AddBQuad - Additional quadratic drag(N/(m/s)^2, N/(rad/s)^2, N-m(m/s)^2, N-m/(rad/s)^2)
             0             0             0             0             0             0
             0             0             0             0             0             0
             0             0             0             0             0             0
             0             0             0             0             0             0
             0             0             0             0             0             0
---------------------- AXIAL COEFFICIENTS --------------------------------------
             1   NAxCoef        - Number of axial coefficients (-)
AxCoefID  AxCd     AxCa     AxCp
   (-)    (-)      (-)      (-)
    1     0.00     0.00     1.00
---------------------- MEMBER JOINTS -------------------------------------------
             4   NJoints        - Number of joints (-)   [must be exactly 0 or at least 2]
JointID   Jointxi     Jointyi     Jointzi  JointAxID   JointOvrlp   [JointOvrlp= 0: do nothing at joint, 1: eliminate overlaps by calculating super member]
   (-)     (m)         (m)         (m)        (-)       (switch)
    1     0.00000     0.00000  -120.00000      1            0
    2     0.00000     0.00000   -12.00000      1            0
    3     0.00000     0.00000    -4.00000      1            0
    4     0.00000     0.00000    10.00000      1            0
---------------------- MEMBER CROSS-SECTION PROPERTIES -------------------------
             2   NPropSets      - Number of member property sets (-)
PropSetID    PropD         PropThck
   (-)        (m)            (m)
    1        9.40000        0.00010
    2        6.50000        0.00010
---------------------- SIMPLE HYDRODYNAMIC COEFFICIENTS (model 1) --------------
     SimplCd    SimplCdMG    SimplCa    SimplCaMG    SimplCp    SimplCpMG   SimplAxCa  SimplAxCaMG  SimplAxCp   SimplAxCpMG
       (-)         (-)         (-)         (-)         (-)         (-)         (-)         (-)         (-)         (-)
       0.60        0.00        0.00        0.00        1.00        1.00        1.00        1.00        1.00        1.00 
---------------------- DEPTH-BASED HYDRODYNAMIC COEFFICIENTS (model 2) ---------
             0   NCoefDpth       - Number of depth-dependent coefficients (-)
Dpth      DpthCd   DpthCdMG   DpthCa   DpthCaMG       DpthCp   DpthCpMG   DpthAxCa   DpthAxCaMG       DpthAxCp   DpthAxCpMG
(m)       (-)      (-)        (-)      (-)            (-)      (-)          (-)        (-)              (-)         (-)
---------------------- MEMBER-BASED HYDRODYNAMIC COEFFICIENTS (model 3) --------
             0   NCoefMembers       - Number of member-based coefficients (-)
MemberID    MemberCd1     MemberCd2    MemberCdMG1   MemberCdMG2    MemberCa1     MemberCa2    MemberCaMG1   MemberCaMG2    MemberCp1     MemberCp2    MemberCpMG1   MemberCpMG2   MemberAxCa1   MemberAxCa2  MemberAxCaMG1 MemberAxCaMG2  MemberAxCp1  MemberAxCp2   MemberAxCpMG1   MemberAxCpMG2
   (-)         (-)           (-)           (-)           (-)           (-)           (-)           (-)           (-)           (-)           (-)           (-)           (-)           (-)           (-)           (-)           (-)           (-)           (-)           (-)           (-)
-------------------- MEMBERS -------------------------------------------------
             3   NMembers       - Number of members (-)
MemberID  MJointID1  MJointID2  MPropSetID1  MPropSetID2  MDivSize   MCoefMod  PropPot   [MCoefMod=1: use simple coeff table, 2: use depth-based coeff table, 3: use member-based coeff table] [ PropPot/=0 if member is modeled with potential-flow theory]
  (-)        (-)        (-)         (-)          (-)        (m)      (switch)   (flag)
    1         1          2           1            1         0.5000      1        TRUE
    2         2          3           1            2         0.5000      1        TRUE
    3         3          4           2            2         0.5000      1        TRUE
---------------------- FILLED MEMBERS ------------------------------------------
             0   NFillGroups     - Number of filled member groups (-) [If FillDens = DEFAULT, then FillDens = WtrDens; FillFSLoc is related to MSL2SWL]
FillNumM FillMList             FillFSLoc     FillDens
(-)      (-)                   (m)           (kg/m^3)
---------------------- MARINE GROWTH -------------------------------------------
             0   NMGDepths      - Number of marine-growth depths specified (-)
MGDpth     MGThck       MGDens
(m)        (m)         (kg/m^3)
---------------------- MEMBER OUTPUT LIST --------------------------------------
             0   NMOutputs      - Number of member outputs (-) [must be < 10]
MemberID   NOutLoc    NodeLocs [NOutLoc < 10; node locations are normalized distance from the start of the member, and must be >=0 and <= 1] [unused if NMOutputs=0]
1          2          0.0 1.0
2          2          0.0 1.0
3          2          0.0 1.0
---------------------- JOINT OUTPUT LIST ---------------------------------------
             4   NJOutputs      - Number of joint outputs [Must be < 10]
   1 2 3 4           JOutLst        - List of JointIDs which are to be output (-)[unused if NJOutputs=0]
---------------------- OUTPUT --------------------------------------------------
True             HDSum          - Output a summary file [flag]
False            OutAll         - Output all user-specified member and joint loads (only at each member end, not interior locations) [flag]
             2   OutSwtch       - Output requested channels to: [1=Hydrodyn.out, 2=GlueCode.out, 3=both files]
"ES11.4e2"       OutFmt         - Output format for numerical results (quoted string) [not checked for validity!]
"A11"            OutSFmt        - Output format for header strings (quoted string) [not checked for validity!]
---------------------- OUTPUT CHANNELS -----------------------------------------
"Wave1Elev"               - Wave elevation at the platform reference point (0,  0)
"WavesFxi"
"WavesFyi"
"WavesFzi"
"WavesMxi"
"WavesMyi"
"WavesMzi"

"AddFxi"
"AddFyi"
"AddFzi"
"AddMxi"
"AddMyi"
"AddMzi"

"HydroFxi"
"HydroFyi"
"HydroFzi"
"HydroMxi"
"HydroMyi"
"HydroMzi"

"RdtnFxi"
"RdtnFyi"
"RdtnFzi"
"RdtnMxi"
"RdtnMyi"
"RdtnMzi"

"HdrStcFxi"
"HdrStcFyi"
"HdrStcFzi"
"HdrStcMxi"
"HdrStcMyi"
"HdrStcMzi"

"M1N1STVxi"
"M1N1STVyi"
"M1N1STVzi"

"M1N2STVxi"
"M1N2STVyi"
"M1N2STVzi"

"M2N2STVxi"
"M2N2STVyi"
"M2N2STVzi"

"M2N3STVxi"
"M2N3STVyi"
"M2N3STVzi"

"M3N3STVxi"
"M3N3STVyi"
"M3N3STVzi"

"M3N4STVxi"
"M3N4STVyi"
"M3N4STVzi"

END of output channels and end of file. (the word "END" must appear in the first 3 columns of this line)

What should I set differently to obtain the MαNβVxi, MαNβVyi, MαNβVzi outputs?

Thanks for the attention,
Lorenzo.

Dear Lorenzo,

It appears that your input file is not formatted properly. I think the problem is that you’ve specified NMOutputs = 0, but then you specify three rows in the subsequent table (as if NMOutputs = 3).

Best regards,

Dear Jason,
I changed it but now returns me a similar error:
"Error using Run_OpenLoop1 (line 31)
Error reported by S-function ‘FAST_SFunc’ in ‘OpenLoop1 / FAST Nonlinear Wind Turbine / S-Function’:
FAST_InitializeAll: SrvD_Init: ValidatePrimaryData: Yaw angle and rate are not commanded from Simulink model.
ValidatePrimaryData: Pitch angles are not commanded from Simulink model.
ValidatePrimaryData: Generator torque and power are not commanded from Simulink model.
ValidatePrimaryData: HSS brake is not commanded from Simulink model.
FAST_InitializeAll: HydroDyn_Init: HydroDynInput_GetInput: Failed to read NOutLoc
"
There is probably something else that isn’t set right, but I didn’t find it. Could you?
Thanks for your help,
Lorenzo.

Dear Lorenzo,

I’m not sure without seeing your updated HydroDyn input file, but you can enable the “Echo” flag in HydroDyn and rerun OpenFAST to debug issues in input file formatting.

Best regards,

Dear Jason,
I specify that I am using FAST v8.16 and not OpenFAST.
Below is the HydroDyn input file:

------- HydroDyn v2.03.* Input File --------------------------------------------
NREL 5.0 MW offshore baseline floating platform HydroDyn input properties for the OC3 Hywind.
True            Echo           - Echo the input file data (flag)
---------------------- ENVIRONMENTAL CONDITIONS --------------------------------
          1025   WtrDens        - Water density (kg/m^3)
           250   WtrDpth        - Water depth (meters)
             0   MSL2SWL        - Offset between still-water level and mean sea level (meters) [positive upward; unused when WaveMod = 6; must be zero if PotMod=1 or 2]
---------------------- WAVES ---------------------------------------------------
             2   WaveMod        - Incident wave kinematics model {0: none=still water, 1: regular (periodic), 1P#: regular with user-specified phase, 2: JONSWAP/Pierson-Moskowitz spectrum (irregular), 3: White noise spectrum (irregular), 4: user-defined spectrum from routine UserWaveSpctrm (irregular), 5: Externally generated wave-elevation time series, 6: Externally generated full wave-kinematics time series [option 6 is invalid for PotMod/=0]} (switch)
             0   WaveStMod      - Model for stretching incident wave kinematics to instantaneous free surface {0: none=no stretching, 1: vertical stretching, 2: extrapolation stretching, 3: Wheeler stretching} (switch) [unused when WaveMod=0 or when PotMod/=0]
          3630   WaveTMax       - Analysis time for incident wave calculations (sec) [unused when WaveMod=0; determines WaveDOmega=2Pi/WaveTMax in the IFFT]
          0.25   WaveDT         - Time step for incident wave calculations     (sec) [unused when WaveMod=0; 0.1<=WaveDT<=1.0 recommended; determines WaveOmegaMax=Pi/WaveDT in the IFFT]
          2.75   WaveHs         - Significant wave height of incident waves (meters) [used only when WaveMod=1, 2, or 3]
           6.5   WaveTp         - Peak-spectral period of incident waves       (sec) [used only when WaveMod=1 or 2]
"DEFAULT"        WavePkShp      - Peak-shape parameter of incident wave spectrum (-) or DEFAULT (string) [used only when WaveMod=2; use 1.0 for Pierson-Moskowitz]
             0   WvLowCOff      - Low  cut-off frequency or lower frequency limit of the wave spectrum beyond which the wave spectrum is zeroed (rad/s) [unused when WaveMod=0, 1, or 6]
           500   WvHiCOff       - High cut-off frequency or upper frequency limit of the wave spectrum beyond which the wave spectrum is zeroed (rad/s) [unused when WaveMod=0, 1, or 6]
             0   WaveDir        - Incident wave propagation heading direction                         (degrees) [unused when WaveMod=0 or 6]
             0   WaveDirMod     - Directional spreading function {0: none, 1: COS2S}                  (-)       [only used when WaveMod=2,3, or 4]
             1   WaveDirSpread  - Wave direction spreading coefficient ( > 0 )                        (-)       [only used when WaveMod=2,3, or 4 and WaveDirMod=1]
             1   WaveNDir       - Number of wave directions                                           (-)       [only used when WaveMod=2,3, or 4 and WaveDirMod=1; odd number only]
            90   WaveDirRange   - Range of wave directions (full range: WaveDir +/- 1/2*WaveDirRange) (degrees) [only used when WaveMod=2,3,or 4 and WaveDirMod=1]
     123456789   WaveSeed(1)    - First  random seed of incident waves [-2147483648 to 2147483647]    (-)       [unused when WaveMod=0, 5, or 6]
    1011121314   WaveSeed(2)    - Second random seed of incident waves [-2147483648 to 2147483647]    (-)       [unused when WaveMod=0, 5, or 6]
TRUE             WaveNDAmp      - Flag for normally distributed amplitudes                            (flag)    [only used when WaveMod=2, 3, or 4]
""               WvKinFile      - Root name of externally generated wave data file(s)        (quoted string)    [used only when WaveMod=5 or 6]
             1   NWaveElev      - Number of points where the incident wave elevations can be computed (-)       [maximum of 9 output locations]
             0   WaveElevxi     - List of xi-coordinates for points where the incident wave elevations can be output (meters) [NWaveElev points, separated by commas or white space; usused if NWaveElev = 0]
             0   WaveElevyi     - List of yi-coordinates for points where the incident wave elevations can be output (meters) [NWaveElev points, separated by commas or white space; usused if NWaveElev = 0]
---------------------- 2ND-ORDER WAVES ----------------------------------------- [unused with WaveMod=0 or 6]
FALSE            WvDiffQTF      - Full difference-frequency 2nd-order wave kinematics (flag)
FALSE            WvSumQTF       - Full summation-frequency  2nd-order wave kinematics (flag)
             0   WvLowCOffD     - Low  frequency cutoff used in the difference-frequencies (rad/s) [Only used with a difference-frequency method]
           3.5   WvHiCOffD      - High frequency cutoff used in the difference-frequencies (rad/s) [Only used with a difference-frequency method]
           0.1   WvLowCOffS     - Low  frequency cutoff used in the summation-frequencies  (rad/s) [Only used with a summation-frequency  method]
           3.5   WvHiCOffS      - High frequency cutoff used in the summation-frequencies  (rad/s) [Only used with a summation-frequency  method]
---------------------- CURRENT ------------------------------------------------- [unused with WaveMod=6]
             0   CurrMod        - Current profile model {0: none=no current, 1: standard, 2: user-defined from routine UserCurrent} (switch)
             0   CurrSSV0       - Sub-surface current velocity at still water level  (m/s) [used only when CurrMod=1]
"DEFAULT"        CurrSSDir      - Sub-surface current heading direction (degrees) or DEFAULT (string) [used only when CurrMod=1]
            20   CurrNSRef      - Near-surface current reference depth            (meters) [used only when CurrMod=1]
             0   CurrNSV0       - Near-surface current velocity at still water level (m/s) [used only when CurrMod=1]
             0   CurrNSDir      - Near-surface current heading direction         (degrees) [used only when CurrMod=1]
             0   CurrDIV        - Depth-independent current velocity                 (m/s) [used only when CurrMod=1]
             0   CurrDIDir      - Depth-independent current heading direction    (degrees) [used only when CurrMod=1]
---------------------- FLOATING PLATFORM --------------------------------------- [unused with WaveMod=6]
             1   PotMod         - Potential-flow model {0: none=no potential flow, 1: frequency-to-time-domain transforms based on WAMIT output, 2: fluid-impulse theory (FIT)} (switch)
"HydroData/Spar"    PotFile        - Root name of potential-flow model data; WAMIT output files containing the linear, nondimensionalized, hydrostatic restoring matrix (.hst), frequency-dependent hydrodynamic added mass matrix and damping matrix (.1), and frequency- and direction-dependent wave excitation force vector per unit wave amplitude (.3) (quoted string) [MAKE SURE THE FREQUENCIES INHERENT IN THESE WAMIT FILES SPAN THE PHYSICALLY-SIGNIFICANT RANGE OF FREQUENCIES FOR THE GIVEN PLATFORM; THEY MUST CONTAIN THE ZERO- AND INFINITE-FREQUENCY LIMITS!]
             1   WAMITULEN      - Characteristic body length scale used to redimensionalize WAMIT output (meters) [only used when PotMod=1]
       8029.21   PtfmVol0       - Displaced volume of water when the platform is in its undisplaced position (m^3) [only used when PotMod=1; USE THE SAME VALUE COMPUTED BY WAMIT AS OUTPUT IN THE .OUT FILE!]
             0   PtfmCOBxt      - The xt offset of the center of buoyancy (COB) from the platform reference point (meters)  [only used when PotMod=1]
             0   PtfmCOByt      - The yt offset of the center of buoyancy (COB) from the platform reference point (meters)  [only used when PotMod=1]
             1   RdtnMod        - Radiation memory-effect model {0: no memory-effect calculation, 1: convolution, 2: state-space} (switch) [only used when PotMod=1; STATE-SPACE REQUIRES *.ss INPUT FILE]
            60   RdtnTMax       - Analysis time for wave radiation kernel calculations (sec) [only used when PotMod=1; determines RdtnDOmega=Pi/RdtnTMax in the cosine transform; MAKE SURE THIS IS LONG ENOUGH FOR THE RADIATION IMPULSE RESPONSE FUNCTIONS TO DECAY TO NEAR-ZERO FOR THE GIVEN PLATFORM!]
          0.05   RdtnDT         - Time step for wave radiation kernel calculations (sec) [only used when PotMod=1; DT<=RdtnDT<=0.1 recommended; determines RdtnOmegaMax=Pi/RdtnDT in the cosine transform]
---------------------- 2ND-ORDER FLOATING PLATFORM FORCES ---------------------- [unused with WaveMod=0 or 6, or PotMod=0 or 2]
             0   MnDrift        - Mean-drift 2nd-order forces computed                                       {0: None; [7, 8, 9, 10, 11, or 12]: WAMIT file to use} [Only one of MnDrift, NewmanApp, or DiffQTF can be non-zero]
             0   NewmanApp      - Mean- and slow-drift 2nd-order forces computed with Newman's approximation {0: None; [7, 8, 9, 10, 11, or 12]: WAMIT file to use} [Only one of MnDrift, NewmanApp, or DiffQTF can be non-zero. Used only when WaveDirMod=0]
             0   DiffQTF        - Full difference-frequency 2nd-order forces computed with full QTF          {0: None; [10, 11, or 12]: WAMIT file to use}          [Only one of MnDrift, NewmanApp, or DiffQTF can be non-zero]
             0   SumQTF         - Full summation -frequency 2nd-order forces computed with full QTF          {0: None; [10, 11, or 12]: WAMIT file to use}
---------------------- FLOATING PLATFORM FORCE FLAGS  -------------------------- [unused with WaveMod=6]
True             PtfmSgF        - Platform horizontal surge translation force (flag) or DEFAULT
True             PtfmSwF        - Platform horizontal sway translation force (flag) or DEFAULT
True             PtfmHvF        - Platform vertical heave translation force (flag) or DEFAULT
True             PtfmRF         - Platform roll tilt rotation force (flag) or DEFAULT
True             PtfmPF         - Platform pitch tilt rotation force (flag) or DEFAULT
True             PtfmYF         - Platform yaw rotation force (flag) or DEFAULT
---------------------- PLATFORM ADDITIONAL STIFFNESS AND DAMPING  --------------
             0             0             0             0             0             0   AddF0    - Additional preload (N, N-m)
             0             0             0             0             0             0   AddCLin  - Additional linear stiffness (N/m, N/rad, N-m/m, N-m/rad)
             0             0             0             0             0             0
             0             0             0             0             0             0
             0             0             0             0             0             0
             0             0             0             0             0             0
             0             0             0             0             0      98340000
        100000             0             0             0             0             0   AddBLin  - Additional linear damping(N/(m/s), N/(rad/s), N-m/(m/s), N-m/(rad/s))
             0        100000             0             0             0             0
             0             0        130000             0             0             0
             0             0             0             0             0             0
             0             0             0             0             0             0
             0             0             0             0             0      13000000
             0             0             0             0             0             0   AddBQuad - Additional quadratic drag(N/(m/s)^2, N/(rad/s)^2, N-m(m/s)^2, N-m/(rad/s)^2)
             0             0             0             0             0             0
             0             0             0             0             0             0
             0             0             0             0             0             0
             0             0             0             0             0             0
             0             0             0             0             0             0
---------------------- AXIAL COEFFICIENTS --------------------------------------
             1   NAxCoef        - Number of axial coefficients (-)
AxCoefID  AxCd     AxCa     AxCp
   (-)    (-)      (-)      (-)
    1     0.00     0.00     1.00
---------------------- MEMBER JOINTS -------------------------------------------
             4   NJoints        - Number of joints (-)   [must be exactly 0 or at least 2]
JointID   Jointxi     Jointyi     Jointzi  JointAxID   JointOvrlp   [JointOvrlp= 0: do nothing at joint, 1: eliminate overlaps by calculating super member]
   (-)     (m)         (m)         (m)        (-)       (switch)
    1     0.00000     0.00000  -120.00000      1            0
    2     0.00000     0.00000   -12.00000      1            0
    3     0.00000     0.00000    -4.00000      1            0
    4     0.00000     0.00000    10.00000      1            0
---------------------- MEMBER CROSS-SECTION PROPERTIES -------------------------
             2   NPropSets      - Number of member property sets (-)
PropSetID    PropD         PropThck
   (-)        (m)            (m)
    1        9.40000        0.00010
    2        6.50000        0.00010
---------------------- SIMPLE HYDRODYNAMIC COEFFICIENTS (model 1) --------------
     SimplCd    SimplCdMG    SimplCa    SimplCaMG    SimplCp    SimplCpMG   SimplAxCa  SimplAxCaMG  SimplAxCp   SimplAxCpMG
       (-)         (-)         (-)         (-)         (-)         (-)         (-)         (-)         (-)         (-)
       0.60        0.00        0.00        0.00        1.00        1.00        1.00        1.00        1.00        1.00 
---------------------- DEPTH-BASED HYDRODYNAMIC COEFFICIENTS (model 2) ---------
             0   NCoefDpth       - Number of depth-dependent coefficients (-)
Dpth      DpthCd   DpthCdMG   DpthCa   DpthCaMG       DpthCp   DpthCpMG   DpthAxCa   DpthAxCaMG       DpthAxCp   DpthAxCpMG
(m)       (-)      (-)        (-)      (-)            (-)      (-)          (-)        (-)              (-)         (-)
---------------------- MEMBER-BASED HYDRODYNAMIC COEFFICIENTS (model 3) --------
             0   NCoefMembers       - Number of member-based coefficients (-)
MemberID    MemberCd1     MemberCd2    MemberCdMG1   MemberCdMG2    MemberCa1     MemberCa2    MemberCaMG1   MemberCaMG2    MemberCp1     MemberCp2    MemberCpMG1   MemberCpMG2   MemberAxCa1   MemberAxCa2  MemberAxCaMG1 MemberAxCaMG2  MemberAxCp1  MemberAxCp2   MemberAxCpMG1   MemberAxCpMG2
   (-)         (-)           (-)           (-)           (-)           (-)           (-)           (-)           (-)           (-)           (-)           (-)           (-)           (-)           (-)           (-)           (-)           (-)           (-)           (-)           (-)
-------------------- MEMBERS -------------------------------------------------
             3   NMembers       - Number of members (-)
MemberID  MJointID1  MJointID2  MPropSetID1  MPropSetID2  MDivSize   MCoefMod  PropPot   [MCoefMod=1: use simple coeff table, 2: use depth-based coeff table, 3: use member-based coeff table] [ PropPot/=0 if member is modeled with potential-flow theory]
  (-)        (-)        (-)         (-)          (-)        (m)      (switch)   (flag)
    1         1          2           1            1         0.5000      1        TRUE
    2         2          3           1            2         0.5000      1        TRUE
    3         3          4           2            2         0.5000      1        TRUE
---------------------- FILLED MEMBERS ------------------------------------------
             0   NFillGroups     - Number of filled member groups (-) [If FillDens = DEFAULT, then FillDens = WtrDens; FillFSLoc is related to MSL2SWL]
FillNumM FillMList             FillFSLoc     FillDens
(-)      (-)                   (m)           (kg/m^3)
---------------------- MARINE GROWTH -------------------------------------------
             0   NMGDepths      - Number of marine-growth depths specified (-)
MGDpth     MGThck       MGDens
(m)        (m)         (kg/m^3)
---------------------- MEMBER OUTPUT LIST --------------------------------------
             3   NMOutputs      - Number of member outputs (-) [must be < 10]
MemberID   NOutLoc    NodeLocs [NOutLoc < 10; node locations are normalized distance from the start of the member, and must be >=0 and <= 1] [unused if NMOutputs=0]
1          2          0.0 1.0
2          2          0.0 1.0
3          2          0.0 1.0
---------------------- JOINT OUTPUT LIST ---------------------------------------
             4   NJOutputs      - Number of joint outputs [Must be < 10]
   1 2 3 4           JOutLst        - List of JointIDs which are to be output (-)[unused if NJOutputs=0]
---------------------- OUTPUT --------------------------------------------------
True             HDSum          - Output a summary file [flag]
False            OutAll         - Output all user-specified member and joint loads (only at each member end, not interior locations) [flag]
             2   OutSwtch       - Output requested channels to: [1=Hydrodyn.out, 2=GlueCode.out, 3=both files]
"ES11.4e2"       OutFmt         - Output format for numerical results (quoted string) [not checked for validity!]
"A11"            OutSFmt        - Output format for header strings (quoted string) [not checked for validity!]
---------------------- OUTPUT CHANNELS -----------------------------------------
"Wave1Elev"               - Wave elevation at the platform reference point (0,  0)
"WavesFxi"
"WavesFyi"
"WavesFzi"
"WavesMxi"
"WavesMyi"
"WavesMzi"

"AddFxi"
"AddFyi"
"AddFzi"
"AddMxi"
"AddMyi"
"AddMzi"

"HydroFxi"
"HydroFyi"
"HydroFzi"
"HydroMxi"
"HydroMyi"
"HydroMzi"

"RdtnFxi"
"RdtnFyi"
"RdtnFzi"
"RdtnMxi"
"RdtnMyi"
"RdtnMzi"

"HdrStcFxi"
"HdrStcFyi"
"HdrStcFzi"
"HdrStcMxi"
"HdrStcMyi"
"HdrStcMzi"

"M1N1STVxi"
"M1N1STVyi"
"M1N1STVzi"

"M1N2STVxi"
"M1N2STVyi"
"M1N2STVzi"

"M2N2STVxi"
"M2N2STVyi"
"M2N2STVzi"

"M2N3STVxi"
"M2N3STVyi"
"M2N3STVzi"

"M3N3STVxi"
"M3N3STVyi"
"M3N3STVzi"

"M3N4STVxi"
"M3N4STVyi"
"M3N4STVzi"

END of output channels and end of file. (the word "END" must appear in the first 3 columns of this line)

In the following figure is reported the Matlab command window, with the same error previously reported.

I still don’t understand how to overcome this obstacle. Do you have any other advice?
Thanks for your kind availability,
Lorenzo.


Dear Lorenzo,

I’m not seeing anything obviously wrong with your input file. What is written to the Echo file?

Best regards,

Dear Jason,
I got two Echo files.
Test24.SFunc.HD.ech :

------- HydroDyn v2.03.* Input File --------------------------------------------
NREL 5.0 MW offshore baseline floating platform HydroDyn input properties for the OC3 Hywind.
            T  Echo           - Echo the input file data
---------------------- ENVIRONMENTAL CONDITIONS --------------------------------
   1.0250E+03  WtrDens        - Water density
   2.5000E+02  WtrDpth        - Water depth
   0.0000E+00  MSL2SWL        - MSL to SWL offset
---------------------- WAVES ---------------------------------------------------
               WaveMod        - Wave kinematics model switch
  "2"
            0  WaveStMod      - Model switch for stretching incident wave kinematics to instantaneous free surface
   3.6300E+03  WaveTMax       - Analysis time for incident wave calculations
   2.5000E-01  WaveDT         - Time step for incident wave calculations
   2.7500E+00  WaveHs         - Significant wave height
   6.5000E+00  WaveTp         - Peak spectral period
               WavePkShp      - Peak shape parameter
  "DEFAULT"
   0.0000E+00  WvLowCOff      - Lower wave cut-off frequency
   5.0000E+02  WvHiCOff       - Upper wave cut-off frequency
   0.0000E+00  WaveDir        - Mean wave heading direction
            0  WaveDirMod     - Directional spreading function
   1.0000E+00  WaveDirSpread  - Wave direction spreading coefficient
            1  WaveNDir       - Number of wave directions to calculate
   9.0000E+01  WaveDirRange   - Maximum wave heading direction
    123456789  WaveSeed( 1)   - Random seed # 1
   1011121314  WaveSeed( 2)   - Random seed # 2
            T  WaveNDAmp      - Normally distributed amplitudes
               WvKinFile      - Root name of wave kinematics files
  ""
            1  NWaveElev      - Number of points where the incident wave elevations can be output
               WaveElevxi     - List of xi-coordinates for points where the incident wave elevations can be output
   0.0000E+00
               WaveElevyi     - List of yi-coordinates for points where the incident wave elevations can be output
   0.0000E+00
---------------------- 2ND-ORDER WAVES ----------------------------------------- [unused with WaveMod=0 or 6]
            F  WvDiffQTFF     - Full difference QTF second order kinematic forces flag
            F  WvSumQTFF      - Full sum QTF  second order kinematic forces flag
   0.0000E+00  WvLowCOffD     - Minimum frequency used in second order difference forces
   3.5000E+00  WvHiCOffD      - Maximum frequency used in second order difference forces
   1.0000E-01  WvLowCOffS     - Minimum frequency used in second order sum forces
   3.5000E+00  WvHiCOffS      - Maximum frequency used in second order sum forces
---------------------- CURRENT ------------------------------------------------- [unused with WaveMod=6]
            0  CurrMod        - Current profile model switch
   0.0000E+00  CurrSSV0       - Sub-surface current velocity at still water level
               CurrSSDirChr   - Sub-surface current heading direction
  "DEFAULT"
   2.0000E+01  CurrNSRef      - Near-surface current reference depth
   0.0000E+00  CurrNSV0       - Near-surface current velocity at still water level
   0.0000E+00  CurrNSDir      - Near-surface current heading direction
   0.0000E+00  CurrDIV        - Depth-independent current velocity
   0.0000E+00  CurrDIDir      - Depth-independent current heading direction
---------------------- FLOATING PLATFORM --------------------------------------- [unused with WaveMod=6]
            1  PotMod         - Potential flow model
               PotFile        - Root name of Potential flow model files
  "HydroData/Spar"
   1.0000E+00  WAMITULEN      - WAMIT characteristic body length scale
   8.0292E+03  PtfmVol0       - Displaced volume of water when the platform is in its undisplaced position
   0.0000E+00  PtfmCOBxt      - xt offset of the center of buoyancy (COB) from the WAMIT reference point
   0.0000E+00  PtfmCOByt      - yt offset of the center of buoyancy (COB) from the WAMIT reference point
            1  RdtnMod        - Radiation memory-effect model
   6.0000E+01  RdtnTMax       - Analysis time for wave radiation kernel calculations
               RdtnDT         - Time step for wave radiation kernel calculations
  "0.05"
---------------------- 2ND-ORDER FLOATING PLATFORM FORCES ---------------------- [unused with WaveMod=0 or 6, or PotMod=0 or 2]
            0  MnDrift        - Mean drift forces computed from WAMIT file: {0: No mean drift, [7, 8, 9, 10, 11, or 12]: WAMIT file to use}
            0  NewmanApp      - Mean drift forces computed from WAMIT file: {0: No mean drift, [7, 8, 9, 10, 11, or 12]: WAMIT file to use}
            0  DiffQTF        - Full Difference-Frequency forces computed with full QTFs from WAMIT file: {0: No difference-frequency forces, [10, 11, or 12]: WAMIT file to use} -- Only one of MnDrift, NewmanApp, or DiffQYT can be non-zero
            0  DiffQTF        - Full Sum-Frequency forces computed with full QTFs from WAMIT file: {0: No Sum-frequency forces, [10, 11, or 12]: WAMIT file to use}
---------------------- FLOATING PLATFORM FORCE FLAGS  -------------------------- [unused with WaveMod=6]
               PtfmSgFChr     - Platform horizontal surge translation force flag
  "True"
               PtfmSwFChr     - Platform horizontal sway translation force flag
  "True"
               PtfmHvFChr     - Platform vertical heave translation force flag
  "True"
               PtfmRFChr      - Platform roll tilt rotation force flag
  "True"
               PtfmPFChr      - Platform pitch tilt rotation force flag
  "True"
               PtfmYFChr      - Platform yaw rotation force flag
  "True"
---------------------- PLATFORM ADDITIONAL STIFFNESS AND DAMPING  --------------
               AddF0          -  Additional preload vector
   0.0000E+00   0.0000E+00   0.0000E+00   0.0000E+00   0.0000E+00   0.0000E+00
               AddCLin        -  Row 1  of the additional linear stiffness matrix
   0.0000E+00   0.0000E+00   0.0000E+00   0.0000E+00   0.0000E+00   0.0000E+00
               AddCLin        -  Row 2  of the additional linear stiffness matrix
   0.0000E+00   0.0000E+00   0.0000E+00   0.0000E+00   0.0000E+00   0.0000E+00
               AddCLin        -  Row 3  of the additional linear stiffness matrix
   0.0000E+00   0.0000E+00   0.0000E+00   0.0000E+00   0.0000E+00   0.0000E+00
               AddCLin        -  Row 4  of the additional linear stiffness matrix
   0.0000E+00   0.0000E+00   0.0000E+00   0.0000E+00   0.0000E+00   0.0000E+00
               AddCLin        -  Row 5  of the additional linear stiffness matrix
   0.0000E+00   0.0000E+00   0.0000E+00   0.0000E+00   0.0000E+00   0.0000E+00
               AddCLin        -  Row 6  of the additional linear stiffness matrix
   0.0000E+00   0.0000E+00   0.0000E+00   0.0000E+00   0.0000E+00   9.8340E+07
               AddBLin        -  Row 1  of the additional linear damping matrix
   1.0000E+05   0.0000E+00   0.0000E+00   0.0000E+00   0.0000E+00   0.0000E+00
               AddBLin        -  Row 2  of the additional linear damping matrix
   0.0000E+00   1.0000E+05   0.0000E+00   0.0000E+00   0.0000E+00   0.0000E+00
               AddBLin        -  Row 3  of the additional linear damping matrix
   0.0000E+00   0.0000E+00   1.3000E+05   0.0000E+00   0.0000E+00   0.0000E+00
               AddBLin        -  Row 4  of the additional linear damping matrix
   0.0000E+00   0.0000E+00   0.0000E+00   0.0000E+00   0.0000E+00   0.0000E+00
               AddBLin        -  Row 5  of the additional linear damping matrix
   0.0000E+00   0.0000E+00   0.0000E+00   0.0000E+00   0.0000E+00   0.0000E+00
               AddBLin        -  Row 6  of the additional linear damping matrix
   0.0000E+00   0.0000E+00   0.0000E+00   0.0000E+00   0.0000E+00   1.3000E+07
               AddBQuad       -  Row 1  of the additional quadratic damping matrix
   0.0000E+00   0.0000E+00   0.0000E+00   0.0000E+00   0.0000E+00   0.0000E+00
               AddBQuad       -  Row 2  of the additional quadratic damping matrix
   0.0000E+00   0.0000E+00   0.0000E+00   0.0000E+00   0.0000E+00   0.0000E+00
               AddBQuad       -  Row 3  of the additional quadratic damping matrix
   0.0000E+00   0.0000E+00   0.0000E+00   0.0000E+00   0.0000E+00   0.0000E+00
               AddBQuad       -  Row 4  of the additional quadratic damping matrix
   0.0000E+00   0.0000E+00   0.0000E+00   0.0000E+00   0.0000E+00   0.0000E+00
               AddBQuad       -  Row 5  of the additional quadratic damping matrix
   0.0000E+00   0.0000E+00   0.0000E+00   0.0000E+00   0.0000E+00   0.0000E+00
               AddBQuad       -  Row 6  of the additional quadratic damping matrix
   0.0000E+00   0.0000E+00   0.0000E+00   0.0000E+00   0.0000E+00   0.0000E+00
---------------------- AXIAL COEFFICIENTS --------------------------------------
            1  NAxCoefs       - Number of axial coefficients
AxCoefID  AxCd     AxCa     AxCp
   (-)    (-)      (-)      (-)
    1     0.00     0.00     1.00
---------------------- MEMBER JOINTS -------------------------------------------
            4  NJoints        - Number of member joints
JointID   Jointxi     Jointyi     Jointzi  JointAxID   JointOvrlp   [JointOvrlp= 0: do nothing at joint, 1: eliminate overlaps by calculating super member]
   (-)     (m)         (m)         (m)        (-)       (switch)
    1     0.00000     0.00000  -120.00000      1            0
    2     0.00000     0.00000   -12.00000      1            0
    3     0.00000     0.00000    -4.00000      1            0
    4     0.00000     0.00000    10.00000      1            0
---------------------- MEMBER CROSS-SECTION PROPERTIES -------------------------
            2  NPropSets      - Number of member cross-section property sets
PropSetID    PropD         PropThck
   (-)        (m)            (m)
    1        9.40000        0.00010
    2        6.50000        0.00010
---------------------- SIMPLE HYDRODYNAMIC COEFFICIENTS (model 1) --------------
     SimplCd    SimplCdMG    SimplCa    SimplCaMG    SimplCp    SimplCpMG   SimplAxCa  SimplAxCaMG  SimplAxCp   SimplAxCpMG
       (-)         (-)         (-)         (-)         (-)         (-)         (-)         (-)         (-)         (-)
       0.60        0.00        0.00        0.00        1.00        1.00        1.00        1.00        1.00        1.00
---------------------- DEPTH-BASED HYDRODYNAMIC COEFFICIENTS (model 2) ---------
            0  NCoefDpth      - Number of depth-based hydrodynamic coefficient property sets
Dpth      DpthCd   DpthCdMG   DpthCa   DpthCaMG       DpthCp   DpthCpMG   DpthAxCa   DpthAxCaMG       DpthAxCp   DpthAxCpMG
(m)       (-)      (-)        (-)      (-)            (-)      (-)          (-)        (-)              (-)         (-)
---------------------- MEMBER-BASED HYDRODYNAMIC COEFFICIENTS (model 3) --------
            0  NCoefMembers   - Number of member-based hydrodynamic coefficient property sets
MemberID    MemberCd1     MemberCd2    MemberCdMG1   MemberCdMG2    MemberCa1     MemberCa2    MemberCaMG1   MemberCaMG2    MemberCp1     MemberCp2    MemberCpMG1   MemberCpMG2   MemberAxCa1   MemberA
   (-)         (-)           (-)           (-)           (-)           (-)           (-)           (-)           (-)           (-)           (-)           (-)           (-)           (-)           (-)
-------------------- MEMBERS -------------------------------------------------
            3  NMembers       - Number of members
MemberID  MJointID1  MJointID2  MPropSetID1  MPropSetID2  MDivSize   MCoefMod  PropPot   [MCoefMod=1: use simple coeff table, 2: use depth-based coeff table, 3: use member-based coeff table] [ PropPot
  (-)        (-)        (-)         (-)          (-)        (m)      (switch)   (flag)
    1         1          2           1            1         0.5000      1        TRUE
    2         2          3           1            2         0.5000      1        TRUE
    3         3          4           2            2         0.5000      1        TRUE
---------------------- FILLED MEMBERS ------------------------------------------
            0  NFillGroups    - Number of fill groups
FillNumM FillMList             FillFSLoc     FillDens
(-)      (-)                   (m)           (kg/m^3)
---------------------- MARINE GROWTH -------------------------------------------
            0  NMGDepths      - Number marine growth depths
MGDpth     MGThck       MGDens
(m)        (m)         (kg/m^3)
---------------------- MEMBER OUTPUT LIST --------------------------------------
            3  NMOutputs      - Number of members to output
MemberID   NOutLoc    NodeLocs [NOutLoc < 10; node locations are normalized distance from the start of the member, and must be >=0 and <= 1] [unused if NMOutputs=0]
1          2          0.0 1.0
2          2          0.0 1.0
3          2          0.0 1.0

and Test24.SFunc.ech :

This file of echoed input was generated by FAST (v8.16.00a-bjj, 27-Jul-2016) on 20-Aug-2020 at 16:54:25.

Data from FAST primary input file "..\..\OC3\Test24.fst":

------- FAST v8.16.* INPUT FILE ------------------------------------------------
               FTitle         - File Header: File Description (line 2)
  "FAST Certification Test #24: NREL 5.0 MW Baseline Wind Turbine with OC3 Hywind Configuration, for use in offshore analysis"
---------------------- SIMULATION CONTROL --------------------------------------
            T  Echo           - Echo input data to <RootName>.ech (flag)
               AbortLevel     - Error level when simulation should abort (string)
  "FATAL"
   1.2000E+03  TMax           - Total run time (s)
   5.0000E-02  DT             - Recommended module time step (s)
            1  InterpOrder    - Interpolation order for inputs and outputs {0=nearest neighbor ,1=linear, 2=quadratic} (-)
            0  NumCrctn       - Number of corrections{0=explicit calculation, i.e., no corrections} (-)
   1.5000E+00  DT_UJac        - Time between calls to get Jacobians (s)
   1.0000E+06  UJacSclFact    - Scaling factor used in Jacobians (-)
---------------------- FEATURE SWITCHES AND FLAGS ------------------------------
            1  CompElast      - Compute structural dynamics (switch) {1=ElastoDyn; 2=ElastoDyn + BeamDyn for blades}
            1  CompInflow     - inflow wind velocities (switch) {0=still air; 1=InflowWind}
            2  CompAero       - Compute aerodynamic loads (switch) {0=None; 1=AeroDyn}
            1  CompServo      - Compute control and electrical-drive dynamics (switch) {0=None; 1=ServoDyn}
            1  CompHydro      - Compute hydrodynamic loads (switch) {0=None; 1=HydroDyn}
            0  CompSub        - Compute sub-structural dynamics (switch) {0=None; 1=SubDyn}
            1  CompMooring    - Compute mooring system (switch) {0=None; 1=MAP; 2=FEAMooring; 3=MoorDyn; 4=OrcaFlex}
            0  CompIce        - Compute ice loads (switch) {0=None; 1=IceFloe}
---------------------- INPUT FILES ---------------------------------------------
               EDFile         - Name of file containing ElastoDyn input parameters (-)
  "5MW_Baseline/NRELOffshrBsline5MW_OC3Hywind_ElastoDyn.dat"
               BDBldFile(1)   - Name of file containing BeamDyn blade 1input parameters (-)
  "5MW_Baseline/NRELOffshrBsline5MW_BeamDyn.dat"
               BDBldFile(2)   - Name of file containing BeamDyn blade 2input parameters (-)
  "5MW_Baseline/NRELOffshrBsline5MW_BeamDyn.dat"
               BDBldFile(3)   - Name of file containing BeamDyn blade 3input parameters (-)
  "5MW_Baseline/NRELOffshrBsline5MW_BeamDyn.dat"
               InflowFile     - Name of file containing inflow wind input parameters (-)
  "5MW_Baseline/NRELOffshrBsline5MW_InflowWind_12mps.dat"
               AeroFile       - Name of file containing aerodynamic input parameters (-)
  "5MW_Baseline/NRELOffshrBsline5MW_OC3Hywind_AeroDyn15.dat"
               ServoFile      - Name of file containing control and electrical-drive input parameters (-)
  "5MW_Baseline/NRELOffshrBsline5MW_OC3Hywind_ServoDyn.dat"
               HydroFile      - Name of file containing hydrodynamic input parameters (-)
  "5MW_Baseline/NRELOffshrBsline5MW_OC3Hywind_HydroDyn.dat"
               SubFile        - Name of file containing sub-structural input parameters (-)
  "unused"
               MooringFile    - Name of file containing mooring system input parameters (-)
  "5MW_Baseline/NRELOffshrBsline5MW_OC3Hywind_MAP.dat"
               IceFile        - Name of file containing ice input parameters (-)
  "unused"
---------------------- OUTPUT --------------------------------------------------
            T  SumPrint       - Print summary data to <RootName>.sum (flag)
   1.0000E+00  SttsTime       - Amount of time between screen status messages (s)
   9.9999E+04  ChkptTime      - Amount of time between creating checkpoint files for potential restart (s)
               DT_Out         - Time step for tabular output (s)
  "0.05"
   0.0000E+00  TStart         - Time to begin tabular output (s)
            2  OutFileFmt     - Format for tabular (time-marching) output file(s) (1: text file [<RootName>.out], 2: binary file [<RootName>.outb], 3: both) (-)
            T  TabDelim       - Use tab delimiters in text tabular output file? (flag)
               OutFmt         - Format used for text tabular output (except time).  Resulting field should be 10 characters. (-)
  "ES10.3E2"
---------------------- LINEARIZATION -------------------------------------------
            F  Linearize      - Linearization analysis (flag)
            2  NLinTimes      - Number of times to linearize (-) [>=1]
               LinTimes       - Times to linearize (s) [1 to NLinTimes]
   3.0000E+01   6.0000E+01
            1  LinInputs      - Include inputs in linearization (switch) {0=none; 1=standard; 2=all module inputs (debug)}
            1  LinOutputs     - Include outputs in linearization (switch) (0=none; 1=from OutList(s); 2=all module outputs (debug))
            F  LinOutJac      - Include full Jacabians in linearization output (for debug) (flag)
            F  LinOutMod      - Write module-level linearization output files in addition to output for full system? (flag)
---------------------- VISUALIZATION ------------------------------------------
            0  WrVTK          - Write VTK visualization files (0=none; 1=initialization data only; 2=animation)
            2  VTK_Type       - Type of  VTK visualization data: (1=surfaces; 2=basic meshes (lines/points); 3=all meshes)
            F  VTK_fields     - Write mesh fields to VTK data files? (flag)
   1.5000E+01  VTK_fps        - Frame rate for VTK output(fps)

Waiting for your response,
Lorenzo

It looks like you are missing a comment line in your HydroDyn input file. Please add the line for the table units as below:

---------------------- MEMBER OUTPUT LIST -------------------------------------- 0 NMOutputs - Number of member outputs (-) [must be < 10] MemberID NOutLoc NodeLocs [NOutLoc < 10; node locations are normalized distance from the start of the member, and must be >=0 and <= 1] [unused if NMOutputs=0] (-) (-) (-) 1 2 0.0 1.0 2 2 0.0 1.0 3 2 0.0 1.0

Note that there are TWO comment lines after the NMOutputs line. You had ONE comment line that is long and wrapped onto two lines.

Dear Jason,
Thanks for the help, now it works.
You can confirm that, in this case, the equation holds:
HydroFxi = WavesFxi + RdtnFxi + HdrStcFxi + AddFxi + Fdragx
where, using MATLAB,
Fdragx = trapz (zNodes, dFx);
with
zNodes = [-120, -12, -4, 0];
dFx = [‘M1N1FDxi’, ‘M1N2FDxi’, ‘M2N2FDxi’, ‘M3N2FDxi’]
I ask you this question because comparing HydroFxi - WavesFxi - RdtnFxi - HdrStcFxi - AddFxi with Fdragx the graphs are not perfectly overlapped (as you see in the figure)
Thanks for your help,
Lorenzo.

Dear Lorenzo,

My guess is the main difference between these two calculations is that the later (involving Fdragx) involves a much coarser discretization of the drag loads (only 4 nodes) than the former (100s of nodes, spaced every 0.5 m).

Best regards,

Dear Jason,
Yes, I confirm it. Now with a finer discretization I can verify the equation.
One last question: checking the outputs of FAST does not return the values of the Structural translational velocities at MαNβ (MαNβSTVxi and MαNβSTVyi).
In fact, I would expect that, considering the node β of the member α, located at depth z from the water plane, they would hold:
MαNβSTVxi = ‘PtfmTVxi’ + z * ‘PtfmRVyi’
MαNβSTVyi = ‘PtfmTVyi’ - z * ‘PtfmRVxi’
Instead, I notice differences in oscillation amplitude especially in the case of MαNβSTVyi, with greater differences as z increases.
These differences will affect the values of Vx and Vy and therefore the drag forces.
Do you get my formulation for MαNβSTVxi and MαNβSTVyi back?
Thanks for your help,
Lorenzo.

Dear Lorenzo,

Your equations are correct, assuming that

  • the platform is rigid,
  • z < 0 for nodes below the water,
  • the platform rotational velocities have the units of rad/s, and
  • the platform has small displacements (in general, z will depend on pitch, and roll).

Best regards,

Dear Jason,
My calculations respect all the points in the list you indicated.
I also tried to make z_node variable as a function of z_plat, rx_plat and ry_plat, obtaining slightly different results (figure 1), with the formula:
vy_node = ‘PtfmTVyi’ - z_node * ‘PtfmRVxi’
where
z_node = z_fix * (cos (‘PtfmRoll’) * cos (‘PtfmPitch’))
for example, z_fix = -120;
I obtained the results in the figure for this node, with vy_node which in both cases differs quite a lot from the FAST ‘M1N1STVyi’ output.
Is there any other factor that could affect it?
Thanks for the reply,
Lorenzo.

Dear Lorenzo,

Well, it would be better to write that rotation-induced translational velocity as

omega x r

, where omega has all rotational components in global (PtfmRVxi, PtfmRVyi, PtfmRVzi, converted to rad/s), x is the cross product, and r is the displaced position vector in global (X,Y,Z). The direction cosine transformation matrix (DCM) from global to local coordinates is given in Eq. (2) in my 2009 Wind Energy Paper: onlinelibrary.wiley.com/doi/abs/10.1002/we.347. By taking the transpose (^T) of this DCM, r ( [ X,Y,Z ]^T) can be derived from z=-120 (with x=y=0) by:

r = DCM^T*[ 0, 0, -120 ]^T

I hope that helps

Best regards,

Dear Jason,
In the model I built I am trying to create simulations with different substructures (and therefore different positions of the nodes from simulation to simulation) independently from FAST.
MαNβVxi, MαNβVyi, MαNβVzi refer to specific output node β of output member α, and are therefore not very flexible to the work I want to do. For this reason I would need a spatial and temporal arrangement of the speed of the wave particles, similar to that coming out of Turbsim for the wind, where a spatial grid y-z is defined, from which we obtain a spectrum of U-wind speeds, V-wind, W-wind for each time instant.
Is there a similar procedure also for waves, defined Hs and Tp?
Thanks for collaboration,
Lorenzo.

Dear Lorenzo,

There is not currently a standard feature of FAST / OpenFAST that enables you to output the wave kinematics (velocity, acceleration, dynamic pressure) across a grid of points in the fluid domain. Of course, you could use the existing outputs (MαNβVxi, etc.) to output the wave kinematics at up to 9 nodes across 9 members (81 total per simulation), so, you could create a grid by setting up strip-theory members appropriately.

I’m sure it would possible to generate such an output by changing the source code. In fact, we have plans to do this in our ARPA-E ATLANTIS WEIS project, but not until 2021.

FYI, the HydroDyn driver already supports a feature to output the wave elevation on a grid of points at the free surface.

Best regards,