include/pops/mesh/boundary/halo_schedule.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
|
HaloSchedule: memoized intra-level halo-exchange plan for fill_boundary (ADC-260). More...
Include dependency graph for halo_schedule.hpp:
This graph shows which files directly or indirectly include this file:Go to the source code of this file.
Classes | |
| struct | pops::HaloJob |
One halo copy/transfer: the ghost region of box dst is filled from the shifted valid region of box src (shift sx, sy in cells for the periodic wrap; 0 for an interior neighbor). More... | |
| struct | pops::HaloSchedule |
| Memoized schedule for ONE (Periodicity, domain) over a fixed layout. More... | |
| class | pops::HaloScheduleCache |
| Small per-MultiFab cache of halo schedules, one entry per distinct (Periodicity, domain). More... | |
Namespaces | |
| namespace | pops |
| namespace | pops::detail |
Functions | |
| std::int64_t | pops::halo_schedule_build_count () |
| Number of times fill_boundary has BUILT (enumerated) a halo schedule. | |
| void | pops::reset_halo_schedule_build_count () |
| Resets the build counter (tests). | |
Detailed Description
HaloSchedule: memoized intra-level halo-exchange plan for fill_boundary (ADC-260).
fill_boundary_begin used to enumerate, on EVERY call, the neighbor-box job schedule: a BoxHash build plus a local (and, under MPI, a global) enumeration over the BoxArray. That schedule is a pure function of the LAYOUT (BoxArray, DistributionMapping, n_grow) and the per-call (Periodicity, domain); only the copy/pack/MPI/unpack of the LIVE data must rerun. This header holds the cacheable plan so the enumeration runs ONCE per (layout, Periodicity, domain). Jobs carry GLOBAL box indices (resolved to local fabs at replay), so a plan is valid for any MultiFab over the same layout. MPI-free: the in-flight buffers and MPI_Request stay in HaloExchange (fill_boundary.hpp).
Generated by