include/pops/amr/tagging/tag_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
|
tag_box.hpp File Reference
TagBox: dense grid of markers (0/1) over a region, input to Berger-Rigoutsos clustering. More...
#include <pops/mesh/index/box2d.hpp>#include <algorithm>#include <cstddef>#include <cstdint>#include <stdexcept>#include <vector>
Include dependency graph for tag_box.hpp:
This graph shows which files directly or indirectly include this file:Go to the source code of this file.
Classes | |
| struct | pops::TagBox |
| Dense grid of 0/1 markers over a box, input to Berger-Rigoutsos clustering. More... | |
Namespaces | |
| namespace | pops |
Functions | |
| TagBox | pops::tag_union (const std::vector< TagBox > &parts) |
| Union (cell-by-cell logical OR) of several TagBox sharing EXACTLY the same box. | |
Detailed Description
TagBox: dense grid of markers (0/1) over a region, input to Berger-Rigoutsos clustering.
Layer: include/pops/amr (AMR geometric primitives). Role: marker structure for cells to refine, produced by tagging and consumed by berger_rigoutsos. Pure integer arithmetic on indices, no physics, no parallelism. Contract: indexed in the index space of its box (lo/hi corners INCLUSIVE, Box2D convention); dense i-fast (j-slow) storage.
Invariants:
- a TagBox covers EXACTLY its box; linear indexing assumes i in [lo[0], hi[0]] and j in [lo[1], hi[1]];
- markers are 0 (not tagged) or 1 (tagged);
- for MPI later, distributed tags will be gathered onto this grid before clustering (clustering is cheap compared to the rest).
Generated by