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 momentum vector operator.

\[\begin{split}\hat L_{z,+,-} &= \sum_{ii'\sigma} a^\dagger_{i\sigma} L^{z,+,-}_{ii'} a_{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:
  • component (string) – Component to be created, one of ‘x’, ‘y’, ‘z’, ‘+’, or ‘-‘.

  • spin_names (list of strings) – Names of the spins, e.g. [‘up’,’down’].

  • n_orb (int) – Number of orbitals.

  • off_diag (boolean) – Do we have (orbital) off-diagonal elements? If yes, the operators and blocks are denoted by (‘spin’, ‘orbital’), otherwise by (‘spin_orbital’,0).

  • map_operator_structure (dict) – Mapping of names of GF blocks names from one convention to another, e.g. {(‘up’, 0): (‘up_0’, 0), (‘down’, 0): (‘down_0’,0)}. If provided, the operators and blocks are denoted by the mapping of ('spin', 'orbital').

  • basis (string, optional) –

    The basis in which the interaction matrix should be computed. Takes the values

    • ’spherical’: spherical harmonics,

    • ’cubic’: cubic harmonics (valid only for the integer orbital momenta, i.e. for odd values of n_orb),

    • ’other’: other basis type as given by the transformation matrix T.

  • T (real/complex numpy array, optional) – Transformation matrix for basis change. Must be provided if basis=’other’.

Returns:

L – The component of the orbital momentum vector operator.

Return type:

Operator