basis_transform¶
- edrixs.basis_transform.cb_op(oper_O, TL, TR=None)[source]¶
Change the basis of an operator \(\hat{O}\).
\[O^{\prime} = (T_L)^{\dagger} O (T_R),\]- Parameters:
- oper_O: array-like
At least 2-dimension, the last 2-dimension is the dimension of the matrix form of operator \(\hat{O}\) in basis \(A\). For example:
oper_O.shape = (3, 10, 10), means 3 operators with dimension \(10 \times 10\)
oper_O.shape = (2, 3, 10, 10), means \(2 \times 3=6\) operators with dimension \(10 \times 10\)
- TL: 2d array
The unitary transformation matrix from basis \(A\) to basis \(B\), namely,
\(TL_{ij} = <\psi^{A}_{i}|\phi^{B}_{j}>\).
- TR: 2d array
The unitary transformation matrix from basis \(A\) to basis \(B\), namely,
\(TR_{ij} = <\psi^{A}_{i}|\phi^{B}_{j}>\).
if TR = None, TR = TL
- Returns:
- res: same shape as oper_O
The matrices form of operators \(\hat{O}\) in new basis.
- edrixs.basis_transform.cb_op2(oper_O, TL, TR)[source]¶
Change the basis of an operator \(\hat{O}\).
\[O^{\prime} = (T_L)^{\dagger} O (T_R),\]- Parameters:
- oper_O: array-like
At least 2-dimension, the last 2-dimension is the dimension of the matrix form of operator \(\hat{O}\) in basis \(A\). For example:
oper_O.shape = (3, 10, 10), means 3 operatos with dimension \(10 \times 10\)
oper_O.shape = (2, 3, 10, 10), means \(2 \times 3=6\) operators with dimension \(10 \times 10\)
- TL: 2d array
The unitary transformation matrix applied on the left.
- TR: 2d array
The unitary transformation matrix applied on the right.
- Returns:
- res: same shape as oper_O
The matrices form of operators \(\hat{O}\) in new basis.
- edrixs.basis_transform.fourier_hr2hk(norbs, nkpt, kvec, nrpt, rvec, deg_rpt, hr)[source]¶
Fourier transform a tight-binding Hamiltonian \(H(r)\) from real space to \(k\) space \(H(k)\), for Wannier90.
- Parameters:
- norbs: int
Number of orbitals.
- nkpt: int
Number of \(k\)-points.
- kvec: 2d float array
Fractional coordinate for k-points.
- nrpt: int
Number of r-points.
- rvec: 2d float array
Fractional coordinate for r-points.
- deg_rpt: int
The degenerancy for each r-point.
- hr: 3d complex array
Hamiltonian in r-space.
- Returns:
- hk: 3d complex array
Hamiltonian in k-space.
- edrixs.basis_transform.tmat_c2j(orb_l)[source]¶
Get the transformation matrix from the complex spherical harmonics to the \(|j^2,j_z>\) basis in which the spin-oribt coupling Hamiltonian is diagonal. The orbital order is:
\(|j=l-1/2, -j>, |j=l-1/2, -j+1>, ... |j=l-1/2, +j>,\)
\(|j=l+1/2, -j>, |j=l+1/2, -j+1>, ..., |j=l+1/2, +j>\).
- Parameters:
- orb_l: int
Quantum number of orbital angular momentum.
- Returns:
- t_c2j: 2d complex array
The transformation matrix.
- edrixs.basis_transform.tmat_c2r(case, ispin=False)[source]¶
Get the unitary transformation matrix from the basis of complex spherical harmonics to real spherical harmonics.
- Parameters:
- case: string
Label for different systems.
‘p’: for \(p\)-shell
‘t2g’: for \(t_{2g}\)-shell
‘d’: for \(d\)-shell
‘f’: for \(f\)-shell
- ispin: logical
Whether including spin degree of freedom or not (default: False).
- Returns:
- t_c2r: 2d complex array
The transformation matrix.
- edrixs.basis_transform.tmat_cub2r_f(ispin=False)[source]¶
Get the transformation matrix from the cubic spherical harmonics to real spherical harmonics, only for \(f\) system.
- Parameters:
- ispin: logical
Whether including spin degree of freedom or not (default: False).
- Returns:
- t_cub2r: 2d complex array
The transformation matrix.
- edrixs.basis_transform.tmat_r2c(case, ispin=False)[source]¶
Get the unitary transformation matrix from the basis of real spherical harmonics to complex spherical harmonics.
- Parameters:
- case: string
Label for different systems.
‘p’: for \(p\)-shell
‘t2g’: for \(t_{2g}\)-shell
‘d’: for \(d\)-shell
‘f’: for \(f\)-shell
- ispin: logical
Whether including spin degree of freedom or not (default: False).
- Returns:
- t_r2c: 2d complex array
The transformation matrix.
- edrixs.basis_transform.tmat_r2cub_f(ispin=False)[source]¶
Get the transformation matrix from real spherical harmonics to the cubic spherical harmonics that is the representation of the cubic point group, only for \(f\) system.
- Parameters:
- ispin: logical
Whether including spin degree of freedom or not (default: False).
- Returns:
- t_r2cub: 2d complex array
The transformation matrix.
- edrixs.basis_transform.transform_utensor(umat, tmat)[source]¶
Transform the rank-4 Coulomb interaction tensor from one basis to another basis.
- Parameters:
- umat: 4d array
Coulomb interaction tensor (rank-4).
- tmat: 2d array
The transformation matrix.
- Returns:
- umat_new: 4d complex array
The Coulomb interaction tensor in the new basis.