triqs.operators.util.observables.LS_op
-
triqs.operators.util.observables.
LS_op
(spin_names, orb_names, off_diag=None, map_operator_structure=None, basis='spherical', T=None)[source] Create a spin-orbital coupling operator.
\[\mathbf{\hat L\cdot\hat S} = \hat L_x \hat S_x + \hat L_y \hat S_y + \hat L_z \hat S_z.\]Parameters: - spin_names (list of strings) – Names of the spins, e.g. [‘up’,’down’].
- orb_names (list of strings or int) – Names of the orbitals, e.g. [0,1,2] or [‘t2g’,’eg’].
- 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 sizes of orb_names),
- ’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: LS – The spin-orbital coupling operator.
Return type: