Features for the future
This issue serves as a general discussion thread/dumping ground for ideas for the future. Feel free to edit/add a comment with your idea or opinion.
Stuff that is either extremely brilliant or extremely relevant wil get promoted to a separate issue and eventually implemented.
Here are the current ideas, in no particular order
1. Embarassingly parallel force computation by computing everything twice
By computing all forces for every particle, force computation could become embarassingly parallel while only increasing the necessary computations by about a factor of two, which could be easily compensated by using more threads.
2. Separate forces from particles
This is related to the first point (and has been suggested previously, e.g. in InPartS-legacy.jl#38), as this would limit the access to the cells required by force computations to read-only (which probably enables all sorts of optimisations). Separate forces could also make implementations of second order integrators (e.g. Velocity Verlet) slightly nicer as you wouldn't have to store both old and new accelarations in the particle structs.
I had a third point about explicitely enforcing the relationship between different entities. However, since it already had two footnotes before I was halfway done, I decided to keep it in my personal notes for now until it's slightly more focused.