|
| KOKKOS_INLINE_FUNCTION void | publishAreaGrad (const Cell &c, int i, int base, const int *faces, int nf) const |
| |
| KOKKOS_INLINE_FUNCTION void | relVec (int q, Real pix, Real piy, Real piz, Real pv[3]) const |
| | Minimal-image relative vector from the seed at (pix,piy,piz) to sorted seed q.
|
| |
| KOKKOS_INLINE_FUNCTION int | gridCell (int rgx, int rgy, int rgz) const |
| | Linear/Morton index of the grid cell at raw (periodic-unwrapped) offset.
|
| |
| KOKKOS_INLINE_FUNCTION void | homeCell (Real pix, Real piy, Real piz, int &cx, int &cy, int &cz) const |
| | Home grid cell index (cx,cy,cz) of seed (pix,piy,piz).
|
| |
| KOKKOS_INLINE_FUNCTION int | subBase (Real pix, Real piy, Real piz) const |
| | Flat base offset into the worklist tables for the wlS^3 sub-region the seed lands in.
|
| |
| KOKKOS_INLINE_FUNCTION int | worklistCell (int base, int g, int cx, int cy, int cz) const |
| | Decode worklist entry g (relative to base) into a grid-cell index.
|
| |
| KOKKOS_INLINE_FUNCTION void | emitEmptyTopo (int i) const |
| |
| KOKKOS_INLINE_FUNCTION void | finishCell (Cell &c, int i, Real pix, Real piy, Real piz, Real covSq, Real wSelf=Real(0)) const |
| |
| KOKKOS_INLINE_FUNCTION bool | gatherCell (int pi, Cell &c, Real &pix, Real &piy, Real &piz, Real &wSelf, int &ncRec, int &nnRec) const |
| |
| KOKKOS_INLINE_FUNCTION void | buildCell (int pi) const |
| |
|
| Kokkos::View< int *, MemSpace > | binned |
| |
| Kokkos::View< Real *, MemSpace > | posSorted |
| |
| Kokkos::View< Real *, MemSpace > | wSorted |
| |
| Kokkos::View< gid_t *, MemSpace > | gidSorted |
| |
| Kokkos::View< int *, MemSpace > | cellStart |
| |
| Kokkos::View< int *, MemSpace > | wlOff |
| |
| Kokkos::View< Real *, MemSpace > | wlRmin |
| |
| Kokkos::View< int *, MemSpace > | status |
| |
| Kokkos::View< Real *, MemSpace > | cellVol |
| |
| Kokkos::View< int *, MemSpace > | facetCount |
| |
| Kokkos::View< int *, MemSpace > | cellFacetBase |
| |
| Kokkos::View< int *, MemSpace > | oNbr |
| |
| Kokkos::View< Real *, MemSpace > | oArea |
| |
| Kokkos::View< Real *, MemSpace > | oDV |
| |
| Kokkos::View< Real *, MemSpace > | oConn |
| |
| Kokkos::View< int *, MemSpace > | facetCursor |
| |
| Real | icx |
| |
| Real | icy |
| |
| Real | icz |
| |
| Real | Lx |
| |
| Real | Ly |
| |
| Real | Lz |
| |
| Real | minCsz |
| |
| Real | wMaxAll |
| |
| int | dimx |
| |
| int | dimy |
| |
| int | dimz |
| |
| int | sw |
| |
| int | nOff |
| |
| int | wlS |
| |
| bool | useMorton |
| |
| bool | haveGid |
| |
| bool | withForceGeom |
| |
| size_t | facetCap |
| |
| Sdf | sdf |
| |
| Kokkos::View< int *, MemSpace > | oNp |
| |
| Kokkos::View< int *, MemSpace > | oNt |
| |
| Kokkos::View< int *, MemSpace > | oTopoPnbr |
| |
| Kokkos::View< unsigned *, MemSpace > | oTri |
| |
| Kokkos::View< unsigned char *, MemSpace > | oPoke4 |
| |
| Kokkos::View< int *, MemSpace > | oCand |
| |
| Kokkos::View< int *, MemSpace > | oCandCnt |
| |
| bool | emitTopo |
| |
| bool | emitCand |
| |
| int | candCap |
| |
| WallStore< Real > | oWall |
| |
| Kokkos::View< int *, MemSpace > | oEdgeOff |
| |
| Kokkos::View< int *, MemSpace > | oEdgeCnt |
| |
| Kokkos::View< int *, MemSpace > | oEdgeFacet |
| |
| Kokkos::View< Real *, MemSpace > | oEdgeGrad |
| |
| Kokkos::View< Real *, MemSpace > | oEdgeLen |
| |
| Kokkos::View< int *, MemSpace > | edgeCursor |
| |
| size_t | edgeCap = 0 |
| |
| bool | withAreaGrad = false |
| |
| Kokkos::View< int *, MemSpace > | oNear |
| |
| Kokkos::View< int *, MemSpace > | oNearCnt |
| |
| int | nearCap = 0 |
| |
| Real | nearMargin = Real(0) |
| |
| Kokkos::View< Real *, MemSpace > | oWallDV |
| |
| Kokkos::View< Real *, MemSpace > | oWallDA |
| |
| Kokkos::View< Real *, MemSpace > | oMoment2 |
| |
template<class Real , bool Weighted, class Sdf , bool TrackAdj = false, int MAXP = kMaxPlanes, int MAXT = kMaxTriangles>
| KOKKOS_INLINE_FUNCTION void peclet::voro::CellBuilder< Real, Weighted, Sdf, TrackAdj, MAXP, MAXT >::buildCell |
( |
int |
pi | ) |
const |
|
inline |
Build the cell owning grid-sorted slot pi, writing the published outputs at the original seed index binned(pi). Worklist gather (gatherCell), then finishCell: SDF clip, status, volume and the per-facet CSR.
template<class Real , bool Weighted, class Sdf , bool TrackAdj = false, int MAXP = kMaxPlanes, int MAXT = kMaxTriangles>
| KOKKOS_INLINE_FUNCTION void peclet::voro::CellBuilder< Real, Weighted, Sdf, TrackAdj, MAXP, MAXT >::emitEmptyTopo |
( |
int |
i | ) |
const |
|
inline |
Persist an EMPTY cell (seed in the solid / buried power cell) into the topology store: the six box planes and no triangles, so a later re-eval yields volume 0, a clean certificate and no faces — instead of the stale pre-emptying topology the store would otherwise keep.
template<class Real , bool Weighted, class Sdf , bool TrackAdj = false, int MAXP = kMaxPlanes, int MAXT = kMaxTriangles>
| KOKKOS_INLINE_FUNCTION void peclet::voro::CellBuilder< Real, Weighted, Sdf, TrackAdj, MAXP, MAXT >::finishCell |
( |
Cell & |
c, |
|
|
int |
i, |
|
|
Real |
pix, |
|
|
Real |
piy, |
|
|
Real |
piz, |
|
|
Real |
covSq, |
|
|
Real |
wSelf = Real(0) |
|
) |
| const |
|
inline |
Finish a built cell: completeness flag (judged on the un-clipped cell), optional SDF boundary clip, status/volume, and the per-facet CSR write (one atomic reservation into the over-buffer). covSq is the attained coverage^2; covSq > 4*rSqMax => complete.
template<class Real , bool Weighted, class Sdf , bool TrackAdj = false, int MAXP = kMaxPlanes, int MAXT = kMaxTriangles>
| KOKKOS_INLINE_FUNCTION bool peclet::voro::CellBuilder< Real, Weighted, Sdf, TrackAdj, MAXP, MAXT >::gatherCell |
( |
int |
pi, |
|
|
Cell & |
c, |
|
|
Real & |
pix, |
|
|
Real & |
piy, |
|
|
Real & |
piz, |
|
|
Real & |
wSelf, |
|
|
int & |
ncRec, |
|
|
int & |
nnRec |
|
) |
| const |
|
inline |
The gather half of buildCell: the worklist walk that clips the cell of grid-sorted slot pi on the fly (early wall clip, neighbour planes; candidate + near-miss recording when those outputs are sized), leaving the neighbour-clipped cell in c — the SDF clip, status and publish are finishCell's. Returns false for a buried power cell. Shared by buildCell and the pore-space export (pore_cells.hpp), which keeps the cell instead of publishing it.
template<class Real , bool Weighted, class Sdf , bool TrackAdj = false, int MAXP = kMaxPlanes, int MAXT = kMaxTriangles>
| KOKKOS_INLINE_FUNCTION void peclet::voro::CellBuilder< Real, Weighted, Sdf, TrackAdj, MAXP, MAXT >::homeCell |
( |
Real |
pix, |
|
|
Real |
piy, |
|
|
Real |
piz, |
|
|
int & |
cx, |
|
|
int & |
cy, |
|
|
int & |
cz |
|
) |
| const |
|
inline |
Home grid cell index (cx,cy,cz) of seed (pix,piy,piz).
template<class Real , bool Weighted, class Sdf , bool TrackAdj = false, int MAXP = kMaxPlanes, int MAXT = kMaxTriangles>
| KOKKOS_INLINE_FUNCTION void peclet::voro::CellBuilder< Real, Weighted, Sdf, TrackAdj, MAXP, MAXT >::publishAreaGrad |
( |
const Cell & |
c, |
|
|
int |
i, |
|
|
int |
base, |
|
|
const int * |
faces, |
|
|
int |
nf |
|
) |
| const |
|
inline |
Rung A3: publish the per-facet area Jacobians of finalised cell c (facets faces[0..nf) at CSR base base) into the facet-edge CSR: one atomic reservation on edgeCursor, then the shared areaGradEnumerate / areaGradFill (also used by reevalPublish on the resident store, where the reservation is a prefix sum instead).
template<class Real , bool Weighted, class Sdf , bool TrackAdj = false, int MAXP = kMaxPlanes, int MAXT = kMaxTriangles>
| KOKKOS_INLINE_FUNCTION void peclet::voro::CellBuilder< Real, Weighted, Sdf, TrackAdj, MAXP, MAXT >::relVec |
( |
int |
q, |
|
|
Real |
pix, |
|
|
Real |
piy, |
|
|
Real |
piz, |
|
|
Real |
pv[3] |
|
) |
| const |
|
inline |
Minimal-image relative vector from the seed at (pix,piy,piz) to sorted seed q.