Modeling multi-member floating wind turbine

Dear Dr. Jason,
I met some problems when modeling Telwind using OpenFastv3.0. The Telwind floating platform consists of two floaters and six tension cables connecting them.
1.If two floaters are assumed rigid, do I only need to model the six cables in SubDyn? And the twelve joints of cables are all set as interface joints?
2.In the properties of cables, does the positive T0 value mean stretch?
3.In ElastoDyn, do I need to definite the mass and inertia of the two floaters separately?
I would appreciate it if you could answer these questions.


Best regards

Dear Chen.Gu,

Are you trying to model this floater as a single six degree of freedom rigid body? If so, you can model the entire floater as the platform in ElastoDyn.

Or are you trying to model the floater as a two six degree of freedom rigid bodies connected by elastic cables? If so, you’ll need to model the floater in the SubDyn module. SubDyn models the substructure as an interconnection of beam, taut cable, and/or rigid members. Presumably you’d want to model the six cables with the taut cable elements, but I’m not fully sure how you’d want to model the two hulls.

For cable elements in SubDyn, the pretension force must be positive, indicating stretching of the line (to keep the cable taut).

Best regards,

Dear Jason

Yes, I want to model the floater as two 6-Dof rigid bodies connected by elastic cables in SubDyn, in that case, how to define the PtfmRefzt and PtfmMass properities in ElastoDyn, should I follow the rules applied in fixed offshore wind turbine and set those parameters as the TP(Transiton piece) 's position and mass, which is PtfmCMzt=PtfmRefzt=TP center height, PtfmMass=TP mass?

Best regards
Chen.Gu

Dear Chen.Gu,

It probably makes sense to model the entire floating substructure (upper and lower rigid bodies and cables) in the same module (SubDyn). In that case, the 6 platform DOFs should be enabled in ElastoDyn, but the mass, center of mass, and inertia of the upper rigid body needs to be modeled in SubDyn. So, you can set PtfmRefzt = PtfmCMzt = PtfmMass = 0 (etc. for all platform mass, center of mass, and inertia properties in ElastoDyn, except PtfmYIner, which you should set equal to the rotational inertia of the undeflected tower about its centerline, at least when YawDOF = True, as discussed in other forum topics).

To model the upper rigid body in SubDyn, ideally you’d place rigid links between the interface node and the nodes connecting the cables, but there is a bug in SubDyn that was recently found regarding this functionality, as reported recently on the OpenFAST issues page: github.com/OpenFAST/openfast/issues/854. As such, I’d recommend using quite stiff beam elements. You can add lumped (concentrated) masses/inertias at the node endpoints of the beams to ensure that the overall mass, center of mass, and inertia of the upper rigid body are as you want.

To model the lower rigid body in SubDyn, you can use rigid links between nodes of the cables, again, adding lumped masses/inertias as needed to get the overall mass, center of mass, and inertia of the lower rigid body are as you want.

Best regards,

Sir,If I want to built up new offshore floating foundation,how can I need to do in FAST to built up my floating foundation,how I need to have data about foundation,Thanks!

Dear Hairui,

I’m not sure I really understand your question. You’ll obviously need the properties of the floating substructure, including structural and hydrodynamic properties of the floater, the properties of the mooring system and tower, and any modifications necessary in the wind turbine controller.

Best regards,

Thank for your help! So where should I modify the floating foundation ?Is HydroDyn or SubDny?Another question is how can I obtain data about floating substructure ,is other software?because I want to built up new floating foundation by FAST to analyse.
Be regards

Dear Hairui,

The hydrodynamic properties are defined in HydroDyn, the floating substructure properties are defined in SubDyn (if the substructure is modeled as flexible) or ElastoDyn (if the substructure is modeled as a lumped mass/inertia), the tower properties are defined in ElastoDyn, and the mooring properties are defined in one of the mooring modules (e.g., MAP++, MoorDyn, or FEAMooring).

The data necessary to build a floating substructure model depends on the floater. If the floater is of large volume, presumably you’d want to model the hydrodynamics via potential flow theory, which requires the use of WAMIT or similar software to generate the hydrodynamic coefficients as a preprocessing step.

Best regards,

1 Like

Dear Jason,

I am trying to get the internal forces of the OC4 semi-submersible substructure by using OpenFAST. Following your previous guidance, I modeled the platform in SubDyn, the tower and the turbine was built in ElastoDyn, but I felt confused when I going into HydroDyn.

Knowing how the hydrodynamic loads distribute along the substructure members is essential for the internal force calculation. Instead of the potential flow theory which is mainly used for global hydrodynamic analysis, it seems that only the strip-theory-based (Morison’s equation) modeling approach in HydroDyn can provide such information to SubDyn. However, the OC4 semi-submersible is a large volume floater, we know it is better to use potential flow theory. It is also difficult to accurately determine the member-based C_A(added-mass coefficient) if the Morison’s equation is applied.

Could you give me some advise on the hydrodynamic modeling for my case? Thanks a lot!

Best regards,

Dear @Shengtao.Zhou,

I agree with your comments.

When the ability to model structural flexibility and member-level loads in floating platforms was introduced in OpenFAST v2.6 and newer, we introduced the functionality in HydroDyn to model multiple potential flow bodies, with optional hydrodynamic interaction. So, for the OC4-DeepCwind semi, you could model each offset column (and perhaps the center column) as distinct potential-flow bodies with the pontoons and braces represented via the strip-theory formulation. Then in SubDyn, you could model the offset columns (and perhaps the center column) as rigid links with the pontoons and braces represented as beam element. This set-up would allow you to capture the large-volume effects from potential flow, while still capturing the structural flexibility and member-level loads within the pontoons and braces.

The following OpenFAST r-tests for standalone HydroDyn demonstrates this approach for the OC4-DeepCwind semisubmersible: r-test/modules/hydrodyn/HydroDyn_NBodyMod_cases at main ¡ OpenFAST/r-test ¡ GitHub, but at this time, there is not a full OpenFAST model available in the public domain that supports floater structural flexibility per the following issue: Add Test case for flexible platforms ¡ Issue #39 ¡ OpenFAST/r-test ¡ GitHub.

The following NREL technical report is likely of interest to you have if you have not read it already: https://www.nrel.gov/docs/fy20osti/76822.pdf.

Best regards,

1 Like

Dear @Jason.Jonkman,

Thanks a lot! Your comments are really helpful.

I read a paper (by Luan et al. from NTNU) you cited in the NREL technical report. To get the internal forces within columns/pontoons, the authors divided the columns/pontoons into several segments, as the following figure shows:


I would like to do the same thing, what should I do in OpenFAST? I know we can get the multibody hydrodynamic coefficients via potential flow solvers like WAMIT (I would like to use the NBodyMod=1 mode, because I don’t want to generate too many .1/.3/.hst files), but I am quite confused on how OpenFAST maps those member-level potential coefficients to SubDyn. Is it done by using PtfmRefxt/PtfmRefyt/PtfmRefzt/PtfmRefztRot?

Best regards,

Dear all,

Similar to Shengtao Zhou, I aim to model the OC4 semi-sub in OpenFAST with SubDyn to compute internal loads in the substructure, but I am just starting to learn OpenFAST. I am doing this in the context of my master thesis, which deals with design, analysis and optimization of a semi-submersible substructure for floating offshore wind, using OpenFAST (in a higher-fidelity model approach). I realize that for optimization practices, the floater is often modeled as a rigid body, but in my case I would like to verify structural integrity of the optimized floater design. Initially, I am trying to model the OC4 semi-sub for verification of my programming framework, but ultimately I will end up with a different semi-submersible platform geometry. As for the hydrodynamics, I am using Nemoh to calculate the hydrodynamic coefficients.

I am aware that there is no public model available for modeling flexible floating platforms, therefore I followed Jason Jonkman’s guidelines from this github discussion to set-up the simulation with SubDyn: (FeaCoupling of an External floater (platform+mooring) with Openfast #791 · OpenFAST/openfast · Discussion #801 · GitHub). However, I am not sure how to set the FEA and Craig-Bampton parameters in the SubDyn input file. Could anyone please provide guidance in how to choose the settings in this section for a flexible floating platform?

Best regards,
Bart

Dear @Shengtao.Zhou,

OpenFAST uses its internal spatial mesh-to-mesh mapping functionality to connect the hydrodynamic nodes from HydroDyn to the structural nodes from SubDyn: 4. User Documentation — OpenFAST v3.4.1 documentation. Because HydroDyn and SubDyn use point-element meshes, effectively a nearest-neighbor mapping is used. The HydroDyn potential-flow mesh is based on HydroDyn inputs PtfmRefxt/PtfmRefyt/PtfmRefzt.

Please note, however, that the structure you show seems to have members that are quite small in volume, so, perhaps a strip-theory solution is satisfactory? (We typically recommend that large-volume members be represented in the potential-flow solution and small-volume members be represented in the strip-theory solution.) Large-volume members requiring potential flow are likely quite stiff and may need not be split out into multiple potential-flow bodies in HydroDyn and beam elements in SubDyn. Rather, it may be satisfactory to treat each large-volume body as a separate potential-flow body in HydroDyn with rigid-link elements in SubDyn.


Dear @Bart.Klootwijk,

Here are my general recommendations for setting the FEA and Craig-Bampton parameters in SubDyn for floating wind applications:

  • FEAMod = 3
  • NDiv = 1, unless the members aren’t manually discretized by adding joints, in which case NDiv > 1. That said, NDiv only supports a uniform division of all members, so, unless all members are roughly equal length, it may be better to manually discretize by adding joints.
  • CBMod = True
  • Nmodes = large enough to capture the lowest modes of the substructure, say up to 5-10 Hz, as calculated by SubDyn. This is typically less than 10-20 for most floating substructures. Because you likely wont know the frequencies until you run SubDyn, this will likely take some trial and error (by running SubDyn with different Nmodes). You can use the SubDyn mode visualizer (Mode shape visualization) to visualize each mode.
  • JDampings = 1 (if you know nothing) or tuned to match known full-system damping ratios.
  • GuyanDampMod = 0

Best regards,

Dear @Jason.Jonkman ,

Thanks for your quick response.

I aims to transfer the hydrodynamic load distribution of the large-volume members (e.g. columns) to SubDyn and obtain their internal forces, so I split the large-volume members into 50 potential-flow bodies in HydroDyn, but OpenFAST (v3.2.1) cannot run properly with such number of bodies (NBodyMod=3 is used). The following errors occur:

forrtl: severe (157): Program Exception - access violation
Image PC Routine Line Source
openfast_x64.exe 00007FF61CE21393 Unknown Unknown Unknown
openfast_x64.exe 00007FF61C777580 Unknown Unknown Unknown
openfast_x64.exe 00007FF61BC32008 Unknown Unknown Unknown
openfast_x64.exe 00007FF61BC203F6 Unknown Unknown Unknown
openfast_x64.exe 00007FF61BC11049 Unknown Unknown Unknown
openfast_x64.exe 00007FF61BB8BDC8 Unknown Unknown Unknown
openfast_x64.exe 00007FF61BB413FA Unknown Unknown Unknown
openfast_x64.exe 00007FF61E295962 Unknown Unknown Unknown
openfast_x64.exe 00007FF61E7A8244 Unknown Unknown Unknown
KERNEL32.DLL 00007FFB85BF7604 Unknown Unknown Unknown
ntdll.dll 00007FFB85F426A1 Unknown Unknown Unknown

I guess it is due to the memory overflow because when I reduced the number of potential-flow bodies to 5, OpenFAST can run normally. I switched to a higher-performance PC (128GB RAM), the 50-body case still doesn’t work. Is there any way to fix this problem? If not, I think that representing the large-volume members in strip-theory solution is the only option for my case.

Best regards,

Dear Dr.Jason
Thanks for reading my email. I’m currently using the subdyn of openfast to simulate the flexiblity of the floating offshore wind turbine. Some errors happened during the simulation.
I want to discuss the effects of the flexiblity of the floating platform on the dynamic response. The windfloat wind turbine is used and the extreme sea condition(Turbulent wind speed:37.4 s, Hs=12.58m, Tp=17.28s) is considered
When I considered the flexiblity of the floating in Subdyn module, the simulation ran very well.
image

However, when I set the platform to be rigid according to your previous comments(As shown below).


The simulation was aborted due to the large displacement of the platform.

image

I didn’t change other parameters except for the Nmodes=0, CBmode=true, and SttcSolve=false.
And I used the Morison equation only to solve the hydrodynamics of the Windfloat platforms.

Besides, the simulation under the normal operation condition ran well for both the flexible model and the rigid model. Below is the comparison between these two models under the normal operation condition.
image

Do you have any suggestions for solving this problem?
Thanks very much!

Kind regards
Lixian Zhang

Dear @Shengtao.Zhou – I’ve asked some colleagues about your error and will reply back soon.

Dear @Lixian.Zhang – Are you following typical modeling guidance, e.g.:

  • Setting NumCrctn = 1 when SubDyn is enabled?
  • Setting DT_UJac = 1/10 the natural period in roll, pitch, or yaw?

Best regards,

Dear @Shengtao.Zhou,

I would normally expect hitting a memory limit would trigger an error such as “Error allocating space for…”, not an access violation error. But after discussing internally, we recalled that that HydroDyn has some issues involving error handling, and so, the more graceful simulation abort may not always happen. In such cases, hitting a memory limit could result in an access violation error.

Best regards,

Dear Dr.Jason

Thanks very much for your comments. Yes, the DT_UJac was set to be 2 which is around 1/10 of the pitch natural period. The simulation is aborted. However, when I set DT_UJac=0.5, the simulation runs normally. Is there any possible reason causing this? I’m very curious about the set of DT_UJac. In the reference manual, the recommended value of DT_UJac is also 1/10 of the natural period of roll, pitch or yaw. Can you give me some suggestions or is there any detailed reference manual about the parameter “DT_UJac”?

Thanks again

Kind regards
Lixian Zhang

Dear @Lixian.Zhang,

OpenFAST input DT_UJac determines how often the Jacobian is recalculated in the algebraic solution of implicit input-output interconnections between modules. The general algorithm used by the glue code is outlined in the following implementation plan: https://openfast.readthedocs.io/en/dev/_downloads/10fd11ae468eb09b7b8affb36a9ac603/ProposedPCApproach_Rev4.docx.

I generally agree with the guidance for DT_UJac that you referenced. Perhaps the yaw mode has a lower natural period than pitch and is driving the need for a smaller value of DT_UJac than you anticipated? Or perhaps the pitch motion is larger at lower periods than at the natural period?

Best regards,

Dear @Jason.Jonkman,

Many thanks for the modelling recommendations.

To verify the implementation of the DeepCWind platform in SubDyn, I simulated r-test 25 (r-test/glue-codes/openfast/5MW_OC4Semi_WSt_WavesWN at main ¡ OpenFAST/r-test ¡ GitHub) with and without SubDyn. The reference case has a steady wind of 8 m/s and irregular waves as shown in the plot below.

In the SubDyn case, the surge, heave and pitch behaviour in the plot reveal that the modelling has not been successful. For example, there is a negative offset in heave. My initial guess is that by modelling the platform in SubDyn the total mass of the platform has increased, which could explain the difference in mean heave, and also the increased surge period. As a matter of fact, the way that I modeled the floater now (see visualisation below), I did not correct for overlapping members (yet, although I doubt it would have this much of an influence).
image

However, when I look at the SD.sum output file (see below), the mass of the platform is actually lower than the mass specified in the OC4 semisub definition report, which is 3.8522E+6 kg

The observed behaviour is the same in the case of zero wind, still water and no initial pitch/surge offset:

I looked around on the forum and I’ve found some comments about DT_Ujac but this value does not seem to have an impact on the observed behaviour. As I am a new user of OpenFAST, I am afraid that I may have overlooked a certain setting in one of the input files, or that I’ve over-determined the floater geometry. I did not change anything in the HydroDyn file. I enabled the 6 platform DOFs in ElastoDyn, but did not touch the ‘mass and inertia’ section w.r.t. the reference case

Clearly I am missing something. Please, could you help me towards a solution?

Best regards,