This is a fork of an older Julia repository to experiment with spherical harmonics computations. The original code was modified to use complex instead of real spherical harmonics. We will likely revert back to real spherical harmonics very soon.
This is still in testing stages, and probably not useful for real development.
A Julia module for accurate and efficient computation of associated Legendre polynomials and real spherical harmonics for use in chemistry applications.
Our algorithms are based on the following design principles:
- Normalize polynomials P*lm* to avoid overflow/underflow.
- Use a RR in the direction of increasing l for ALPs for stability.
- Use trigonometric RRs for sin and cos functions in SHs to save time.
- Precompute coefficients in the RRs to reduce computational cost.
- Compute an entire set of normalized P*lm* where m ≥ 0 in a single function call to reduce overhead.
- Avoid loop dependencies in inner loops, allowing operations to be vectorized and pipelined for execution.
For a full description of the code, please see:
Associated Legendre Polynomials and Spherical Harmonics Computation for Chemistry Applications (2014). Taweetham Limpanuparb and Josh Milthorpe. arXiv: 1410.1748 [physics.chem-ph]