Closed will-saunders-ukaea closed 11 months ago
The included docs should go a long way to tackling https://github.com/ExCALIBUR-NEPTUNE/NESO-Particles/issues/3.
CellDatConst particle loop access - CellDatConst instances may be read or incremented in ParticleLoop.
What does this mean exactly? If the CellDat is const, how can it be incremented?
Worked on my machine target CPU with 4 ranks, 2 thread. Gonna check on the GPU next.
CellDatConst particle loop access - CellDatConst instances may be read or incremented in ParticleLoop.
What does this mean exactly? If the CellDat is const, how can it be incremented?
The size of the matrix per cell is constant. I don't think this has any downstream users so I am not adverse to renaming it.
I guess ConstSizedCellDat
would be more decriptive, but let's not let it derail this PR
runs with MPI+OpenMP and via hipsycl with a cuda backend
This PR adds: ParticleLoop - a high-level abstract for looping over all particles in an iteration set. Iteration sets may be a ParticleGroup, ParticleDat or ParticleSubGroup. ParticleSubGroup - a method to select a subset of the particles in a ParticleGroup based on a selecting lambda function. LocalArray - an array type that is local to each MPI rank. May be read or incremented in ParticleLoops GlobalArray - an array type with consistent values across MPI ranks may be read or incremented in ParticleLoops. Increment operation reduces values across all ranks. CellDatConst particle loop access - CellDatConst instances may be read or incremented in ParticleLoop. Particles access the matrix for the cell which the particles is in. Tests - Each of the above features have accompanying tests. Documentation - New documentation pages that describe each of the above objects and there use.