Sphecerix
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()
Metadata
Release files for sphecerix 0.6.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| sphecerix-0.6.1-py3-none-any.whl | Python 3 | none | any | Details |
Release files / sphecerix-0.6.1-py3-none-any.whl
| Download URL | sphecerix-0.6.1-py3-none-any.whl |
|---|---|
| Size | 16.5 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
7eac121dfe1bc6f270d5eb4c9804bccbd038802563330751e4655af3b000e35d
|
|
BLAKE2b-256 checksum How to use checksums |
1544e003ad481105fdc4e66b969a7639bebc376d7737939b0f030efbabc6f36a
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.12.8
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Feb 2, 2025.
Transparency log