HaloSchedule Struct ReferenceΒΆ

adc_cpp: pops::HaloSchedule Struct 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
pops::HaloSchedule Struct Reference

Memoized schedule for ONE (Periodicity, domain) over a fixed layout. More...

#include <halo_schedule.hpp>

+ Collaboration diagram for pops::HaloSchedule:

Public Attributes

bool per_x = false
 
bool per_y = false
 
Box2D domain {}
 
std::vector< HaloJoblocal
 
std::vector< std::vector< HaloJob > > send
 
std::vector< std::vector< HaloJob > > recv
 

Detailed Description

Memoized schedule for ONE (Periodicity, domain) over a fixed layout.

local holds the copies whose dst AND src are owned by this rank; send[r]/recv[r] hold the jobs exchanged with rank r (both empty unless built under MPI with n_ranks() > 1). The fingerprint (per_x, per_y, domain) identifies the (Periodicity, domain) it was built for; the LAYOUT is implicit because the plan is stored on the MultiFab that owns the BoxArray/DistributionMapping/n_grow (see HaloScheduleCache). The jobs carry only Box2D regions, so the plan is INDEPENDENT of ncomp (the component count is supplied at replay via mf.ncomp() to size buffers); ncomp is intentionally absent from the key.

Member Data Documentation

◆ domain

Box2D pops::HaloSchedule::domain {}

◆ local

std::vector<HaloJob> pops::HaloSchedule::local

◆ per_x

bool pops::HaloSchedule::per_x = false

◆ per_y

bool pops::HaloSchedule::per_y = false

◆ recv

std::vector<std::vector<HaloJob> > pops::HaloSchedule::recv

◆ send

std::vector<std::vector<HaloJob> > pops::HaloSchedule::send

The documentation for this struct was generated from the following file: