include/pops/amr/hierarchy/amr_hierarchy.hpp File ReferenceΒΆ
|
adc_cpp 0.3.0
Model-free C++23 core for coupled hyperbolic-elliptic systems on adaptive (AMR) meshes, with MPI and GPU (Kokkos) backends
|
amr_hierarchy.hpp File Reference
AmrHierarchy: the stack of refinement levels (container of the AMR hierarchy). More...
#include <pops/amr/hierarchy/refinement_ratio.hpp>#include <pops/mesh/index/box2d.hpp>#include <pops/mesh/layout/box_array.hpp>#include <pops/mesh/layout/distribution_mapping.hpp>#include <pops/mesh/storage/multifab.hpp>#include <pops/parallel/comm.hpp>#include <cassert>#include <utility>#include <vector>
Include dependency graph for amr_hierarchy.hpp:
This graph shows which files directly or indirectly include this file:Go to the source code of this file.
Classes | |
| class | pops::AmrHierarchy |
| Stack of refined levels (domain + BoxArray + MultiFab per level), level 0 the coarsest. More... | |
Namespaces | |
| namespace | pops |
Detailed Description
AmrHierarchy: the stack of refinement levels (container of the AMR hierarchy).
Layer: include/pops/amr (AMR geometric primitives). Role: carries, per level, the domain in index space, the BoxArray and the MultiFab field. Level 0 = the coarsest; fixed integer refinement ratio (2 by default). Contract: pure container; POPULATING the fine levels (tagging + Berger-Rigoutsos clustering) is the job of regrid.hpp. Here we provide the explicit add/replace of a level, sufficient for static refinement.
Invariants:
- domain(lev) == domain(lev-1).refine(ref_ratio): domains nested by the fixed ratio;
- the three vectors (domain_, ba_, data_) always have the same size = num_levels();
- replacing or clearing a level invalidates and removes all finer levels.
Generated by