To design the next generations of wind turbines, engineers from the wind energy industry must now have access to new numerical tools, allowing the high-fidelity simulation of complex physical phenomena and thus a further calibration of lower-order models. For instance, the rotors of offshore wind turbines, whose diameters can now exceed 200 m, are highly flexible and fluid–structure interactions cannot be neglected any longer. Accordingly, this paper presents a new aero-servo-elastic solver designed to perform high-fidelity large-eddy simulation (LES) of wind turbines, as well as of rotor–wake interactions classically occurring in wind farms. In this framework, the turbine blades are modeled as flexible actuator lines. In terms of operating parameters (rotation speed and pitch angles) and power output, the solver is first validated against field data from the Westermost Rough offshore wind farm, for three different operation points. A very good agreement between the numerical results and field data is obtained. To push the validation further, additional results are compared to those given by a certified aero-servo-elastic solver used in the industry, which relies on a blade element momentum (BEM) method. The internal loads throughout the first blade and the deflections at the tip are studied in detail, and some discrepancies are observed. Of a reasonable amplitude overall, those are legitimately related to intrinsic modeling differences between the two solvers.

The aerodynamic high-fidelity simulation of an operating horizontal-axis wind turbine is challenging as it features a very high Reynolds number. Therefore one can expect a large range of spatial scales in the flow. Even today, despite the continuous growth of computational power, the direct numerical simulation of such a problem is still out of reach. In contrast, the large-eddy simulation (LES) approach is an interesting compromise to deal with this type of problem, especially when it comes to investigating the complex multi-scale physics of wind turbine wakes. Although mainly used in academic research, this approach is also attractive for the wind energy industry. Indeed, the results of LESs can complement partial field data when conducting the calibration, validation, and certification of low-order engineering models widely used in the industry. Such numerical results can also provide valuable insights into turbine–wake interactions at the scale of a wind farm. Understanding this phenomenon is indeed critical for siting engineers at the wake losses can significantly impact the annual energy production.

Yet, an LES can remain very costly depending on how the wind turbine is modeled. Using a full 3D model for the rotor, nacelle, and tower necessarily results in constraints on the cell size used in the vicinity of the walls and even more if the boundary layers developing in those regions are to be fully resolved. Regarding the authors' knowledge, the latter approach has only been reported by

The simulation of an operating wind turbine becomes even more challenging if one needs to predict the deflections of the blades. As a result, this aspect is still often overlooked in CFD (computational fluid dynamics) simulations reported in the literature. However, the latest offshore wind turbine prototypes have rotors whose diameters can exceed 200 m. By their composite structure and slenderness, the blades possess a degree of flexibility likely to induce fluid–structure interactions with the surrounding flow. Especially for a flexible blade, turbulent inflows can drastically increase the fluctuations over time of the aerodynamic coefficients and thus the fatigue

To consider the structural response of a wind turbine to an incident flow, several cost-effective solvers have been designed in the wind energy community: OpenFAST

The latter, significantly more computationally intensive, mainly consist in a two-way coupling between a vortex-based or a CFD-like aerodynamic solver and a structural solver. The first one is in charge of getting the flow field, while the second one computes the structural response of the turbine. The literature already includes numerous works where this kind of approach is described

In this paper, we present the implementation and validation of a new solver derived from such a coupling: the high-order LES code YALES2

The paper is organized as follows. First of all, the two codes involved in the coupling are briefly described in Sect.

In the context of wind-energy-related LESs, one can solve the filtered Navier–Stokes equations for incompressible flows. Noting that

YALES2

When considering the equations given in Sect.

In YALES2, the ALM is used to model operating wind turbines. As stated in the Introduction, the approach allows us to model the forces applied by wind turbine blades on an incident flow. It is particularly suitable for investigating the physics of wind turbine wakes at a reasonable cost. Each blade geometry is replaced by a simple line, discretized into 1D elements of equal width

Additional set of bases used in the ALM framework of YALES2.

The lift

Yet, the forces obtained this way are singular and must be smoothed before being added as a body force in the Navier–Stokes equations. In the ALM framework, this operation is known as the mollification process. It acts as a spatial filtering operation, typically based on a Gaussian-like kernel

For an exhaustive description of the ALM implementation in YALES2, the reader is referred to the PhD thesis of

BHawC

Simulating 1 s of physical time requires 1 s of wall clock time.

A BHawC run can only handle one turbine at a time as it allows the definition of only one inflow. The assessment of the performance of a wind farm for given free-stream wind conditions, as well as the prediction of the loads applied to each individual turbine, remains feasible, provided that each BHawC instance relies on an appropriate inflow model (such as a DWM model). Nevertheless, all considered inflows are fully decoupled and thus possibly inconsistent.

Besides, setting an inflow representative of multiple wakes in combination may not be straightforward, as one needs, for instance, to know which wakes are expected to combine prior to the simulations.

The modeling of a wind turbine consists of several sub-structures used to represent the foundation, tower, nacelle, hub, drivetrain, shafts, and rotor blades. Most of the sub-structures are modeled with equilibrium-based non-homogeneous anisotropic beam elements counting 12 degrees of freedom: three rotations and three translations per node

Blade bases in BHawC.

All the structural degrees of freedom, as well as their velocity and acceleration, are solved in BHawC (BH) global frame, which is attached to the bottom of the turbine foundation. The vector containing all the degrees of freedom is denoted by

Those are computed only once per time step, prior to the first Newton iteration. To do so, BHawC relies on a blade element momentum (BEM) method

Finally, a complete framework is available in BHawC to include an emulation of a real controller in the wind turbine modeling. As a result, the rotor rotation speed is intrinsically unsteady. This approach also allows us to update other operating parameters in time, especially the pitch angles.

As implemented in YALES2, the ALM models the blades of a wind turbine as fully rigid lines, animated only by rotational movements. The azimuthal rotation speed is usually imposed as constant. This ALM implementation allows us to simulate the flow surrounding an arbitrary number of wind turbines. Phenomena such as wake steering, wake meandering, and wakes' combination can therefore be studied with YALES2. However, the structural response of a wind turbine to an incident flow remains unknown. Conversely, BHawC can provide the structural response of an industrial wind turbine, for a wide variety of incident flows, while also emulating real control strategies, meaning the azimuthal rotation speed is unsteady. Yet, the code does not offer any information on the resulting wake, and only one turbine can be handled at a time. In light of this, a coupling between YALES2 and BHawC was thus interesting to obtain accurate insights into the flow surrounding a turbine and the fluid–solid interactions involved when this turbine operates.

As designed, the coupling between YALES2 and BHawC only affects the blades of the wind turbine. The remaining sub-structures, such as the nacelle and the tower, are still represented in BHawC, but the aerodynamic loads they would normally experience are disabled. In the following, the coupling strategy is described in detail, as well as the mathematical framework upon which the coupling relies to transfer data between YALES2 and BHawC. Additional technical information regarding the coupling itself can be found in Appendix

Possible strategies to adopt for the coupling between YALES2 and BHawC. The second one was finally retained because it is more generic.

Regarding the coupling strategy, two options were available, which are depicted in Fig.

Given these limitations, the second coupling strategy was selected. In essence, BHawC communicates the current position and velocity of the blade elements to YALES2, and the ALM framework is used to compute and mollify the aerodynamic loads. The loads are also returned to BHawC to update the position and the deflections of the blades. One should note that this second approach completely bypasses the BEM method implemented in BHawC. This type of strategy is also used in

Sketch of the blade discretization, illustrating the distinction between the aerodynamic axis (AA) and the elastic axis (EA).

The computation of the aerodynamic loads in YALES2 also requires obtaining the relative flow velocity at the particle position. As shown in Fig.

As with the transition matrix

At the beginning of each of its time steps, BHawC predicts the velocities and positions of the blade elements. The converged velocities and accelerations from the previous time step are used for this purpose. In addition, the next orientation of the element bases is also predicted. These data are then sent to YALES2. However the corresponding variables are not updated immediately so as to evaluate a relative velocity which accounts for the last mollification of the aerodynamic forces. Angles of attack are inferred using the element bases from the previous time step, and the aerodynamic loads are derived subsequently in these bases. The position, velocity, and basis of each element are then updated to transfer the loads into the global frame of both YALES2 and BHawC:

Displacement of a blade portion during a time step. The predicted and final positions were made significantly different only for the sake of clarity, but in practice they almost overlap.

For an adequate trade-off between accuracy, stability, and time to solution, the time-step size commonly used in BHawC is

Coupling procedure used between YALES2 and BHawC.

YALES2–BHawC is thus a partitioned loosely coupled solver. The coupling implementation is a combination of the conventional serial staggered (CSS) and conventional parallel staggered (CPS) procedures described by

The validation of the coupled code YALES2–BHawC is carried out by considering the case of an isolated turbine of the Westermost Rough production site. This offshore wind farm, located near the Holderness coast of England, consists of 35 SWT-6.0-154 turbines

Layout of the Westermost Rough wind farm.

The geometry of the computational domain used with YALES2 and the cell size mapping enforced within are provided in Fig.

Mesh and geometry of the computational domain used to investigate turbine F07 with YALES2–BHawC.

Regarding the boundary conditions, the lateral and upper surfaces are modeled as slipping walls. On the bottom surface, a classical logarithmic wall law including a roughness parameter is used to work around the full resolution of the atmospheric boundary layer. Due to the lack of reliable wind-assessment tools on the field, the inlet conditions result from a wind estimator. First, the recorded mean nacelle yaw angle is assumed to provide the wind direction. In the considered field data samples, the recorded mean yaw angles indicated a wind coming almost exactly from the north, with all deviations being below 1

Mean wind speeds and target turbulence intensities (TIs) at hub height on the inlet boundary.

As additional noteworthy parameters, the air density and kinematic viscosity are set to

A particle defined on an actuator line element should not cross more than one cell of the domain grid over a time step.

Concerning the turbine modeling, 75 evenly distributed aerodynamic nodes were used in BHawC to discretize each blade. Similarly, 75 particles were evenly distributed along each actuator line in YALES2–BHawC. This number was chosen to prevent interpolation errors when getting the aerodynamic coefficients from the blade lookup table. Indeed, 75 blade sections were referenced in the latter, which are at the exact same spanwise positions, respectively, as the defined aerodynamic nodes. The isotropic mollification kernels in YALES2 are defined with a radius

From a structural point of view, the blades are discretized with 19 beam elements of various lengths in order to achieve a suitable representation of the elastic-axis geometry at a reasonable cost. The nacelle and tower are not represented on the YALES2 side. Accordingly, the loads acting on them are forced to zero on the BHawC side, at all times. Regarding the wind turbine actual controller, it is emulated thanks to external libraries compiled beforehand.

For confidentiality reasons, all the quantitative results shown in the current section are made nondimensional. Also, we first define the following operators:

For each wind speed considered, Fig.

Comparison of the time-averaged rotation speed, total pitch angle (first blade), and power, for the three wind speeds of interest. The corresponding standard deviations are depicted as error bars.

The edgewise and flapwise bending moments at a spanwise position close to the blade root are compared for the first blade in Fig.

Comparison of the time-averaged edgewise and flapwise bending moments, on the first blade and at the strain gauge location. The standard deviations are depicted as error bars.

In what follows, the numerical results are now compared in greater detail. Despite the lack of field data for the quantities considered, the results from BHawC stand as a reference. Indeed this tool is a keystone in the design cycles of actual turbines and thus has been extensively validated against field data in those specific conditions (no yaw error and no upstream wake).

The first-blade tip deflection

Comparison of the first-blade tip deflection

In Fig.

Comparison of the first-blade tip deflection

To deepen the analysis, Fig.

Fast Fourier transform of the first-blade tip deflection

Comparison of the internal loads (forces and moments) at several spanwise positions across the first blade. The quantity

Comparison of the damage equivalents loads, computed from the internal loads (forces and moments) at several spanwise positions across the first blade.

The time-averaged internal force

The variability in the internal loads in time is also of great interest for engineers as it conditions the structural fatigue. Thus, the damage equivalent loads (DELs) were computed from the internal loads

The relative differences in the results obtained are reported in Fig.

Given their amplitude, the gaps observed in the numerical results reported in the previous sub-section likely relate to three main factors. First, as mentioned at the end of Sect.

Second, BHawC computes annular inductions, which could also weaken the shear-induced variability in the aerodynamic loads inferred afterwards.

Third, the turbine in BHawC does not exactly face the same turbulent structures as in the coupled code, primarily because the relative position between the turbine and the turbulence box differs. Besides, the turbulence is static in BHawC, meaning the velocity fluctuations factored into the induction computation are the ones present in the Mann boxes. Similarly, the shear profile remains equal to the one provided at all times. On the other hand in YALES2–BHawC, the Mann turbulence will evolve while being convected to the rotor position, especially close to the ground. A slight distortion of the shear profile is also expected. Such shortcomings directly result from the unbalanced combination of the injected synthetic turbulence, the power law, and the boundary conditions (especially the one used at the bottom boundary). To better illustrate this, the streamwise time-averaged velocity and the streamwise turbulence intensity considered in both YALES2–BHawC and BHawC are depicted in Figs.

Comparison of the shear profile imposed in BHawC (left column) with the one actually obtained in YALES2–BHawC two diameters and one diameter upstream of the rotor. The rotor position is depicted in each plot as a black circle.

Comparison of the turbulence intensity imposed in BHawC (left column) with the one actually obtained in YALES2–BHawC two diameters upstream of the rotor and in the rotor plane. The rotor position is depicted in each plot as a black circle.

Mean effective streamwise turbulence intensities obtained in YALES2–BHawC one and two diameters upstream of the rotor, as well as in the rotor plane, in the projected rotor area.

Considering all the aforementioned sources of discrepancies, the results given by the code YALES2–BHawC for the structural part are therefore deemed encouraging and promising. As for the prediction of the main operating parameters and performance of the turbine, the coupled code already provides accurate results. Even though additional investigations are definitely needed, the results so far presented constitute an encouraging first step towards a full validation of YALES2–BHawC.

Unlike BHawC standalone, YALES2–BHawC provides insights into the flow surrounding the turbine. For all the wind speeds considered, Fig.

Vertical slices, including the rotor center, of the instantaneous

Horizontal slices, taken at hub height, of the instantaneous

Figure

Finally, we briefly report the computing performance obtained with BHawC standalone and YALES2–BHawC. All the numerical simulations previously commented on were run on the AMD Rome partition of the Joliot-Curie supercomputer from TGCC. The simulations carried out with BHawC standalone (BH) were handled with only one CPU core, as the code is fully serial, while all the coupled simulations (YALES2–BHawC: Y2-BH) used 255 CPU cores: one for BHawC and the remaining ones for YALES2. The return time of each simulation, given per second of computed physical time, is reported in Table

Return times of the numerical simulations, given per second of computed physical time.

This paper first presents the details of a new aero-servo-elastic solver, obtained from the coupling between a high-fidelity massively parallel LES solver (YALES2) and an aero-servo-elastic solver (BHawC) in use in the wind energy industry. In this coupling, YALES2 completely replaces the BEM method normally used in the standalone version of BHawC, meaning that the aerodynamic loads come entirely from YALES2. Thus designed, the coupled solver allows one to obtain a detailed picture of the flow surrounding an actual wind turbine (or even a wind farm), where the effects of the flexible rotating blades are factored in thanks to an elastic ALM framework. Besides, the coupled solver also enables the investigation of the structural response of each individual blade, within the limits set by a 1D beam modeling approach. Profiting from an emulation of real control strategies, the variation over time of the main operating parameters (rotor rotation speed and pitch angles) can be considered to predict a turbine power output realistically.

For validation sake, we considered the case of an isolated turbine of the Westermost Rough offshore wind farm. The power output obtained numerically, as well as the rotation speed and pitch angles, was compared to field data derived from 10 min on-site recordings. Overall, an excellent agreement was pointed out. Difficulties in translating the actual incident wind into boundary conditions may explain the remaining discrepancies. To deepen the validation process, the deflections and internal loads of the blades, predicted by both YALES2–BHawC and BHawC, were compared. Again, the results agreed reasonably well, despite the discussed differences in the numerical setups and in how the local inductions are computed. Further investigations will be needed to assess the exact causes of the observed discrepancies. Nevertheless, the reported results can be seen as a first encouraging step towards a full validation of YALES2–BHawC.

As a final word, it seems important to stress that, from an industrial perspective, the coupled code YALES2–BHawC remains too demanding in memory and CPU resources and too time-consuming to be used directly in actual design cycles. However, as field data do not always provide insights into the physics involved, this tool can be used advantageously to help in designing, calibrating, and certifying lower-order approaches such as the BEM method or wake engineering models. Because those are computationally affordable and predictive, they are indeed used on a daily basis in the industry to assist mechanical design and siting studies.

Before attempting real-application cases, the coupled code YALES2–BHawC has been extensively checked. Relying on appropriate unit tests, we verified both the kinematic and the dynamics aspects involved in the coupling.

Discussed in Sect.

The rotor rotation speed is fixed to a constant value in YALES2 standalone, as it is the most straightforward approach. However, this cannot be enforced as easily in BHawC and in the coupled code. Indeed, BHawC needs a controller component to adjust the rotation speed. A simulation can still be run without it, but the rotation speed will then increase progressively without any limitation. Given the structural modifications of the blades that were also necessary to complete the verification activities, targeting a given rotation speed in BHawC with the actual controller was considered too challenging. We thus replaced this controller by a

In both YALES2 and BHawC, the incident flow is chosen to be uniform with no synthetic turbulence added, and its speed is set to

Geometry of the computational domain used with YALES2 and YALES2–BHawC during the verification campaign.

In all numerical setups, the blades are equally discretized: 75 aerodynamic nodes/particles are evenly distributed along the blades' span. The lookup table used in YALES2 was built to contain the blade data that BHawC would attach to its aerodynamic nodes in such a configuration. This way, blade data at the particles' location in YALES2 are forced to match those used in BHawC, as interpolation errors are avoided.

Besides, the blades' elasticity and shear moduli are chosen to be 1000 times larger than the actual ones, almost nullifying the blade deflections. Obviously, this does not apply to YALES2 standalone simulations where blades are fully rigid. Consistently, the remaining wind turbine sub-structures present in the structural solver are also modeled as

As explained in Sect.

First, the effect of the residual blade deflection on the particle position should be quantified. Figure

Nondimensional mean discrepancy between YALES2 and YALES2–BHawC at the particle position

Similarly, the orientation of the particle bases is also checked. To perform the comparison, we compute the dot product between the respective particle-basis

Mean dot products between the particle bases obtained in YALES2 and YALES2–BHawC. Results are given as a function of the spanwise position. The associated standard deviations are represented as error bars (not visible).

The next step is to check the particle velocity, which is also part of the communications between BHawC and YALES2 (see Eq.

Nondimensional mean errors in the particles' velocity

Finally, the angle of attack computed at each particle location is also looked at, as it contributes to the aerodynamic loads' computation. The discrepancies obtained between the two approaches are presented in Fig.

Mean error in the angle of attack

In order to consider the coupling implementation bug-free, an extra analysis of the aerodynamic loads is required. Indeed, the dummy controller used with YALES2–BHawC could make the rotation speed reach its target even though the predicted aerodynamic torque was completely wrong. Likewise, rigid blades cannot reflect a possibly poorly predicted thrust since their flapwise deflection would be close to zero.

To carry on this analysis, the internal loads computed by BHawC and YALES2–BHawC are compared. Indeed, with the induction removed in both cases, the BEM and AL methods should compute identical aerodynamic loads, as they are both downgraded to a simple polar reading. Consequently, the resulting internal loads computed by each code are also expected to be exactly the same. Here again, we use the configuration described at the beginning of the current section.

In both approaches, we consider the internal forces

Mean relative error in the internal loads, given as a function of the integration interval

The results are given in Fig.

Explaining the remaining errors is not straightforward. In contrast to Sect.

No specific directive was included in the YALES2 library directly. Alternatively, an additional library is called dynamically from YALES2 to manage the communications with BHawC. This generic approach can be used to design a subsequent coupling between YALES2 and a BHawC-like code, such as OpenFAST

All the required communications between the two codes were handled by means of the MPI library

Sketch of the coupling architecture. An external library is called dynamically from YALES2 to manage all the communications with BHawC.

Sketch of the MPI communications involved in the coupling between YALES2 and BHawC.

BHawC code

The raw field data used in this work have been generously provided by Ørsted to the authors but remain its private property. It is therefore not possible for the authors to disclose the initial data set. Similarly, all numerical results provided by YALES2 and BHawC cannot be shared for confidentiality reasons related to the simulated turbine design.

EM and SG both contributed to the following aspects of this work: conceptualization, methodology, software development, formal analysis, verification, validation, simulations setup and post-processing, and writing of the original draft and final paper. Valuable support was provided by FHM, BD, and PB regarding the conceptualization, methodology, and software development, as well as for reviewing the original draft. The field data were provided by BD. Finally, BD and PB were also in charge of the supervision, project administration, and funding acquisition.

Bastien Duboc declares that he was a full-time employee of Siemens Gamesa Renewable Energy at the time this work was carried out.

Publisher’s note: Copernicus Publications remains neutral with regard to jurisdictional claims made in the text, published maps, institutional affiliations, or any other geographical representation in this paper. While Copernicus Publications makes every effort to include appropriate place names, the final responsibility lies with the authors.

We acknowledge PRACE for awarding us access to Joliot-Curie at GENCI–CEA, France. This work was also granted access to the HPC–AI resources of TGCC under the allocation 2021-A0102A11335 made by GENCI and to CRIANN resources under the allocation 2012006. Finally, we also want to acknowledge Ørsted A/S for sharing the Westermost Rough field data used in this work.

This research, as part of the WAKE OP project, has been supported by the FEDER-FSE/IEJ Haute Normandie 2014–2020 program (grant no. 19P01828).

This paper was edited by Jens Nørkær Sørensen and reviewed by two anonymous referees.