Frequencies of Full system and moor stiffness matrix

Dear Dr. Jonkman,

Thank you for your reply very much.

Yes, I applied the regular waves at a 45-degree direction in my model, and the wave elevation and wave kinematics are the same as each other as shown below:


The difference is that the spread direction of wave exported from OpenFAST does not always follow the direction of surge DOF of the platform.

WaveHs: 5m
WaveTp: 9.6s
WaveDir: 45 degrees
Omega: 2*pi/WaveTp: 0.6545
Amplitude of Wave Elevation (from OpenFAST): 2.5
Amplitude of Wave Velocity along surge DOF (from dof14): 2.5 * Omega * sin(WaveDir) = 1.1570
Amplitude of Wave Acceleration along surge DOF (from dof14): 2.5 * Omega^2 * sin(WaveDir) = 0.7573

Best regards,
Xing Tan

Dear @Xing.Tan,

I’m not understanding what you think the difference is between OpenFAST and your model.

Best regards,

Dear Dr. Jonkman,

Thank you for your reply very much.

I am sorry for that I made a mistake before. Now I extract the wave elevation, velocity and acceleration, and they are same at still water level in both OpenFAST and dof14 model as shown below:

WaveHs: 5m
WaveTp: 9.6s
WaveDir: 30 degrees

And the hydrodynamic loads are twice as large as calculated by OpenFAST.
image

More details about hydrodynamic load calculation can be found at https://forums.nrel.gov/t/frequencies-of-full-system-and-moor-stiffness-matrix/6095/17?u=xing.tan

Best regards,
Xing Tan

Dear @Xing.Tan,

I’m glad that the wave kinematics are consistent between OpenFAST and your model. But I’m still not sure why your model shows 2x the hydrodynamic load. In OpenFAST, you can output the hydrodynamic loads component-by-component, node-by-node, e.g., the added mass, fluid-inertia, and viscous contributions per unit length. Are these matching or also off by a factor of 2?

Best regards,

Dear Dr. Jonkman,

Thank you for your reply very much.

I’m confused about how to calculate inertia load in my own model. In my understanding, making the length of the differential strip of the cylinder (dz) in Eq. 2-30a (from Dynamics Modeling and Loads Analysis of an Offshore Floating Wind Turbine) to be 1m could get the distributed inertia loads MαNβFIxi. However, it seems wrong.

I pick up some codes from Morison.f90 about the inertia loads calculation which is same as dof14.

! ------------------- hydrodynamic inertia loads: sides: Section 7.1.4 ------------------------
               ! print "(f6.3)"  m%FA(1,mem%NodeIndx(i))
               f_hydro=(mem%Ca(i)+mem%Cp(i))*p%WtrDens*pi*mem%RMG(i)*mem%RMG(i)       * matmul( mem%Ak,  m%FA(:,mem%NodeIndx(i)) ) + &
                            2.0*mem%AxCa(i)*p%WtrDens*pi*mem%RMG(i)*mem%RMG(i)*dRdl_p * matmul( mem%kkt, m%FA(:,mem%NodeIndx(i)) )

As I understand, F_hydro * dl is the distributed load MαNβFIxi. However, the results show different conclusions. For example, Ca= 0.969954, Cp=1, WtrDens=1025, RMG = 3.25 FA = 0.9074,
F_hydro*1 = 6.08e4 which is different from the results. Is there something I missed?

image

And also I attach part from HydroDyn.dat and could you help me check it to make sure I extract the distributed loads correctly?

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

-------------------- 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        False
    2         2          3           1            2         0.5000      1        False
    3         3          4           2            2         0.5000      1        False

---------------------- 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          1         1.0
   2          2         0.0  1.0
   3          2         0.0  0.2856

---------------------- OUTPUT CHANNELS -----------------------------------------
"M1N1FDxi"
"M1N1FDyi"
"M1N1FIxi"
"M1N1FIyi"
"M1N1FAMxi"
"M1N1FAMyi"

"M2N1FDxi"
"M2N1FDyi"
"M2N1FIxi"
"M2N1FIyi"
"M2N1FAMxi"
"M2N1FAMyi"

"M2N2FDxi"
"M2N2FDyi"
"M2N2FIxi"
"M2N2FIyi"
"M2N2FAMxi"
"M2N2FAMyi"

"M3N2FDxi"
"M3N2FDyi"
"M3N2FIxi"
"M3N2FIyi"
"M3N2FAMxi"
"M3N2FAMyi"

Best regards,
Xing Tan

Dear @Xing.Tan,

The distributed loads at hydrodynamic analysis nodes output by HydroDyn via MαNβFIxi are forces per unit length. That is, MαNβFIxi = dF/dz with the units of N/m for the xi-component of the inertial component of the hydrodynamic force F.

Yes, your HydroDyn input file looks correct to me.

Best regards,

Dear Dr. Jonkman,

Thank you for your reply very much.

f_hydro=(mem%Ca(i)+mem%Cp(i))*p%WtrDens*pi*mem%RMG(i)*mem%RMG(i)       * matmul( mem%Ak,  m%FA(:,mem%NodeIndx(i)) )

As I understand, dF/dz= f_hydro, is it right? Then when the strip of platform is at still water lever (SWL) Ca= 0.969954, Cp=1, WtrDens=1025, RMG = 3.25 FA = 0.9074,
f_hydro = 6.08e4 which is different from the results.

When I focus on the inertia loads at strips of the platform below SWL, I found inertia load of dof14 is twice as large as load from OpenFAST. I think it is the reason why dof14 has large response. However I don’t know why this happens.

And I don’t find a way to extract total inertia loads or darg loads from OpenFAST, there is only total integrated hydrodynamic loads, is there any way to do this?

Best regards,
Xing Tan

Dear @Xing.Tan,

I think I found the problem. You’ve said, Cp = 1, but I see in your HydroDyn input file that you shared 8-days ago that you’ve set SimplCp = 0. This will reduce the inertia loads in OpenFAST by a factor of 2.

Regarding your last question, HydroDyn can output local hydrodynamic loads at nodes separated by component (such as fluid inertia, drag, etc.), but HydroDyn does not compute the total integrated hydrodynamic load separated by component.

Best regards,

Dear Dr. Jonkman,

I am very appreciated to your comment.

Yes, it is exactly where the problem is. Now the hydrodynamic loads of dof14 along x and y direction correspond to the results from OpenFAST as shown below:
image
I have another question. What components does the hydrodynamic load in z direction (HydroFzi) contain? Buoyancy and anything else in this case? And is buoyancy calculated in the displaced position of platform?

------- 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 --------------------------------
     "default"   WtrDens        - Water density (kg/m^3)
     "default"   WtrDpth        - Water depth (meters)
     "default"   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 ---------------------------------------------------
             1P270   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]
             8   WaveHs         - Significant wave height of incident waves (meters) [used only when WaveMod=1, 2, or 3]
            9.6   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]
             45   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]
        RANLUX   WaveSeed(2)    - Second random seed of incident waves [-2147483648 to 2147483647] for intrinsic pRNG, or an alternative pRNG: "RanLux"    (-)       [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]
             0   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)
             0   ExctnMod       - Wave-excitation model {0: no wave-excitation calculation, 1: DFT, 2: state-space} (switch) [only used when PotMod=1; STATE-SPACE REQUIRES *.ssexctn INPUT FILE]
             0   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 and RdtnMod>0; 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.0125   RdtnDT         - Time step for wave radiation kernel calculations (sec) [only used when PotMod=1 and ExctnMod>0 or RdtnMod>0; DT<=RdtnDT<=0.1 recommended; determines RdtnOmegaMax=Pi/RdtnDT in the cosine transform]
             1   NBody          - Number of WAMIT bodies to be used (-) [>=1; only used when PotMod=1. If NBodyMod=1, the WAMIT data contains a vector of size 6*NBody x 1 and matrices of size 6*NBody x 6*NBody; if NBodyMod>1, there are NBody sets of WAMIT data each with a vector of size 6 x 1 and matrices of size 6 x 6]
             1   NBodyMod       - Body coupling model {1: include coupling terms between each body and NBody in HydroDyn equals NBODY in WAMIT, 2: neglect coupling terms between each body and NBODY=1 with XBODY=0 in WAMIT, 3: Neglect coupling terms between each body and NBODY=1 with XBODY=/0 in WAMIT} (switch) [only used when PotMod=1]
"../5MW_Baseline/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) [1 to NBody if NBodyMod>1] [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) [1 to NBody if NBodyMod>1] [only used when PotMod=1]
           0.0   PtfmRefxt      - The xt offset of the body reference point(s) from (0,0,0) (meters) [1 to NBody] [only used when PotMod=1]
           0.0   PtfmRefyt      - The yt offset of the body reference point(s) from (0,0,0) (meters) [1 to NBody] [only used when PotMod=1]
           0.0   PtfmRefzt      - The zt offset of the body reference point(s) from (0,0,0) (meters) [1 to NBody] [only used when PotMod=1. If NBodyMod=2,PtfmRefzt=0.0]
           0.0   PtfmRefztRot   - The rotation about zt of the body reference frame(s) from xt/yt (degrees) [1 to NBody] [only used when PotMod=1]
       8029.21   PtfmVol0       - Displaced volume of water when the body is in its undisplaced position (m^3) [1 to NBody] [only used when PotMod=1; USE THE SAME VALUE COMPUTED BY WAMIT AS OUTPUT IN THE .OUT FILE!]
           0.0   PtfmCOBxt      - The xt offset of the center of buoyancy (COB) from (0,0) (meters) [1 to NBody] [only used when PotMod=1]
           0.0   PtfmCOByt      - The yt offset of the center of buoyancy (COB) from (0,0) (meters) [1 to NBody] [only used when PotMod=1]
---------------------- 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. If NBody>1, MnDrift  /=8]
             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. If NBody>1, NewmanApp/=8. 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}
---------------------- PLATFORM ADDITIONAL STIFFNESS AND DAMPING  -------------- [unused with PotMod=0 or 2]
             0   AddF0    - Additional preload (N, N-m) [If NBodyMod=1, one size 6*NBody x 1 vector; if NBodyMod>1, NBody size 6 x 1 vectors]
             0
             0
             0
             0
             0
             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))        [If NBodyMod=1, one size 6*NBody x 6*NBody matrix; if NBodyMod>1, NBody size 6 x 6 matrices]
             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) [If NBodyMod=1, one size 6*NBody x 6*NBody matrix; if NBodyMod>1, NBody size 6 x 6 matrices]
             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   SimplAxCd  SimplAxCdMG  SimplAxCa  SimplAxCaMG  SimplAxCp   SimplAxCpMG
       (-)         (-)         (-)         (-)         (-)         (-)         (-)         (-)         (-)         (-)         (-)         (-)
       0.60        0.00        0.969954        0.00        1.00        0.00        0.00        0.00        0.00        0.00        0.00        0.00
---------------------- DEPTH-BASED HYDRODYNAMIC COEFFICIENTS (model 2) ---------
             0   NCoefDpth       - Number of depth-dependent coefficients (-)
Dpth      DpthCd   DpthCdMG   DpthCa   DpthCaMG       DpthCp   DpthCpMG   DpthAxCd   DpthAxCdMG   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   MemberAxCd1   MemberAxCd2  MemberAxCdMG1 MemberAxCdMG2  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        False
    2         2          3           1            2         0.5000      1        False
    3         3          4           2            2         0.5000      1        False
---------------------- 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]
  (-)        (-)        (-)
---------------------- JOINT OUTPUT LIST ---------------------------------------
             0   NJOutputs      - Number of joint outputs [Must be < 10]
   0           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]
"E15.7e2"       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 -----------------------------------------

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

Thank you in advance.
Best regards,
Xing Tan

Dear @Xing.Tan,

The buoyancy terms in the strip-theory solution of the HydroDyn module of OpenFAST are recomputed based on displacement as of OpenFAST v2.6 and newer. In addition to buoyancy, axial forces exist at member ends and along tapered members for drag, added mass, and fluid inertia forces, although I see that you’ve set some (but not all) of the associated axial coefficients to zero.

Best regards,

Dear Dr. Jonkman,

Many thanks to your comments.

Is it that the direction of force acting on tapered members is perpendicular to inclined plane of the tapered members and OpenFAST decomposes it into horizontal and vertical directions? If it’s true, how should I calculate hydrodynamic load acting on tapered members with strip-theory? Because I assume that the all members of the platform are vertical.

Best regards,
Xing Tan

Dear @Xing.Tan,

The hydrodynamic forces on tapered members are axial forces aligned with the member axis. You can review the details of HydroDyn’s implementation of strip theory members, including tapered members, in the following implementation plan: https://openfast.readthedocs.io/en/main/_downloads/39aafbb61663ae16bd1a7e80f305c20b/HydroDyn_Plan_TCF_Morison.docx.

Best regards,