Glyph Scripting Automates Terrain Meshing for Wind Turbine Siting

By Scott Evetts
Pointwise Intern
Texas A&M University


During my internship at Pointwise in the summer of 2014, I had my first taste of CFD through hands-on creation of several grids and writing scripts to automate specific meshing processes. One script in particular was not only fun to write but also automates mesh generation for an interesting application. What I hope to achieve through this script is to demonstrate how anyone can easily create a Glyph applet to automate their own mesh generation process.

The script I am describing is used to find the optimum position of wind turbines relative to the local geography. The location of a wind turbine drastically impacts its energy output. Terrain features such as cliffs, hills, and valleys affect the flow of the wind. Gradual hills and areas of flat terrain allow for smooth flow of wind, making them ideal turbine sites. However, cliffs and valleys can create separated, recirculating flow, causing wear and tear on the wind turbine and reducing its operating life.

The Glyph script I wrote imports terrain geometry and then gives the user simple controls for customizing a mesh across that terrain for their specific computational fluid dynamics (CFD) analysis requirements. There are six steps to creating a high quality grid using the Turbine Siting script:

  • Import terrain
  • Refine the area of interest
  • Create a surface mesh
  • Create a volume mesh
  • Smooth and analyze the volume mesh
  • Export the file to a computational fluid dynamics (CFD) solver

The script can effectively reduce meshing time from a few hours to a few minutes.

Step 1: Import terrain

A Digital Elevation Model (DEM), a common format for terrain data, is a list of elevations for every point inside the geographic area of interest. Using Glyph, these files are read and converted to a PLOT3D file, which Pointwise can import as a database. Figure 1 depicts what this terrain looks like when it has been imported into Pointwise.

The script creates a solid model when importing a DEM file for selected terrain.
Figure 1: The script creates a solid model when importing a DEM file for selected terrain.

To import the geometry, the user is prompted to browse for the DEM file within the script's custom Tk interface (Figure 2).

The first step of the turbine siting script is to import the DEM file.
Figure 2: The first step of the turbine siting script is to import the DEM file.

Step 2: Pick area

Because the area defined by a DEM file can be very large (900 km2), often times the user will not want to mesh the entire geographic area defined by the file. Therefore, the user is given the option to crop the imported region to only the area of interest. The script will represent the selected terrain using a grayscale image based on elevation (Figure 3). This grayscale image is also generated with Glyph. Using the grayscale image, the user can move the red selection rectangle to refine the area of interest.

The Select Area tab in the user interface highlights the area of interest using a red rectangle.
Figure 3: The Select Area tab in the user interface highlights the area of interest using a red rectangle.

Step 3: Surface domain

To create the structured surface domain on the terrain, the user may choose to use either an average spacing between grid points or to specify the number of points on each connector. With either method, the display will update to show what the domain will look like when it is created in Pointwise (Figure 4). This gives users a live preview of their grid, affording them more control.

The Surface Domain tab updates to show what the domain will look like in Pointwise once the user has set connector dimensions.
Figure 4: The Surface Domain tab updates to show what the domain will look like in Pointwise once the user has set connector dimensions.

Step 4: Create block

The next step in the grid generation process is to create the structured volume mesh (block). Vertical connectors are created to provide boundary layer resolution control (with points clustered toward the surface based on user input) and connectors are also created to form the outer boundary of the block. The structured block is formed using the surface domain and the eight newly created connectors. To give the user the necessary control during this step, the script displays a side view of the terrain and the overall size of the block to be created. Additionally, a vertical connector preview is shown that illustrates the distribution of points based on parameters set by the user (Figure 5).

To give the user the necessary control, the script displays the terrain from the side and shows the size of the block to be created relative to the terrain elevation.
Figure 5: To give the user the necessary control, the script displays the terrain from the side and shows the size of the block to be created relative to the terrain elevation.

Step 5: Solve and examine the block

Depending on the complexity of the terrain, it may be necessary to smooth the volume grid to improve its overall quality. When smoothing is necessary, the user specifies a number of iterations for the elliptic PDE solver. The script allows the user to view the maximum and minimum thresholds for several grid quality metrics such as min-included angle, max-included angle, equiangle skew, centroid skew, and volume ratio. When just the maximum and minimum of a given metric is not enough to gauge overall quality, a histogram can be displayed to show the mesh quality distribution.

The Solve Block tab provides tools for smoothing the grid and visualizing the cell quality.
Figure 6: The Solve Block tab provides tools for smoothing the grid and visualizing the cell quality.

Step 6: Export

When the mesh is complete, the Export tab allows the user to export the result to OpenFOAM® and save the Pointwise file for additional work if further refinement is necessary (Figure 7). The boundary conditions for the simulation are automatically specified prior to export.

The Export Tab is used to export the grid to a solver and save the Pointwise file for additional manipulation.
Figure 7: The Export Tab is used to export the grid to a solver and save the Pointwise file for additional manipulation.

Summary

Sample solution computed using OpenFOAM.
Figure 8: Sample solution computed using OpenFOAM.

When I arrived at Pointwise three months ago for a summer internship I had no CFD experience and limited exposure to programming. Even so, I was able to write a script to automate the grid generation for siting wind turbines. This project was particularly exciting for me because it demonstrates the power of Pointwise's Glyph scripting language. Users can create meshing applets exposing the elements necessary to complete a single meshing task. I see this being useful for application specific grid generation where a grid generation expert's knowledge can be encapsulated to automate the meshing process to save time and make consistent quality grids.

Until this script is available on the Glyph Script Exchange you can try writing your own scripts to automate mesh generation by requesting a free trial license of Pointwise.


Search Articles

Share This

Join Our Mailing List

In addition to the offer cited above, by submitting this form, you are giving Pointwise, Inc., 213 S. Jennings Avenue, Fort Worth, Texas, 76110, U.S.A. (www.pointwise.com) permission to add you to our mailing list. You will receive This Week at Pointwise and other emails about Pointwise activities and other CFD events like webinars, user group meetings, training courses, etc. You may revoke your permission at any time by emailing unsubscribe@pointwise.com with your request.