Skip to content

build_fermionic

Load spinless-fermion space and build MPO operator templates.

build_fermionic

build_fermionic(symmetry: str = 'U1') -> Tuple[Index, Dict[str, Tensor]]

Load spinless-fermion space and build MPO operator templates.

Calls load_space('Ferm', symmetry) 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 particle number) or 'Z2' (fermion parity).

'U1'

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 (beyond the 'F', 'Z', 'vac' returned by load_space):

Hopping-type (2-site) operators:

  • 'C' — creator with op_OUT; built from F† and adjusted via capcup so its op direction matches F for use in oplus.
  • 'Fd' — adjoint annihilator (= F†) with op_IN; used as the creator channel in the terminal-site operator.
  • 'Cd' — adjoint creator with op_IN; built from C† and adjusted via capcup.
  • 'G'oplus(F, C, axes=2), combined 3rd-order leading-site operator (annihilation and creation channels share the op axis).
  • 'Gdag'oplus(Fd, Cd, axes=2), combined 3rd-order terminal-site operator.
  • 'G4', 'G4dag' — 4th-order leading- and terminal-site templates.

On-site operators:

  • 'N' — 2nd-order number operator c†c in (bra, ket) layout.
  • 'N4', 'I4', 'Z4' — 4th-order on-site tensors with trivial L/R bonds.
  • 'Z4mid' — 4th-order intermediate-site template for long-range fermionic bonds (op_IN, op_OUT, bra_OUT, ket_IN); applies Z (Jordan-Wigner string) at each intermediate site to maintain the correct fermionic sign.

See Also