Skip to content

build_bosonic

Load spin space and build MPO operator templates for spin models.

build_bosonic

build_bosonic(
    symmetry: str = "U1", spin: float = 0.5
) -> Tuple[Index, Dict[str, Tensor]]

Load spin space and build MPO operator templates for spin models.

Calls load_space('Spin', symmetry, {'J': spin}) and enriches the returned Op dictionary with derived operators for use in MPO construction.

Parameters:

Name Type Description Default
symmetry str

Symmetry string — 'U1' (conserve S_z) or 'SU2' (full spin-rotation invariance).

'U1'
spin float

Site spin quantum number (0.5, 1.0, …).

0.5

Returns:

Type Description
tuple

(Spc, Op) where Spc is the physical Index and Op is the enriched operator dictionary.

Notes

New entries added to Op:

  • 'S' — combined 3rd-order spin operator; for U1 this is Sp + Sm + Sz (with an op axis inserted on Sz).
  • 'Sdag'S† in (bra, ket, op_IN) layout.
  • 'S4' — 4th-order leading-site template (L_trivial_IN, op_OUT, bra_OUT, ket_IN).
  • 'S4dag' — 4th-order terminal-site template (op_IN, R_trivial_OUT, bra_OUT, ket_IN).
  • 'Sp4', 'Sp4dag', 'Sm4', 'Sm4dag' (U1 only) — same layouts as S4/S4dag but for Sp and Sm individually; useful when the raising and lowering channels must be handled separately.
  • 'Sz4', 'Sz4dag' (U1 only) — same layouts as S4/S4dag but for Sz alone; useful for anisotropic (XXZ) couplings.
  • 'I4' — 4th-order identity tensor (L_trivial_IN, R_trivial_OUT, bra_OUT, ket_IN).
  • 'I4mid' — 4th-order intermediate-site template for long-range bosonic bonds (op_IN, op_OUT, bra_OUT, ket_IN); physical identity with the operator channel propagated as-is (no string operator needed).

See Also