Binarized octree generation for Cartesian adaptive mesh refinement around immersed geometries
We revisit the generation of balanced octrees for adaptive mesh refinement (AMR) of Cartesian domains with immersed complex geometries. In a recent short note [Hasbestan and Senocak, J. Comput. Phys. vol. 351:473-477 (2017)], we showed that the data-locality of the Z-order curve in hashed linear octree generation methods may not be perfect because of potential collisions in the hash table. Building on that observation, we propose a binarized octree generation method that complies with the Z-order curve exactly. Similar to a hashed linear octree generation method, we use Morton encoding to index the nodes of an octree, but use a red-black tree in place of the hash table. Red-black tree is a special kind of a binary tree, which we use for insertion and deletion of elements during mesh adaptation. By strictly working with the bitwise representation of the octree, we remove computer hardware limitations on the depth of adaptation on a single processor. Additionally, we introduce a geometry encoding technique for rapidly tagging the solid geometry for refinement. Our results for several geometries with different levels of adaptations show that the binarized octree generation outperforms the linear octree generation in terms of runtime performance at the expense of only a slight increase in memory usage. We provide the current AMR capability as open-source software.
READ FULL TEXT