triqs.operators.util.observables.L_op

triqs.operators.util.observables.L_op(component, spin_names, n_orb, off_diag=None, map_operator_structure=None, basis='spherical', T=None, orb_names=None)[source]

Create a component of the orbital angular-momentum vector operator.

\[\begin{split}\hat{L}_{z,+,-} &= \sum_{ii'\sigma} \hat{c}^\dagger_{i\sigma} L^{z,+,-}_{ii'} \hat{c}_{i'\sigma},\\ \hat{L}_x &= \frac{1}{2}(\hat{L}_+ + \hat{L}_-),\ \hat{L}_y = \frac{1}{2i}(\hat{L}_+ - \hat{L}_-),\\ L^z_{ii'} &= i\delta_{i,i'}, \ L^+_{ii'} = \delta_{i,i'+1}\sqrt{l(l+1)-i'(i'+1)}, \ L^+_{ii'} = \delta_{i,i'-1}\sqrt{l(l+1)-i'(i'-1)}.\end{split}\]
Parameters:
componentstr

Component to be created, one of 'x', 'y', 'z', '+' or '-'.

spin_nameslist of str

Names of the spins, e.g. ['up', 'down'].

n_orbint

Number of orbitals.

off_diagbool, optional

If True, operators and blocks are labelled by ('spin', 'orbital'); otherwise by ('spin_orbital', 0).

map_operator_structuredict, optional

Mapping of GF-block names from one convention to another, e.g. {('up', 0): ('up_0', 0), ('down', 0): ('down_0', 0)}. If provided, the operators and blocks use the image of ('spin', 'orbital') under this map.

basisstr, optional

Basis in which the interaction matrix is computed. One of:

  • 'spherical': spherical harmonics (default),

  • 'cubic': cubic harmonics (valid only for integer orbital momenta, i.e. odd n_orb),

  • 'other': arbitrary basis specified by the transformation matrix \(T\).

Tnumpy.ndarray, optional

Transformation matrix for the basis change. Required when basis='other'.

Returns:
Operator

The requested component of the orbital angular-momentum vector operator.