In the last decades, the unsteady vortex-lattice method (UVLM) has gained a lot of acceptance to study large onshore–offshore wind turbines (WTs). Furthermore, and due to the development of more powerful computers, parallelization strategies, and algorithms like the fast multipole method, it is possible to use vortex-based methods to analyze and simulate wind farms (WFs). However, UVLM-based solvers require structured meshes, which are generally very tedious to build using classical mesh generators, such as those utilized in the context of finite element methods (FEMs). Wind farm meshing is further complicated by the large number of design parameters associated with the wind turbine (coning angle, tilt angle, blade shape, etc.), farm layout, modeling of the terrain topography (for onshore WFs), and modeling of the sea level surface (for offshore WFs), which makes the use of FEM-oriented meshing tools almost inapplicable.

In the literature there is a total absence of meshing tools when it comes to building aerodynamic grids of WTs and WFs to be used along with UVLM-based solvers. Therefore, in this work, we present a detailed description of the geometric modeling and computational implementation of an interactive UVLM-oriented mesh generator, named ^{®} and easily adaptable to GNU OCTAVE, for wind turbines and onshore–offshore wind farms. The meshing tool developed here consists of (i) a geometric processor in charge of designing and discretizing an entire wind farm and (ii) an independent module in charge of computing the kinematics for the entire WF. The output data provided by the

For some years now, wind energy has become one of the fundamental pillars on the world stage of renewable energy. This fact has been materialized by an increasing number of different wind turbine (WT) designs: going from small wind turbines like the Vestas V27 of

One of the most important challenges of wind turbine technology is the accurate characterization of the WT loads under inflow conditions that trigger complex aerodynamic effects. Although the description of the flow surrounding a wind turbine has been a subject of interest for many years, the study of three-dimensional and expensive-to-model unsteady aerodynamics of WTs and wind farms is still an active field of research

While classical and enhanced versions of BEM-based solvers have been found to provide good agreement with measurements and CFD simulations, they require a series of engineering corrections to model challenging unsteady aerodynamic phenomena of increasingly large WTs

As an intermediate option between the BEM and CFD approaches, we introduce the potential flow solvers, among which the so-called vortex-lattice methods (VLMs) represent a good alternative to assess the aerodynamic performance of different aeronautical–mechanical engineering applications. Its extension to the study of transient aerodynamic loads for slender lifting surfaces undergoing complex motions, the well-known nonlinear unsteady vortex-lattice method (UVLM), has proven to be a more than viable option, presenting an excellent trade-off between precision and computational cost

Among the most promising UVLM-based solvers capable of performing aerodynamic analysis of wind turbines, we can mention OpenVOGEL ^{®}, MeshLab, and GID^{®}, among others.

In addition, wind turbines are characterized by a large number of design parameters, such as the coning angle, the tilt angle, multiple airfoils defining the blade, the twist angle, and pre-bent and pre-sweep shapes, etc. In this sense, a proper wind turbine meshing process should incorporate an easy way to handle such information. When considering wind farms, the meshing is further complicated by the need of including parameters associated with the farm layout, terrain topography (for onshore wind farms), and the description of the sea level surface for offshore wind farms. Another key point, and by no means less important, is the generation of the kinematics for the entire wind farm. This aspect includes everything from basic rotor kinematics and laws of motion for yaw and pitch (if any) to sea level surface kinematics (to simulate waves) and substructure motions for floating wind turbines

To the best of our knowledge, there is to date no freely available UVLM-oriented mesh generator intended for arbitrary wind farms that allows for (i) designing wind park layouts, (ii) considering different wind turbines (with their own design parameters), (iii) including the terrain topography and/or the sea surface description, and (iv) computing the wind farm kinematics. The only attempts of which we are aware of are those individual efforts to mesh specific geometries and limited meshing tools already incorporated into UVLM codes such as OpenVOGEL or modules developed in-house at companies that are inaccessible to the wind energy community.

In this work, we present a detailed description of the geometric modeling and computational implementation of an interactive UVLM-oriented mesh generator for onshore and offshore wind farms, hereafter referred to as ^{®} language and easily adaptable to GNU OCTAVE, allows for the generation of structured and conformal aerodynamic grids of wind farms, including the terrain and/or sea level surface modeling. The structured mesh data provided by

The remainder of this work is organized as follows: in Sect.

A wind turbine is characterized by a large number of parameters. A proper aerodynamic analysis of such mechanical systems by UVLM-based codes necessarily requires an accurate description of the wind turbine surfaces. On this basis, this section first presents the geometric object to be used to represent the surfaces of a wind turbine. This subsection is followed by a full description of the geometric modeling of each component of a wind turbine (e.g., hub, nacelle, blades, tower).

In the case of using boundary integral equation methods (BIEMs) to predict the aerodynamic forces and wake structures of very complex engineering systems, an accurate description of their boundaries (solid surfaces) is mandatory. In particular, the aerodynamic analysis of wind turbine farms by using BIEMs requires providing (i) precise data associated with the discretization of their boundaries (ground, rotors, towers, etc.); (ii) additional data according to the method adopted (collocation points, shedding zones, type of singularities, etc.); and (iii) kinematics of the system (positions and velocities over time).

In general, the main components of a wind turbine are the hub, the nacelle, the blades, the tower, and the ground where the turbine is located. For offshore WTs, we need to add the substructure, which can be fixed or floating depending on whether the WT is placed in shallow, moderately deep, or deep waters. On this basis, two different basic geometric entities can be identified from which all the discretized surfaces of a WT farm will be built. These are a hole plate (called GO

Basic geometric entities.

Here, both objects, GO

This kind of object consists of a rectangular plate together with a circular or ellipsoidal hole. In order to mesh it with QE we make use of the

In this work we use the term

Geometric object GO

According to

When

The object GO

GO

Surface generation in the context of computer-aided design (CAD) is typically done by using

Ruled skinning provides the ability to skin a series of three or more profiles by placing ruled surfaces in between each section of profiles (see Fig.

The following three definitions of a ruled surface are equivalent

a surface such that through each point of it passes a straight line that is fully contained in the surface

a surface generated by the motion of a straight line

the set of a family of straight lines depending on a parameter that spans a set of real numbers.

Mathematically, a ruled surface can be described by

In the context of wind turbines, some components (hub, nacelle, blades), although easily generated by a skinning process for modeling purposes, they cannot be represented by ruled surfaces. As an example, let us consider the surface

Finally, it should be stressed that any pair of cells belonging to GO

If

If

Here, we present a detailed description on how the surface of each component in a wind turbine farm is modeled in terms of the geometric objects already introduced in Sect.

Geometric modeling of a wind turbine: IEA Wind 15 MW offshore reference wind turbine.

Each wind turbine can be composed, at most, of six different components:

The

The

The

The

The

The user can generate different wind turbine configurations by turning any of these components on or off. In the following subsections we will discuss in detail how to model each component and what parameters should be provided to generate them. All these parameters are specified through some options available in the main mesher script, as well as through a configuration ASCII file. This topic will be covered to some extent in Sect.

Standard parameters of a wind turbine.

As usual, some of those parameters are related to the global configuration of the wind turbine; these are listed in Table

Wind turbine components.

Clearly, the number of blades cannot be increased indiscriminately. If this happens, there may be geometric interference between the hub surface and blade roots. Furthermore, as the number of blades is becoming larger and larger, it may happen that two blades are very close to each other, and therefore some geometrical interference may arise between them.

The tower and monopile components are essentially of the same kind. Both of them are ruled surfaces and therefore generated by GO

The aerodynamic mesh of the nacelle

Exploded view of a typical wind turbine nacelle.

Among the several parameters involved in the design of wind turbines, the cone angle, tilt angle, and pitch angle are directly related with the aerodynamic behavior of the rotor. In particular, the tilt angle is used to provide sufficient clearance between the rotor blades and the tower. Here, for meshing purposes, such tilt angle

Generate a typical flat GO

Deform it into a curved surface as shown in Fig.

For the second step, we consider a continuous deformation

Finally, we need to address the non-smooth connection between the curved patch and the tower–nacelle connector. Such a non-smoothness arises as a consequence of two reasons: (i) the deformation of the original circular hollow cavity (flat patch) into an elliptical cavity (curved patch) and (ii) the misalignment between the tower longitudinal axis and the hollow axis of the curved patch. For this purpose, we compute in advance the radii of an elliptical hollow in the original flat patch that will ensure a smooth connection between the tower and the deformed curved patch

Exploded view of a typical wind turbine nacelle.

The aerodynamic mesh of the hub

Exploded view of a typical three-blade wind turbine hub.

As before, the most complicated step to generate the aerodynamic mesh of the hub lies in the connection between the blade–hub connector and the hub itself, which is done through the curved patches. Those objects are generated by following a similar procedure as the nacelle:

Generate a typical flat GO

Deform it into a curved surface (see Fig.

Make

The deformation of a flat GO

The aerodynamic mesh of a blade

The mesh generation for wind turbine blades is a non-trivial process because it involves discretizing a three-dimensional surface whose shape changes along its longitudinal axis. Table

Blade geometry definition: user-input parameters.

Parameter definition along the blade.

On this basis, the blade is divided into

The arc length for all curved blade shapes is equal to the original length of the straight blade, but with a slightly smaller rotor radius. The arc length of the blade should be kept the same to avoid blade extension, which will bias results towards longer blades that produce more power. To this end, we consider the position of an arbitrary point on the elastic axis of the blade at the reference configuration to be given by

Once the new

The aerodynamic mesh of the ground

Once all the components for a given wind turbine configuration are generated, the next step is to assemble them to obtain the complete wind turbine mesh. The code internally calculates all the data required to assemble each turbine within the wind farm. The only information to be provided by the user is the initial rotor angle, the initial yaw angle, and initial pitch angles. Table

Assembling parameters.

It should be stressed that the number of pitch angles to be provided must match the number of blades in the rotor, i.e.,

In this section we describe the main aspects associated with the computational implementation of the mesh generator code called

This meshing tool is fully implemented in MATLAB^{®}, and it is intended for generating meshes for onshore and offshore wind farms consisting of horizontal-axis wind turbines. Among the main features of

wind farm meshing,

terrain meshing,

specification of terrain topography,

kinematic processor, and

exporting files (Tecplot, UVLM, …).

The mesh generator is designed by following a procedural programming paradigm. The software contains two main blocks: (i) the geometric processor, which is responsible for generating the mesh of each wind turbine component and its assembling, and (ii) the kinematic processor, which is in charge for computing the kinematics of lifting and non-lifting surfaces. The exporting module, which is responsible for writing output files (Tecplot, input data for UVLM-based codes, etc.), can be added/modified by the user according to their needs. However, the code incorporates an option to export meshes in Tecplot format by default. In Fig.

The input files needed by

The code starts by loading as many input files as different wind turbines the wind farm contains. These files must be located inside the folder “

Once all the components for each wind turbine have been generated, the code continues with the wind farm terrain, depending on whether it is activated or not in the main script. Then, all wind turbine parts are assembled to shape the final wind farm. The aforementioned processes, namely the generation of wind turbine components, terrain and their final assembly into a wind park, make up the so-called

The code is executed through a main script, which contains a set of general options, such as wind farm layout, terrain elevation, wind turbine kinematics, and output files. In Table

Main script variables – general options.

To ensure a smooth terrain surface with a regular discretization of elements, it is recommended to consider one patch per turbine in the wind farm. The dimensions of the patch must be large enough to accommodate the ground–tower coupling. Once the surface of the terrain is divided, the code will automatically determine where the turbines are located, it will generate the corresponding ground–tower coupling, and in those patches without turbines, the code will generate a rectangular grid. As an example, let us consider the wind farm introduced above (see variable

Example of a wind farm terrain.

When

The

As before, the

The

The

This module is in charge of generating the wind farm terrain. All necessary parameters are introduced via the ^{®} intrinsic function “

The user-defined function for generating the terrain elevation must receive two inputs: (i) an array of dimension

Example of wind farm terrain elevations.

When the option

This module is in charge of generating the kinematics for the entire wind farm. As before, all necessary parameters are introduced via the

When considering a wind farm, it may happen that it is composed of different types of turbines (heterogeneous wind farm), which can in turn result in very different aerodynamic grids (e.g., large differences in the size of aerodynamic panels). In UVLM-based codes it is customary to define characteristic magnitudes for computing force coefficients. Typically they are the characteristic density

Under the above definitions, it is clear that the time step used by standard UVLM codes based on time-stepping schemes directly depends on the spatial discretization of the blade, i.e., how fine or coarse the aerodynamic grid is. This fact is particularly important for generating the kinematics of heterogeneous wind farms. In a scenario like this, each wind turbine will have its own time step, which greatly complicates the aerodynamic simulation of the wind farm. A simple way to overcome this problem is to define an unique time step for the entire wind farm,

Kinematic variables.

User-defined functions must be placed inside the “

It should be noted that all input angles are in degrees.

In this section, we present a series of results to show the capabilities of the mesh generator developed here to build arbitrary wind turbines and wind farm UVLM meshes. To this end, we use the

All study cases presented in this work, the

The rotor solidity is a dimensionless number commonly used for designing rotors, such as rotorcraft, propellers, and wind turbines. This is function of the aspect ratio and number of blades in the rotor thus providing a measure of how close a lifting rotor system is to an ideal actuator disk in momentum theory. Rotor solidity

To analyze the influence of rotor solidity on the power output of a wind turbine, we consider 10 different configurations, where the number of blades is varied from 1 to 10. We select a blade similar to the SNL100-00 wind turbine. The rest of the parameters are as follows: air density

Power coefficient as a function of the rotor solidity.

As a reference power, we select the wind power crossing the rotor area, i.e.,

Another key factor associated with the power extraction from the wind is the yaw angle of the wind turbine with respect to the free-stream velocity. Rotor yaw reduces the effective projected area exposed to wind flow, thus reducing the energy conversion efficiency of the turbine. Yaw occurs when the wind direction is not perpendicular to the rotor plane. As a consequence, the blade will experience a varying relative velocity and angle of attack, leading to even more unsteady aerodynamics phenomena.

It is clear that the effective velocity of the wind to be considered to estimated the output power of a yawed rotor is its projection on the rotor axis (see Fig.

Free-stream direction.

To analyze the influence of yawed rotors on the power output of a wind turbine, we consider different values of

Normalized power as a function of the yaw angle.

In Fig.

One of the main control parameters in wind turbines is the pitch angle

The pitch angle is defined as an inward rotation of the blade leading edge towards the center of rotation of the turbine; in other words,

Definition of the pitch angle.

To analyze the influence of the pitch angle on the output power produced for a wind turbine, we carried out a series of simulations considering the same rotor configuration as before and a pitch angle ranging from

As it can be observed, the power curve is shifted to the right reaching its maximum at

Normalized power as a function of the pitch angle.

Besides the twist and distribution of airfoils along the blade, cone angle and blade pre-bend are other two important parameters defining the geometry of a wind turbine rotor. The cone angle

Pre-bending was also primarily conceived to achieve tower clearance, i.e., to make sure that there is sufficient distance between the blade tips and the tower during the wind turbine operation (see Fig.

Definition of the cone angle and blade pre-bend.

Here we study how the cone angle and blade pre-bend affect power output independently of each other. To this end, we consider the following two different scenarios: (i) no blade pre-bend and a cone angle ranging from

Zuteck's formula parameters.

The reader can find an explanation of such parameters in Appendix

Normalized power as a function of pre-bending and cone angle.

Figure

In this subsection, we present some aerodynamic simulations of two well-known wind turbine concepts. One of them is the DTU

According to the technical report

DTU 10 MW wind turbine – geometric and kinematic parameters.

In Fig.

Aerodynamic simulation of the DTU 10 MW wind turbine.

Such a phenomenon is recognized as an aerodynamically unsteady region, where the flow angle and velocities are significantly affected. As the upwind turbine blades pass through this region of velocity perturbations, the flow seen by the blade is directly modified, thus resulting in periodical drops of the lift forces and, therefore, a power curve with peaks. This finding is justified from a physical point of view, and its magnitude could be influenced by effects of numerical origin, for which more studies are required to understand this phenomenon.

Another aspect worth mentioning is the interaction of the wakes with the tower. As can be seen in Fig.

The second wind turbine adopted here is the Sandia

Sandia

In Fig.

Aerodynamic simulation of the Sandia 13.2 MW SNL100-00 MW wind turbine.

Finally, the peaks observed in the power curve have the same origin as those discussed above for the DTU 10 MW wind turbine; however their magnitudes are slightly larger. As previously stated, although the appearance of these peaks has a well-founded physical explanation, their magnitude may not be entirely correct and may be affected by numerical issues.

This subsection has a main goal to show the versatility and capacity of the meshing tool developed through the generation of two hypothetical wind farms. These examples give a glimpse the scalability power of the

Here we focus on modeling an onshore wind farm consisting of four wind turbines, of which two turbines are of the DTU 10 MW type and the other two are of the SNL100-00 type. Figure

Onshore wind farm layout.

Onshore wind farm – geometric and kinematic parameters

As can be seen from the schematic, the grid used is relatively coarse in order to reduce the computational cost associated with the aerodynamic simulation. In UVLM-based solvers there are mainly two time-consuming processes: (i) the computation of the circulations, which requires solving a linear system of dimension

Figure

Aerodynamic simulation of an onshore wind farm composed of four wind turbines.

Finally, we present the modeling of an offshore wind farm consisting of nine IEA

Aerodynamic simulation of an offshore wind farm composed of nine wind turbines.

Offshore wind farm – geometric and kinematic parameters

Figure

Although the aerodynamic simulations of wind turbine farms presented above are purely qualitative in nature, they do highlight the time-consuming problem associated with these types of studies. Although these cases have been run on a relatively outdated desktop computer, it is necessary to implement methods to speed up UVLM-based solvers. On this basis, it is essential to explore the use of the fast multipole technique in order to reduce from

In this article, we presented a detailed description of the geometric modeling and computational implementation of an interactive and versatile UVLM-oriented mesh generator for wind turbines and onshore–offshore wind farms. The meshing tool was developed entirely in MATLAB^{®} and easily adaptable to GNU OCTAVE. We also provided a full explanation of the input data needed by the tool, including tables where the reader can find a description of all the variables and their names in MATLAB^{®}. The output data provided by

Although a freely available meshing tool such as

Tower variables.

Monopile variables.

Nacelle variables.

Hub variables.

Blade variables.

Ground variables.

In this appendix, we present a brief review of the unsteady vortex-lattice method in order to highlight the relationship between the geometric modeling introduced in previous sections and the data needed by UVLM-based solvers when it comes to aerodynamic simulations of complex aeronautical/mechanical engineering applications – here wind energy farms in particular.

According to

Vortex lattice associated with the hub–nacelle assembly.

Following

It is well known that UVLM solvers strongly depend on the quality with which lifting and non-lifting surfaces are represented. Wind turbines, and even more so wind farms, are characterized by very complex geometries in general (rotor, blades, terrain topography, etc.), and therefore robust and precise meshing processes are needed to ensure a correct estimation of aerodynamic loads. In this sense, it has been found that the geometric entities GO

As mentioned above, the edges of each

In UVLM-based codes, the non-penetration condition is generally imposed either at the geometric centers of each

As it can be observed in Eq. (

In order to formalize the convection process, let us consider

Once the circulations

Among the several procedures proposed in the literature for computing aerodynamic loads by using the UVLM, we can mention the Joukowski approach

The VT approach is similar to that proposed by Katz. It computes the pressure jump across the bound-vortex lattice by using the Bernoulli equation for unsteady flows:

After some algebraic manipulations, the pressure jump for the

For more details about the theory as well as implementation aspects related to the UVLM, the reader is referred to

The

BAR: conceptualization, formal analysis, investigation, methodology, software, writing – original draft, writing – review & editing. LRC: investigation, software, numerical simulations, review & editing. MLV: investigation, software, review & editing. CGG: conceptualization, formal analysis, methodology, software, supervision, writing – original draft, writing – review & editing.

The contact author has declared that none of the authors has any competing interests.

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.

Cristian G. Gebhardt and Bruno A. Roccia gratefully acknowledge the support from the European Research Council via the ERC Consolidator Grant “DATA-DRIVEN OFFSHORE” (action no. 101083157).

This research has been supported by the European Research Council, ERC Consolidator Grant (action no. 101083157).

This paper was edited by Jens Nørkær Sørensen and reviewed by Joseph Saverin and one anonymous referee.