Photon
Photon Cell ID Scheme
Types and Notation
IP: cell ID integer type (32- or 64-bit, set at compile time).IPT: traits wrapper aroundIPexposingmin(),max(),name().IPT::min()is the smallest representableIPvalue and serves as the base for reserved negative ranges.
See src/config_compiletime.h.in for the type definitions and src/cgal.h for the boundary constants.
Cell ID Ranges
Valid Cell IDs
- Range:
cell_id >= 0andcell_id < n_points - Meaning: Valid cell indices pointing to actual data cells in the simulation domain.
Boundary Cell IDs
- Range:
IPT::min()toIPT::min() + 31(32 reserved boundary entries)
Specific cube face boundaries
IPT::min() + 0: X-min face (x = 0)IPT::min() + 1: Y-min face (y = 0)IPT::min() + 2: Z-min face (z = 0)IPT::min() + 3: X-max face (x = 1)IPT::min() + 4: Y-max face (y = 1)IPT::min() + 5: Z-max face (z = 1)
Reserved boundary entries
IPT::min() + 6toIPT::min() + 30: Reserved for future boundary types.IPT::min() + 31: Generic boundary neighbor (wildcard wall).
Multi-rank Communication (reserved)
- Range:
IPT::min() + 32to-1 - Meaning: Reserved for future multi-rank communication.
Currently, the point-cloud (Voronoi) dataset treats values in this range as “needs communication”, but the multi-rank Voronoi path is not fully implemented yet.
Special Values
-1: Default/uninitialized state or invalid cell after direction changes.
Summary
- Positive values (
>= 0and< n_points): Valid cell indices. - Negative values
IPT::min()toIPT::min() + 31: Boundary conditions (32 entries reserved). - Negative values
IPT::min() + 32to-1: Reserved for (future) multi-rank communication. -1: Uninitialized or invalid state.