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\).