Improve Verlet List SoA list building
- Dominant language
- C++
- Stars
- 52
- Forks
- 17
- PR merge metrics
- No merged PRs in 30d
Description
**Is your feature request related to a problem? Please describe.**
Our Verlet List SoA performance is pretty bad compared to the AoS. The way our SoA lists are built is that we first build AoS lists (where the list is a list of pointers to neighbouring particles), and then we convert it to a SoA-friendly list (where the list is a list of indices).
We do this by looping over all the particles in a cell, creating a mapping from a pointer to the particle and the particle's index. We then reserve SoA list space, looping over the AoS lists and placing indices into the SoA list that match the pointers in the AoS lists.
**Describe the solution you'd like**
Just directly create the SoA neighbour lists. This would involve a relatively minor change to the list creation (at least for the new `rebuildNeighborListsC08`).
Contributor guide
Assessment
This issue has not been assessed yet.