This is our first blog in the monthly mesh series for 2020, and we hope you enjoy the meshes this year. To start the year off we are focusing on Scripting Structured-Unstructured Meshes for Aerospace with Pointwise, as a lead up to Applied CCM’s April event in Brisbane “Pointwise for Aerospace CFD Workshop“.
Meshing Shock Regions
Computational Fluid Dynamics (CFD) is widely used for design and engineering analysis of aircraft and aerofoils. In supersonic and hypersonics flows, shock waves develop at different angles depending on the Mach number and aircraft shape. These shocks appear at different locations and angles (β) to the aircraft. For CFD modelling of these shock waves, the mesh near the shocks should be orthogonal (flow aligned) using hexahedral (hexa) elements.
The Lockheed-Martin LM-1021 is a test case aircraft concept in Sonic Boom Prediction Workshops (Figure 1).
LM-1021 has been meshed in Pointwise as a half model with a symmetry plane (Figure 2). Structured parts of the half cylinder mesh (in blue) are created by revolving the symmetry domains for 180 °. A planar inlet and outlet were used for easier solver implementation of boundary conditions.
Hexa elements have been aligned with the prescribed shock at an angle of β=20 °, to maintain the accuracy and prevent dissipation of the shock when running in a CFD solver. Figure 3 shows hybrid mesh is made up of 5 blocks of (different types):
- Structured block: revolved hexa elements in the shock zone,
- Unstructured block: Pure Tetrahedra (tets) around the aircraft: no boundary layer, suitable for hypersonic flows
- Structured block: revolved hexa elements upstream of the shock zone
- Prism block: extruded prisms off Block 2 semicircular triangular domain
- Unstructured block: A cone block downstream of the aircraft, using T-Rex meshing made up of tets, hexa and pyramids.
This blog focuses on scripting structured-unstructured meshes by recording a base script of the unstructured base mesh, and then adjusting the base script to produce a different mesh with different angles of the structured hexa mesh region for Block 1.
Journaling to get base glf Script
To created a script, we start with a base mesh near the aircraft with pure tets (Figure 4). To get a base script that we can edit, we journaled the mesh steps using the Pointwise menu :
Script-> Begin Journaling
The step of copy/pasting and translating the red connector (Figure 5) a distance upwards and to the left is recorded. And this translation is recorded as a vector that can be modified later to produce different hexa block angle. The revolve of the structured domain adjacent to the red connector (above) produces a structured block. Other resultant mesh operations were also recorded, and a journal script .glf file was produced.
Editing base glf
This base glf file that can be edited by adjusting the translation vector to produce a different angle β. See Figure 6 for a snippit of the glf code relating to the translation step.
Now we can generate meshes for shock angles of β=20, 38 and 67, by editing the base glf file and specifying a suitable translated vector (red connector in Figure 5). Finally, we execute each edited script in Pointwise for the required angles. Result using angle of β=20, 38 and 67 are shown in the figures below.
The resulting mesh using an angle of 20 ° is shown in Figure 7.
Increasing the angle to 38 ° results in the mesh shown in Figure 8.
Finally, Figure 9 shows the use of 67 ° angle in the resulting mesh.
Thanks for reading, the next edition will be in March. Until then, happy meshing!
- 1.Cricket bat meshing
- 2.Twin box bridge deck meshing
- 3.Golf Driver Meshing
- 4.Frigate Helipad Pointwise unstructured mesh
- 5.Frigate Helipad – Structured O-H mesh
- 6.Horizontal wind turbine near a bridge
- 7.Meshing a Raspberry Pi
- 8.Scripting Pointwise Meshing
- 9.2D meshing with sources in Pointwise
- 10.Pointwise as a Pre-processor for CFD
- 11.Mesh Adaption with Caelus and Pointwise
- 12.Meshing Santa’s Pod Racer Sled
- 13.Scripting Structured-Unstructured Meshes for Aerospace
- 14.Mesh Adaptation With Pointwise, Caelus & Python