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,