How We Meshed the IMR Brains and Beauty Contest Geometry
By Travis Carrigan, Senior Engineer
A few weeks ago several Pointwise engineers attended the 22nd International Meshing Roundtable (IMR). They brought with them a grid Carolyn Woeber and I generated for a benchmark geometry provided by the IMR steering committee. We were pleased to hear the grid was recognized both for its technical merit and striking visuals and won both the Meshing Contest and the Meshing Maestro award.
The Meshing Contest and the Meshing Maestro were separate meshing competitions held at the 22nd IMR this year. The goal of the Meshing Contest was to generate a grid for a provided geometry using any technique so long as the mesh didn't exceed 20 million cells and the file was smaller than 1GB. The IMR steering committee judged the entries based on the novelty of the approach, the complexity of the spatial discretization, the quality of the mesh, and the usability of the proposed solution.
The second contest was the Meshing Maestro. This poster contest was based on aesthetics rather than technical content. We chose to use our Meshing Contest entry to prepare the images for our poster. The posters were judged by the attendees of the poster session.
This article outlines the process by which the winning grid was generated using Pointwise.
The Proposed Geometry
The geometry provided by the IMR steering committee represented a small unmanned aerial vehicle (UAV) driven by an electric motor. We determined that a cruising speed of 40 miles per hour was acceptable for an aircraft of this size with the given powerplant. In order to stay well below the maximum cell count for the Meshing Contest, a y+ value of 100 was chosen, placing the first cell center well within the outer region of the boundary layer. We elected to mesh the entire model due to the motor asymmetry and to allow for multiple computations at arbitrary model orientations.
The UAV geometry was provided in a number of CAD formats. Although Pointwise was able to successfully import them all, we ended up using both the IGES and STEP formats. (You can download the CAD files from www.sandia.gov/imr/MeshingContest.html.)
Why two different formats? Carolyn and I had chosen to work on different parts of the geometry simultaneously. I chose to work on the electric motor while Carolyn worked on the fuselage and wings. I went with IGES, Carolyn with STEP. In the end, the two separate grids were assembled into a single watertight surface mesh. Dividing the workload reduced the meshing time significantly.
Preparing the Geometry for Meshing
The electric motor proved to be the bottle neck of the geometry cleanup stage. Despite the fact the entire model was watertight and the wing and fuselage components were well defined, the motor geometry was incomplete and inaccurate.
For instance, the rotor was fused to the engine casing and attached at a single location to the shaft. In other words, the rotor would not have been able to spin. Also, a significant portion of the shaft connecting the rotor to the spinner was missing between the aft section of the rotor and the spinner mount. Geometry problems like these would be difficult to identify with an automatic tool, especially considering that the electric motor was a manifold solid model. Accurate results depend on an accurate mesh that defines an equally accurate CAD model. In my opinion, nothing can substitute for a good eye combined with tools like the Layer Manager (Figure 3). A toolset such as this gives a user the ability to dissect a geometry and probe for over-simplifications and inaccuracies.
Figure 3: The Layer Manager allowed the geometry to be organized.
In the end, the missing geometry was easily created within Pointwise. Using the Database Boundaries selection mask, a set of opposing database boundaries were selected. The Interpolate tool made quick work of generating a pair of ruled surfaces that spanned the gap between the rotor and the spinner mount (Figure 4). The new surfaces were added to the solid model using the Create, Assemble, Models command. When assembling or modifying complex solid models, I prefer to use the menu command rather than the Assemble Models toolbar shortcut action. The menu option gives me an opportunity to visualize the topology of the model and modify the model edge tolerance if necessary.
Unnecessary geometry, like the surface fusing the casing to the rotor, was deleted. Bolt holes were also deleted to more accurately capture the exposed surface area of the geometry in flight by creating Coons Patches from the boundary curves. In a similar fashion, the B-spline surfaces were converted to quilts and models and added to the engine model definition using the Create, Assemble, Models command.
Another tool in our solid modeling feature suite called quilting was used to simplify the complex surface topology of the CAD model. While a model is a watertight representation of the geometry, quilts simplify the sometimes overly complex topology of the underlying geometry and define logical meshing regions. With this in mind, the quilts of both the motor assembly and the aircraft were joined to reflect the original engineering intent without simplifying the underlying geometry.
With these geometry modifications, the model was complete. If at this point Carolyn and I had brought our two separate models together and assembled a single watertight model for the entire aircraft, it would have looked something like Figure 6. However, we continued to work independently and each generated our own surface meshes.
Advancing Front Surface Meshing
With quilts defining the individual watertight meshing regions within a given model, surface meshing is as simple as specifying an average grid point spacing and clicking Domains on Database Entities in the toolbar. However, you can get more sophisticated and specify a maximum turning angle for adjacent surface elements, a maximum deviation from the underlying geometry, and a number of other parameters controlling the clustering of points within a domain. These parameters can be specified before creating a surface mesh from the Defaults panel or afterward from the Grid, Solve menu (Figure 7).
Figure 7: Surface meshing parameters are set on the unstructured domain solver attributes panel.
Typically, I generate a uniform unstructured surface mesh for my model using a grid point spacing that resolves some of its largest features. Next, I begin to refine the surface mesh by adjusting connector distributions or unstructured domain attributes. This is exactly how I generated the surface mesh for the motor. And because I cleaned up the geometry and defined my quilts beforehand, surface meshing was just a couple of button clicks.
An advancing front algorithm was chosen to generate the triangular surface mesh for the motor, fuselage, and wing geometries. A benefit of the advancing front technique is its ability to capture curvature in a more regular fashion. Carolyn coupled this technique with a maximum turning angle while meshing the fuselage. I chose to specify a maximum triangle edge length slightly larger than my connector grid point spacing for my domains to provide a reverse boundary decay. Both techniques helped reduce the overall cell count by putting points where we needed them to resolve the underlying geometry.
Although isotropic unstructured surface meshing was an efficient way to resolve much of the geometry, it is not necessarily efficient for resolving areas of high curvature. A great example is the leading edge of the wing. If Carolyn had elected to resolve the leading edge using purely isotropic triangular elements, she would have needed thousands of points across the leading edge to appropriately resolve the geometry. If you are trying to reduce the cell count, this isn't the optimal solution. Plus, not much happens in the spanwise direction, whereas a lot happens in the chordwise direction. A boundary layer develops, the flow can transition, there can be separation, and if we were looking at a transonic aircraft there can be a shock wave. Luckily, Pointwise has the ability to generate anisotropic triangles to resolve areas of high curvature.
T-Rex, our anisotropic tetrahedral extrusion method, can be used in 2D to advance layers of high aspect ratio, right angle triangles normal to a user defined edge from the Grid, T-Rex menu. The cells continue to advance until they reach isotropy or encounter a collision with another grid front or grid boundary. In this case, Carolyn used 2D T-Rex to march high aspect ratio triangles away from the leading edges of the wings, which then interfaced with an advancing front mesh for the remainder of the wing surface meshes.
At this point Carolyn and I brought our two grids together. Despite the fact I was working in millimeters and Carolyn in inches, it only took a single scaling operation from the Edit, Transform menu to resolve that issue. Carolyn stitched the two separate grids together using the Grid, Merge panel. Here, she was able to identify the duplicate connectors (grid curves) and merge them to create a single, watertight surface mesh for the entire aircraft.
Unstructured Viscous Volume Meshing
A spherical farfield was generated to mark the inlet and outlet and to seal off the computational domain. But rather than generate the curves and revolve them to create the farfield surface, Carolyn used a Glyph script from our script exchange on GitHub. The Shape Wizard Glyph script generates very simple shapes that can be used to define farfield geometries and/or domains (Figure 10).
An unstructured volume mesh was defined using both the outer farfield face and the watertight aircraft surface mesh. Carolyn then used T-Rex to generate high aspect ratio anisotropic tetrahedra normal to the body of the aircraft, transitioning to isotropic tetrahedra in the farfield. From the Grid, T-Rex menu, Carolyn specified the maximum number of layers for the extrusion, the growth rate, the initial cell height in the boundary layer, and a couple user defined constraints. In this case, Carolyn used 2.0 for the collision buffer and 160 degrees for the maximum angle. The collision buffer controls the distance between advancing fronts, while the maximum angle skew criteria tells T-Rex not to generate any elements with an included angle that exceeds the value specified.
Figure 11: Many attributes can be applied to a T-Rex extrusion from Grid, T-Rex menu
This unstructured approach allows marching cells to stop locally if there is a collision with an approaching grid front or boundary, if quality criteria (such as skewness or negative volume) is violated, or if isotropy is achieved. Once a cell stops marching, the neighboring cells continue to march until they violate one of these conditions. The benefits to this approach become obvious if you compare it to a traditional prism inflation method in which an entire marching front must stop if one cell stops for collisions or quality reasons.
Exporting the Grid
Once Carolyn finished initializing the volume mesh, I prepared the grid for export. This involved selecting a solver and specifying the boundary conditions for the solver from the CAE menu. The IMR steering committee provided several options for export, OpenFOAM® being one of them.
On export, there is an option to Combine anisotropic tetrahedra. During tetrahedral extrusion, additional information is stored by the T-Rex algorithm that identifies and tags anisotropic tetrahedra that are candidates for prism creation. This information can be used during the export process to evaluate whether a stack of three anisotropic tetrahedra can form a triangular prism in which the component volumes would be all positive. If that criterion is met, the three tetrahedra are combined into a prism. To further reduce the cell count and improve boundary layer orthogonality, I chose to enable prism combination. This export step resulted in a reduction in cell count of over 60 percent. The final mesh is shown in Figure 14.
Carolyn, working on the fuselage and wings, and I, working on the electric motor, faced unique challenges. The solid modeling and geometry creation tools in Pointwise let us quickly resolve some missing and incorrect geometry problems. Advancing front surface mesh generation gave us an easy way to resolve highly curved features like the wing leading edges without busting our grid point budget. T-Rex volume meshing made quick work of generating a high-quality, boundary layer resolved hybrid prism-tet mesh. Working separately, then bringing our two grids together (and using grid scaling to correct differences in the length units we were using), Carolyn and I were able to generate a high quality unstructured viscous mesh of this aircraft in less than a week.
We'd like to thank the IMR for giving us the opportunity to participate in their event and the IMR community for recognizing our work. We are already looking forward to next year.
Test Fly Pointwise Yourself
See how well Pointwise can tackle your meshing applications by signing up for a free evaluation. Who knows, maybe you'll take the Meshing Contest and Meshing Maestro trophies home next year, or our very own Meshy Award at the 2014 Pointwise User Group Meeting!
Figure 15: Travis and Carolyn with the Meshing Contest and Meshing Maestro trophies.