Dynamic Stall Theory and Implementation

This topic is dedicated to the discussion of dynamic-stall theory and implementation.


I am trying to add Stig Øye Dynamic stall model into AeroDyn and I would like to use stall angle of the airfoils in my code. Unfortunately, I did not manage to find where/how you read it in the AeroDyn source code. I could see that you read “Beddoes stall parameters” such as “zero lift angle of attack, AOL”, “CNA”, and etc. in READFL subroutine (AeroSubs.f90) but there is no stall angle of attack there.

I would really appreciate it if you could help me in this matter.

Thank you very much for you time.

Best regards,


I believe that input parameter is a relic of the old days when AeroDyn included the Gormont (sp?) dynamic-stall model. If you look at Page 21 of the “AeroDyn User’s Guide,” you will see that the (unnamed) parameter is “reserved for future use and backward compatibility.”

I am currently redoing the input files and those relics will no longer be in them.


Hi Marshall,

Thanks for your help. These are the lines that you mentioned they are no longer used, right?


And I guess i need to read the 5th line of AeroDyn input myself in order to have Stall angle of attack.

Best regards,

Dear Arash,

Those lines look like the ones for the unused parameters. As you are modifying the code, you can do whatever you like. You can modify one to read in the stall angle (it doesn’t have to be the 5th line) and delete the others. You would have to delete the lines in your input files if you did that. It’s really up to you.

Please realize that you will have to make a similar effort if you want to use future versions of AeroDyn. The next version will not have any of those lines.


Thanks a lot for your help Marshall.

Best regards,

I am trying to model the dynamics of the extreme gust of around 60m/sec.I am also using BEDDOES. But when i try to run the simulation i get the error at some instant of simulation as:
“FAST_Solution:CalcOutputs_And_SolveForInputs:SolveOption2:AD_CalcOutput/Inflow:Inflow:infdist:MATINV:gaussj: Singular matrix encountered.” and warning as:
““FAST_Solution:CalcOutputs_And_SolveForInputs:SolveOption2:AD_CalcOutput:ELEMFRC:BeddoesModel:ATTACH: Supersonic condition has
subsided with Blade #1 element #1.
AD_CalcOutput:ELEMFRC:BeddoesModel:ATTACH: Blade #1 element #5 is supersonic! Other elements are likely supersonic as well.
Supersonic mach nos. will be set to 0.7 to attempt continuation.
AD_CalcOutput:ELEMFRC:BeddoesModel:ATTACH: Supersonic condition has subsided with Blade #2 element #1.
AD_CalcOutput:ELEMFRC:BeddoesModel:ATTACH: Blade #2 element #10 is supersonic! Other elements are likely supersonic as well.
Supersonic mach nos. will be set to 0.7 to attempt continuation.
AD_CalcOutput:ELEMFRC:BeddoesModel:ATTACH: Supersonic condition has subsided with Blade #3 element #1.
AD_CalcOutput:ELEMFRC:BeddoesModel:ATTACH: Blade #3 element #9 is supersonic! Other elements are likely supersonic as well.
Supersonic mach nos. will be set to 0.7 to attempt continuation.””

can you please help with the solution for this problem so that i could complete my simulation to analyse the effect of extreme gust!!! what is the parameter to be changed to rectify the problem??? kindly help!!

Dear Srinivasa,

My guess is that your model is going numerically unstable for some reason. Warnings regarding a “small angle approximation violation,” warnings regarding “supersonic blades,” a simulation crash, or very large deflections that occur in the time series are good signs of a numerical instability. Without knowing more about your simulation settings, it’s hard to know that what the problem is. Please use “Search…” in the upper right of the forum to search for “supersonic” to see how we’ve solved similar problems in the past.

If you have a gust around 60 m/s, I’m assuming you are modeling a situation with a parked/idling rotor with the blades feathered to 90 deg? What is a typical angle of attack? Please note that the BEDDOES model is applicable for angles of attack in the linear and stall regions of the airfoil. The model may not be accurate for much larger angles of attack.

Best regards,

Hi everyone,

I have been reading the theory behind the different dynamic stall parameters and I’m a little bit confused about the definiton of alpha0 for the NACA64_A17.dat of the 5MW reference turbine. The value defined in the provided airfoil is -4.432. However It does not match with the provided definition. Using linear interpolation I obtain an angle of -3.8381 .

Is the given angle correct? If so, what is the theory behind it?

The rest of airfoils seems to match correctly,

Thank you,

Dear Albert,

I see where you are getting the value of -3.8381, by using the angles of attack (AoAs) on either side of the 0-lift curve. The value of -4.432 came from using a best-fit line of the Cn versus AoA curve over a larger range of AoA, from 0 to 8 degrees, using the AirfoilPrep preprocessor: nwtc.nrel.gov/AirFoilPrep. The values are bit different due to a small amount of nonlinearity in the Cn versus AoA curve. The range of AoA from 0 to 8 degrees was somewhat arbitrary, and playing around with the AoA range in AirfoilPrep a bit, I can get values closer to yours. Have you noticed much difference in the results when changing this value?

Best regards,

Hi everyone,

Can somebody point me towards the theory of Beddoes-Leishman dynamic stall model which is used in FAST v15. Also, I have read in various places that the profile dependent parameters required in any dynamic stall model are generally obtained through experimental results. In that case, how is FAST assuming the parameters?

Thank you,

Dear Saptarshi,

The implementation of the Beddoes-Leishman unsteady airfoil aerodynamics (UA) model of AeroDyn v15 is documented in the following draft report: wind.nrel.gov/nwtc/docs/UnsteadyAero_Manual.pdf (this is a draft report, and updates are in progress).

There are many UA model parameters specified in the airfoil data input files for AeroDyn v15, with DEFAULT settings for most parameters. See section 4.4 of the draft AeroDyn User’s Guide and Theory Manual for more information: wind.nrel.gov/nwtc/docs/AeroDyn_Manual.pdf.

Best regards,

Thanks a lot. I really appreciate it.

In “The Unsteady Aerodynamics Module for FAST” (28th. February 2017), the onset of dyanmic stall is said to occur when the effective normal force coefficient C’_n exceeds a specific value C_n1 at leading edge separation. Since this is supposed to be used in HAWT applications, I assume this method is optimized for low Mach numbers (M < 0.3).
In “A Modified Dynamic Stall Model for Low Mach Numbers” by W. Sheng et al., which is also mentioned in the FAST 8 documentation, a different approach is chosen by delaying the effective AOA by a difference obtained from a linear dynamic_stall_onset_angle vs reduced_pitch_rate-fit from airfoil moment break data. This produces good results on NACA 0012, which is one of the airfoils I am interested in.

Do both approaches perform similarly for low mach numbers or would one be preferable for a certain set of airfoils?

Dear Marc,

Sorry, but I don’t know enough about these two approaches to comment. And unfortunately, Rick Damiani–who led that report–is no longer at NREL. Hopefully someone more knowledgeable about these approaches can respond.

Best regards,

Thanks Jason. I will then try to compare the results for both approaches once I finished the implementation, provided I find the required model parameters.

Another question: in the FAST 8 documentation, the non-dimensional time constants T_alpha and T_q are multiplied by a factor of 0.75. The manual explains “Note that Leishman (2011) recommends the use of the factor 0.75 for Tα ( M ) and Tq ( M ) to account for three- dimensional effects not included in piston theory.”. I would like to understand where this factor 0.75 comes from but I can’t find that report. Are these 3D effects rotaional effects, i.e. coriolis force, or general effects also applicable for linear motion?

Hi Marc,

I believe this report is an internal report delivered by Leishman to NREL and I’m not sure if it can be publicly shared. I’m quoting below the part that mention this:

“Based on correlation studies with oscillating airfoil measurements, the value of the foregoing
time constant in the L-B model has been modified by multiplying by a factor of 0.75. Justification
for this change comes about by recognizing that piston theory is a one-dimensional theory and that
for a two-dimensional airfoil there will be “end effects” at the leading and trailing edges of the

The problem is that there is no reference pointing to the correlation studies. Maybe this is something we can find by digging through the papers published by Leishman. But it seems that the effects captured here are 2D effects and not the 3D effects you mentioned. Hopefully that answers part of your question. Let us know if you find the reference from Leishman. Thanks!

Hi Emmanuel

yes, this answers my question that this factor is not a special property of rotational motion but generally applicable. Thank you!

Dear Jason,

unfortunately the link to the documentation of the unsteady aerodynamics model is not working any more. Could you provide a new link?

Thank you very much,