ElastoDyn + BModes: Tower input file and mode shapes calculation

Dear @Jason.Jonkman

I would like to simulate the behavior of the IEA-15-240-RWT turbine on a semi-submersible platform however I have come up with several doubts about the ElastoDyn module.

After reviewing the files found in the r-test GitHub repository, I have concluded that ElastoDyn requires three files:

  • Main file: whose path we must specify in the file. fst
  • Blades file (path specified in the main file)
  • Tower file (path specified in the main file)

I have no doubts at the moment regarding the main file, so I will focus on the remaining files.

Regarding the blade input file, we can find a “template file” in the IEA-15-240-RWT GitHub repository. My doubt is whether it is possible to use this file without any modification or not (all the tests use this data, hence my doubt).

Regarding the tower file, the properties differ in all cases, so I will have to generate this file from scratch.

First, I intend to assign both the damping and the adjustment coefficients a unit value (just like in the UMaine semi-submersible platform input file).

Secondly, concerning the distributed properties, I would like you to confirm if the formulas that I have to use are the following ones (taking into account that it is a cylindrical cross-section with diameter D, thickness t, and elastic modulus E):

Finally, the calculation of the Mode Shapes (Fore-aft and Side to Side) requires the use of BModes and the ModeShapePolyFitting.xls spreadsheet. Regarding this, I have quite a few doubts, but to avoid overwhelming you, I will talk about them in future posts.

Thank you beforehand.

Best regards

Ivan Fernandez

Dear @Ivan.Fernandez,

I agree with everything you’ve stated so far.

Best regards,

I’m glad to hear that. Now, I’d like to go over the use of ModeShapePolyFitting.xls spreadsheet before talking about BModes since I find it easier to use.

To be honest, thanks to the information available in the “Read me” sheet and different forum posts, I think I understand how it works, I would just like you to confirm if I am right or if I have misunderstood something

  1. This spreadsheet uses the results obtained with BModes to calculate the necessary polynomial coefficients for the ElastoDyn_tower/blade.dat file.

  2. When using BModes the most recommended method is the Normalized Improved Direct Method

  3. The inputs required in the spreadsheet are the following ones:

  • X values: fraction along the length of the beam (0 to 1)
  • Y values: Depending on the mode (A-F or S-S) these values ​​correspond to “flap disp” or “lag disp” parameters respectively, from the BModes output file
  • Slope at the bottom: obtained from BModes output file
  • Scaling factor of Y: Use the suggested scaling factor of y so that the Projection Method and Improved Direct Method agree
  • True ratio of maximum deflection to beam length for a deflected beam: 0.00556
  1. Coefficients must add to 1 and can be pasted directly into the ElastoDyn_tower.dat file

Thanks beforehand.

Best regards.


Dear @Ivan.Fernandez,

I agree. Please note that the Improved Direct Method does not rely on the “Scaling factor of Y” or the “True ratio of maximum deflection to beam length”.

Best regards,

Dear Jason,

I will take it into account. Now, regarding BModes, I have quite a few doubts, so I will expose them little by little.

First of all, I have doubts about which version of the program should I use. I have been able to download the program from the official NREL website, along with the guide and some examples. The problem is that examples’ input files do not include “Properties of tower support subsystem” section, so I am not sure whether version 3.00 is able to work with this file or not.

In one of the posts on the forum you include a link to your Google Drive page, from there I was able to download the following files:

  • Bmodes_v3.00.00.exe
  • BModes_JJ.exe

I think that the first file is the same zip file available on the NREL webpage, but I have not been able to find information about the second one, if you could clarify the difference between the two I would appreciate it.

Best regards


Dear @Ivan.Fernandez,

The version of BModes called BModes_JJ on this forum (which is available on my Google drive: BModes - Google Drive) differs from the standard version (BModes v3.00) in that BModes_JJ can be used to predict the mode shapes and natural frequencies of an elastic tower that is atop a fixed-bottom offshore substructure or floating offshore platform with proper treatment of the tower-base boundary conditions, i.e., the 6 rigid-body DOF motion of the transition piece or floater, including their 6x6 mass and stiffness matrices.

Best regards,

Dear Jason,

So, just for my understanding, BModes_JJ.exe program uses an input file that includes “Properties of tower support subsystem” section. However, in order to run theBmodes_v3.00.00.exe program it is necessary to include it.

Is it correct?

Best regards

Dear @Ivan.Fernandez,

BModes_JJ (which is available on my Google drive: BModes - Google Drive) is an update to BModes v3.00 (which is available here: BModes | Wind Research | NREL) and BModes_JJ needs the extra “Properties of tower support subsystem” section of the input file.

Best regards,


Now I would like to talk about the BModes input file section by section.

Regarding the General parameters section, I have doubts about the following parameters: radius (tower height above MSL), hub_rad (rigid base height), and hub_conn.

• Radius

According to the guide, it represents the tower height from the ground or MSL. However, since it is installed on a semi-submersible platform, its lowest point is above the MSL, hence my doubt, which of these lengths is the one that corresponds to the Radius parameter:

  • Vertical distance from the tower tip to the point of connection with the platform
  • Vertical distance from the tower tip to the MSL
  • Vertical distance from the tower tip to the bottom of the platform

• hub_rad

I think this parameter depends on “radius” parameter, however, I don’t know how to determine it. Is there some method for this, or is it something to be specified by the designer?

• hub_conn

Regarding this parameter, I think the correct option for my case would be the cantilever-embedded beam, but I would like to confirm it.

Thanks beforehand



Dear @Ivan.Fernandez,

Here are my answers to your questions.

radius should be the vertical distance from the MSL to the top of the tower

hub_rad should be the vertical distance from the MSL to the base of the tower

hub_conn should equal 2 for a floating platform

Best regards,