t8code—Scalable Adaptive Mesh Refinement
摘要
The resolution of exascale simulations is restricted by the computational power of the calculating system. One way to minimize the simulation error is to use adaptive meshes to define the domain. Adaptive meshes are meshes with different resolutions in different areas. They can be utilized to have a low resolution in areas with slowly changing data and a high resolution in areas with quickly changing data. t8code is a C/C++ software library for scalable dynamic adaptive mesh refinement. It employs tree-based meshes saved using space-filling curves. Allowing parallel calculations, it is a fast and memory efficient algorithm for dynamic AMR. t8code can manage meshes with over one trillion mesh elements and scales up to one million parallel processes This chapter describes the basic AMR concepts used by t8code, like the tree structure and the space-filling curve and presents the basic algorithms of t8code. The efficiency and scalabity are demonstrated by analyzing a numerical simulation using the prototypical high-order Discontinuous Galerkin solver t8dg.