Thursday, September 19, 2019

Why do we need Prism Mesh in Boundary Layer?

Let us consider a cell-centered unstructured finite-volume CFD solver. In the core of simulation domain, away from wall boundaries, we can use hex, tet, or poly cells.

Why can't we use the same type of cells in boundary layer? In the core of simulation domain, gradients are mild or negligible. But in boundary layer close to a wall boundary, solution gradients are extremely high normal to the wall but almost negligible along directions parallel to the wall. To resolve these highly anisotropic gradients we have two options to choose from:
  1. either use isotropic cells (similar cell size in all directions) with cell length scale based on the requirements of resolving wall normal gradient,
  2. or use highly stretched anisotropic cells with small length scale (based on the requirements of resolving wall normal gradient) in wall normal direction and much larger length scale in other directions.
Option #1 leads to a much larger number of cells compared to option #2. These extra cells, however, unnecessarily add to computational cost without improving accuracy in a noticeable way. That's why option #2 is preferred.

Can we use highly anisotropic hex, tet, or poly cells? Anisotropic tets and polys can have very bad skewness and non-orthogonality and solver has difficulty in handling them. (What do skewness & non-orthogonality mean and how is solver affected by them? We will leave that for a later post.) Anisotropic hexes, however, do not have the same problem. They can be highly squished along just one direction while maintaining zero skewness and full orthogonality. So
  • if the core mesh is hex, we use quad prims (stretched hexes - with quad bases) in boundary layer,
  • if the core mesh is tet, we use tri prisms (tri bases) in boundary layer, and
  • if the core mesh is poly, we use poly prisms (poly bases) in boundary layer.

No comments:

Post a Comment