Skip to content

C++ code to compute normalized associated Legendre polynomials and spherical harmonics

Notifications You must be signed in to change notification settings

milthorpe/spherical-harmonics

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

48 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Associated Legendre Polynomials and Spherical Harmonics Computation for Chemistry Applications

A C++ library 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.

A Makefile is provided to build the library in a Unix-like environment.

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]

About

C++ code to compute normalized associated Legendre polynomials and spherical harmonics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published