MultiBlock grids can most easily be treated as multiple separate non-overlapping grids that comprise the space. In a MultiBlock grid, a collection of blocks is combined into the overall grid. Each block is itself a grid, typically one of the simpler Rectilinear Grid types. The blocks are not overlapping and not necessarily of the same size or resolution.
If the grids are overlapping, then usually it is a variation of the MultiBlock grid known as a Hierarchical Grid.
There are many reasons why such a grid structure can be beneficial.
- Use of a simple grid structure (like a Rectilinear Grid) on multiple objects, where a single grid over the entire space would be wasteful or unnecessarily large.
- In parallel processing applications, each processor can work on an individual block.
- The blocks can be used as a form of segmentation. Only viewing a single block could easily show you only one subset of your data space, without requiring potentially expensive segmentation operations.
- Many visualization algorithms (like Isosurfaces) can be computed on each block individually (even in parallel) with the results combined, leading to an efficient and fast result.
- Discontinuities between blocks can lead to visual artifacts on block boundaries, especially in visualizations like isosurfaces.
- Discontinuities between blocks make computation of interblock visualizations, like Streamlines, difficult.
- Spaces between blocks mean you can actually have enclosed spaces that are technically not within the mesh. An example would be a multiblock mesh of a cylindrical chamber, with each block comprising a complete revolution of a different radius range, with the center simply not existing because it is occupied by a solid mass and therefore not simulated. That center space, while technically within the bounding box of all the data sets, actually isn't in any of the data sets.