Skip to main content

sphecerix

Project description

Sphecerix

GitHub tag (latest SemVer) Build Documentation License: GPL v3

rotation of spherical harmonics

Figure: Demonstration of rotating a spherical harmonic by means of the Wigner D-matrix. In the above image, a 3dz2 and a 4fz3 atomic orbital are rotated by an angle $\pi$ over an axis with coordinates $(1,1,1)$. Note that the image has not been constructed by rotating the isosurfaces but by calculating the scalar field after the rotation.

Purpose

Rotation of spherical harmonics using Wigner-D matrices

Background

The canonical spherical harmonics $Y_{lm}$ subject to a rotation in $\mathbb{R}^{3}$ will always mix among each other. As such, we can represent the act of rotating the spherical harmonics by the following matrix-vector equation

\vec{Y}_{l}\prime = \mathbf{D}\vec{Y}_{l}

wherein $\mathbf{D}$ is the Wigner D-matrix and $\vec{Y}_{l}$ a vector composed of the canonical spherical harmonics of order $l$. The vector $\vec{Y}_{l}\prime$ is the linear combination that represents the result of the rotation upon the (linear combination) of spherical harmonics prior to the rotation.

Usage

In the script below, a dz2 spherical harmonic is rotated over an axis with coordinates $(1,1,1)$ by an angle $\pi$. The result of this rotation is a linear combination of spherical harmonics all with $l=2$.

from sphecerix import tesseral_wigner_D
from scipy.spatial.transform import Rotation as R
import numpy as np

def main():
    # build rotation axis and set angle
    axis = np.ones(3) / np.sqrt(3)
    angle = np.pi
    Robj = R.from_rotvec(axis * angle)
    
    # construct tesseral Wigner D matrix
    D = tesseral_wigner_D(2, Robj)
    Y = np.zeros(5)
    Y[2] = 1
    
    # calculate linear combination of the spherical harmonics after rotation
    Yp = D @ Y
    print(Yp)
    
if __name__ == '__main__':
    main()

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

sphecerix-0.6.0-py3-none-any.whl (16.5 kB view details)

Uploaded Python 3

File details

Details for the file sphecerix-0.6.0-py3-none-any.whl.

File metadata

  • Download URL: sphecerix-0.6.0-py3-none-any.whl
  • Upload date:
  • Size: 16.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.12.8

File hashes

Hashes for sphecerix-0.6.0-py3-none-any.whl
Algorithm Hash digest
SHA256 e74e8f9fe3de9a95cbff6f47bc5c4d631ff29adc8545c32854675b992c471e83
MD5 867b9f0a495b7b0b2517b4be6af76871
BLAKE2b-256 959fe112c3735d1b2dc7b2f2b117922ffd1e71621553b87e57ea59ac7a73986b

See more details on using hashes here.

Provenance

The following attestation bundles were made for sphecerix-0.6.0-py3-none-any.whl:

Publisher: build_pypi.yml on ifilot/sphecerix

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page