External wave kinematics in FAST v8.16 using WaveMod = 6

Dear All,

I am using FAST v8.16 and I am trying to reproduce wave loads calculated by a different software package.
As the wave kinematics is based on non-linear wave theories and include constrained waves, my chosen approach is to use external wave kinematics files through WaveMod = 6 in HydroDyn. However, the only data I have available are time histories of WaveElev, Vx, Vy, Vz, Ax, Ay, Az at each node of the model.

So I have the following questions:

  1. Why does the dynamic pressure need to be specified separately? Is it not just a function of the sea water density and the velocity through PDyn = 1/2densityvelocity^2? Can I calculate it through 1/2rho(Vx^2+Vy^2+Vz^2)?

  2. In the calculation in point (1), I imagine the velocity should include the current velocity. Does this mean that the wave kinematics input files need to include the current velocity in the specified wave kinematics?

  3. In case my understanding of dynamic pressure as described in point (1) is incorrect: is there a way to obtain the dynamic pressure based on the kinematics (if I do not have the dynamic pressure available in my wave kinematics input files)?

Many thanks for all your help.

Kind regards,
Laszlo Arany

Dear Laszlo,

Here are my answers to your questions regarding the FAST HydroDyn module:

  1. In the strip-theory solution, the dynamic pressure is used to calculate the fluid-inertia loads on member ends and the axial force on tapered members. The term 1/2densityvelocity^2 misses the linear term in the dynamic pressure. If the wave kinematics are derived from a velocity potential (phi), the linear dynamic pressure is -rhodphi/dt. Actually, the nonlinear term 1/2rho*V^2 is neglected in linear wave kinematics theory because it is small relative to the linear term.

  2. Yes, if you want current together with user-specified wave kinematics (WaveMod = 6), you must specify the current in the user-specified wave data files.

  3. I don’t think there is a way to derive the linear dynamic pressure from the wave particle velocities. Of course, if your strip-theory model does not include tapered members or end effects (e.g. in the case of a monopile), then the dynamic pressure is not needed in the strip-theory solution and can simply be zeroed in the wave data files.

Best regards,

Dear Jason,

Thank you very much, that is very helpful. I understand how the temporal change of the velocity potential contributes to the dynamic pressure.

My monopile structure does have a taper, but the taper angle is only about 1 degree. It feels like this would cause a very small error if I just set DynP to zero. Would you agree with that?

Thanks and kind regards,

Laszlo Arany

Dear Laszlo,

Yes, I agree. For a lightly tapered monopile, the effect of the dynamic pressure on the vertical loads in the substructure would be small.

Best regards,

Dear Jason,

Thank you again for your input. I have built my model, generated the wave kinematics files, and tried to run my analysis. The issue I encounter is that I had to set the time step as low as 0.005s, otherwise I get warnings about the small angle assumption being violated before the code falls over with the following error messages at 3.6s of the simulation:

In my understanding this problem is unrelated to HydroDyn, but the problem is that when I interpolate my wave kinematics data to all the required time steps (i.e. 800s of simulation with 0.005s time step) and structural nodes (~100), the kinematics input files become huge (about 200MB each). When HydroDyn tries to read these files, it falls over with the following error message:

I’m assuming that this latter error is because I am running the 32bit version of FAST (due to my dll controller being compiled 32bit). However, before going further down the rabbit hole, I would like to ask some questions:

  1. What is the most likely cause for such a small time step requirement? Which module produces the problem that result in that error? What I found surprising was that even when I set the time steps of ElastoDyn, AeroDyn, ServoDyn and SubDyn all to 0.005 but changed the glue code time step to e.g. 0.01, the simulation still fell over.

  2. Is there anything I can do to increase the time step and avoid the simulation falling over? I was thinking that maybe the initial conditions or some DoFs not handled properly may be the issue. I would be grateful for any other ideas on how to increase the time step.

  3. Assuming that the file sizes cannot be reduced through increasing the time step, do you think a problem of this size would solve if I had a 64bit version of the controller?

Many thanks for your help.

Kind regards,
Laszlo

Dear Laszlo,

Yes, it definitely looks like your model is suffering a numerical instability when using larger time steps. Here are my answers to your questions:

  1. The error shows a large platform rotation, which suggests that there are high natural frequencies in the ElastoDyn tower, in SubDyn, or resulting from the coupling between the two modules that must be resolved in time well enough by the solver(s).

  2. You could disable DOFs in the tower or SubDyn to see which DOF(s) the required time step is most sensitive to. Also, have you followed the guidance for coupling SubDyn and ElastoDyn that is documented in section 5.4 of the draft SubDyn User’s Guide and Theory Manual: wind.nrel.gov/nwtc/docs/SubDyn_Manual.pdf?

  3. Yes, I would guess switching to the 64-bit executable would solve the memory allocation error.

Best regards,

Dear Jason,

In the meantime I managed to isolate the platform roll DoF, if I turn it off, the model runs fine. My natural frequencies up to the 6th mode should all be under 10Hz (for tower, isolated substructure and combined model), so the only thing I can imagine to need such high frequency is the coupling between the two systems.

Thank you for pointing me to this section in the manual. I think I have followed the suggestions there except for the following:
a. I have reduced the tower length from the baseline model by 6% and the wall thicknesses slightly and I have not yet updated the mode shapes.
b. While writing this, I have noticed that I did not set up the PtfmCMxt, PtfmCMyt, PtfmCMzt and PtfmRefzt parameters correctly (I left them as 0).

The monopile model I have built has a straight bottom section, a conical section and then another straight section, with the top of the cone a few metres below MSL and the top of the monopile about 20m above MSL. The top of the top straight tube section connects to the bottom of the tower. I have built the monopile in SubDyn and the tower in ElastoDyn. I specified the bottom of the monopile to be several pile diameters below the mudline to model an apparent fixity foundation stiffness, and specified the bottom of the apparent fixity beam as the base reaction joint. I specified the interface joint in SubDyn to be the top of the top straight tube section of the monopile (the interface with the bottom of the tower). I used the location of this point as TowerBsHt in ElastoDyn.

Admittedly I am slightly confused about the use of the term “platform”, and its relation to the standard fixed-base offshore wind turbine terminology. I think I assumed that for my purposes “platform” is the same as “substructure”, i.e. everything below the bottom of the tower. Is this correct?

If I use the apparent fixity model, do I need to calculate the centre of mass of my monopile including the bit embedded in the mudline, or only the part above? More importantly, should the platform reference point in my model be placed at about 20m above MSL where the monopile-tower interface is located?

Regarding the tower mode shapes, I have not yet updated them since I made the tower about 6% shorter and also reduced the wall thicknesses slightly. Do you think this can cause such a significant problem?

Thanks and kind regards,
Laszlo

Dear Laszlo,

Here are my answers to your questions:

For FAST models with SubDyn enabled, the “platform” in ElastoDyn can be considered the connection point between ElastoDyn and SubDyn. You should enable the platform DOFs in ElastoDyn, set PtfmRefzt to the correct height, set PtfmYIner nonzero if the nacelle-yaw DOF is enabled, and set PtfmHeave nonzero per the SubDyn documentation. ElastoDyn inputs PtfmCMxt, PtfmCMyt, PtfmCMzt, PtfmMass, PtfmRIner, and PtfmPIner can all be set at zero if that makes physical sense for your model.

I’m not sure I understand this question. You shouldn’t need the center of mass of the monopile for any calculation.

Yes.

I’m not sure where your tower mode shapes originated from, but I changing the length, thickness, and tower-base boundary conditions (the monopile substructure) will impact the tower mode shapes. I suggest updating the tower mode shapes per the SubDyn documentation.

Best regards,

Dear Jason,

Thanks for your answers, they are very helpful as always.

So do I understand it correctly that the “platform” is an elevation rather than a physical component? In my understanding, PtfmCMxt, PtfmCMyt, PtfmCMzt are coordinates of the center of mass of the platform, so based on the above quote and in case of a monopile structure, do these (as well as PtfmMass, PtfmRIner and PtfmPIner) refer to parameters of the transition piece (if present)? Or are these only relevant for floating platforms then? I am probably missing something here.

Regarding mode shapes, I am going to update them using BModes later on, I just wanted to make sure that I can use FAST for the purposes of my analyses before investing time in it. However, my model seems to be working now with the small time step and reduced number of nodes in HydroDyn.

For reference, in case someone else is using WaveMod = 6 in the future, I would like to point out that there appears to be a small typo in the HydroDyn User Manual in the description of the required wave surface elevation (.Elev) input file. Section 4.3.2 of the manual on page 16 states that the .Elev file “must have exactly WaveTMax/DT rows”, but I got the following error when the file was set up like that:

forrtl: severe(24): end-of-file during read, unit 12, file <.Elev file name>

I needed to add an extra row, such that the total number of rows is WaveTMax/DT+1, i.e. running from 0 to WaveTMax in DT steps. (I am using HydroDyn v2.05.01)

Many thanks for all your help resolving these issues.

Kind regards,

Laszlo

Dear Laszlo,

For FAST models with SubDyn, the platform can be considered as the transition piece (TP) between the tower modeled in ElastoDyn and the substructure modeled in SubDyn. Of course, you can consider the mass etc. of the TP as part of the tower and/or the substructure, so effectively, the “platform” can be set with zero values for most terms.

Best regards,

Hello Jason, today I’ve completed few pending driver and system updates on my Win 10 PC. Unfortunately now FAST (v8) is constantly crashing. I’ve the error log files where am I supposed to send them? Looking forward for your response, thanks.

Dear Vikas,

You can attach them to your forum post (change the file extension if need be).

Best regards,