include/pops/coupling/amr/amr_level_storage.hpp File ReferenceΒΆ

adc_cpp: include/pops/coupling/amr/amr_level_storage.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_level_storage.hpp File Reference

AmrLevelStack: AMR hierarchy storage (levels + aux) extracted from the couplers. More...

#include <pops/core/state/state.hpp>
#include <pops/core/foundation/types.hpp>
#include <pops/mesh/index/box2d.hpp>
#include <pops/mesh/storage/multifab.hpp>
#include <utility>
#include <vector>
+ Include dependency graph for amr_level_storage.hpp:
+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  pops::AmrLevelStack< Level >
 Owns the AMR level stack and the parallel aux stack. More...
 

Namespaces

namespace  pops
 

Detailed Description

AmrLevelStack: AMR hierarchy storage (levels + aux) extracted from the couplers.

The coupler now only ORDERS the operations; this stack OWNS the level stack std::vector<Level>, the parallel aux MultiFab stack, and carries the wiring L_[k].aux = &aux_[k]. Generic over Level (AmrLevelMF mono-box or AmrLevelMP multi-box): only the U (MultiFab) and aux (const MultiFab*) members are touched here; the distribution lives in the MultiFab (no mono-rank assumption). ADDRESS INVARIANT: aux_ is sized ONCE at the ctor then never resized (the L_[k].aux pointers point into aux_); reattach_aux(k) replaces aux_[k] IN PLACE and rewires. aux width propagated as a parameter (default kAuxBaseComps = 3, bit-identical).