Actuator Sources

The sierra::nalu::ActuatorLineFAST class is a child class of the generic sierra::nalu::Actuator class that couples Nalu with OpenFAST for actuator line simulations of wind turbines.

class sierra::nalu::Actuator

Subclassed by sierra::nalu::ActuatorLineFAST, sierra::nalu::ActuatorLinePointDrag

class sierra::nalu::ActuatorLineFAST

The ActuatorLineFAST class couples Nalu with the third party library OpenFAST for actuator line simulations of wind turbines.

OpenFAST (https://nwtc.nrel.gov/FAST) available from https://github.com/OpenFAST/openfast is a aero-hydro-servo-elastic tool to model wind turbine developed by the National Renewable Energy Laboratory (NREL). The ActuatorLineFAST class will help Nalu effectively act as an inflow module to OpenFAST by supplying the velocity field information. The effect of the turbine on the flow field is modeled using the actuator line approach. The force exerted by the wind turbine on the flow field is lumpled into a set of body forces at a discrete set of actuator points. This class spreads the the body force at each actuator point using a Gaussian function.

1) During the load phase - the turbine data from the yaml file is read and stored in an object of the fast::fastInputs class

2) During the initialize phase - The processor containing the hub of each turbine is found through a search and assigned to be the one controlling OpenFAST for that turbine. All processors controlling > 0 turbines initialize OpenFAST, populate the map of ActuatorLinePointInfo and initialize element searches for all the actuator points associated with the turbines. For every actuator point, the elements within a specified search radius are found and stored in the corresponding object of the ActuatorLinePointInfo class.

3) Elements are ghosted to the owning point rank. We tried the opposite approach of ghosting the actuator points to the processor owning the elements. The second approach was found to peform poorly compared to the first method.

4) A time lagged simple FSI model is used to interface Nalu with the turbine model:

  • The velocity at time step at time step ‘n’ is sampled at the actuator points and sent to OpenFAST
  • OpenFAST advances the turbines upto the next Nalu time step ‘n+1’
  • The body forces at the actuator points are converted to the source terms of the momentum equation to advance Nalu to the next time step ‘n+1’.

5) During the execute phase called every time step, we sample the velocity at each actuator point and pass it to OpenFAST. All the OpenFAST turbine models are advanced upto Nalu’s next time step to get the body forces at the actuator points. We then iterate over the ActuatorLinePointInfoMap to assemble source terms. For each node \(n\)within the search radius of an actuator point \(k\), the spread_actuator_force_to_node_vec function calculates the effective lumped body force by multiplying the actuator force with the Gaussian projection at the node as \(F_i^n = g(\vec{r}_i^n) \, F_i^k\).

Inherits from sierra::nalu::Actuator