Apparent numerical instability with MoorDyn in shared mooring systems (FAST.farm)

Hi all,

I am modeling with FAST.farm a wind farm of two 5MW spar-buoy turbines with a shared mooring system (you can find the layout here: Redirecting). I suspect that I am having problems to achieve numerical stability with MoorDyn. I am creating this new topic since I couldn’t find any that address this particular matter. However, if you are aware of one that does, feel free to point it to me. Thank you :slight_smile:

I get messages like “Warning: extreme pitch moment from body-attached Point 4” and NaNs.

When I deal with a mooring system of a single platform in MoorDyn I usually solve this matter following the recommendations in the user guide (selecting the time step and number of elements to avoid artificial numerical instability). However, in this case, I am having problems to correctly select the values.

I am wondering, are there some recommendations you can mention to solve this issue? I can tell based on the tutorial of the 10 turbines (GitHub - FloatingArrayDesign/FASTFarm_10Turbines_Shared) that the necessary time step is very small (as kind of logic).

Any hint based on your experience will help, thank you!

Best,
Tomás.

Hi Tomás,

If you could provide your MoorDyn input file that would be super helpful in figuring this out. I am curious how you are using bodies, as bodies coupled to turbines was just introduced recently to FAST.Farm. Additionally, which version of FAST.Farm are you using? This could possibly be related to a bug we fixed in January: Removes MD driver standalone option, bug fix on initialization by RyanDavies19 · Pull Request #2005 · OpenFAST/openfast · GitHub

In general you are right, reducing the dtm value in the MoorDyn input file options can help with stability. Playing with the number of segments can help too, though very small segments (~<0.5 m) can introduce noise. If this occurring during the dynamic relaxation phase, it could be useful to set your drag scaling to 1. When the dynamic relaxation drag scaling is too high, MoorDyn will be unstable. Beyond that it would be helpful to see what set-up you are using in MoorDyn for your work.

Hi @Ryan.Davies,

Thanks for reaching out. I already tried to reduce de Cd scaling up to a minimum or setting the relaxation time to 0 but no good outcomes still. What I am seeing it’s strange (I presume because this fictitious initial conditions from MoorDyn), platforms drifting away and sinking completely, lines completely taut, stuff like that.

I have to run more test, so I will come back when I have more insights.

In the mean time, the version I am using of FAST.farm is the 3.4.1 (the one I managed to run the 10 turbines tutorial). Here you can find the MoorDyn file I am using for this case. As you can see, am not using bodies in this moordyn, so I think that the GitHub entry you mention (the one of Roger) may not be strictly the case.

--------------------- ROD TYPES -----------------------------------------------------
TypeName Diam Mass/m Cd Ca CdEnd CaEnd
(name) (m) (kg/m) (-) (-) (-) (-)
----------------------- BODIES ------------------------------------------------------
ID Attachment X0 Y0 Z0 r0 p0 y0 Mass CG* I* Volume CdA* Ca*
(#) (-) (m) (m) (m) (deg) (deg) (deg) (kg) (m) (kg-m^2) (m^3) (m^2) (-)
---------------------- RODS ---------------------------------------------------------
ID RodType Attachment Xa Ya Za Xb Yb Zb NumSegs RodOutputs
(#) (name) (#/key) (m) (m) (m) (m) (m) (m) (-) (-)
---------------------- POINTS -------------------------------------------------------
ID Attachment X Y Z Mass Volume CdA Ca
(#) (-) (m) (m) (m) (kg) (m^3) (m^2) (-)
1 Fixed -1098.23 539.995 -235.0 0.00 0.00 0.00 0.00
2 Free -1202.24 359.85 -208.82 0.00 0.00 0.00 0.00
3 Turbine1 -1409.50 4.5 -70.0 0.00 0.00 0.00 0.00
4 Fixed -1098.23 -539.995 -235.0 0.00 0.00 0.00 0.00
5 Free -1202.24 -359.85 -208.82 0.00 0.00 0.00 0.00
6 Turbine1 -1409.50 -4.5 -70.0 0.00 0.00 0.00 0.00
7 Turbine1 -1415.20 0.0 -70.0 0.00 0.00 0.00 0.00
8 Turbine2 -2154.78 0.0 -70.0 0.00 0.00 0.00 0.00
9 Fixed -2471.75 539.995 -235.0 0.00 0.00 0.00 0.00
10 Free -2367.74 359.85 -208.82 0.00 0.00 0.00 0.00
11 Turbine2 -2162.58 4.5 -70.0 0.00 0.00 0.00 0.00
12 Fixed -2471.75 -539.995 -235.0 0.00 0.00 0.00 0.00
13 Free -2367.74 -359.85 -208.82 0.00 0.00 0.00 0.00
14 Turbine2 -2162.58 -4.5 -70.0 0.00 0.00 0.00 0.00
---------------------- LINES --------------------------------------------------------
ID LineType AttachA AttachB UnstrLen NumSegs LineOutputs
(#) (name) (#) (#) (m) (-) (-)
1 chain 1 2 414.9 25 pt
2 wire 2 3 249.0 25 pt
3 chain 4 5 414.9 25 pt
4 wire 5 6 249.0 25 pt
5 wire 7 8 739.6 25 pt
6 chain 9 10 414.9 25 pt
7 wire 10 11 249.0 25 pt
8 chain 12 13 414.9 25 pt
9 wire 13 14 249.0 25 pt
--------------------- OPTIONS ------------------------------------------------------
0.000001 dtM - time step to use in mooring integration (s)
235.0 WtrDpth - water depth (m) <<< must be specified for farm-level mooring
3.0e+06 kbot - bottom stiffness (Pa/m)
3.0e+05 cbot - bottom damping (Pa-s/m)
2.0 dtIC - time interval for analyzing convergence during IC gen (s)
120.0 TmaxIC - max time for ic gen (s)
1.0 CdScaleIC - factor by which to scale drag coefficients during dynamic relaxation (-)
0.00 threshIC - threshold for IC convergence (-)
0.01 dtOut - Output time step (-)

I adapted all the necessary input files to test the 5MW hywind platforms. Regarding the .fstf file I can mention that the position of the turbines is the following.

— WIND TURBINES —
2 NumTurbines Number of wind turbines (-) [>=1] [last 6 columns used only for Mod_AmbWind=2]
WT_X WT_Y WT_Z WT_FASTInFile X0_High Y0_High Z0_High dX_High dY_High dZ_High
(m) (m) (m) (string) (m) (m) (m) (m) (m) (m)
-1410.000 0.00 0.00 “FOWTs/5MW_Spar_WT1.fst” -1581.0693 -185.0 -2.0 4.5861 5 5
-2160.000 0.00 0.00 “FOWTs/5MW_Spar_WT2.fst” -2280.5069 -185.0 -2.0 4.5861 5 5

Also, I am simulating a condition with no wind nor waves. Since I couldn’t manage to deactivate the wind, I am running with a very small wind speed in the inflow wind.

Best,
Tomás

Hi @Tomas.Lopez.Olocco,

The reason that MoorDyn is crashing for you right now is that points that are attached to a turbine need to be defined relative to the turbines position instead of in the global frame. For example point 14 should be have x = -2.58, so that in the global frame it is at -2160 + -2.58 = -2162.58 m. (currently it is at x = -4322 m in the global frame).

This does not apply to fixed or free points, which are defined in the global frame.

Hopefully that helps!

Best, Ryan

Hi @Ryan.Davies,

I did not know that, Thank you! I should have realized this from the tutorial but I didn’t pay attention. There’s probably something in the user guide too :man_facepalming:t3:

I will try this and let you know, but it’s probably that.

Best,
Tomás