15. Wind Energy Modeling
Wind energy analysis is the primary application area for the Nalu-Wind development team. This section describes the theoretical basis of Nalu-Wind from a wind energy perspective, using nomenclature familiar to wind energy experts and mapping it to Nalu-Wind concepts and nomenclature described in previous sections. Hopefully, this will provide an easier transition for users familiar with WRF and SOWFA to Nalu-Wind.
In order to evaluate the energy output and the structural loading on wind turbines, the code must model: 1. the incoming turbulent wind field across the entire wind farm, and 2. the evolution of turbine wakes in turbulent inflow conditions and their interaction with the downstream turbines. First, the governing equations with all the terms necessary to model a wind farm are presented with links to implementation and verification details elsewhere in the theory and/or verification manuals. A brief description of Nalu-Wind’s numerical discretization schemes is presented next. This is followed by a brief discussion of the boundary conditions used to model atmospheric boundary layer (ABL) flows with or without wind turbines (currently modeled as actuator sources within the flow domain).
Currently Nalu-Wind supports two types of wind simulations:
Precursor simulations
Precursor simulations are used in wind applications to generate time histories of turbulent ABL inflow profiles that are used as inlet conditions in subsequent wind farm simulations. The primary purpose of these simulations are to trigger turbulence generation and obtain velocity and temperature profiles that have converged to a statistic equilibrium.
Wind farm simulation with turbines as actuator sources
In this case, the wind turbine blades and tower are modeled as actuator source terms by coupling to the OpenFAST libraries. Velocity fields are sampled at the blade and tower control points within the Nalu-Wind domain and the blade positions and blade/tower loading is provided by OpenFAST to be used as source terms within the momentum equation.
15.1. Governing Equations
We begin with a review of the momentum and enthalpy conservation equations within the context of wind farm modeling [CLM+12]. Equation (15.1) shows the Favre-filtered momentum conservation equation (Eq. (2.1)) reproduced here with all the terms required to model a wind farm.
Term
Term
Term
Term
Term
Term
Term
Term
In wind energy applications, the energy conservation equation is often written
in terms of the Favre-filtered potential temperature,
where,
Under the assumption of ideal gas conditions and constant
Furthermore, ignoring the pressure and viscous work terms in Eq. (2.12) and assuming constant density (incompressible flow), it can be shown that solving the enthalpy equation is equivalent to solving the potential temperature equation. The enthalpy equation solved in wind energy problems is shown below
It is noted here that the terms
15.2. Turbulence Modeling
LES turbulence closure is provided by the Subgrid-Scale Kinetic Energy One-Equation LES Model or the standard Smagorinsky model for wind farm applications.
15.3. Numerical Discretization & Stabilization
Nalu-Wind provides two discretization approaches
Control Volume Finite Element Method (CVFEM)
Nalu-Wind uses a dual mesh approach (see Section 3.1) where the control volumes are constructed around the nodes of the finite elements within the mesh – see 15.1. The equations are solved at the integration points on the sub-control surfaces and/or the sub-control volumes.
Edge-Based Vertex Centered Scheme
The edge-based scheme is similar to the finite-volume approach used in SOWFA with the nodes at the cell center of the dual mesh.

15.1 Schematic of HEX-8 mesh showing the finite elements, nodes, and the associated control volume dual mesh.
The numerical discretization approach is covered in great detail in Section 3, the advection and pressure stabilization approaches are documented in Section 4 and Section 5 respectively. Users are strongly urged to read those sections to gain a thorough understanding of the discretization scheme and its impact on the simulations.
15.4. Time stepping scheme
The time stepping method in Nalu-Wind is described in the Fuego theory manual [Tea16] for the backward Euler time discretization. The implementation details of the BDF2 time stepping scheme used in Nalu-Wind is described here. The Navier-Stokes equations are written as
where
and
The Newton’s method is used along with a linearization procedure to predict a
solution to the Navier-Stokes equations at time step
After each Newton or outer iteration,
Applying Eq. (15.6) to Eq. (15.5), we get the linearized momentum predictor equation solved in Nalu-Wind.
As described in Section 12.1, the continuity equation to be satisfied along with the splitting and stabilization errors is
where
Thus, the final set of equations solved at each outer iteration is
15.4.1. Approximations for the Schur complement
Nalu-Wind implements two options for approximating the Schur complement for the split velocity-pressure solution of the incompressible momentum and continuity equation. The two options are:
where
15.4.2. Underrelaxation for momentum and scalar transport
By default, Nalu-Wind applies no underrelaxation during the solution of the Navier-Stokes equations. However, in RANS simulations at large timesteps some underrelaxation might be necessary to restore the diagonal dominance of the transport equations. User has the option to specify underrelaxation through the input files. When underrelaxation is applied, the advection and diffusion contributions to the diagonal term are modifed by dividing these terms by the underrelaxation factor. It must be noted that the underrelaxation is only applied to the advective and viscous contributions in the diagonal term and not the time derivative term.
The pressure update can also be underrelaxed by specifying the appropriate relaxation factor in the input file. When this option is activated, the full pressure update, in a given Picard iteration step, is used to project the velocity and mass flow rate and the relaxation is applied to the pressure solution at the end of the Picard iteration.
15.5. Initial & Boundary Conditions
This section briefly describes the boundary conditions available in Nalu-Wind for modeling wind farm problems. The terrain and top boundary conditions are described first as they are common to precusor and wind farm simulations.
15.5.1. Initial conditions
Nalu-Wind has the ability to initialize the internal flow fields to uniform
conditions for all pressure, velocity, temperature, and TKE (
15.5.2. Terrain (Wall) boundary condition
Users are referred to Section 9.3 for the treatment of the terrain BC using roughness models. For enthalpy, users can provide a surface heat flux for modeling stratified flows.
15.5.3. Top boundary condition
For problems with minimal streamline curvature near the upper boundary (e.g. nearly flat terrain, negligible turbine blockage), a symmetry BC (slip wall) can be when modeling wind farm problems. By default a zero vertical temperature gradient will be imposed for the enthalpy equation when the symmetry boundary condition is used. If a non-zero normal temperature gradient is required to drive the flow to a desired temperaure profile, e.g., a capping inversion, then the abltop BC can be used. In this case the user_data input normal_temperature_gradient: value will set the normal temperature gradient to value at the top boundary.
For cases with significant terrain features or significant turbine blockage, the abltop BC can also be used to achieve an open boundary that allows for both inflows and outflows at the domain top. See the abltop BC documentation for details.
15.5.4. Inlet conditions
Time histories of inflow velocity and temperaure profiles can be provided as inputs (via I/O transfer) to drive the wind farm simulation with the desired flow conditions. See Section 8.3 for more details on this capability. Driving a wind farm simulation using velocity and temperature fields from a mesoscale (WRF) simulation would require an additional pre-processing steps with the wrftonalu utility.
15.5.5. Outlet conditions
See the description of open BC for detailed description of the outlet BC implementation. For wind energy problems, it is necessary to activate the global mass correction as a single value of pressure across the boundary layer is not apprpriate in the presence of buoyancy effects. It might also be necessary to fix the reference pressure at an interior node in order to ensure that the Pressure Poisson solver is well conditioned.
15.6. Wind Turbine Modeling
Wind turbine rotor and tower aerodynamic effects are modeled using actuator source representations. Compared to resolving the geometry of the turbine, actuator modeling alleviates the need for a complex body-fitted meshes, can relax time step restrictions, and eliminates the need for turbulence modeling at the turbine surfaces. This comes at the expense of a loss of fine-scale detail, for example, the boundary layers of the wind turbine surfaces are not resolved. However, actuator methods well represent wind turbine wakes in the mid to far downstream regions where wake interactions are important.
Actuator methods usually fall within the classes of disks, lines, surface, or
some blend between the disk and line (i.e., the swept actuator line). Most
commonly, the force over the actuator is computed, and then applied as a
body-force source term,
The body-force term
where
Here, the projection function’s position vector is a function of
position on the actuator line. The part of the line nearest to the point in
the fluid at
The force along an actuator line or over an actuator disk is often
computed using blade element theory, where it is convenient to discretize
the actuator into a set of elements. For example, with the actuator line,
the line is broken into discrete line segments, and the force at the center
of each element,
This summation well approximates the integral given in Equation
(15.10) so long as the ratio of actuator element size to
projection function width
Presently, Nalu-Wind uses an actuator line representation to model the effects of turbine on the flow field; however, the class hierarchy is designed with the potential to add other actuator source terms such as actuator disk, swept actuator line and actuator surface capability in the future. The ActuatorLineFAST class couples Nalu-Wind with NREL’s OpenFAST for actuator line simulations of wind turbines. OpenFAST is a aero-hydro-servo-elastic tool to model wind turbine developed by the National Renewable Energy Laboratory (NREL). The ActuatorLineFAST class allows Nalu-Wind to interface as an inflow module to OpenFAST by supplying the velocity field information.
15.6.1. Nalu-Wind – OpenFAST Coupling Algorithm
A nacelle model is implemented using a Gaussian drag body force. The model implements a drag force in a direction opposite to velocity field at the center of the Gaussian. The width of the Gaussian kernel is determined using the reference area and drag coefficient of the nacelle as shown by Martinez-Tossas. [MartinezT17]
where
where
where
The actuator line implementation allows for flexible blades that are not necessarily straight (pre-bend and sweep). The current implementation requires a fixed time step when coupled to OpenFAST, but allows the time step in Nalu-Wind to be an integral multiple of the OpenFAST time step. At present, a simple time lagged FSI model is used to interface Nalu-Wind with the turbine model in OpenFAST:
The velocity at time step at time step
is sampled at the actuator points and sent to OpenFAST, OpenFAST advances the turbines up-to the next Nalu-Wind time step
, The body forces at the actuator points are converted to the source terms of the momentum equation to advance Nalu-Wind to the next time step
.
This FSI algorithm is expected to be only first order accurate in time. We are currently working on improving the FSI coupling scheme to be second order accurate in time.
15.6.2. Nalu-Wind – Actuator Disk Model via OpenFAST
An actuator disk model is implemented in Nalu-Wind by using an OpenFAST actuator line to sample the flow and compute the forcing. The actuator line is held stationary which leads to computational savings during execution because there is only 1 search operation in the initial setup.
The forces are gathered at each actuator line point, and the total force at each discrete
radial location (
where

15.2 Actuator Disk with non-uniform (left) and uniform (right) sampling in the azimuthal direction.
The force that is spread across all the points at a given radius is then calculated as (15.13).
where