I am a PhD student working on coupling FAST with our in-house CFD code. The approach is to write the wind velocities from CFD as FF file which FAST uses and outputs the forces. The CFD code requires the forces at each station/node on the blade.
Could you please direct me as to the best way of getting the forces (x, y and z) at each station/node for each blade from FAST?
My understanding is that I have to use the ‘NBlGages’, which limits the number of gages to 9.
I presume you are trying to develop a coupling between FAST and your CFD code, such that the CFD is used to model the wind inflow and wake (induction) and FAST is used to model the airfoil aerodynamics, structural dynamics, and controller of the turbine.
The full-field (FF) wind input in FAST/AeroDyn is only useful for a one-way coupling, where you can input to FAST/AeroDyn the wind inflow, but not determine the influence of the aerodynamic loads on the wind field. I suspect this is not what you want to do because you say that the “CFD code requires the forces at each station/node on the blade”. This suggests a that you want a two-way coupling, where aerodynamics loads also impact the wind field.
The loads output by FAST at the blade gages (via input parameters NBlGages and BldGagNd) are not the applied aerodynamic loads, but the reaction loads within the blade (the reaction loads include contributions from aerodynamics, gravity, inertia, etc.). I suspect your CFD code only wants the applied aerodynamic loads.
I suspect what you really want is an interface similar to our SOWFA tool, which includes a coupling between FAST and the OpenFOAM CFD package. I suggest you study our SOWFA tool to see how it works: wind.nrel.gov/designcodes/simulators/sowfa/.
Thank you for the response and clarification.
I understand that the forces written out by FAST using NBlGages are not just the aerodynamic forces.
Based on the codes developed for SOWFA, I can output aerodynamic forces at every time step right after Aerodyn is called by FAST. The routines inside files fastgetbldforce.f90 and fastgetbldpos.f90 can be used to get the x, y, z positions and the forces for all the blade nodes.
I think (and please correct me if I am wrong), as a starting point, I can have the CFD code write out a FF file at each time step and run FAST. The FAST can write the aerodynamic forces and positions based on the code I add inside the FAST (guided by the two files mentioned above). The forces can then be applied to the CFD flow field after appropriate distribution.
I understand that doing an unsteady simulation would pose challenges since FAST is run at each time step. However, an unsteady simulation is feasible if the CFD code keeps appending to the FF file to have a time history of the wind.
I wouldn’t suggest that you pursue the FF file approach if you are working to achieve a two-way coupling. The FF file must exist before executing a FAST simulation. So, in your proposed approach, FAST would be executed separately for each time step. However, without modification to the source code, you cannot transfer all of the “states” of a simulation from one simulation to the next so you couldn’t preserve the dynamics of the simulation acrross time steps. (By “states”, I mean displacements and velocities of the all of the structural DOFs, as well as states in the controller and aerodynamics routines). Even if you did modify the source code to preserve the states between calls, the solution would be computationally expensive because FAST would have to re-initialize itself every time it is executed (every time step) (currently FAST is only initialized at the beginning of a simulation).
Because you are seeking a two-way coupling, I suggest that you follow a similar approach to our SOWFA tool.
I concur. The computational cost at each time step would be high and unnecessary.
Thank you very much for your help.
Maybe I don’t understand what all is going on, but I thought I’d throw out a possibility of an alternative source of winds to send to AeroDyn. There is the ability to read in what I called 4D winds when I added it to AeroDyn. These are winds that describe a volume that blinks at a given time step instead of 2D planes that march past the turbine at a mean wind speed. I added this feature to read in data from a LES. Although it was designed to read in all the data at the beginning of the FAST simulation, you may be able to make a fairly simple modification to InflowWind (AeroDyn) for the CFD code to overwrite the 3D grid at each time step that applies at only the current time. There would be no interpolation in time. You might also be able to use the location of each blade node to request the winds at exactly those locations so that the interpolation is done in the CFD code instead of InflowWind (AeroDyn). I imagine the CFD code has a much higher grid density than what would be used in InflowWind, so the interpolation would be more accurate.
As was mentioned before, this does not provide feedback of the aero forces into the CFD code. Maybe you could set up an array to pass them back from AeroDyn.
This all requires programming and I don’t know if that is something you can do, but it is how I might do this if I were to start from scratch and had to use FAST v7. With FAST v8, we will eventually be able to couple our structural and aerodynamics modules with a CFD code through a mesh, but I don’t think the mesh code for 3D spaces is working now.
Thank you for the suggestion. I took Jason’s idea and coupled the Sowfa version of FAST with our CFD code. It turned out to be pretty straight forward and so, I have something that works.
The Sowfa version of Fast (v7) was modified for the purpose of coupling with a CFD code: It accepts velocities at blade nodes from CFD solver and passes back the aero forces.
Thank you again. I appreciate your help.
I want to compare the aerodynamic loads vs. r/R predicted from FAST with another aero-elastic code and a panel method free-wake code that I have. What is the simplest way to print the aerodynamic loads in FAST?
Do I have to look inside the AeroDyn code and put a print statement somewhere?
In the AeroDyn module of FAST, you can output the applied aerodynamic loads at various stations along the blade using the PRINT/NOPRINT option – see the AeroDyn User’s Guide for more information: wind.nrel.gov/designcodes/simula … eroDyn.pdf.