MHK RM1 Question

Hello everyone,

I have a question regarding the MHK RM1 r-test : Does OpenFAST provide an option to replace the fixed support with springs at the bottom of the tower ? Additionally, I would like to know if it’s possible to measure the deflection at each node along the tower. If so, which output list parameter should I use to track this data?

Dear @Tareq.AbuAgolah,

I’m assuming you are referring to the fixed-bottom MHK RM1 r-test: r-test/glue-codes/openfast/MHK_RM1_Fixed at main · OpenFAST/r-test · GitHub; is that correct?

You can model a flexible substructure or a spring between the tower and ground in OpenFAST through the SubDyn and/or External Platform MCKF sub-structure modules (CompSub = 1 or 2). If you simply want a spring/stiffness matrix between the tower and ground, the later would be appropriate.

You can certainly output the tower deflection, using ElastoDyn outputs TwHt1TDxt or TwHt1TPxi, etc. for each tower output node. For an explanation of the difference between these two outputs, see my post dated Jun 13, 2017 in the following forum topic: SubDyn problem with larger substructures.

Best regards,

Hello @Jason.Jonkman

Thank you for your answer. Could you please elaborate on how I can add these modules to the fixed-bottom MHK RM1 r-test, as they are not currently included in the files?;r-test/glue-codes/openfast/MHK_RM1_Fixed at main · OpenFAST/r-test · GitHub

Regarding the tower deflections, I have tried using these outputs, and they all yielded zero as shown below.

The only output parameter that provided deflections was Tower-Top / Yaw Bearing Motions: YawBrTDxt, YawBrTDyt, YawBrTDzt.

Dear @Tareq.AbuAgolah,

Documentation on SubDyn is provided here: 4.2.5. SubDyn User Guide and Theory Manual — OpenFAST v3.5.3 documentation and documentation on External Platform MCKF is provided here: 4.2.6. ExtPtfm — OpenFAST v3.5.3 documentation.

If ElastoDyn output TwHt3TDxt is marked as INVALID (which will return zeros), this implies that you have not identified 3 tower strain gage outputs. You should set NTwGages >= 3 and select which tower analysis nodes you want for output via TwrGagNd.

Best regards,

Dear @Jason.Jonkman ,
I have a question regarding modeling a spring between the tower and ground in OpenFAST through the SubDyn module. I have been trying to implement the following stiffness matrix as shown in the picture below,but I keep getting the following error:
image

It’s worth mentioning that the code runs fine when I use the example stiffness matrix provided in the documentation( SubDyn’s SSI File (OC4 Jacket SSI File).

Any insights or advice on what might be causing this error would be greatly appreciated.

Thank you,
Tareq Abu Agolah

Dear @Tareq.AbuAgolah,

I would guess you are getting an error about rigid-body modes because you have no stiffness in the heave and yaw directions because K_33 and K_66 are zero.

Best regards,

1 Like

Thank you , I locked RctTDZss and RctRDZss and it did work

1 Like

Dear @Jason.Jonkman ,

I have a question regarding modeling a spring between the tower and the ground using SubDyn. From what I understood from the documentation and by conducting a few trials, I need to turn on the platform DOFs in ElastoDyn when running SubDyn. However, I encountered a couple of issues:

1- When PtfmSgDOF, PtfmSwDOF, PtfmRDOF, and PtfmYDOF are set to True, and PtfmHvDOF and PtfmPDOF are set to False, I encounter this error:
Warning: SkewedWakeCorrection encountered a large value of chi (90.003 deg), so the yaw correction will be limited. This warning will not be repeated though the condition may persist. See the AD15 chi output channels, and consider turning off the Pitt/Peters skew model (set SkewMod=1) if this condition persists.
2- Turning PtfmHvDOF to True produces this error:
FAST_Solution:CalcOutputs_And_SolveForInputs:SolveOption2:CalcBuoyantLoads:The tower cannot go beneath the seabed or pierce the free surface
3- When the DOFs are set as follows:
True PtfmSgDOF
True PtfmSwDOF
False PtfmHvDOF
False PtfmRDOF
False PtfmPDOF
True PtfmYDOF
The simulation runs normally but results in unrealistic deflections.
Any insights or advice on what might be causing this error would be greatly appreciated.
Thank you
Tareq Abu Agolah

My SubDyn file :

----------- SubDyn MultiMember Support Structure Input File ---------------------------
Monopile configuration (pile only).
-------------------------- SIMULATION CONTROL -----------------------------------------
False Echo - Echo input data to “.SD.ech” (flag)
“DEFAULT” SDdeltaT - Local Integration Step. If “default”, the glue-code integration step will be used.
3 IntMethod - Integration Method [1/2/3/4 = RK4/AB4/ABM4/AM2].
True SttcSolve - Solve dynamics about static equilibrium point
True GuyanLoadCorrection - Include extra moment from lever arm at interface and rotate FEM for floating.
-------------------- FEA and CRAIG-BAMPTON PARAMETERS ---------------------------------
3 FEMMod - FEM switch: element model in the FEM. [1= Euler-Bernoulli(E-B); 2=Tapered E-B (unavailable); 3= 2-node Timoshenko; 4= 2-node tapered Timoshenko (unavailable)]
2 NDiv - Number of sub-elements per member
True CBMod - [T/F] If True perform C-B reduction, else full FEM dofs will be retained. If True, select Nmodes to retain in C-B reduced system.
8 Nmodes - Number of internal modes to retain (ignored if CBMod=False). If Nmodes=0 → Guyan Reduction.
1 JDampings - Damping Ratios for each retained mode (% of critical) If Nmodes>0, list Nmodes structural damping ratios for each retained mode (% of critical), or a single damping ratio to be applied to all retained modes. (last entered value will be used for all remaining modes).
0 GuyanDampMod - Guyan damping {0=none, 1=Rayleigh Damping, 2=user specified 6x6 matrix}
0.000, 0.000 RayleighDamp - Mass and stiffness proportional damping coefficients (Rayleigh Damping) [only if GuyanDampMod=1]
6 GuyanDampSize - Guyan damping matrix (6x6) [only if GuyanDampMod=2]
0.0000e+00 0.0000e+00 0.0000e+00 0.0000e+00 0.0000e+00 0.0000e+00
0.0000e+00 0.0000e+00 0.0000e+00 0.0000e+00 0.0000e+00 0.0000e+00
0.0000e+00 0.0000e+00 0.0000e+06 0.0000e+00 0.0000e+00 0.0000e+00
0.0000e+00 0.0000e+00 0.0000e+00 0.0000e+00 0.0000e+00 0.0000e+00
0.0000e+00 0.0000e+00 0.0000e+00 0.0000e+00 0.0000e+00 0.0000e+00
0.0000e+00 0.0000e+00 0.0000e+00 0.0000e+00 0.0000e+00 0.0000e+00
---- STRUCTURE JOINTS: joints connect structure members (~Hydrodyn Input File) --------
3 NJoints - Number of joints (-)
JointID JointXss JointYss JointZss JointType JointDirX JointDirY JointDirZ JointStiff ![Coordinates of Member joints in SS-Coordinate System][JointType={1:cantilever, 2:universal joint, 3:revolute joint, 4:spherical joint}]
(-) (m) (m) (m) (-) (-) (-) (-) (Nm/rad)
1 0.00000 0.00000 -50.00000 1 0.0 0.0 0.0 0.0
2 0.00000 0.00000 -35.00000 1 0.0 0.0 0.0 0.0
3 0.00000 0.00000 -20.00000 1 0.0 0.0 0.0 0.0
------------------- BASE REACTION JOINTS: 1/0 for Locked/Free DOF @ each Reaction Node ---------------------
1 NReact - Number of Joints with reaction forces; be sure to remove all rigid motion DOFs of the structure (else det([K])=[0])
RJointID RctTDXss RctTDYss RctTDZss RctRDXss RctRDYss RctRDZss SSIfile ![Global Coordinate System]
(-) (flag) (flag) (flag) (flag) (flag) (flag) (string)
1 0 0 1 0 0 1 “OC4_Jacket_SD_SSI.txt”
------- INTERFACE JOINTS: 1/0 for Locked (to the TP)/Free DOF @each Interface Joint (only Locked-to-TP implemented thus far (=rigid TP)) ---------
0 NInterf - Number of interface joints locked to the Transition Piece (TP): be sure to remove all rigid motion dofs
IJointID ItfTDXss ItfTDYss ItfTDZss ItfRDXss ItfRDYss ItfRDZss ![Global Coordinate System]
(-) (flag) (flag) (flag) (flag) (flag) (flag)
----------------------------------- MEMBERS -------------------------------------------
2 NMembers - Number of members (-)
MemberID MJointID1 MJointID2 MPropSetID1 MPropSetID2 MType COSMID ![MType={1:beam circ., 2:cable, 3:rigid, 4:beam arb.}. COMSID={-1:none}]
(-) (-) (-) (-) (-) (-) (-)
1 1 2 1 1 1 -1
2 2 3 1 1 1 -1
------------------ CIRCULAR BEAM CROSS-SECTION PROPERTIES -----------------------------
2 NPropSets - Number of structurally unique cross-sections
PropSetID YoungE ShearG MatDens XsecD XsecT
(-) (N/m2) (N/m2) (kg/m3) (m) (m)
1 2.10000e+11 8.08000e+10 8500.00 3.500000 0.07000
2 2.10000e+11 8.08000e+10 8500.00 3.500000 0.07000
----------------- ARBITRARY BEAM CROSS-SECTION PROPERTIES -----------------------------
0 NXPropSets - Number of structurally unique non-circular cross-sections (if 0 the following table is ignored)
PropSetID YoungE ShearG MatDens XsecA XsecAsx XsecAsy XsecJxx XsecJyy XsecJ0
(-) (N/m2) (N/m2) (kg/m3) (m2) (m2) (m2) (m4) (m4) (m4)
-------------------------- CABLE PROPERTIES -------------------------------------------
0 NCablePropSets - Number of cable cable properties
PropSetID EA MatDens T0 CtrlChannel
(-) (N) (kg/m) (N) (-)
----------------------- RIGID LINK PROPERTIES -----------------------------------------
0 NRigidPropSets - Number of rigid link properties
PropSetID MatDens
(-) (kg/m)
---------------------- MEMBER COSINE MATRICES COSM(i,j) -------------------------------
0 NCOSMs - Number of unique cosine matrices (i.e., of unique member alignments including principal axis rotations); ignored if NXPropSets=0 or 9999 in any element below
COSMID COSM11 COSM12 COSM13 COSM21 COSM22 COSM23 COSM31 COSM32 COSM33
(-) (-) (-) (-) (-) (-) (-) (-) (-) (-)
------------------------ JOINT ADDITIONAL CONCENTRATED MASSES--------------------------
0 NCmass - Number of joints with concentrated masses; Global Coordinate System
CMJointID JMass JMXX JMYY JMZZ JMXY JMXZ JMYZ MCGX MCGY MCGZ
(-) (kg) (kgm^2) (kgm^2) (kgm^2) (kgm^2) (kgm^2) (kgm^2) (m) (m) (m)
---------------------------- OUTPUT: SUMMARY & OUTFILE --------------------------------
True SumPrint - Output a Summary File (flag)
0 OutCBModes - Output Guyan and Craig-Bampton modes {0: No output, 1: JSON output}, (flag)
0 OutFEMModes - Output first 30 FEM modes {0: No output, 1: JSON output} (flag)
False OutCOSM - Output cosine matrices with the selected output member forces (flag)
False OutAll - [T/F] Output all members’ end forces
2 OutSwtch - [1/2/3] Output requested channels to: 1=.SD.out; 2=.out (generated by FAST); 3=both files.
True TabDelim - Generate a tab-delimited output in the .SD.out file
1 OutDec - Decimation of output in the .SD.out file
“ES11.4e2” OutFmt - Output format for numerical results in the .SD.out file
“A11” OutSFmt - Output format for header strings in the .SD.out file
------------------------- MEMBER OUTPUT LIST ------------------------------------------
2 NMOutputs - Number of members whose forces/displacements/velocities/accelerations will be output (-) [Must be <= 9].
MemberID NOutCnt NodeCnt ![NOutCnt=how many nodes to get output for [< 10]; NodeCnt are local ordinal numbers from the start of the member, and must be >=1 and <= NDiv+1] If NMOutputs=0 leave blank as well.
(-) (-) (-)
1 1 1
2 1 1
------------------------- SSOutList: The next line(s) contains a list of output parameters that will be output in .SD.out or .out. ------
“M2N1MKxe, M2N1MKye” - The local side-to-side and fore-aft bending moments at node 1 of member 3 (located at 0 m, i.e. MSL).
“M1N1MKxe, M1N1MKye” - The local side-to-side and fore-aft bending moments at node 1 of member 2 (located at -10 m, i.e. half way between MSL and mudline).
“-ReactFXss, -ReactFYss, -ReactFZss” - Base reactions: fore-aft shear, side-to-side shear and vertical forces at the mudline.
“-ReactMXss, -ReactMYss, -ReactMZss” - Base reactions: side-to-side, fore-aft and yaw moments at the mudline.
END of output channels and end of file. (the word “END” must appear in the first 3 columns of this line)

Dear @Tareq.AbuAgolah,

I would guess your OpenFAST model is going unstable in (1) and (2), resulting in unrealistic deflections that trigger errors in other parts of the simulation.

In general, we recommend enabling all six platform DOFs when running OpenFAST with ElastoDyn coupled to SubDyn. I only looked briefly at your SubDyn input file and I see that you don’t have any interface joint set and the highest joint is below the waterline, which cannot be correct when you are coupling ElastoDyn with SubDyn. I would start by fixing that.

Best regards,

Dear @Jason.Jonkman ,

Do I have to define joints above the water level for MHK because the device itself should be fully submerged in water? Also, for the interface, from what I understood from the documentation, the number of interface joints should be at least 1 and it should be locked, right?

For example, this is what I have edited in the SubDyn input file:


Thank you,
Tareq Abu Agolah

Dear @Tareq.AbuAgolah,

I agree with your changes to your SubDyn model; is your OpenFAST model stable now?

Regarding your question about the interface joint, can you clarify what the configuration of your MHK system is and which parts of the system you are modeling in SubDyn and ElastoDyn?

Best regards,

Dear Dr. @Jason.Jonkman ,

I’m trying to simulate the response of the three-bladed MHK RM1, and I used the r-test MHK RM1 Fixed (r-test/glue-codes/openfast/MHK_RM1_Fixed at main · OpenFAST/r-test · GitHub) The figure below shows the device.
image

What I want to do is replace the fixity at the mudline with springs. Currently, the tower is modeled using ElastoDyn. I’m concerned that if I also use SubDyn to model the tower, it would be like accounting for the tower twice. What is the right approach in this situation if I want to use SubDyn to input a stiffness matrix at the mudline?

Thank you,
Tareq Abu Agolah

Dear @Tareq.AbuAgolah,

You shouldn’t model the tower/pile in both ElastoDyn and SubDyn, but we often model the support structure in ElastoDyn and SubDyn combined by choosing a reasonable interface joint (such as the transition piece between tower and pile) as the point that separates the ElastoDyn and SubDyn models.

As an alternative to SubDyn, you could instead use CompSub = 2 (external platform MCKF), with the stiffness matrix (coupled springs) foundation) implemented in this module.

Best regards,