Error running standalone AeroDyn driver for Dynamic BEMT

Hello,

I am trying to follow the instructions in 4.2.1.5. AeroDyn Driver — OpenFAST v3.5.0 documentation to run the standalone AeroDyn driver in order to run some Dynamic BEMT analysis on the loads on a tidal turbine during braking (i.e. when the rotor speed is rapidly changing).

  1. My first question is whether I need to use the standalone AeroDyn module, or whether I could capture the dynamic effects of changing rotor speed using OpenFAST?

I have tried to run the example AeroDyn driver input file given at the bottom of 4.2.1.5. AeroDyn Driver — OpenFAST v3.5.0 documentation (I wanted to get this working before I go on to try using AnalysisType 2 for dynamic time-dependent analysis. When I do so, however, I get the following error:

“Dvr_ReadInputFile:Invalid numerical input for file “AeroDyn_driver_input.dvr” occurred while trying to
read HubHt.”

I have checked and the file format is exactly as shown in 4.2.1.5. AeroDyn Driver — OpenFAST v3.5.0 documentation.

  1. My second question therefore is: has anyone experienced a similar problem or is anyone able to advise where I might be going wrong?

I am sure it is not a straightforward file formatting issue but it may be something to do with the version of the AeroDyn Driver I am using and changes in file format requirements between versions? I have a compiled driver (AeroDyn_Driver_x64.exe) which I downloaded and installed using the instructions in https://www.nrel.gov/wind/nwtc/assets/pdfs/aerodyn-manual.pdf which now appear to be out of date as the download link (National Wind Technology Center's Information Portal | Wind Research | NREL) no longer works.

  1. My third question is therefore whether anyone could tell me where I can find and download the AeroDyn driver that corresponds with the instructions in 4.2.1.5. AeroDyn Driver — OpenFAST v3.5.0 documentation? I don’t have any experience of compiling drivers so it would be ideal if I could just download a compiled .exe file?

With all of these questions, it may just be that there is a way to run Dynamic BEMT modelling through AeroDyn with OpenFAST so that I can investigate the effect of rapidly changing rotor speed during braking. If so, any advice as to how to do so would also be gratefully received!

I hope that makes sense. Thank you very much for any help that the community are able to offer.

Best regards,
Tom

Dear @Tom.Summers,

You can use either the standalone driver for AeroDyn or OpenFAST coupled to AeroDyn to model cases with dynamic inflow resulting from time-varying rotor speed. For the standalone driver, you can specify time-varying rotor speed using AnalysisType = 2.

I would assume your error regarding HubHt is an error in your file format (perhaps because your input file is formatted for a different version than your executable). The input file changes with each release of OpenFAST are documented here: 4.1.2. API changes between versions — OpenFAST v3.5.0 documentation. As with any input file processing error, I would suggest enabling the Echo option to debug.

That said, from your third question, my guess is that you are using an old standalone version of AeroDyn from FAST v8 rather than from OpenFAST because NREL has not provided precompiled standalone driver executables along with the OpenFAST releases. Running the standalone drivers in OpenFAST requires that you first compile the standalone driver using the source code and compile scripts provided.

Best regards,

Thank you very much, @Jason.Jonkman.

I have never used Visual Studio or Cmake before, so I am struggling to compile the standalone version of AeroDyn. I am trying to “Build Solution” in MS Visual Studio using the contents of vs-build/AeroDyn downloaded from GitHub, but I think I may be missing something. The process appears to work, and I get a message saying that the build succeeded, but I then can’t find the AeroDyn_Driver.exe file. I also think there may be a problem as the solution explorer in Visual Studio says that the AeroDyn_Driver is incomatible (see screenshot below):

image

Do you have any advice for an absolute beginner as to how to compile the AeroDyn driver on a windows machine?

Also, you say that I could use OpenFAST coupled to AeroDyn to model cases with dynamic inflow resulting from time-varying rotor speed. This sounds like it might be an easier solution because I have the OpenFAST driver and I have succesfully used it to analyse cases with steady rotor speed. I can’t, however, see how to change to AnalysisType = 2 when using OpenFAST, or how to input details of the ‘Time-dependent Analysis’ (i.e. pointing to the ‘TimeAnalysisFileName’. I can only see how to do this with the standalone AeroDyn files (for which I am lacking the driver). Please could you explain how I could model cases with a time-varying rotor speed using OpenFAST?

Thank you very much for all your help!

Best regards,
Tom

Dear @Tom.Summers,

Regarding an “incompatible” error in Visual Studio, see a similar question asked and answered in the following issue on the OpenFAST GitHub site: Building errors using VS code and Windows · Issue #328 · OpenFAST/openfast · GitHub.

The AnalysisType input is only available through the standalone AeroDyn driver. When running AeroDyn coupled within OpenFAST, the rotor speed will be determined by the loads applied (including aerodynamic torque and generator torque), so, if you have a specific rotor speed variation in mind, you must set up the OpenFAST model to achieve the dynamics necessary to result in that rotor speed variation. In the standalone AeroDyn driver, the rotor speed time-series can be prescribed directly when AnalysisType = 2, but then, the rotor speed will not be influenced by the resulting aerodynamic loads.

Best regards,

Dear @Jason.Jonkman ,

Thanks again for your response. I really appreciate it.

I have followed all the advice I can find through the link you sent. I am using Visual Studio Community 2022, I have an Intel Fortran Compiler installed (with VS integration) and Intel oneAPI Math Kernal Library which includes BLAS and LAPACK math libraries.

The standalone AeroDyn Driver is now compiling, but I get the following summary from Visual Studio which highlights warnings:

Looking through the outputs above, here are some examples of the warnings that I get during the compile process:

1>C:\Users\Tom\Desktop\openfast-main\modules\openfast-registry\src\gen_module_files.c(2401,7): warning C4267: '=': conversion from 'size_t' to 'int', possible loss of data

C:\Users\Tom\Desktop\openfast-main\modules\nwtc-library\src\SysIVF.f90(124): warning #7416: Fortran 2003 does not allow this intrinsic procedure. [ERF]

C:\Users\Tom\Desktop\openfast-main\modules\nwtc-library\src\SysIVF.f90(259): warning #7416: Fortran 2003 does not allow this intrinsic procedure. [EXIT]

C:\Users\Tom\Desktop\openfast-main\modules\aerodyn\src\FVW_Subs.f90(466): warning #7416: Fortran 2003 does not allow this intrinsic procedure. [ISNAN]

x64\Release\AeroDyn_Inflow.obj : warning LNK4042: object specified more than once; extras ignored

When I try to run an example case such as ...\r-test-main\modules\aerodyn\ad_timeseries_shutdown with the standalone AeroDyn_Driver_x64.exe that I have managed to compile, it does run, but produces no output file (just a .outb file that I am unable to read), and I get the following message in the command prompt window:

It also tells me that the version of AeroDyn that I have managed to compile is “Unversioned”

When I try to run my own case using the AeroDyn driver that I compiled, I get the following fatal error that to me does not look like a file formatting error:

I don’t think I am trying to do anything too complicated. I just want to model the hydrodynamic torque developed by a tidal turbine during braking using Dynamic BEMT. I have therefore also looked at using ServoDyn to do this. I have tried using the following the High-Speed Shaft Brake inputs:

OpenFAST then runs successfully, including running ServoDyn. Unfortunately however, there is no change in rotational speed (even though the braking torque HSSBrTqF is much greater than hydrodynamic torque and controller time-step, DT, is one tenth of simulation DT).

Would you be able to help me either:

  1. Work out where I am going wrong compiling the AeroDyn standalone exectutable?
  2. Work out how to use ServoDyn to impose a very simple, constant braking torque on the turbine being modeled?

I am sorry that was such a long post! I just don’t know what info is relevant to people who may potentially be able to help me out and what is irrelevant. I would just be extremely grateful for any help and advice!

Best regards,
Tom

Dear @Tom.Summers,

It looks like you have successfully compiled the standalone AeroDyn driver executable; you can ignore the compiler warnings.

It looks like the AeroDyn r-test case is running as expected and completing normally. You can change the format of the AeroDyn output file from binary (.outb) to text-based (.out) by setting OutFileFmt = 1 in the AeroDyn driver input file. That said, NREL has provided scripts (e.g., in the MATLAB or Python toolboxes) that can read in the binary files directly.

The software will be “unversioned” if it was donwloaded directly rather than as a local GitHub repository on your computer.

Regarding the error running your file, my guess is something is formatted incorrectly, e.g., the user-specified time-dependent analysis table. Has an Echo file been generated to help you identify the issue?

When running OpenFAST, if changing torque does not influence the generator speed, I would guess you have the generator degree of freedom disabled. Set GenDOF = True in ElastoDyn.

Best regards,

1 Like

Thank you very much, @Jason.Jonkman! I think you’ve solved the issues I was having with both OpenFAST and standalone AeroDyn.

1 Like