Skip to content

Improved multipole acceptance criterion (MAC)

Matthieu Schaller requested to merge updated_MAC into master

Big improvements to the gravity code.

Improvements:

  • Fix mistakes in the higher-order derivatives used below softening,
  • Implement the Dehnen+2014 multipole acceptance criterion (in cartesian coordinates),
  • Allow (optionally) to use the tree below softening,
  • Allow (optionally) to use the truncated and softened potential in the MAC,
  • Fully simplify the first order multipole terms that are 0,
  • Simplify the signature of the long-range and short-range gravity truncation functions,
  • Do not use the M2P kernel if the multipole is made of one single particle,
  • Vectorize the cache construction and write backs to memory,
  • Vectorize the M2P kernel,
  • Use a leaf-level cell lock rather than the field-by-field atomic operations on the particles,
  • Significant update to the gravity theory doc.

Still to do:

  • Correctly use and document the new truncated MAC,
  • Re-implement the MAC for the proxies,
  • Update all the example YAML files,
  • Clean-up the debugging checks,
  • Prevent M2L for cells with small number of particles.
Edited by Matthieu Schaller

Merge request reports