Stand-alone BeamDyn - How to input multiple point loads?

Hi,

Let us, please consider the stand-alone BeamDyn executable within the current OpenFAST version.

Although the section 3.2.5. of BeamDyn User’s Guide and Theory Manual dated (March, 2016) as well as the online-manual hint arbitrary and multiple point loads require the customization of the source code:

I do observe that multiple-point load variables and functionalities (e.g. MultiPointLoad, PointLoad variables) exist in the aforementioned version.

Question: Accordingly, I wonder whether a (transient or dead) multiple load application along beam axis is now possible for the stand-alone BeamDyn executable without modifying the source code, and if so, could you please briefly advise myself how to input such loading through a driver input file (IMHO, a small example should be enough)?

Kind regards,
Kuti

Hi,

I can now provide a MWE that I experimented so far, and its corresponding error message, respectively:

  1. The example was directly based on: OpenFAST/docs/source/user/beamdyn/examples/bd_driver_dynamic_nrel_5mw.inp

  2. I added the following lines into the original file:

1 NumPointLoads - Number of Point Loads (primary input file section header) ---------------------- MULTIPLE POINT LOADS -------------------------------------- 0.5 PointLoad(1,1) - Nodal point loads - Node No DOF No 0.0 PointLoad(1,2) - Nodal point loads - Node No DOF No 0.0 PointLoad(1,3) - Nodal point loads - Node No DOF No 0.0 PointLoad(1,4) - Nodal point loads - Node No DOF No 0.0 PointLoad(1,5) - Nodal point loads - Node No DOF No 0.0 PointLoad(1,6) - Nodal point loads - Node No DOF No 0.0 PointLoad(1,7) - Nodal point loads - Node No DOF No

  1. Accordingly, the modified file, bd_driver_dynamic_nrel_5mw.inp, became the following:

------- BEAMDYN V1.00.00 Driver INPUT FILE ------------------------------------- Dynamic analysis of rotating NREL 5MW blade under gravity force ---------------------- SIMULATION CONTROL -------------------------------------- 0.018 t_initial - Starting time of simulation (s) 2E-02 t_final - Ending time of simulation (s) 2E-03 dt - Time increment size (s) ---------------------- GRAVITY PARAMETER -------------------------------------- 0.0 Gx - Component of gravity vector along X direction (m/s^2) 0.0 Gy - Component of gravity vector along Y direction (m/s^2) 0.0 Gz - Component of gravity vector along Z direction (m/s^2) ---------------------- FRAME PARAMETER -------------------------------------- 0.0 GlbPos(1) - Component of position vector of the reference blade frame along X direction (m) 0.0 GlbPos(2) - Component of position vector of the reference blade frame along Y direction (m) 1.0 GlbPos(3) - Component of position vector of the reference blade frame along Z direction (m) ---The following 3 by 3 matrix is the direction cosine matirx ,GlbDCM(3,3), ---relates global frame to reference blade frame 1.000E+00 0.000E+00 0.000E+00 0.000E+00 1.000E+00 0.000E+00 0.000E+00 0.000E+00 1.000E+00 ---------------------- ROOT VELOCITY PARAMETER ---------------------------------- 1.0006 RootVel(4) - Component of angular velocity vector of the beam root about X axis (rad/s) 0.0 RootVel(5) - Component of angular velocity vector of the beam root about Y axis (rad/s) 0.0 RootVel(6) - Component of angular velocity vector of the beam root about Z axis (rad/s) ---------------------- APPLIED FORCE ---------------------------------- 0.0 DistrLoad(1) - Component of distributed force vector along X direction (N/m) 0.0 DistrLoad(2) - Component of distributed force vector along Y direction (N/m) 0.0 DistrLoad(3) - Component of distributed force vector along Z direction (N/m) 0.0 DistrLoad(4) - Component of distributed moment vector along X direction (N-m/m) 0.0 DistrLoad(5) - Component of distributed moment vector along Y direction (N-m/m) 0.0 DistrLoad(6) - Component of distributed moment vector along Z direction (N-m/m) 0.0 TipLoad(1) - Component of concentrated force vector at blade tip along X direction (N) 0.0 TipLoad(2) - Component of concentrated force vector at blade tip along Y direction (N) 0.0 TipLoad(3) - Component of concentrated force vector at blade tip along Z direction (N) 0.0 TipLoad(4) - Component of concentrated moment vector at blade tip along X direction (N-m) 0.0 TipLoad(5) - Component of concentrated moment vector at blade tip along Y direction (N-m) 0.0 TipLoad(6) - Component of concentrated moment vector at blade tip along Z direction (N-m) 1 NumPointLoads - Number of Point Loads (primary input file section header) ---------------------- MULTIPLE POINT LOADS -------------------------------------- 0.5 PointLoad(1,1) - Nodal point loads - Node No DOF No 0.0 PointLoad(1,2) - Nodal point loads - Node No DOF No 0.0 PointLoad(1,3) - Nodal point loads - Node No DOF No 0.0 PointLoad(1,4) - Nodal point loads - Node No DOF No 0.0 PointLoad(1,5) - Nodal point loads - Node No DOF No 0.0 PointLoad(1,6) - Nodal point loads - Node No DOF No 0.0 PointLoad(1,7) - Nodal point loads - Node No DOF No ---------------------- PRIMARY INPUT FILE -------------------------------------- "bd_primary_nrel_5mw_dynamic.inp" InputFile - Name of the primary input file

  1. This was executed as:
./beamdyn_driver bd_driver_dynamic_nrel_5mw.inp
  1. The error message as was below:

[code] **************************************************************************************************
BeamDyn Driver

Copyright (C) National Renewable Energy Laboratory

This program is licensed under Apache License Version 2.0 and comes with ABSOLUTELY NO WARRANTY.
See the “LICENSE” file distributed with this software for details.


Running BeamDyn Driver
a part of OpenFAST - v1.0.0-dirty
linked with NWTC Subroutine Library

BD_ReadDvrFile:Invalid numerical input for file “bd_driver_dynamic_nrel_5mw.inp” occurred while
trying to read PointLoad.
BeamDyn Driver encountered simulation error level: FATAL ERROR

Aborting program.[/code]

Could you please at least give me some hint about where I should look at for the solution, if possible?

Many thanks,
Kuti

Hi,

I think, I got it. The above modification was wrong because MultiPointLoads is retrieved from the input file by AllocAry (nwtc_io::allocary::allcary2) instead of ReadVar.

The error message disappeared when I replaced the above modification with the below:

2 NumPointLoads - Number of Point Loads (primary input file section header) ---------------------- MULTIPLE POINT LOAD INPUTS -------------------------------------- 0.5 0.0 0.0 0.0 0.0 0.0 0.0 0.75 0.0 0.0 0.0 0.0 0.0 0.0

I am still not sure whether this is the correct usage, yet a bit more confident now.

Could you please advice me if this is a correct way of the usage, and if possible, other points I need to pay attention to enable correct multi-point loading computations?

Many thanks,
Kuti

Hi again, :slight_smile:

  1. It seems that no further action is needed to allow multi-point loading despite the below statements:
  1. Because subroutine Transfer_MultipointLoads in Driver_Beam_Subs.f90 performs the following:

DO i = 1,DvrData%NumPointLoads DvrData%mplLoads%Force(1:3,i) = DvrData%MultiPointLoad(i,2:4) DvrData%mplLoads%Moment(1:3,i) = DvrData%MultiPointLoad(i,5:7) ENDDO

  1. Although the following part of SUBROUTINE BD_InputSolve in Driver_Beam_Subs.f90 confused me for a while, I then understood that the input tip loads are summed with the the point load closest to the blade tip(?):

u%PointLoad%Force(1:3,u%PointLoad%NNodes) = u%PointLoad%Force(1:3,u%PointLoad%NNodes) + DvrData%TipLoad(1:3) u%PointLoad%Moment(1:3,u%PointLoad%NNodes) = u%PointLoad%Moment(1:3,u%PointLoad%NNodes) + DvrData%TipLoad(4:6)

  1. Everything seems fine. The only missing point for myself is that why the following warning was made in SUBROUTINE BD_InputSolve in Driver_Beam_Subs.f90. In Driver_Beam.f90, Transfer_MultipointLoads subroutine is executed before BD_InputSolve anyways?:

PS: I do share this line of thought, and the details, so that someone else might find it helpful in the future. My apologies if this disturbs anyone.

Envision Energy modified the BeamDyn driver to allow multi-point loading. When our code for this was merged into the OpenFAST repository, we did not include documentation, which appears to be the cause of most of the confusion here.

The multi-point loads are specified at the end of the APPLIED FORCE section, or they can be omitted:

---------------------- APPLIED FORCE ---------------------------------- 0.0000E+00 DistrLoad(1) - Component of distributed force vector along X direction (N/m) 0.0000E+00 DistrLoad(2) - Component of distributed force vector along Y direction (N/m) 0.0000E+00 DistrLoad(3) - Component of distributed force vector along Z direction (N/m) 0.0000E+00 DistrLoad(4) - Component of distributed moment vector along X direction (N-m/m) 0.0000E+00 DistrLoad(5) - Component of distributed moment vector along Y direction (N-m/m) 0.0000E+00 DistrLoad(6) - Component of distributed moment vector along Z direction (N-m/m) 0.0000E+00 TipLoad(1) - Component of concentrated force vector at blade tip along X direction (N) 0.0000E+00 TipLoad(2) - Component of concentrated force vector at blade tip along Y direction (N) 0.0000E+00 TipLoad(3) - Component of concentrated force vector at blade tip along Z direction (N) 0.0000E+00 TipLoad(4) - Component of concentrated moment vector at blade tip along X direction (N-m) 0.0000E+00 TipLoad(5) - Component of concentrated moment vector at blade tip along Y direction (N-m) 0.0000E+00 TipLoad(6) - Component of concentrated moment vector at blade tip along Z direction (N-m) 2 NumPointLoads - Number of point loads along blade Blade span eta(-), Fx(N), Fy(N), Fz(N), Mx(N-m), My(N-m), Mz(N-m) 0.000 0.0000E+00 0.0000E+00 0.0000E+00 0.0000E+00 0.0000E+00 0.0000E+00 1.000 0.0000E+00 0.0000E+00 0.0000E+00 0.0000E+00 0.0000E+00 0.0000E+00 ---------------------- PRIMARY INPUT FILE -------------------------------------- "BeamDyn.dat" InputFile - Name of the primary BeamDyn input file
The driver maps the point loads specified in the driver input file to the finite element points, adds any TipLoad that is specified (the last finite element point is at the tip), and sends this as input to BeamDyn. Any distributed loads (DistrLoad) specified in the driver are applied to each node of the input quadrature mesh (as before).

The @VA comment can probably be ignored. I think it refers to a previous iteration of code but the comment didn’t get removed.

Many thanks for your answer!

Hi everyone, I am Pietro, a phD student from Politecnico di Torino.
I am just learning how to use Openfast. In particular, I am using the standalone version of Beamdyn, using ANBA4 Sonata as a preprocessor for stiffness and mass matrix. I am interested in evaluating hydrofoil performances.
Since Aerodyn does not perform 3d aerodynamics, i will use flow5 (the new and scriptable version of the famous xflr5) for the aerodynamic loads.

I am running some beamdyn prebuilt examples; they run just smooth.

Anyway as soon as I add the part for the NumPointLoads (copied from this post) I get this error:

"Running BeamDyn Driver a part of OpenFAST - v3.0.0
linked with NWTC Subroutine Library

BD_ReadDvrFile:Invalid numerical input for file “bd_driver_point_loads.inp” occurred while trying
to read PointLoad.
BeamDyn Driver encountered simulation error level: FATAL ERROR

Aborting program."

I am using the version v3.0.0 of openfast.

In the attachments you will find all the files to run the example i am talking about, and, in particular, the three different driver file .inp file which I used to run beamdyn with the simple prompt command: “./beamdyn_driver bd_driver.inp”

  1. bd_driver.inp (normal file from the example without the point loads ) → run smooth
    2)3) bd_driver_point_loadsv2.inp and bd_driver_point_loads.inp → (which are the bd_driver.inp with the addition of the point loads in the two different versions that were provided in this post ) . both these file gave me the above error

Thanks in advance for any kind of help

Kind regards,

Pietro
beamdyn_7_myexample.tar.gz (881 KB)

Dear Pietro,

I’m not sure in which version of BeamDyn this changed, but the sample models in the current OpenFAST r-test for v3.0 show two header lines in the point loads table instead of the one line you use, i.e.:

Non-dim blade-span eta Fx Fy Fz Mx My Mz (-) (N) (N) (N) (N-m) (N-m) (N-m)
Does adding an extra header line in the table solve your problem?

Best regards,

Dear Jason,
thank you for your help, problem solved :slight_smile:

The problem was indeed the extra header line that was missing; moreover i was using comma separated value instead of space separated values.

Kind regards

Pietro

Dear Sir,

Is there a way I can create a beamdyn input file using the FASTv7 Seismic Module? Or maybe recompile FAST v7 Seismic Module to include BeamDyn?

Thanks
Subham

Dear @Kashyap.Subham,

The BeamDyn interface to FAST was not established until FAST v8. You cannot use BeamDyn within FAST v7.

Best regards,

Hello everyone,
I am Álvaro, a Master student at Politecnico di Torino. I am trying to use the stand-alone version of BeamDyn to perform an analysis on the IEA 15 MW reference turbine blade. In particular, I am interested in applying multiple point loads to the blade, but I am having some issues.

I downloaded the stand alone version from the “NREL Data and Tools” page (BeamDyn | Wind Research | NREL), getting “BeamDyn_v1.01.04.exe”.
Using the sample input files which come with that BeamDyn version, the program runs smooth. However, these files don´t include the multiple point loads (I guess they were implemented later). When I try to add into them the code mentioned above in this thread, I get this error:

"Running BeamDyn Driver (v1.00.02, 5-Apr-2016)
linked with NWTC Subroutine Library (v2.09.00, 23-Jul-2016)

Running BeamDyn (v1.01.04, 26-Jul-2016).
BD_Init:BD_ReadInput:BD_ReadPrimaryFile:OpenFInpFile:The input file, “Non-dim”, was not found.
BeamDyn Driver encountered simulation error level: FATAL ERROR
Aborting program.”

I then discovered some more recent sample input files in the latest BeamDyn documentation (4.2.4.8. Appendix — OpenFAST v3.3.0 documentation), which do include the multiple point loads implementation. However, when trying to run these files, I get this new error:
“Running BeamDyn Driver (v1.00.02, 5-Apr-2016)
linked with NWTC Subroutine Library (v2.09.00, 23-Jul-2016)
BD_ReadDvrFile:Invalid numerical input for file “Driver_2.inp” occurred while trying to read
t_initial.
BD_ReadDvrFile:Invalid numerical input for file “Driver_2.inp” occurred while trying to read
forrtl: severe (157): Program Exception - access violation
Image PC Routine Line Source
BeamDyn_Driver_x6 00007FF68B76C31A Unknown Unknown Unknown
BeamDyn_Driver_x6 00007FF68B859EC4 Unknown Unknown Unknown
BeamDyn_Driver_x6 00007FF68B8A83C6 Unknown Unknown Unknown
BeamDyn_Driver_x6 00007FF68B95A3A5 Unknown Unknown Unknown
BeamDyn_Driver_x6 00007FF68B959157 Unknown Unknown Unknown
BeamDyn_Driver_x6 00007FF68BFB8CF6 Unknown Unknown Unknown
BeamDyn_Driver_x6 00007FF68C4E2C0C Unknown Unknown Unknown
KERNEL32.DLL 00007FFE1BE6244D Unknown Unknown Unknown
ntdll.dll 00007FFE1CC6DF78 Unknown Unknown Unknown”

I do not know if the problem is that my current version of BeamDyn is unable to read the new input files. I have been searching on the github repositories (openfast and r-test) but I have not been able to find anything to solve it.
Any kind of help would be highly appreciated, I don´t know if a am making proper use of the tool as I am getting started with the software and everything is new for me :slight_smile:
Kind regards

Dear @Alvaro.Moreno,

BeamDyn has been upgraded a lot (with many issues fixed and new features added) since the archived version on the “NREL Data and Tools” page. So, when using BeamDyn, I would not use the archived version, but rather use the version that is actively being developed in the OpenFAST GitHub repository: GitHub - OpenFAST/openfast: Main repository for the NREL-supported OpenFAST whole-turbine and FAST.Farm wind farm simulation codes.. The input file format has changed several times (documented here: 4.1.2. API changes between versions — OpenFAST v3.3.0 documentation), so, the new version of BeamDyn cannot use the archived input files and the new input files are not compatible with the archived BeamDyn standalone driver executable.

The OpenFAST GitHub repository does not contain precompiled binary executables of the various standalone driver programs for each module. So, to run the most up-to-date standalone BeamDyn driver will require that you compile this driver from the source code and compile scripts provided in the OpenFAST GitHub repository.

Best regards,

Dear Mr Jonkman,
I’d like to use the beamdyn standalone version and implement static loads in function of the blade span. How can I compile the source code of beamdyn to obtain a working executable? should I use external software to compile the code? How can I do that? sorry but I am not an expert on software. Can you give me advice on that?
edit: I discovered in openFAST website that I can do that with visual studio and open openfast\vs-build\beamdyn\beamdyn-w-registry.sln, but I am not sure how to use it.
Thank you in advance for your eventual response,
Best regards,
Massimo Sirigu

Dear @Massimo.Sirigu,

Guidance for compiling OpenFAST or its standalone modular drivers is provided here: 2. Installing OpenFAST — OpenFAST v3.4.1 documentation. On Windows, I agree that using Visual Studio with Intel Fortran compiler is easiest. Visual Studio Community 2019 and newer with Intel Fortran Compiler for oneAPI are now free software. The hardest part of compiling is actually installing Visual Studio Community with Intel Fortran Compiler for oneAPI.

Best regards,

thanks for the response.
best regards,
Massimo

Hello, I think I manage to install VS and intel Fotran compiler. I opened the project “BeamDyn-w-registry.sln” in visual studio. Now what should I do now? I expect a Beamdyn_driver.exe to be called by the prompt command window, using the .inp to run the code. How can I obtain that?

Dear @Massimo.Sirigu,

Have you followed the last few steps from the Visual Studio in Windows compiling instructions (2.2.3.1. Building OpenFAST on Windows with Visual Studio — OpenFAST v3.4.1 documentation) to compile the standalone BeamDyn executable?

Then you should be able to run this executable through a Windows command prompt window and reference the BeamDyn driver input file as you state.

Best regards,

hello, thanks for your support. I tried first to build openFAST and I followed the instructions given by the link, but it was not succesful.
it gave me some errors from VS, and also in bin folder I have not obtained the .exe file for openFAST: how can I solve these problems? they are due to the wrong installation of Intel fortran compiler?


Dear @Massimo.Sirigu,

A similar question was asked and answered on the OpenFAST github issues page: Error in Compiling openFAST Windows 10 through visual studio · Issue #1249 · OpenFAST/openfast · GitHub.

Best regards,