Hey, long time no see! Back in 2022 I posted about Adaptive Mesh Refinement in OpenFOAM — refining a cylinder wake wherever velocity gradients were high, and later even getting AMR to cooperate with moving meshes. Lately I’ve been exploring the other school of AMR: block-structured refinement.

The philosophy with this technique is quite different. OpenFOAM refines by splitting individual cells of an unstructured mesh you built first. Here there is no meshing step at all: the domain is covered by nested levels of Cartesian grid patches; whole blocks appear and disappear as they track the flow; in theory, the solution at each level could even be advanced with its own time step. It lends itself very well to parallel computing and multigrid linear solver techniques.

After two decades of thinking in unstructured meshes, this changes how you approach a case entirely. Strong advantages, some real trade-offs — more on both in future posts.

Have you used block-structured AMR for hydraulic problems? I’d love to hear about it.