Skip to content

build_heisenberg

Populate interactions for a Heisenberg spin model.

build_heisenberg

build_heisenberg(
    interactions: List[Interaction],
    L: int = 0,
    *,
    symmetry: str = "U1",
    spin: float = 0.5,
    J: float = 1.0,
    Jp: float = 0.0,
    space_fn: Optional[Callable] = None,
    **_ignored,
) -> Tuple[Index, Dict[str, Tensor]]

Populate interactions for a Heisenberg spin model.

Assigns the spin-spin coupling J S†_i · S_j to each NN bond and Jp S†_i · S_j to each NNN bond. Tensors are built from build_bosonic (or space_fn if provided) and stored without baking in the coupling; build_hamiltonian applies intr.cpl when constructing the MPO.

Parameters:

Name Type Description Default
interactions List[Interaction]

List of Interaction2Site objects from the geometry stage. Modified in place.

required
L int

Chain length. Unused here (present for uniform model-builder API).

0
symmetry str

Symmetry passed to build_bosonic'U1' or 'SU2'.

'U1'
spin float

Site spin quantum number.

0.5
J float

Coupling for NN bonds (label 'NN').

1.0
Jp float

Coupling for NNN bonds (label 'NNN'). Interactions with Jp == 0 are left with cpl = 0.0 and no tensors; build_hamiltonian skips them.

0.0
space_fn Optional[Callable]

Optional replacement for build_bosonic. Must have the same signature: space_fn(symmetry, spin) -> (spc, ops).

None
**_ignored

Extra TOML keys forwarded from the dispatcher are silently ignored.

{}

Returns:

Type Description
tuple

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

Model Parameters

TOML key Type Default Description
symmetry str "U1" "U1" or "SU2"
spin float 0.5 Site spin quantum number
J float 1.0 NN coupling constant
Jp float 0.0 NNN coupling constant (requires NNN bonds in geometry)

Hamiltonian

\[ H = J \sum_{\langle i,j \rangle} \mathbf{S}_i \cdot \mathbf{S}_j + J' \sum_{\langle\langle i,j \rangle\rangle} \mathbf{S}_i \cdot \mathbf{S}_j \]

For SU(2) symmetry, the full rotational invariance is preserved. For U(1), the spin-z projection is conserved.

See Also