Hexadominant Mesh
Theory: cell count and flow alignment
Overview
Tet meshes are easy to generate automatically. Why bother with hexahedra?
Two reasons. First, cell count: at the same resolution hexes need a fraction of the tets. Second, accuracy: hex faces can align with the flow. When flow crosses the grid obliquely, discretisation error appears as artificial diffusion that blurs velocity and temperature profiles. Filling complex geometry entirely with hexes is laborious, though, so hex-dominant meshing fills most of it automatically with hexes and patches the remaining gaps with tets and similar cells.
Estimating cell count
V is volume, h cell size and f the fraction of volume filled with hexes. The tet count assumes each hex is split into six tets.
False diffusion of first-order upwind
θ is the angle between flow and grid lines. It is zero at θ = 0 (aligned) and largest at 45°.
Blurring by oblique flow
In the 1970s de Vahl Davis and Mallinson derived the false diffusion created by first-order upwind differencing when flow crosses the grid obliquely. The result spurred both higher-order schemes and efforts to align grids with flow. Second-order schemes are now standard and false diffusion is much smaller, but grid orientation still matters, and resolving boundary and shear layers with flow-aligned hexes or prisms remains fundamental.
Worked examples
Example 1: 1 m cube at 10 mm cells
| Mesh | Cells | Faces | Note |
|---|---|---|---|
| Hex only | 1.0 M | ~3 M | 6 faces per cell |
| Tet (hex split in 6) | 6.0 M | ~12 M | 4 faces per cell |
| Regular tet (10 mm edge) | 8.5 M | — | Volume h³/(6√2) |
| Polyhedral (tet dual) | ~1.0 M | ~7 M | ~14 faces per cell |
| Hex-dominant (85%) | 1.75 M | — | About 30% of tet |
Example 2: flow angle and false diffusion (10 mm cells, 1 m/s)
| Flow-grid angle | False diffusion | vs air ν | vs water ν |
|---|---|---|---|
| 0° | 0 | 0 | 0 |
| 15° | 1.4×10⁻³ m²/s | 91 | 1,361 |
| 30° | 2.8×10⁻³ m²/s | 186 | 2,795 |
| 45° | 3.5×10⁻³ m²/s | 236 | 3,536 |
False diffusion over 200 times air's viscosity — can the results be trusted?
That's first order; the second-order schemes used in practice give much less. Still, error remains larger wherever flow crosses the grid obliquely. Tetrahedra are oblique to flow in every direction, so they need finer grids for the same accuracy, while flow-aligned hexes keep error down with fewer cells. In hex-dominant meshing, put the hex region where the main flow is, and align near-wall flow with prism layers. Pyramids appear at hex–tet interfaces and tend to degrade quality, so keep those interfaces away from important flow regions.
Meshing tips
- Add prism (inflation) layers on walls first.
- Fill the interior with hexes, patching only near complex geometry with tets.
- Align hexes with the main flow direction.
- Check quality (skewness, volume ratio) of pyramids and transitions.
- Check mesh independence by varying cell count.
“Pipe pressure drop that wouldn't match”
Pressure drop in a pipe with many bends came out about 15% above measurement on a tet mesh. Adding cells barely closed the gap, and the count reached tens of millions. Remeshing as hex-dominant — flow-aligned hexes in straight runs, tets only in bends — cut cells to about a third and the discrepancy to a few percent. The likely cause was false diffusion smearing the velocity profile in straight runs on the tet mesh.
Common mistakes
Mistakes and fixes
| Mistake | Effect | Fix |
|---|---|---|
| No prism layers on walls | Wrong wall friction and heat transfer | Inflation layers |
| Hexes oblique to flow | No accuracy gain | Align with main flow |
| Interface in key region | Errors from pyramids | Move the interface |
| Comparing by cell count only | Face count and cost overlooked | Check face counts too |
| No mesh-independence check | Unknown error | Compare 3 levels |
I'd like to learn related topics.
Related pages include polyhedral meshes, structured meshes, inflation layers, CFD mesh quality and mesh independence.
Related Topics
Experience the theory firsthand with the interactive simulator for this field
All Simulators