4kbt / NewtonianEotWashToolkit

A simple point-wise Newtonian gravitational force calculator
GNU General Public License v3.0
6 stars 2 forks source link

Recursive translation matrix calculations #10

Closed JGLee6 closed 3 years ago

JGLee6 commented 4 years ago

Multipole translations scale poorly with larger order, L, ~O(L^4), where moments are mixed both between order (l->l') and "index" (m->m'). Things can be sped up using a "Point-and-Shoot" method by combining rotations with translations only along the z-axis, ~O(L^3). The coaxial translations along the z-axis do not mix index (m'=m) and can be done recursively. The linked paper gives a simple formula for those coaxial translation matrices but has a different normalization for their moments. Such an improvement should allow for calculations at much higher order.

JGLee6 commented 4 years ago
JGLee6 commented 3 years ago

This is basically closed. Would be good to write method from translationSpeed.py example into a function so as to apply in each q2q, q2Q, and Q2Q translations. The method is as much as ~5x faster for L=10, ~15x for L=20, ~50x for L=40.