ADflow uses structured meshes. For simple geometries, a valid structured mesh can be obtained by the multiblock structured mesh approach. However, it can be difficult or even impossible to generate a high quality multiblock mesh for complex geometries.
To mitigate this problem, the overset approach (also called chimera-patch) was implemented in ADflow. Overset meshes can be viewed as an unstructured network of overlapping structured meshes. Instead of having one big structured mesh, the fluid domain is split up into separate, overlapping meshes. Information is interpolated among overlapping meshes at every solver iteration.
The boundary conditions for this example is set as follows:
Cells assume different tasks in an overset mesh:
Compute cells: Active cells that are relevant to the solution as they represent the volume. The PDEs are enforced on these cells.
Blanked cells: Inactive cells that are inside bodies or overlapped by better quality cells.
Interpolated cells (Receivers): Cells that inherit state variables from donor cells belonging to other overlapping meshes.
The compute cells in an overset mesh for a more complicated configuration look like this:
More about the overset implementation in ADflow can be found in this paper.
Because the solver has to interpolate in the overlapping region, the numerical solution will locally not be as accurate. It is recommended to avoid such overlapping near critical regions of the flowfield, like the wing tip.
Implicit Hole Cutting (IHC)
ADflow uses implicit hole cutting (IHC) to automatically assign overset connectivities. IHC is based on the assumption that cells are finer near walls. IHC preserves smaller cells and blanks or interpolates larger ones. The general theory behind IHC can be found in this paper. In this section, we focus on the IHC implementation in ADflow.
iBlank array indicates the function of each cell.
ADflow saves this array in the volume or surface CGNS files if you add
blank to the
The complete list of
iBlank values in ADflow is:
-3: Flood seed
-4: Explicitly blanked (using
-5: Orphan (flagged for debugging purposes only)
In the figure above, the red cells represent the compute cells in each mesh. The green cells are the interpolated cells, which bring in information from the overlapping compute cells. The yellow cells represent the blanked cells. These have no function in the flow solution but play an important role in the flooding process.
Flooding is the process used to determine which side of a wall should not be included in the flow solution.
This is usually the interior of a body such as a wing or aircraft.
Flooding starts at the flood seeds, which are the dark blue cells in the figure above.
A cell must satisfy two requirements to be designated as a flood seed.
First, the cell must intersect a wall on an overlapping mesh.
Second, the cell must be farther than
nearWallDist from any wall in its own mesh.
In the example, the flood seeds are cells in the background mesh that overlap with the walls of the circle in the nearfield mesh.
The light blue cells are the flooded cells.
Compute cells that are next to a flood seed or a flooded cell are converted to flooded cells until the flooding is stopped by at least two layers of blanked or interpolated cells.
In the example, the flooded region is limited to the inside of the circle.
If we did not have enough resolution in the blanked and interpolated cells, the flood seeds would flood the rest of the mesh and the IHC would fail.
In the figure below, the center cell is marked with red, and all of the other cubes represent an exploded view of the computational stencil used in ADflow for RANS simulations. The stencil for all compute cells (excluding cells at physical boundaries) should include only other compute or interpolated cells. If this is not satisfied, the center cell is tagged as an orphan cell. A valid mesh has no orphan cells.
As seen in the STARC-ABL figure on this page, there can be multiple nearfield meshes that overlap on a surface. This makes it difficult to correctly integrate the forces and moments acting there. For that reason, ADflow uses zipper meshes to provide a watertight surface. More about zipper meshes can be found this paper.
Collar meshes outline the intersection between two component meshes. The collar mesh should be finer than the overlapping component meshes. This ensures that the collar cells are selected during IHC and there are no gaps at the intersection.
We can also use a half-collar to reduce the number of overset blocks. In the following example, the half-collar on the fuselage belongs to the tail mesh. The half-collar and the rest of the tail mesh share the intersection line.