Understanding the Immersed Boundary meshing algorithm

Hi All,

Recently I’ve spent some time helping customers understand the Immersed Boundary meshing algorithm, and figured I’d share a few findings here for others. The IBM mesher is based on a Cartesian mesh bounding box, with refinements towards the center of the bounding box where there is geometry. The “Refinement propagation” approach uses 3 mesh parameters to define the mesh: Refinement control and Number of Refinement Levels, and Number of Cells Per Direction.

Number of Cells Per Direction: The number of cells per direction defines the size of the coarsest cell size in the mesh. The bounding box, whether defined via geometry primitive or flow volume extraction in CAD Mode, defines the size of the domain. From there, the coarsest level mesh is defined by domain size in X divided by # of cells in the X direction. Often the default # of cells in each direction can be left as the default, but at times it can make sense to change it. For example, if an electronics enclosure is very long and then, it makes sense to make sure there’s few cells in the thin direction, and many more in the long direction.

Number of Levels: Number of Levels represents the number of different size cells in the domain. Level 0 of refinement mesh size in the X direction can be calculated by bounding box size in X direction/# of cells in X direction. From there, level 1 mesh cell edge can be calculated by level 0 size/2. Level 2 mesh is level 1/2, or level 0/2/2. The same can be done for the Y and Z direction.

Refinement control: Refinement control is a measure of distance in units of “Level 0 edge lengths.” Mesh refinement will start this distance away from CAD/geometry inside the domain. For example, if a Level 0 edge length = 1 cm, and refinement control = 2, then mesh refinement will be added around CAD geometry starting at a distance of 2 cm away from the geometry.

Example: IBM - Cooling Raspberry pi - Demo
Bounding box side:
X: 0.8 m
Y: 0.33 m
Z: 0.48

Number of levels (Fan off scenario):
X: 320, Y: 160, Z: 160
Level 0:
X: 0.0025 m
Y: 0.0020625 m
Z: 0.003 m

Level 1:
X: 0.0025 m / 2 = 0.00125 m
Y: 0.0020625 m / 2 = 0.00103125 m
Z: 0.003 m / 2 = 0.0015 m

Level 2:
X: 0.00125 m / 2 = 0.000625 m
Y: 0.00103125 m/ 2 = 0.000515625 m
Z: 0.0015 m / 2 = 0.00075 m

I’ve created this basic spreadsheet to calculate cell size for level 0 and further levels. Please check it out and let me know if you have any questions.

Best regards,
Matt Bemis