AeroDyn v13 Interface


I am looking into writing an interface between AeroDyn and an external structural dynamics code. The description of the new interface ( … erface.pdf) is quite helpful, but I am still unsure about the coordinate systems for the input to the AD_CalculateLoads function. What exactly is meant by “the markers contained in it must be defined for the body fixed system”?

With body-fixed markers, to take a simple example, for a rotor with rigid blades, no shaft tilt, no cone, no blade pitch, and constant rotor velocity:

  • all positions in the AeroConfig_type would then be (/0.0,0.0,0.0/)
  • the hub rotational velocity would be (/omegadot,0.0,0.0/)
  • the hub orientation would be
    (/1.0, 0.0, 0.0/)
    (/0.0, cos(omega), -sin(omega)/)
    (/1.0, sin(omega), cos(omega)/)
  • all other orientations in the AeroConfig_type would be 3x3 identity matrices
  • the markers in the AllAeroMarkers_type would not change from the initialization step

(if I am reading correctly)

Examining the AeroDyn source code, however, it would seem that the AeroConfig_type positions, orientations, and velocities should instead be given in the global reference frame, but I am unsure about the reference frame for the AllAeroMarkers_type markers. From the structural code’s point of view, it would be easiest to give reference to the global frame.

Thanks for any clarifications!


Dear Erin,

Let me clarify. By “body fixed”, we mean that the markers move and orient themselves with the body they are attached to. However, the position, orientation, translational velocity, and rotational velocity of the body-fixed markers should be all defined in the global coordinate system, except where stated otherwise. This is described in the “Derived Types Marker and Load” section of the document.

So, in your example, the position of the hub should be the (X,Y,Z) location of the hub in global coordinates. The hub rotational velocity and orientation you specify are correct, although one typically uses the variable “omega” for the rotational speed instead of the azimuth angle. The AllAeroMarkers type is returned relative to the blade-coordinate system during initialization, but when the structural code calls routine AD_CalculateLoads(), AllAeroMarkers should be defined in the global coordinate system (so, they would change from time step to time step).

I hope that clarifies things.

May I ask what structural dynamics code you are linking AeroDyn with?

Best regards,

Thanks for the clarification, that certainly helps. I was just a bit confused by the description in the AD_CalculateLoads section.

In the first place we will couple AeroDyn with Simo/Riflex, later probably other software such as USFOS etc. We intend to use it for research purposes /comparative studies.


Hello again,

I am also curious to know if it is (or will be?) possible to model a tower in AeroDyn that is not vertical with respect to the ground (even in its ground-fixed or still water position).


Hi Erin,

It is not currently possible in AeroDyn to model towers that are not vertical in the undeflected position, but this is something we plan to include in our rewrite of AeroDyn.

Thanks for your input.

Best regards,

Dear all,

This is an old thread but I think my questions are quite related. I’m trying to see if we can couple our structural model at USTUTT to AeroDyn. I therefore set up a routine which calls AeroDyn for constant rotor speed without flexible bodies and constant blade pitch. I have now a couple of short questions:

Coupling: As our code is written in C (Simulink S-function) I could pass directly the structure types (e.g. “AeroConfig”) but I doubt this is the safest option. I would probably also convert the data types inside a Fortran glue code if I can’t convert them to the appropriate C types before calling AeroDyn. Do you have any recommendations for this?

AD version: I’ve seen there were some changes to AeroDyn related to the modularization framework but I guess you recomment using v13.00.02a-bjj until there is any new description of the new interface out?

Time step: For debugging I chose a timestep of 0.2 seconds with the NREL5MW turbine at rated conditions with a HH wind file with shear and I see that after about a quarter revolution a lag to my results (AoA alpha at outer blade element) appears (see figure attached). Does FAST have some interpolation algorithm between timesteps for the external forces?

Thanks a lot for your support!

I get this error when I try to run FAST v7
Do you know where the problem is?

Dear @Ali.Rouhbakhsh,

It looks like your AeroDyn input file is formatted improperly. Did you change the AeroDyn input file used in the Test01 CertTest, i.e., Test01_AD.ipt?

Best regards,