Learned Particle Shifting

Learning the particle shifting step, one of the more expensive and more heuristic parts of an SPH solver.

Particle shifting keeps particle distributions well-conditioned, and iterative shifting schemes are among the more expensive parts of a modern SPH step. It is also unusually heuristic, which makes it a natural candidate to learn rather than hand-tune.

Work in progress.