July / August 2012

There's More Than One Way to Skin a Block – Tips on Unstructured Block Assembly Using Assemble Special

There are two ways to construct blocks in Pointwise, automatically or manually. The question is, if automatic block assembly exists, when is it necessary to use the manual block assembly tools?

To understand Pointwise block assembly, an explanation of its foundation is helpful. Pointwise uses the notion of a “face” to define how blocks are assembled. A structured block is defined by six faces. An unstructured block is defined by at least one outer face and possibly many more interior faces. Furthermore, it is important to understand that each face can contain multiple domains.

For structured blocks, manual assembly (what Pointwise calls Assemble Special) will be required when the topology of the block is too complex for the automatic assembly to determine the correct connections between the faces. This can occur when there are multiple domains per face, and requires the use of Assemble Special so the user can define each of the six block faces individually. An indication that the block topology is too complex for automatic assembly is when the Assemble Blocks function on the toolbar simply fails to create the desired block.

It is easier to decide whether to use automatic or manual assembly for unstructured blocks than it is for structured blocks. If an unstructured block consists of a single closed face, the automatic assembly will be the logical choice. Just select the domains of this face, assuming they are watertight, and click Assemble Blocks from the toolbar and Pointwise will create an unstructured block. If the block includes more than one face, it must be assembled manually using Assemble Special.

Why Use Interior Faces?

Additional faces in an unstructured block can serve multiple purposes. The addition of internal, closed faces can be used to designate the boundaries of a physical object, like an insect (Figure 1), within an unstructured block.

Figure 1: Generic flapping wing insect grid. Insect geometry courtesy of Alok Rege, a graduate student in the Department of Mechanical and Aerospace Engineering at the University of Texas at Arlington.

Interior faces can also serve as an interface between blocks, allowing structured, unstructured, or hybrid blocks to be embedded within the primary flow domain. Such embedded blocks allow for explicit grid point distribution control in critical regions, such as the large wake region behind a vehicle, shown in Figure 2.

Figure 2: Sedan wake region

Non-manifold interior faces, called baffles, can also be used to add internal topology to an unstructured block. Simply put, a baffle is a non-closed face embedded within an unstructured block. A baffle can be free floating or connected to other baffles and closed faces. Similar to internal, closed faces, baffles can be used for explicit grid point control and can even be used to represent thin walls, like the wings of an insect, shown in Figure 3.

Figure 3: Use baffles to represent thin walls, like the wings of an insect

Now that we know when to use the manual block assembly tools, let's take a look at the process for creating an unstructured block with multiple faces in Pointwise.

How to Assemble an Unstructured Block with Multiple Faces

Manual block construction is accomplished through the Pointwise menu command Create, Assemble Special, Block (Figure 4). This opens a panel is where each face of the block is defined and saved, resulting in the final definition of the unstructured block. Assemble Special cannot be used to add faces to an existing block. That is done using the Add Faces command, which will be explained later.

Figure 4: Create, Assemble Special, Block panel for unstructured blocks

The first step when creating an unstructured block consisting of multiple faces is to select the domains defining the outer boundary of the volume, in this example, the farfield domains. Once one of the farfield domains has been selected, remaining adjacent domains will be highlighted in green, shown in Figure 5. Only adjacent domains can be selected to close the face. For faces that consist of multiple domains, select the first domain, then select the remaining domains by using the All Adjacent selection tool in the Select menu, or use the keyboard shortcut Ctrl+Shift+A.

Figure 5: Adjacent domains are highlighted in green

With all of the farfield domains selected, click Save Face to save the first face of the block. Notice in Figure 6 the orientation of the first face is pointed into the volume. If the face orientation was not correct, it could be flipped by clicking Begin Flip Face Orientation or the face could be removed by selecting Remove Last Face.

Figure 6: Farfield block orientation

When you are satisfied with the first face of the block, additional faces can be constructed. Here, the domains on the body of the insect represent a set of closed faces within the unstructured farfield block. For the simulation, the region inside the insect is a void and does not need to be discretized. By selecting the insect domains as the second (head) and third (thorax + abdomen) faces of the block, a Boolean subtraction takes place that effectively removes the region defined by the insect from the unstructured block. As a result, the orientation of these faces should be pointing outward into the volume.

The wing domains are to be modeled as thin surfaces. As non-manifold surfaces, the wing domains are selected as the fourth and fifth faces and added to the block using the Save Baffle Face command (Figure 7). You will notice face orientation arrows emanating from both sides of the baffle faces. The block can then be saved and initialized.

Figure 7: Unstructured block consisting of multiple faces

Adding a Face to an Existing Block

If you discover you need more precise control of the grid, for example, in the downstream wake of the insect, it is possible to add a baffle face without going through the block assembly process again. You can add faces to an existing block using the Add Face command from the Edit menu (Figure 8). In fact, if a block was constructed from only the outer domains, all interior faces could be added in this manner. One thing to keep in mind is that the addition of a face to a preexisting block causes the block interior to be emptied, thus requiring that the block be reinitialized.

Figure 8: Adding a baffle face (top) to an existing unstructured block (bottom)

The result of adding a baffle face in the wake can be seen in Figure 9. The baffle domain fixes points within the volume, providing local grid point control precisely where it is desired. In this case, the baffle is used to help better resolve unsteady flow phenomena downstream of the insect.

Figure 9: Using a baffle for local grid point control

In this example, the body of the insect was defined by two closed faces, whereas the wings and wake sheet were added as baffle faces. Remember, baffles can be used either to control grid point spacing and/or act as infinitely thin surfaces. Topologically these two types of baffles are the same, so where is the distinction made? It is defined in the CAE, Set Boundary Conditions panel, shown in Figure 10. Both sides of a baffle become selectable once the Select Connections checkbox is enabled. Therefore, the two sides of each wing can be placed in a single boundary condition with the CAE type set to wall, whereas the wake sheet domain retains the Connection designation, and is used only for resolution control.

Figure 10: Boundary conditions panel in the CAE menu

Summing It Up

You should now have a better understanding of the manual assembly procedure for unstructured blocks. To summarize:

1. If your unstructured block is composed of multiple faces, use the Create, Assemble Special, Block command.
2. Adding faces to an existing block can be accomplished using the menu command Edit, Add Face.
3. Internal, closed faces can either mark the surfaces of an object or interface between blocks.
4. Baffles can be added to an unstructured block for resolution control or modeling of thin surfaces.