/SphericalHarmonics.jl

Associated Legendre Polynomials and Spherical Harmonics in Julia

Primary LanguageJuliaMIT LicenseMIT

Associated Legendre Polynomials and Spherical Harmonics Computation for Chemistry Applications

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]