Foundation Stiffness and damping in FAST v8

Dear Jason,

I am interested in working with the module SubDyn.

What I have understood about my recent readings is that SubDyn can work with bottom-fixed wind turbines in OpenFAST, but not for Floating. However, I ve recently read the doc “Implementation of Substructure Flexibility and Member-Level Load Capabilities for Floating Offshore Wind Turbines in OpenFAST” published in August 2020.

I am working with OpenFast 2.6.0. and I have seen the SubDyn’s file example for Jacket, Tripod and Monopile. What I want to know is if I can use SubDyn with the Semi-OC4, due to the fact I ve seen in the fst file the option of using it (CompSub=1). If it were possible, where could I reach the example file for this example (in the last version of the r-test/glue-codes/openfast/5MW_OC4Semi_WSt_WavesWN in github isn´t available).

---------------------- FEATURE SWITCHES AND FLAGS ------------------------------
          1   CompElast       - Compute structural dynamics (switch) {1=ElastoDyn; 2=ElastoDyn + BeamDyn for blades}
          1   CompInflow      - Compute inflow wind velocities (switch) {0=still air; 1=InflowWind; 2=external from OpenFOAM}
          2   CompAero        - Compute aerodynamic loads (switch) {0=None; 1=AeroDyn v14; 2=AeroDyn v15}
          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; 2=External Platform MCKF}
          3   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; 2=IceDyn}

Thanks for your attention.

Raúl P.

Dear Raúl,

Yes, as of OpenFAST v2.6.0 and newer, SubDyn can now be enabled to model floating substructures for the purposes of modeling structural flexibility and member-level loads within the floating substructure. However, we have not yet developed a SubDyn input file for the OC4-DeepCwind semisubmersible or any of the floater examples for the NREL 5-MW baseline turbine. This has been posted as a known issue on the OpenFAST github page: github.com/OpenFAST/r-test/issues/39. All of the full-system floating models with substructure flexibility we’ve tested at NREL to-date contain proprietary information that cannot be shared publicly.

Best regards,

Dear Dr. Jonkman,

I am modeling the foundation and soil flexibility (Soil-Structure Interaction) of the NREL Baseline 5MW turbine using the stiffness matrix in HydroDyn.
The method is explained in a Chalmers University thesis by Isaksson and Tenenbaum (2018).
I am using FAST v8.16 as Isaksson and Tenenbaum (2018) did.

The HydroDyn file with the Wave, Current, and Potential-Flow options disabled and the stiffness matrix values is given by Isaksson and Tenenbaum (2018), Appendix E. Their stiffness matrix in the HydroDyn file is as follows:
7058823529 0 0 0 -4235294118 0 AddCLin - Additional linear stiffness (N/m, N/rad, N-m/m, N-m/rad)
0 7058823529 0 4235294118 0 0
0 0 8571428571 0 0 0
0 4235294118 0 895398319328 0 0
-4235294118 0 0 0 895398319328 0
0 0 0 0 0 1250000000000
They have also entered zero platform mass and inertia in their ElastoDyn file:
0 PtfmMass
0 PtfmRIner
0 PtfmPIner
0 PtfmYIner
When I use their HydroDyn parameters with the Elastodyn file of the Basline5MW_ITIBarge4 model with the following platform masses, the FAST analysis terminates successfully.
5.452E+06 PtfmMass
7.269E+08 PtfmRIner
7.269E+08 PtfmPIner
1.4539E+09 PtfmYIner
But if I set the platform mass and inertia to zero, like Isaksson and Tenenbaum (2018) did, or even if I reduce them to 1/10 of the above values, I get the following errors:
ACH: Blade #1 element #15 is supersonic!
ED_HD_InputOutputSolve:HydroDyn_CalcOutput: Angles in GetSmllRotAngs() are larger than 0.4
(If I use AeroDyn v14),
FAST_Solution:FAST_AdvanceStates:AD_UpdateStates:BEMT_UpdateStates(node 5, blade
2):BEMT_UnCoupledSolve:DeterminePhiBounds:There is no valid value of phi for these operating
conditions! Vx = -1.3053, Vy = 15.005, rlocal = 11.743, theta = 0.23226
(If I use AeroDyn v15).
By the way, I deactivate the Mooring in the main file (CompMooring = 0), since it does not change the results.
I do not understand how Isaksson and Tenenbaum (2018) have run the analysis with zero platform mass and inertia, and I get the errors even if I reduce the mass and inertia of the Basline5MW_ITIBarge4 model to 10% of the given values.

For my modelings with different sizes of foundations I should be able to change the platform mass and inertia.
Moreover, I am concerned that the high inertia of the platform may interfere with the intended rotations of the foundation.
So, I would like to reduce the platform mass/inertia or even set them zero, but I get the errors.
I would greatly appreciate your help.
Thank you so much in advance.

Dear Behrouz,

My guess is when you reduce the platform mass and inertia, you are increasing the natural frequencies of the support structure, which would require the use of a smaller time step to keep the model from going numerically unstable, which it appears is what it is currently happening.

Please note the following:

  • If you enable the platform-yaw DOF and set the platform-yaw inertia to exactly zero (PtfmYIner = 0), you’ll need to disable the nacelle-yaw DOF; otherwise the platform-yaw DOF will not have any inertia when the tower is undeflected, resulting in ill-conditioning of the system. I recommend setting PtfmYIner equal to the rotational inertia of the tower about its centerline (in which case YawDOF can be kept enabled). The other platform mass and inertia terms can be set to zero without issue.
  • I have not read the thesis you are referring to, but you should be aware that the tower mode shapes in ElastoDyn should be changed when changing the tower-base boundary condition, as you are doing, e.g., using BModes to calculate the mode shapes dependent on soil stiffness.

Best regards,

Dear Dr. Jonkman,

Thank you very much for the answer.

Best regards,
Behrouz

Dear all

For my master’s thesis I am looking at soil damping of a jacketed offshore wind turbine. This has been a useful thread, however FAST and SubDyn have received several useful upgrades lately. I am exploring methods for transferring soil damping from the piled foundation to the rest of the structure in OpenFAST v3.0.0. Are there any go-to/established methods of doing this? Is there perhaps a way of adding dashpots to the reaction nodes of the jacket?

Best regards,
Magnus Saeland

Dear Magnus,

You can model soil springs on each pile of a jacket directly within SubDyn through the SSI input file. However, you cannot specify soil damping via this file. Instead, SubDyn requires that damping be specified through the Guyan and Craig-Bampton modes. So, if you can identify which modes involve motion of the pile, you can apply modal damping to those modes.

NREL is also wrapping up the implementation of the SoilDyn module within OpenFAST, but if I recall correctly, this module only applies to a single pile. I’ll let @Andy.Platt confirm and provide a status update.

Best regards,

1 Like

Hi Magnus,

As Jason mentioned, I am wrapping up development of a soil interaction module called SoilDyn. This module was designed specifically for use with a DLL called REDWIN distributed by NGI (not open source or publicly available). SoilDyn also includes an option for soil stiffness with a damping matrix. However, the damping matrix is incomplete at present; the matrix is read and passed to the solver, but is not currently implemented in the equations. It would be very straightforward to add the damping matrix into the equations there (motion information is passed into the solve).

There is currently a draft pull request for this module at SoilDyn -- soil dynamics module by andrew-platt · Pull Request #986 · OpenFAST/openfast · GitHub. It is currently only hold until the documentation and example cases are added to the code base. If you are interested in using this module and decide to add the damping equations, we would be very interested in incorporating your code into a future release.

Also, there is a placeholder in the code for a P-Y curve approach. This never got beyond a placeholder status, but all the hooks are in the code if someone was interested in adding it.

One other thing @Jason.Jonkman reminded me of: SoilDyn is currently configured for a single pile. However, it would be fairly straightforward to extend this to multiple piles using the same soil stiffness and damping matrices (the meshes are configured to handle multiple points, and most of the code loops for multiple mesh points already exists in the code). If I set this up correctly, it will be very simple to extend to multiple piles within the SoilDyn code (the glue code is already configured to handle this). Some minor changes would be required for different stiffness/damping matrices at each pile.

Regards,
Andy

1 Like

Dear Jason.Jonkman
Excuse me. When using SubDyn (new version that can model a 6x6 stiffness matrix of an elastic foundation by specifying an SSIfile at each base reaction joint) coupled with OpenFAST, should Bmodes be used to recalculate something to reflect the influence of SSI on boundary conditions? In other words, does the user only need to specify the 6x6 stiffness matrix to account for the effect of SSI on the whole WT?
Thanks in advance. @Jason.Jonkman
Regards,

Dear @Baoxuan.Wang,

BModes is often used to compute the tower shapes needed for ElastoDyn. The computation of these mode shapes depends on the boundary condition of the tower, in this case the substructure represented in SubDyn. Changing the SSIfile in SubDyn will effect the stiffness of the substructure, and thus ideally, you’d rerun BModes and update the tower mode shapes accordingly.

Best regards,

Dear all
I have added some codes in FAST_Registry.txt and RunRegistry.bat based on openfast/RunRegistry.bat at 8060c6c421d2dedd0147a12e14d816a95ea9d839 · OpenFAST/openfast · GitHub
and added SoilDyn in FAST,
However, an error occurs after debugging(input file: …..\modules\soildyn\src
Registry program cannot open …..\modules\soildyn\src for reading. Ending.) as shown in the figure below.
Can you help me?
Best regards,
Peng Guo





Dear @Peng.Guo,

Which branch of OpenFAST are you attempting to compile? The SoilDyn source code currently only exists in one branch that has not been merged into the main OpenFAST development branch.

We expect to merge SoilDyn into the dev branch later this month for release in OpenFAST v4.0.0.

Regards,
Andy

Dear Andy.Platt
I am attempting to compile the V3.5.0.
However,when i select first CalcOption, some errors slways occur as shown in the figure below.
Can you help me?



Dear @Andy.Platt
I am attempting to compile the V3.5.0.
However,when i select first CalcOption, some errors slways occur as shown in the figure below.
Can you help me?

Dear @Peng.Guo,

I’m a little confused by how you are attempting this since SoilDyn was not included in the 3.5.0 release. Can you explain your process for adding SoilDyn to v3.5.0?

Regards,
Andy

Dear @Andy.Platt
Thank you so much.
S1: I got the source codes from openfast/modules at 8060c6c421d2dedd0147a12e14d816a95ea9d839 · OpenFAST/openfast · GitHub
S2: I changed the FAST_Subs.f90 and FAST_Solver.f90 based on the above codes.
S3: I added the SoilDyn in the FAST.vfproj.
S4: I generated the new openfast_x64.exe.
Thank you again.
Regards,
Peng

Dear@Andy.Platt

Dear @Peng.Guo,

I’m going to guess that there are some glue code changes that are not entirely accounted for (in FAST_Subs or FAST_Solver: possibly some initialization sequences, or mesh mappings). The commit referenced above (80806c42) was from 15 months ago and there have been extensive changes to the glue code since then that likely are not directly compatible.

Unfortunately I don’t have much time to devote to this right now, but likely have a few hours to bring the SoilDyn branch up to date with the OpenFAST main branch next week.

Another option that may work for you is to checkout the SoilDyn branch (GitHub - andrew-platt/openfast at f/SoilDyn) and merge in the OpenFAST main branch. This may not be straightforward though given some of the merge conflicts that likely exist. This is the procedure I will be doing next week to update the SoilDyn branch for merging.

Regards,
Andy

Dear @Andy.Platt

Thank you so much.

Regards,
Peng

Dear @Andy.Platt

Thank you so much for your help.

I have improved the codes of SD_FEM.f90,FAST_Subs.f90,FAST_Solver.f90.

I think the reasons for the errors were that I lost " If Soil_K from SoilDyn, isFloating=false" and “SoilDyn to SubDyn use y3Mesh”.

Those problems have impeded me for about a week, so I am really grateful to you.

Regards,
Peng

1 Like