MultiblockΒΆ

The multiblock strategy for the LBM grid lets the LBM grid carry several refinement levels in the domain. The coarsest level is \(n=0\) and the finest level is \(n=N\), where \(N\) is the maximum level. The elementary volume consists of a cube of an integer size \(d\), called block. Every block in the domain, regardless of its refinement level, contains the same number of LBM nodes. When a block is refined, it subdivides in 8 cubes of size \(d/2\), see figure below:

../../_images/refinement.svg

Neighboring blocks of size \(d=4\) are illustrated in the figure below:

../../_images/mb-nodes.svg

LBM nodes are shown in the frontal face. In the cell-vertex approach, each face of a block has \(d^2\) nodes.

Key idea: 2:1 refinement, two fine steps per coarse step

Refinement is always by a factor of two. A refined block subdivides into eight cubes of half the cell size, so the fine grid resolves both space and time twice as finely as its coarse parent. Because the time step scales with the cell size (acoustic scaling), the solver runs two fine-grid iterations for every one coarse-grid iteration, then exchanges data at the shared interface.

Scope: refinement is static, not adaptive

Refinement levels are fixed at configuration time and do not change during the run. The block forest is decided before the simulation starts, so refinement is placed where you expect the flow to need it (around bodies, in wakes, near the ground) rather than tracked dynamically. There is no run-time error estimator that adds or removes levels.

Key idea: every transition obeys the same rules

The construction is recursive. The rules and properties that govern a level 0 to 1 transition apply unchanged to 1 to 2, 2 to 3, and so on, so a single set of communication and scaling rules covers every level boundary in the domain.

The Scaling page covers the spatial, temporal, viscosity and force rescaling between levels. The Communication page covers the C2F and F2C data exchange at block interfaces.