Vertical Axis Wind Turbine and Rotating Mesh

Summary

This study presents the meshing process using CF-MESH+ developed to gain the following: • Meshing and setting up a multi-domain case with a rotating mesh. • A high-quality boundary layer mesh • 100% layer coverage even for complex geometries • Minimum user input

Key takeaways

• CF-MESH+ creates subsets on both sides of the rotating interface, thus simplifying the solver setup later on • It offers numerous options to specify refinement • Once the setup is created, the meshing is done automatically using all available cores on your computer to speed up the meshing process The end result can be seen below, in detail.

This case study demonstrates how to mesh and set up a multi-domain case with a rotating mesh. The analyzed geometry represents a Darrieus-Savonius wind turbine. 

Geometry preparation

For more detailed tips and tricks on how to prepare your geometry and provide meaningful settings, please read the previous blog posts.

A vertical-axis wind turbine is a relatively simple geometry to mesh using the CF-MESH+, but some important factors should be considered before uploading the surface mesh.

The shape of the blade’s trailing edge is crucial for the mesher to work properly. Geometries that have a sharp trailing edge (one that ends as a single vertex in 2D or as a single edge in 3D), as shown in Figure 1, should be avoided. Besides making it harder to generate a high-quality mesh with a high-quality boundary layer over the sharp edge, this type of geometry does not represent the actual shape of any mechanical part as it cannot be produced/made in the real world.

Trailing edges should be shaped with a blunt or rounded end as seen in Figure 2 and Figure 3.

Figure 1: Sharp trailing edge in 2D
Figure 2: Blunt trailing edge suitable for meshing
Figure 3: Rounded trailing edge suitable for meshing

In this case, the uploaded surface mesh has rounded trailing edges.

Figure 4: Imported geometry

Meshing process

The process of creating a rotating mesh in CF-MESH+ starts by creating two different cylinder primitives around the imported surface mesh. The primary role of the bigger outer cylinder is to define the fluid domain around the wind turbine. The smaller inner cylinder determines the rotating domain.  

The next step is defining the patches (boundaries). In this case, there are four different patches: outerZone, innerZone, ground, and turbine. Patch outerZone belongs to the outer cylinder, innerZone belongs to the inner cylinder, while patch ground is shared between the two cylinders. The surface mesh of the wind turbine belongs to the patch turbine.

Figure 5: Patch definition

In order to create a rotating domain, the multi-domain capability in CF-MESH+ was used by activating the meshing of multiple domains in the Settings tree. The mesher sees every enclosed geometry as a potential meshing domain and it is necessary to define the domains we want to mesh. Domain definition was carried out by specifying the patches unique to a given domain. The user must be aware that the combination of patches used to define a domain must be strictly unique to the given domain. Patches innerZone and turbine were selected for defining the rotating domain named rotatingDomain, while patch outerZone was selected for defining the domain named fixedDomain.

To create a sliding interface, it was necessary to enable the Detach points at the internal interfaces option in CF-MESH+. This option created two patches named innerZone_fixedDomain and innerZone_rotatingDomain at the interface of the domains, later used for defining coupling conditions at the interface.

Figure 6: fixedDomain (red) and rotatingDomain (yellow)
Figure 7: fixedDomain (red) and rotatingDomain (yellow)

The next step is choosing the appropriate cell sizes over the domain. Although the wind turbine has a diameter of 0.6 m, the maximum cell size of 0.4 m was set in the master settings. This was done to reduce the number of cells in the domain and to create a coarse mesh far enough from the wind turbine. The maximum cell size set in the master settings can be further refined in regions where the mesh resolution is insufficient. This can be done automatically or by manually selecting patches and creating face and edge subsets where refinement is needed. The region of the wind turbine, especially the blades and the hub, was refined until the cell size was smaller than the feature size. This can be easily visualized with the help of the Show cell size tool.

Refined mesh near trailing edge_meshed by CF-MESH+
Figure 8: Refined mesh near trailing edge
Refined mesh near the hub_meshed by CF-MESH+
Figure 9: Refined mesh near the hub

For obtaining the accurate fluid behavior around the wind turbine, it is necessary to use several layers of boundary layer cells in the areas where significant gradients are expected. Depending on the required accuracy of the solution, the low Reynolds or high Reynolds turbulence model approach should be chosen. In this case, we opted for the latter and used three boundary layers on the whole surface of the wind turbine.

Boundary layers on the blade_meshed by CF-MESH+
Figure 10: Boundary layers on the blade
Closer look at the boundary layers_meshed by CF-MESH+
Figure 11: A closer look at the boundary layers

Simulation setup

For the simulation of airflow around the vertical axis wind turbine, the solver pimpleFoam available in OpenFOAM-v2206 was used. The curved surface of the cylindrical domain was used as the inletOutlet patch with the airflow velocity set as (5 0 0).  The time step was set as adjustable to the maximum Courant number of 1. To establish mesh motion, it was necessary to create a dynamicMeshDict in file constant, where the axis of rotation and angular velocity of the rotating domain were defined. Angular velocity was set to 12 rad/s. Arbitrary Mesh Interface (AMI) method was used for coupling conditions between patches at internal interfaces. AMI requires changes in file boundary where the boundary type of patches innerZone_fixedDomain and innerZone_rotatingDomain was set to cyclicAMI.

Figures 12 and 13 show the pressure and velocity field in the domain around the wind turbine.

Figure 12: Pressure field in the domain

                                                                                                           

Figure 13: Velocity field in the domain
Figure 14: Velocity magnitude streamlines
Figure 15: Velocity magnitude streamlines

Conclusion

This study presents the process of preparing a mesh and the solver setup, of a multi-domain case with a rotating mesh, a high-quality boundary layer mesh, and 100% layer coverage even for complex geometries, with the minimum user input. CF-MESH+ creates subsets on both sides of the rotating interface, thus simplifying the solver setup later on. Furthermore, it offers numerous options to specify refinement. Once the setup is created, the meshing is done automatically, using all available cores on your computer to speed up the meshing process.

We hope that you have found this post useful and that it has made you curious to try out our latest CF-MESH+, designed to alleviate the pain of meshing. You can also subscribe to our newsletter to stay informed on our newest developments.

By Mislav Babić and dr.sc. Franjo Juretić

Choose your best solution

cfMesh (open source)

cfMesh is an open-source library for mesh generation implemented on top of the OpenFOAM® framework. Read more here.

Note: None of the OpenFOAM® related offering by Creative Fields Holding Ltd is approved or endorsed by OpenCFD, Ltd. (ESI Group), producer of the OpenFOAM® software. OpenFOAM® and OpenCFD® are registered trade marks of ESI Group.

Basic automatic cell sizing

Boundary layers

Cartesian 2D + 3D

Open source

Polyhedral meshing

Tetrahedral meshing

CF-MESH+ (pro)

Discover superior boundary layer generation capabilities, all in an affordable, automated, easy-to-use software.

Basic automatic cell sizing

Cartesian 2D + 3D

Commercial

Polyhedral meshing

Tetrahedral meshing

Advanced control of layer topology

Advanced control of mesh quality

Advanced control for automatic cell sizing

Advanced selection of domains that shall be meshed

CAD import

Hexahedral meshing

Robust algorithms for mesh quality control

Support included (except the hourly licenses)