PAOFLOW.topology.clebsch_gordan#
Functions#
|
Compute a numerical Clebsch-Gordan coefficient for a spinor. |
|
Build the spin operator matrix in the coupled \(\lvert j, m_j, l, s \rangle\) basis. |
Module Contents#
- PAOFLOW.topology.clebsch_gordan.spinor(l, j, m, spin)[source]#
Compute a numerical Clebsch-Gordan coefficient for a spinor.
- Parameters:
- Returns:
The Clebsch-Gordan coefficient \(\langle l, m_l; 1/2, \pm 1/2 \mid j, m_j \rangle\).
- Return type:
Notes
The function aborts via
quit()when an incompatible combination ofj,l, orspinis supplied, printing a diagnostic message on rank 0.
- PAOFLOW.topology.clebsch_gordan.clebsch_gordan(nawf, sh_l, sh_j, spol)[source]#
Build the spin operator matrix in the coupled \(\lvert j, m_j, l, s \rangle\) basis.
- Parameters:
nawf (int) – Total number of atomic wave-function projectors (= 2 * number of spinor components).
sh_l (list of int) – Orbital angular momentum quantum numbers \(l\) for each shell.
sh_j (list of float) – Total angular momentum quantum numbers \(j\) for each shell, used to detect descending/ascending ordering in the pseudopotential.
spol (int) – Spin polarisation component:
0for x,1for y,2for z.
- Returns:
The spin operator \(S^{spol}\) expressed in the \(\lvert j, m_j, l, s \rangle\) basis.
- Return type:
np.ndarray, shape
(nawf, nawf), complex
Notes
The transformation matrices \(U_l\) are built by contracting Clebsch-Gordan coefficients (from
spinor()) for angular momenta \(l = 0, 1, 2, 3\). The full basis-change matrix \(T_n\) is assembled block-diagonally over all shells. The spin operator is then\[S_j = T_n \, S_l \, T_n^\top\]where \(S_l\) is the Pauli spin operator in the \(\lvert l, m_l, s, s_z \rangle\) basis. Raises
ValueErrorif the shell occupancies implied bysh_ldo not sum tonawf.