include/pops/mesh/layout/patch_box.hpp File ReferenceΒΆ

adc_cpp: include/pops/mesh/layout/patch_box.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
patch_box.hpp File Reference

PatchBox: index-space footprint of an AMR fine patch, exposed read-only to Python. More...

+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  pops::PatchBox
 INDEX-SPACE footprint of an AMR fine patch, exposed to Python by AmrSystem::patch_boxes(). More...
 

Namespaces

namespace  pops
 

Detailed Description

PatchBox: index-space footprint of an AMR fine patch, exposed read-only to Python.

Layer: include/pops/mesh. Role: trivial POD (level, ilo, jlo, ihi, jhi) describing the position of a box in the index space of its level; a read-only view onto the boxes already stored, harvested between steps by AmrSystem::patch_boxes() (no cost on the hot path). Contract: INCLUSIVE corners (Box2D / AMReX convention); the conversion to physical coordinates [0, L]^2 happens on the Python side, which knows n and L.

Invariants:

  • level 0 = coarse, level >= 1 = fine (ratio 2 per level, n << level cells per direction);
  • the box covers (ihi - ilo + 1) x (jhi - jlo + 1) cells.