Skip to content

build_hubbard

Populate interactions for the Hubbard model.

build_hubbard

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

Populate interactions for a Hubbard model.

Assigns the hopping term -t Σ_σ (c†_{i,σ} c_{j,σ} + h.c.) to NN bonds (via JW-dressed operators from build_conductor) and appends one Interaction1Site per site for the on-site Hubbard-U term U n_{up} n_{dn} and an optional chemical potential term.

The chemical potential mu is defined relative to half-filling. The half-filling chemical potential for the standard Hubbard model is mu_half = U / 2, derived from the particle-hole symmetry condition <n> = 1. The effective on-site energy is therefore:

-mu_eff * n_i,   mu_eff = mu + U / 2.

This term is added whenever mu_eff != 0, i.e. even at mu = 0 when U != 0.

The coupling is NOT baked into the tensors; build_hamiltonian applies intr.cpl when constructing the MPO.

Parameters:

Name Type Description Default
interactions List[Interaction]

List of Interaction objects from the geometry stage. Modified in place; Interaction1Site objects for Hubbard-U and chemical potential are appended.

required
L int

Chain length. Used to create one Interaction1Site per site for each on-site term.

required
symmetry str

Symmetry passed to build_conductor — e.g. 'U1,U1' or 'U1,SU2'.

'U1,U1'
t float

NN hopping amplitude. Stored as cpl = -t.

1.0
U float

On-site Coulomb repulsion. Stored as cpl = U on Hubbard-U Interaction1Site objects.

4.0
tp float

NNN hopping amplitude. Stored as cpl = -tp.

0.0
mu float

Chemical potential relative to half-filling. The effective chemical potential applied is mu_eff = mu + U / 2. Stored as cpl = -mu_eff on chemical-potential Interaction1Site objects. When mu_eff == 0 (i.e. mu == 0 and U == 0) no term is added.

0.0
space_fn Optional[Callable]

Optional replacement for build_conductor.

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,SU2" "U1,U1", "U1,SU2", "Z2,U1", or "Z2,SU2"
t float 1.0 NN hopping amplitude
tp float 0.0 NNN hopping amplitude (requires NNN bonds)
U float 4.0 On-site Coulomb repulsion
mu float 0.0 Chemical potential relative to half-filling

Hamiltonian

\[ H = -t \sum_{\langle i,j \rangle, \sigma} (c^\dagger_{i\sigma} c_{j\sigma} + \text{h.c.}) + U \sum_i n_{i\uparrow} n_{i\downarrow} - \mu \sum_{i,\sigma} n_{i\sigma} \]

The mu parameter is relative to half-filling; the code automatically applies the \(-U/2\) shift for the U1,SU2 case.

See Also