angular_momentum¶
- edrixs.angular_momentum.cf_cubic_d(ten_dq)[source]¶
 Given 10Dq, return cubic crystal field matrix for d orbitals in the complex harmonics basis.
- Parameters:
 - ten_dq: float scalar
 The splitting between \(eg\) and \(t2g\) orbitals.
- Returns:
 - cf: 2d complex array, shape=(10, 10)
 The matrix form of crystal field Hamiltonian in complex harmonics basis.
- edrixs.angular_momentum.cf_square_planar_d(ten_dq, ds)[source]¶
 Given 10Dq, ds, return square planar crystal field matrix for d orbitals in the complex harmonics basis. This is the limit of strong tetragonal distortion with two axial ligands at infinity. Note that in this case the three parameters, ten_dq, ds, and dt, are no longer independent: dt = 2/35*ten_dq and the levels depend on only two parameters ten_dq and ds.
- Parameters:
 - ten_dq: float scalar
 Parameter associated with eg-t2g splitting.
- ds: float scalar
 Paramter associated with splitting orbitals with z-components.
- Returns:
 - cf: 2d complex array, shape=(10, 10)
 The matrix form of crystal field Hamiltonian in complex harmonics basis.
- edrixs.angular_momentum.cf_tetragonal_d(ten_dq, d1, d3)[source]¶
 Given 10Dq, d1, d3, return tetragonal crystal field matrix for d orbitals in the complex harmonics basis.
- Parameters:
 - ten_dq: float scalar
 Parameter used to label cubic crystal splitting.
- d1: float scalar
 Paramter used to label tetragonal splitting.
- d3: float scalar
 Paramter used to label tetragonal splitting.
- Returns:
 - cf: 2d complex array, shape=(10, 10)
 The matrix form of crystal field Hamiltonian in complex harmonics basis.
- edrixs.angular_momentum.cf_trigonal_t2g(delta)[source]¶
 Given delta, return trigonal crystal field matrix for t2g orbitals in the complex harmonics basis.
- Parameters:
 - delta: float scalar
 Parameter used to label trigonal crystal splitting.
- Returns:
 - cf: 2d complex array, shape=(6, 6)
 The matrix form of crystal field Hamiltonian in complex harmonics basis.
- edrixs.angular_momentum.dmat_spinor(alpha, beta, gamma)[source]¶
 Given three Euler angle: \(\alpha, \beta, \gamma\), return the transformation matrix for \(\frac{1}{2}\)-spinor.
- Parameters:
 - alpha: float
 Euler angle \(\alpha\) in radian [0, \(2\pi\)].
- beta: float
 Euler angle \(\beta\) in radian [0, \(\pi\)].
- gamma: float
 Euler angle \(\gamma\) in radian [0, \(2\pi\)].
- Returns:
 - dmat: 2d complex array
 The \(2 \times 2\) transformation matrix.
- edrixs.angular_momentum.euler_to_rmat(alpha, beta, gamma)[source]¶
 Given Euler angle: \(\alpha, \beta, \gamma\), generate the \(3 \times 3\) rotational matrix \(R\).
- Parameters:
 - alpha: float
 Euler angle, in radian, [0, \(2\pi\)]
- beta: float
 Euler angle, in radian, [0, \(\pi\)]
- gamma: float
 Euler angle, in radian, [0, \(2\pi\)]
- Returns:
 - rmat: 2d float array
 The \(3 \times 3\) rotational matrix.
- edrixs.angular_momentum.get_ladd(ll, ispin=False)[source]¶
 Get the matrix form of the raising operator \(l^+\) in the complex spherical harmonics basis
\[l^+|ll,m> = \sqrt{(ll-m)(ll+m+1)} |ll,m+1>\]- Parameters:
 - ll: int
 Orbital angular momentum number.
- ispin: logical
 Whether including spin or not (default: False).
- Returns:
 - ladd: 2d complex array
 The matrix form of \(l^+\).
If ispin=True, the dimension will be \(2(2ll+1) \times 2(2ll+1)\),
otherwise, it will be \((2ll+1) \times (2ll+1)\).
- edrixs.angular_momentum.get_lminus(ll, ispin=False)[source]¶
 Get the matrix form of the lowering operator \(l^-\) in the complex spherical harmonics basis
\[l^-|ll,m> = \sqrt{(ll+m)(ll-m+1)} |ll,m-1>\]- Parameters:
 - ll: int
 Orbital angular momentum number.
- ispin: logical
 Whether including spin or not (default: False).
- Returns:
 - lminus: 2d complex array
 The matrix form of \(l^-\).
If ispin=True, the dimension will be \(2(2ll+1) \times 2(2ll+1)\),
otherwise, it will be \((2ll+1) \times (2ll+1)\).
- edrixs.angular_momentum.get_lx(ll, ispin=False)[source]¶
 Get the matrix form of the orbital angular momentum operator \(l_x\) in the complex spherical harmonics basis,
\[l_x = \frac{1}{2} (l^+ + l^-)\]- Parameters:
 - ll: int
 Orbital angular momentum number.
- ispin: logical
 Whether including spin or not (default: False).
- Returns:
 - lx: 2d complex array
 The matrix form of \(l_x\).
If ispin=True, the dimension will be \(2(2ll+1) \times 2(2ll+1)\),
otherwise, it will be \((2ll+1) \times (2ll+1)\).
- edrixs.angular_momentum.get_ly(ll, ispin=False)[source]¶
 Get the matrix form of the orbital angular momentum operator \(l_y\) in the complex spherical harmonics basis,
\[l_y = \frac{-i}{2} (l^+ - l^-)\]- Parameters:
 - ll: int
 Orbital angular momentum number.
- ispin: logical
 Whether including spin or not (default: False).
- Returns:
 - ly: 2d complex array
 The matrix form of \(l_y\).
If ispin=True, the dimension will be \(2(2ll+1) \times 2(2ll+1)\),
otherwise, it will be \((2ll+1) \times (2ll+1)\).
- edrixs.angular_momentum.get_lz(ll, ispin=False)[source]¶
 Get the matrix form of the orbital angular momentum operator \(l_z\) in the complex spherical harmonics basis.
- Parameters:
 - ll: int
 Orbital angular momentum number.
- ispin: logical
 Whether including spin or not (default: False).
- Returns:
 - lz: 2d complex array
 The matrix form of \(l_z\).
If ispin=True, the dimension will be \(2(2ll+1) \times 2(2ll+1)\),
otherwise, it will be \((2ll+1) \times (2ll+1)\).
- edrixs.angular_momentum.get_orb_momentum(ll, ispin=False)[source]¶
 Get the matrix form of the orbital angular momentum operator \(l_x, l_y, l_z\) in the complex spherical harmonics basis.
- Parameters:
 - ll: int
 Orbital angular momentum number.
- ispin: logical
 Whether including spin or not (default: False).
- Returns:
 - res: 3d complex array
 The matrix form of
res[0]: \(l_x\)
res[1]: \(l_y\)
res[2]: \(l_z\)
If ispin=True, the dimension will be \(3 \times 2(2ll+1) \times 2(2ll+1)\),
otherwise, it will be \(3 \times (2ll+1) \times (2ll+1)\).
- edrixs.angular_momentum.get_pauli()[source]¶
 Get the Pauli matrix
- Returns:
 - sigma: 3d complex array, shape=(3, 2, 2)
 sigma[0] is \(\sigma_x\),
sigma[1] is \(\sigma_y\),
sigma[2] is \(\sigma_z\),
- edrixs.angular_momentum.get_spin_momentum(ll)[source]¶
 Get the matrix form of the spin angular momentum operator \(s_x, s_y, s_z\) in the complex spherical harmonics basis.
- Parameters:
 - ll: int
 Orbital angular momentum number.
- Returns:
 - res: 3d complex array
 The matrix form of
res[0]: \(s_x\)
res[1]: \(s_y\)
res[2]: \(s_z\)
the dimension is \(3 \times 2(2ll+1) \times 2(2ll+1)\),
Orbital order is: |-ll,up>, |-ll,down>, …, |+ll, up>, |+ll,down>
- edrixs.angular_momentum.get_sx(ll)[source]¶
 Get the matrix form of spin angular momentum operator \(s_x\) in the complex spherical harmonics basis.
- Parameters:
 - ll: int
 Quantum number of orbital angular momentum.
- Returns:
 - sx: 2d complex array.
 Matrix form of \(s_x\), the dimension is \(2(2ll+1) \times 2(2ll+1)\),
Orbital order is: |-ll,up>, |-ll,down>, …, |+ll, up>, |+ll,down>.
- edrixs.angular_momentum.get_sy(ll)[source]¶
 Get the matrix form of spin angular momentum operator \(s_y\) in the complex spherical harmonics basis.
- Parameters:
 - ll: int
 Quantum number of orbital angular momentum.
- Returns:
 - sy: 2d complex array.
 Matrix form of \(s_y\), the dimension is \(2(2ll+1) \times 2(2ll+1)\), spin order is:
Orbital order is: |-ll,up>, |-ll,down>, …, |+ll, up>, |+ll,down>
- edrixs.angular_momentum.get_sz(ll)[source]¶
 Get the matrix form of spin angular momentum operator \(s_z\) in the complex spherical harmonics basis.
- Parameters:
 - ll: int
 Quantum number of orbital angular momentum.
- Returns:
 - sz: 2d complex array.
 Matrix form of \(s_z\), the dimension is \(2(2ll+1) \times 2(2ll+1)\).
Orbital order is: |-ll,up>, |-ll,down>, …, |+ll, up>, |+ll,down>
- edrixs.angular_momentum.get_wigner_dmat(quant_2j, alpha, beta, gamma)[source]¶
 Given quantum number and Euler angles, return the Wigner-D matrix.
- Parameters:
 - quant_2j: int
 Twice of the quantum number j: 2j, for example, quant_2j=1 means j=1/2, quant_2j=2 means j=1
- alpha: float number
 The first Euler angle \(\alpha\) in radian [0, \(2\pi\)].
- beta: float number
 The second Euler angle \(\beta\) in radian [0, \(\pi\)].
- gamma: float number
 The third Euler angle \(\gamma\) in radian [0, \(2\pi\)].
- Returns:
 - result: 2d complex array, shape(quant_2j+1, quant_2j+1)
 The Wigner D-matrix. For \(j=1/2\), the orbital order is: +1/2 (spin up), -1/2 (spin down). For \(j>1/2\), the orbital order is: \(-j, -j+1, ..., +j\)
Examples
>>> import edrixs spin-1/2 D-matrix >>> edrixs.get_wigner_dmat(1, 1, 2, 3) array([[-0.224845-0.491295j, -0.454649-0.708073j], [ 0.454649-0.708073j, -0.224845+0.491295j]]) j=1 D-matrix >>> edrixs.get_wigner_dmat(2, 1, 2, 3) array([[-0.190816-0.220931j, 0.347398+0.541041j, -0.294663-0.643849j], [ 0.636536-0.090736j, -0.416147+0.j , -0.636536-0.090736j], [-0.294663+0.643849j, -0.347398+0.541041j, -0.190816+0.220931j]])
- edrixs.angular_momentum.rmat_to_euler(rmat)[source]¶
 Given the \(3 \times 3\) rotational matrix \(R\), return the Euler angles: \(\alpha, \beta, \gamma\).
- Parameters:
 - rmat: 2d float array
 The \(3 \times 3\) rotational matrix \(R\).
- Returns:
 - alpha: float
 Euler angle \(\alpha\) in radian, [0, \(2\pi\)].
- beta: float
 Euler angle \(\beta\) in radian, [0, \(\pi\)].
- gamma: float
 Euler angle \(\gamma\) in radian, [0, \(2\pi\)]
- edrixs.angular_momentum.where_is_angle(sina, cosa)[source]¶
 Given sine and cosine of an angle \(\alpha\), return the angle \(\alpha\) range from [0, \(2\pi\)].
- Parameters:
 - sina: float
 \(\sin(\alpha)\).
- cosa: float
 \(\cos(\alpha)\).
- Returns:
 - alpha: float
 The angle \(\alpha\) in radian [0, \(2\pi\)].
- edrixs.angular_momentum.zx_to_rmat(z, x)[source]¶
 Given \(z\) vector and \(x\) vector, calculate \(y\) vector which satisfies the right-hand Cartesian coordinate and normalize them to unit if needed, and then return the \(3 \times 3\) rotational matrix \(R\).
- Parameters:
 - z: 1d float array
 The \(z\) vector.
- x: 1d float array
 The \(x\) vector.
- Returns:
 - rmat: 2d float array
 The \(3 \times 3\) rotational matrix \(R\).