Run BModes with Hydrodynamic effect.

I downloaded two editions of BModes:

  1. – call BModesJJ.
  2. – call BModes.

I attached two .bmi files:


I run four simulations:

  1. Run BModesJJ with SNL6.bmi
  2. Run BModesJJ with SNL_pltfrm.bmi
  3. Run BModes with SNL6.bmi
  4. Run BModes with SNL_pltfrm.bmi

The results are following:

  1. 1st N.F is 0.1878
  2. 1st N.F is 0.1878
  3. 1st N.F is 0.195
  4. 1st N.F is 0.270 (Obviously this did not consider the tower draft in calculation)

But regarding the simulations 1, 2, and 3, which one should I choose to be a better result? And what is the reason for the difference between simulation 1 and 3.


Best regards,
SNL_pltfrm6.xls (7.57 KB)
SNL6.xls (7.21 KB)

Dear Lingling,

I’m not sure I can fully answer your question. It is difficult to support BModes now that the developer has left NREL.

Please note that if you wish for the platform stiffness matrix to be applied at the base of the tower in BModes, then I’m quite sure you should define your input file such that hub_conn = 2 (all 6 tower-base DOF enabled) or 3 (surge, sway, roll, and pitch tower-base DOF enabled). Also, I’m quite sure that you should set draft = ref_msl (= 30 m in your case). I’m actually not sure what BModes would do in the case you’ve specified in SNL_pltfrm6.bmi. Please see the CS_Monopile example available from here for a similar example:

I have not used the version from (BModesJJ).

My understanding is that BModesJJ and BModes use differen’t eignesolvers, which may explain some of the differences you’re seeing. Additional differences are discussed in the following forum topics:

Best regards,

Dear Jason,


And some other questions regarding .bmi input file:

  1. Can you write the fomula used to calculate “ixx_tip, iyy_tip, izz_tip”. Did you sum the mass moment of inertia at each cross section along the whole blade? And also, “ixy_tip, izx_tip, iyz_tip”.

  2. Does this matrix play any role in CS model?

Mooring-system 6X6 stiffness matrix (mooring_K):
2574800000.0 0.0 0.0 0.0 -22532500000.0 0.0
0.0 2574800000.0 0.0 22532500000.0 0.0 0.0
0.0 0.0 0.0 0.0 0.0 0.0
0.0 22532500000.0 0.0 262912300000.0 0.0 0.0
-22532500000.0 0.0 0.0 0.0 262912300000.0 0.0
0.0 0.0 0.0 0.0 0.0 0.0

Dear Lingling,

You can find formulas for computing inertias of rigid bodies in mechanical engineering textbooks. See my Nov 23, 2009 post in the forum topic found here for an example where I convert the inertias from the tower-top / yaw bearing to the center of mass of the rotor-nacelle assembly:

In BModes, if beam_type = 2, hub_conn = 2 or 3, and tow_support = 1, than yes, the 6x6 stiffness matrix at the platform reference point, mooring_K, will be used. My understanding is that BModes simply sums mooring_K with hydro_K.

Best regards,

Dear Jason,

I don’t find the BModes theory basis In the guide book “User’s Guide to BModes”, althrough there is only an outline of the technical approach. I am very interested in its basic theory of equations, so could you kindly tell me how can I get it ?


Best regards.

Dear Yaqi.

I have to be honest and say that I’m not too familiar with the BModes theory basis either.

However, the finite-element approach taken in BModes was taken from the University of Maryland Advanced Rotorcraft Code (UMARC), of which the BModes developer, Gunjit Bir, helped develop. For information on that, I suggest you start with Ref. [5] from the User’s Guide to BModes.

Best regards,

Is it possible to get the Fortran source code for the Alpha version of BModes? I want to compile it on Linux. I only see a Windows executable. Thank you.

Dear Matias,

I’m not aware of a Linux version of BModesJJ. And, unfortunately, due to the departure of Gunjit Bir from the NREL and his use of a proprietary eigensolver in BModesJJ that we don’t have access to, NREL is also currently unable to recompile BModesJJ.

Best regards,