qimpy.dft.ions.PseudoQuantumNumbers
- class PseudoQuantumNumbers(l, j)
Bases:
object
Quantum numbers of pseudo-atom in projector or orbital order.
- Parameters:
l (Tensor) –
j (Tensor) –
- __init__(l, j)
Initialize given l of each projector / orbital of a pseudopotential. The input corresponds to the distinct radial functions read from a pseudoptential, while the members of this class are for each projector function including spherical harmonics.
- Parameters:
l (Tensor) –
j (Tensor | None) –
- Return type:
None
Methods
Initialize given l of each projector / orbital of a pseudopotential.
Expand matrix D from (n, l) basis to include m and s.
Get integer indices corresponding to all quantum numbers.
Return transformation matrix from (l, j, m_l), s to (l, j, m_j).
Pauli-matrix expectation values in orbital basis (spinorial case only).
Attributes
total number of projectors / orbitals (accounting for m)
maximum l of projectors / orbitals
index of radial function (across all l)
pseudo-principal quantum number (for each l,j, 1-based)
orbital angular momentum
azimuthal quantum number
combined (l, m) index into solid harmonics array
whether this pseudopotential is relativistic
total number of spinorial states
pseudo-principal quantum number of spinorial states
orbital angular momentum in spinor-expanded set
total angular momentum of each spinorial orbital
total azimuthal angular momentum
combined (l, j, m_j) index used for orbitals
combined (l, j, m_l, s) index used for projectors
- expand_matrix(D, n_spinor)
Expand matrix D from (n, l) basis to include m and s. Spin s is included explicitly only if n_spinor is 2. Additionally, if pseudopotential is relativistic, the expanded matrix includes spin-angle overlap factors; n_spinor must be 2 for this mode.
- Parameters:
D (Tensor) –
n_spinor (int) –
- Return type:
Tensor
- get_index(n_spinor)
Get integer indices corresponding to all quantum numbers. If not relativistic, the result is (n, l, m, 0) for n_tot orbitals in non-spinorial calculations, and is (n, l, m, 2ms) for 2`n_tot` orbitals in spinorial calculations. If relativistic, the result is (n, l, 2j, 2mj) for n_tot_s orbitals.
- Parameters:
n_spinor (int) –
- Return type:
Tensor
- get_spin_angle_transform()
Return transformation matrix from (l, j, m_l), s to (l, j, m_j). Only for relativistic cases, with output shape n_tot x 2 x n_tot_s.
- Return type:
Tensor
- pauli_expectation()
Pauli-matrix expectation values in orbital basis (spinorial case only). The result is 4 x n_tot_s x n_tot_s for relativistic pseudopotentials, and 4 x (2 n_tot) x (2 n_tot) for non-relativistic pseudopotentials, where the first dimension of 4 corresponds to identity, x, y and z.
- Return type:
Tensor
- i_ljm: Tensor
combined (l, j, m_j) index used for orbitals
- i_ljms: Tensor
combined (l, j, m_l, s) index used for projectors
- i_lm: Tensor
combined (l, m) index into solid harmonics array
- i_rf: Tensor
index of radial function (across all l)
- is_relativistic: bool
whether this pseudopotential is relativistic
- j: Tensor
total angular momentum of each spinorial orbital
- l: Tensor
orbital angular momentum
- l_max: int
maximum l of projectors / orbitals
- ls: Tensor
orbital angular momentum in spinor-expanded set
- m: Tensor
azimuthal quantum number
- mj: Tensor
total azimuthal angular momentum
- n: Tensor
pseudo-principal quantum number (for each l,j, 1-based)
- n_tot: int
total number of projectors / orbitals (accounting for m)
- n_tot_s: int
total number of spinorial states
- ns: Tensor
pseudo-principal quantum number of spinorial states