BoxLib contains all the functionality needed to write a parallel, block-structured AMR application. The fundamental parallel abstraction is the MultiFab, which holds the data on the union of grids at a level. A MultiFab is composed of FAB’s; each FAB is an array of data on a single grid. During each MultiFab operation the FAB’s composing that MultiFab are distributed among the cores. MultiFab’s at each level of refinement are distributed independently. The software supports two data distribution schemes, as well as a dynamic switching scheme that decides which approach to use based on the number of grids at a level and the number of processors. The first scheme is based on a heuristic knapsack algorithm; the second is based on the use of a Morton-ordering space-filling curve. MultiFab operations are performed with an owner computes rule with each processor operating independently on its local data. For operations that require data owned by other processors, the MultiFab operations are preceded by a data exchange between processors. Each processor contains meta-data that is needed to fully specify the geometry and processor assignments of the MultiFab’s. At a minimum, this requires the storage of an array of boxes specifying the index space region for each AMR level of refinement. The meta-data can thus be used to dynamically evaluate the necessary communication patterns for sharing data amongst processors, enabling us to optimize communications patterns within the algorithm. One of the advantages of computing with fewer, larger grids in the hybrid OpenMP--MPI approach (see below) is that the size of the meta-data is substantially reduced.
Keywords for this software
References in zbMATH (referenced in 11 articles )
Showing results 1 to 11 of 11.
- Donna Calhoun, Carsten Burstedde: ForestClaw: A parallel algorithm for patch-based adaptive mesh refinement on a forest of quadtrees (2017) arXiv
- Berzins, Martin; Beckvermit, Jacqueline; Harman, Todd; Bezdjian, Andrew; Humphrey, Alan; Meng, Qingyu; Schmidt, John; Wight, Charles: Extending the Uintah framework through the petascale modeling of detonation in arrays of high explosive devices (2016)
- Muralidharan, Balaji; Menon, Suresh: A high-order adaptive Cartesian cut-cell method for simulation of compressible viscous flow over immersed bodies (2016)
- Zhang, Weiqun; Almgren, Ann; Day, Marcus; Nguyen, Tan; Shalf, John; Unat, Didem: BoxLib with tiling: an adaptive mesh refinement software framework (2016)
- Barbas, Alfonso; Velarde, Pedro: Development of a Godunov method for Maxwell’s equations with adaptive mesh refinement (2015)
- Guo, Z.; Xiong, S.M.: On solving the 3-D phase field equations by employing a parallel-adaptive mesh refinement (para-AMR) algorithm (2015)
- Sætra, Martin L.; Brodtkorb, André R.; Lie, Knut-Andreas: Efficient GPU-implementation of adaptive mesh refinement for the shallow-water equations (2015)
- Jiang, R.-L.; Fang, C.; Chen, P.-F.: A new MHD code with adaptive mesh refinement and parallelization for astrophysics (2012)
- Thornburg, Jonathan: Adaptive mesh refinement for characteristic grids (2011)
- Mo, Zeyao; Zhang, Aiqing; Cao, Xiaolin; Liu, Qingkai; Xu, Xiaowen; An, Hengbin; Pei, Wenbing; Zhu, Shaoping: JASMIN: a parallel software infrastructure for scientific computing (2010)
- Johansen, Hans; Colella, Phillip: A Cartesian grid embedded boundary method for Poisson’s equation on irregular domains (1998)