Polyhedral Mesh
Theory: gradients from many neighbours
Overview
For complex-geometry CFD, I hear converting a tetrahedral mesh to polyhedra slashes cell count. Doesn't accuracy suffer?
Polyhedral cells are often made by merging the cells around each vertex of a tetrahedral mesh. Each cell touches ten or more neighbours, giving plenty of information for gradient computation, whereas a tetrahedron has only four. Built from the same points, cell count drops sharply, but each cell is larger, so whether accuracy is truly preserved needs checking. Let's build both from the same point cloud and compare gradient accuracy.
Least-squares gradient
Cell P's gradient is chosen to best match value differences to neighbours N. More neighbours in more directions make the estimate more stable.
Cell and face counts
Rules of thumb for meshes from the same point cloud (checked with 3D Delaunay). Polyhedra have fewer cells but more faces each, so face-driven computational cost doesn't fall as much as cell count.
How polyhedra entered general-purpose codes
The finite volume method is inherently shape-agnostic, expressing conservation as sums of fluxes through faces, so in principle any polyhedron works. Yet for a long time structured grids and tetrahedra or hexahedra dominated. In the early 2000s Perić and colleagues in Germany reported that polyhedral meshes derived from tetrahedra achieved similar accuracy with fewer cells and better convergence, and automatic polyhedral meshing entered commercial CFD. It is now widely used in automotive and thermal-fluid work to mesh complex shapes quickly while holding cell counts down.
Worked example: comparing from the same points
Tetrahedra were built by 3D Delaunay triangulation of points in a cube, and polyhedra as its dual (one cell per point). The gradient of sin(3x) + cos(2y) + xz was computed by least squares, comparing median error in interior cells:
| Point layout | Points | Tetrahedra | Tet gradient error | Polyhedra | Poly gradient error |
|---|---|---|---|---|---|
| Regular (jittered lattice) | 2,744 | 18,395 | 3.24% | 2,744 | 4.95% |
| Regular (jittered lattice) | 15,625 | 106,819 | 2.08% | 15,625 | 2.84% |
| Random | 2,461 | 16,081 | 4.02% | — | — |
| Random | 16,000 | 106,587 | 2.13% | 16,000 | 4.70% |
What happens when comparing at similar cell counts?
With regular points, 15,625 polyhedra gave 2.84% against 3.24% for 18,395 tetrahedra — polyhedra slightly better. With random points, 16,000 polyhedra gave 4.70% against 4.02% for 16,081 tetrahedra — reversed. Polyhedra from random points are misshapen, with scattered neighbour distances. So it's not that polyhedra are always better: when the underlying tetrahedral mesh is good, they reach equal or better accuracy with fewer cells. Their advantage is also said to include better iterative convergence from fewer distorted cells.
When and how to use
- Consider it for complex shapes where hexahedra are hard to build.
- Build a good tetrahedral (or surface) mesh first, then convert to polyhedra.
- Combine prism layers near walls to resolve boundary layers.
- Estimate face count and memory, not just cell count.
- Compare tetrahedral and polyhedral results under the same conditions and check grid dependence.
“Fewer cells, same run time”
Converting a 10-million-cell tetrahedral CFD mesh to 2 million polyhedra barely shortened time per iteration. Each polyhedron had many faces, increasing face-flux computation and neighbour data exchange. Iterations to convergence roughly halved, though, so total time fell. Judge polyhedra not by cell count alone but by face count, time per iteration and iterations to convergence together.
Common mistakes
Mistakes and fixes
| Mistake | Effect | Fix |
|---|---|---|
| Comparing by cell count only | Cost misjudged | Compare face counts too |
| Converting a poor tet mesh | Misshapen polyhedra | Improve the base mesh |
| Polyhedra only near walls | Boundary layer unresolved | Add prism layers |
| Assuming polyhedra always improve accuracy | False confidence | Check grid dependence |
| Converting between codes | Face orientation/shape broken | Check quality after conversion |
I'd like to learn related topics.
Related pages include CFD mesh quality metrics, unstructured meshes, hex-dominant meshes, inflation layers, mesh independence and finite volume fundamentals.
Related Topics
Experience the theory firsthand with the interactive simulator for this field
All Simulators