How to apply aerodyn in double rotors

Dear all,
First of all, I’d like to introduce my ultimate goal, which is to apply Aerodyn to dual rotor fans considering the influence of the upper fan on the lower fan.
At my current stage, I mainly use the classic BEM module.(I have noticed that there are other computing modules, but this is not my focus at the moment, so I have not looked at the definition of subroutines for other computing modules in detail)

To achieve this goal, I am currently learning the computational procedures of AeroDyn under the guidance of my mentor and hope to find out the computational flow of key data. (In order to consider the effect of the upper rotor, the change of the wind field after passing through the upper rotor needs to be calculated and acted as a new inflow wind to the lower rotor. If I understand correctly, the inflow wind for lower rotor can be extracted from the subroutine Calc_WriteOutput_BEMT in AeroDyn_IO.f90)

Tkae AeroDyn_Driver as the main line, I can see the program generally well enough at the moment. But if I want to change it, it is still a bit difficult to find out the key data needed and re-call the function to calculate the impact on the lower rotor

There are a few questions I’d like to ask at the moment, and I welcome you to explore them together
Is the direction I’m currently exploring the right one? Am I taking this issue too easy.
What advice do you all have, please?

Best regards,
Tianhui

Dear Tianhui.Liu

Do you want you to change the AeroDyn source code so that the wake of one rotor impacts the inflow of another? Or you are trying to simulate the same effect by running multiple simulations of AeroDyn in sequence? Neither are trivial, but I first want to understand what you want to do.

Best regards,

Dear Jason

I want to change the AeroDyn source code so that the wake of one rotor impacts the inflow of another. But I am struggle how to start

Best regards,
Tianhui

Dear Tianhui,

This change will not be simple. The BEM equations are solved in an algorithm that is split between SUBROUTINEs AD_UpdateStates() (to update the states from one time step to the next) and AD_CalcOutputs() (for calculating and return outputs from AeroDyn to the driver/glue code). All states are solved in a single call and all outputs are calculated in a single call. If you want the wake of one turbine to impact another, you’ll need to set up the equations to be solved with the same split as before…in such way that all states are solved in a single call and all outputs are solved in a single call. I would suggest to start by reviewing the currently theory basis of BEM and how it is implemented in the AeroDyn source code, then outline what changes would be needed for the wake interaction you are proposing.

Best regards,

Dear Jason,

What you are suggesting is for me to modify the subroutine to add calculation steps so that the result is calculated in one call.
To keep things simple, here’s what I’m going to do for now.
My plan is whether I can first calculate the wake of the wind field after passing the rotor (the wake at a certain distance after passing the fan) and use this wake as an input for the next rotor. However, I don’t see a program to calculate the wake.Call the calculation function once again to calculate the second wind turbine.

Best regards,
Tianhui

Dear Tianhui,

How far apart are the two rotors you are analyzing? The wake will obviously evolve downstream. Of course, BEM theory says that the induction far downstream will be twice that at the rotor, with the wake evolving between the rotor and far downstream. But if the rotors are closely spaced, BEM theory may not accurately predict the vortex structures will dominate in the near wake. And if the rotors are far downstream, the factor of two may not be accurate.

If you are analyzing rotors faced far apart, the FAST.Farm tool may be preferred for you over OpenFAST. FAST.Farm is the wind farm extension to OpenFAST, with the ability to solve for structural loads on wind turbines in a wind farm, including wake and array effects, based on extensions to the Dynamic Wake Model (DWM). The wake model in FAST.Farm should work well for rotors spaced far apart, e.g., three rotor diameters apart or more.

Best regards,