Skip to content

build_free_fermion

Populate interactions for a spinless free-fermion (tight-binding) model.

build_free_fermion

build_free_fermion(
    interactions: List[Interaction],
    L: int = 0,
    *,
    symmetry: str = "U1",
    t: float = 1.0,
    tp: float = 0.0,
    mu: float = 0.0,
    space_fn: Optional[Callable] = None,
    **_ignored,
) -> Tuple[Index, Dict[str, Tensor]]

Populate interactions for a spinless free-fermion (tight-binding) model.

Assigns the hopping term -t (c†_i c_j + h.c.) to NN bonds and -tp (...) to NNN bonds. An optional chemical potential -mu n_i is added as one Interaction1Site per site when mu != 0.

The coupling stored in intr.cpl for hopping terms is negative (-t for NN) because build_hamiltonian scales terminal_tnsr by cpl; the sign encodes the physics.

Parameters:

Name Type Description Default
interactions List[Interaction]

List of Interaction objects from the geometry stage. Modified in place; Interaction1Site objects for the chemical potential are appended when mu != 0.

required
L int

Chain length. Required when mu != 0 to generate the on-site terms; the dispatcher always supplies it.

0
symmetry str

Symmetry passed to build_fermionic — 'U1' or 'Z2'.

'U1'
t float

NN hopping amplitude. Stored as cpl = -t.

1.0
tp float

NNN hopping amplitude. Stored as cpl = -tp.

0.0
mu float

Chemical potential. Stored as cpl = -mu on each on-site Interaction1Site; zero by default (no on-site term).

0.0
space_fn Optional[Callable]

Optional replacement for build_fermionic.

None
**_ignored

Extra TOML keys silently ignored.

{}

Returns:

Type Description
tuple

(spc, ops) from the operator-set builder.

Model Parameters

TOML key Type Default Description
symmetry str "U1" "U1" (particle number) or "Z2" (fermion parity)
t float 1.0 NN hopping amplitude
tp float 0.0 NNN hopping amplitude (requires NNN bonds in geometry)
mu float 0.0 Chemical potential

Hamiltonian

\[ H = -t \sum_{\langle i,j \rangle} (c^\dagger_i c_j + \text{h.c.}) - t' \sum_{\langle\langle i,j \rangle\rangle} (c^\dagger_i c_j + \text{h.c.}) - \mu \sum_i n_i \]

Jordan-Wigner string operators are inserted automatically at intermediate sites for long-range bonds.

See Also