User input kinematics for floater in FAST

I have two questions regarding user input waves in FAST v8. I have created user input kinematics and wave time history files for FAST to then import, which it does without error when WaveMod is set to either 5 or 6. My questions are:

  1. Why do the wave surface elevation time histories output from Wave1Eleve differ from those of the input .Elev file? I have checked with and without 2nd order effects and the wave time history is slightly off (See elevation figure).

  1. When WaveMod = 5, does FAST calculate the kinematics at each of the nodal locations in the HD.sum output file?

  2. Is it possible to successfully implement user input kinematics files for floating systems in FAST v8? When run with my kinematics, it seems that the floater “freefalls” according to the heave displacement, even when all my kinematics files are set to zeros. Is this because HydroDyn is not setup for user input kinematics with a floater? (see heave figure)


Thank you for your help.

Dear Spencer,

Here are my answers to your questions:

  1. I would expect the wave elevation output by HydroDyn to match the input wave elevation with WaveMod = 6. With WaveMod = 5, I would expect the wave elevation output by HydroDyn to match the input wave elevation only if the second-order wave kinematics are disabled. With WaveMod = 5, the input wave elevation is assumed to be first-order such that the second-order terms are added to it, which would have some influence on the wave elevation.

  2. Yes.

  3. Yes, it is. However, the WaveMod = 6 is not compatible with the potential-flow solution of HydroDyn. WaveMod = 5 is compatible with both the potential-flow and strip-theory solutions of HydroDyn. What simulation set-up resulted in the heave displacement you posted? Which version of FAST/HydroDyn are you using?

Best regards,

Hi Jason, thank you for the prompt reply.

I am running FAST v8.16, with HydroDyn v2.05, with the Baseline using the OC4 semisub.

  1. After making sure 2nd order waves were turned off, I still got wave surface elevations output that did not match the input, as shown in the attached figure, though they show the same general shape. I have attached the .ELEV file in case the formatting is wrong (formatted as a .txt for convenience).

Wave Comparison.png

  1. Thank you, just wanted to make sure that the kinematics were varying spatially and temporally since the floater is large, the kinematics could be greatly different between the upper columns.

  2. I am running the simulation with WaveMod = 6, 2nd order waves turned off, PotMod = 0, 2nd order platform forces turned off, and all of the PropPot flags set to FALSE. When WaveMod = 5 and all other settings the same, the simulation runs as expected. When WaveMod is changed to 6, the structure responds as in my previous post. A copy of my HydroDyn input file is attached.
    RegSFElev.txt (168 KB)
    HydroTestSpencer.txt (30.3 KB)

After digging a little more on my 3rd question, it seems that the drop off in the heave direction is due to how the pressures around the floater are implemented. If all of the values in the .DYNP file are set to zero the structure heaves upward. Is this file supposed to have static pressure head added to it as well? Is it supposed to have a correction for atmospheric pressure? I would have expected the analysis to move along nicely with no dynamic pressure in the model but that was not the case.

Dear Spencer,

Regarding (1), I think that the wave-elevation time-series are not matching between input and output with WaveMod = 5 because you’ve set lower and upper cut-off frequencies of the first-order wave spectrum.

Regarding (3), the dynamic pressure term should not include the static pressure head (which is calculated internally within HydroDyn), nor should it include a correction for atmospheric pressure. For still water, the dynamic pressure would be zero throughout the fluid domain. I’m not sure I understand what you’re saying, but do you get the result you expect when you set the dynamic pressures to zero?

Best regards,

Dear Jason and Spencer,

I am using FAST v8 with WaveMod=6 as well. I have been having two of the issues Spencer mentioned, and would like to re-open the thread. Here are the two issues - one of them is fixed, the other is not.

(1) The surface elevation in my .Elev file is not the same as in FAST output. In my case the signals are completely different (see attached plot). Just in case the problem is what Jason mentioned for WaveMod=5, I have set the frequency limits to WvLowCOff=0 and WvHiCOff=1e3, but it did not solve it.

(3) At first, when using externally-generated wave kinematics my simulation also went unphysical (all signals went to 1e4 after the first time step). I realized the problem was in my kinematics files, since I had replaced the values in the nodes out of the water with the string “NaN”. This is literally interpreted by FAST as NaN and causes trouble. I have now used “X” as nonnumerical string instead, and it all works. Consistently with first-order, I am computing the dynamic pressure as p_dyn = -rho*phi_t, where rho is water density and phi_t is the time derivative of the velocity potential.

Please let me know if you have found the reason why the surface elevation is not the same in the .Elev file and the FAST output.


Dear Antonio,

I’m surprised that your output wave elevation is very different from your specified wave elevation. When using the WaveMod = 6 wave option, HydroDyn will not modify (e.g. filter) the specified data in any way. Does your *.Elev file containing the wave elevations have exactly WaveTMax/DT rows and NWaveElev whitepace-separated columns containing numerical data? Which version of FAST are you using and have you modified the code in some way?

Best regards,

Dear Jason,

Thanks for your quick reply. I am using FAST v8.12.00a-bjj with HydroDyn v2.03.00c-adp.

As specified in the HydroDyn manual, my 7 wave kinematics files have WaveTMax/WaveDT=60/0.001=60000 rows and as many columns as internal nodes in the HydroDyn summary file. The .Elev file originally had also 60000 rows and NWaveElev=1 columns, and only numerical data. When I ran FAST with these files and WaveMod=6, it crashed with this error:

However, FAST runs if I add one more row to the .Elev file. In this case, the simulation ends normally and results make sense. Only that the wave elevation in the FAST output does not match the one in .Elev file (as in my previous message).

Dear Antonio,

I first suggest that you upgrade to the latest version of FAST and HydroDyn. There were several bugs in HydroDyn v2.03 that were fixed with the release of FAST v8.15 and newer. If the issue isn’t resolved straight away with that, it would be best to step through the solution with a debugger to see why the output wave elevation is different than that specified.

Best regards,

Dear Jason,

Thanks :slight_smile: I will do that.

Best regards

Dear Antonio and Jason,

Did you manage to figure why this occurred? I am facing the same issue. The .Elev file contains this wave elevation time history:

and I get this out of Wave1Elev:

Any help is greatly appreciated.

Kind regards,

Laszlo Arany

Dear Laszlo,

Are you using WaveMod = 5 or WaveMod = 6? Is your time series WaveTMax in length and based on a time step of WaveDT?

Best regards,

Dear Jason,

Sorry for the late reply, I did not work with FAST since April.

I am using WaveMod = 6, and the input files match the description in the HydroDyn manual, i.e.

  • the number of columns equals the number of nodes in the HydroDyn summary file,
  • the order of columns corresponds to the order of the nodes in the HydroDyn summary file,
  • the number of rows equals WaveTMax/WaveDT and time runs from 0 to WaveTMax-WaveDT, and
  • there is no time column or header row in the kinematics files.

The only difference compared to the HydroDyn manual description is that there is one extra row in the .Elev file (i.e. the wave elevation runs from 0 to WaveTMax), because FAST runs out of data and falls over when elevations are given only from 0 to WaveTMax-WaveDT.

I did some further investigation on this, and the external wave kinematics functionality does not seem to work at all, loads are not calculated.

I ran a simplified scenario of a simple sinusoidal (Airy) wave with Hs=6m and Tp=10s. I generated the kinematics files by analytical formulae as described e.g. here: I used the most general intermediate depth formulae (Figure 1). Then I ran the model using both WaveMod=1 and WaveMod=6 (i.e. internally generated Airy wave and external wave kinematics for the same Airy wave).

My HydroDyn, ElastoDyn and SubDyn files for the two runs are identical, the only difference being WaveMod=1 vs 6. What I find is that the load in the X direction (wave direction) is properly calculated for the WaveMod=1 case, but for the WaveMod=6 case there’s an initial transient and then the structure seems to be vibrating at its eigenfrequency with no excitation. I have attached Figure 2 which shows X, Y, Z reaction forces, as well as Figure 3 with the output wave elevations; the latter is again off like in my previous post. However, there are some changes in it that seem to follow the frequency of the actual wave elevation time history. This behaviour is similar to that reported by Antonio above

I have the following questions:

  1. The wave kinematics files should have data for the NODES in the HydroDyn summary file, not for joints or members. Is this correct?
  2. Can there be an issue with carriage return/line feed characters? How are the kinematics files parsed by HydroDyn?
  3. Has this external wave kinematics feature been tested? Are there any examples available that I could look at?
  4. The joint outputs described in Appendix C of the HydroDyn manual do not seem to work, e.g. J1Vxi / J1Axi / J1DynP are all zeros for all time steps (tried several different joint IDs, always the same). Is this supposed to work or is it not yet fully implemented?
  5. Columns can be separated by a single white space (i.e. not tab character or comma). Is this correct?
  6. Any other ideas on what else could I try / investigate? Is there any further information I could provide that would help?

Thank you very much for all your help.

Kind regards,
Laszlo Arany

Figure 1: Airy wave parameters

Figure 2: Reaction forces, WaveMod=1 vs WaveMod=6.

Figure 3: Wave elevation time history, WaveMod=1 vs WaveMod=6

Dear Jason,

Upon further investigation, I found this old repository:

This had some example input files in it, which had a header row on top, the columns were separated by several white spaces, and the nodes out of the water had the non-numeric value of “##########”.

In my file, I used “N/A” as non-numeric value for nodes outside the water, which may have caused the issue with the calculation of wave loads and output of wave kinematics. I modified the format of my files to be the same as “TEST_004” in the above repository, and now I have loads calculated and kinematics output properly.

The kinematics of the internally generated Airy wave and my external wave kinematics files match exactly, as shown in Figure 1 below. (This is consistently true for various joints along the monopile structure).

As can be seen in Figure 2, the X reaction force matches relatively well as well. However, the Y mudline bending moment time history is very different. During the first few waves, the reaction force is similar between WaveMod=1 and WaveMod=6, but then the response seems to be dynamically amplified for the WaveMod=6 case which does not occur for WaveMod=1.

As mentioned previously, the SubDyn, ElastoDyn, HydroDyn and FAST driver files are all the same, the only difference is WaveMod=6 vs WaveMod=1.

  1. Is there some kind of mechanism that adds extra damping when WaveMod=1 is used compared to WaveMod=6? I have attached the HydroDyn file I am using.

  2. Any suggestions what could be the reason for this behaviour?

WaveDummy_WM1_HydroDyn.txt (17.8 KB)

Dear Laszlo,

I’m glad you found a working example. The CertTest included in the standalone HydroDyn archive has this same example:

Looking into this a bit I’ve learned that the format of the various wave-kinematics input files used with WaveMod = 6 are very finicky, with very specific requirements regarding data format, spacing, etc… I’ve opened an issue on OpenFAST to get this fixed in a future release:

I would not expect to see any difference in the structural response between simulations that only change from WaveMod = 1 to WaveMod = 6 if indeed the wave kinematics are identical in both cases. Have you checked that indeed the wave kinematics are identical at all HydroDyn analysis nodes?

Best regards,

Dear Jason,

I am facing the similar problem as the input wave elevation is different from wave elevation in the output file. I have attached my input files, please kindly advice me on this.

Satish J (2.95 MB)
TEST_004 (2).zip (2.99 MB)

Dear Satish,

I only looked briefly at your files and noticed that you have a time column in the wave-elevation file. None of the wave kinematics files for the WaveMod = 6 option should have a time column.

Best regards,

Dear Jason,

Thanks for your reply.

When I remove the time column in the wave elevation (have not included time column in any of the files), everything is zero in the wave elevation output. What might be the reason for this?

Satish J

Dear Satish,

Could the data not be read in properly? Which version of FAST / OpenFAST are you using? The file format requirements were very “finicky” in older versions, as indicated in the OpenFAST issue mentioned above–see: However, this was improved in OpenFAST v2.2.

Best regards,

Dear Jason,

Thanks for your reply.

I am using OpenFAST-v2.4.0. I have structured the input wave kinematic files as you suggested and I have attached the files.
But when consider WaveMod=5, I am getting proper wave elevation in output.

Satish J (2.91 MB)
TEST_004 (2).zip (2.99 MB)