# pmm_tools.models.chains

*module*

Parameterized interacting spinless and spinful chain Hamiltonians.

## pmm_tools.models.chains.dot_abs_chain

*function*

```python
def dot_abs_chain(length, params=None)
```

Return (Hamiltonian, fermions, parameters) for a spinful dot/ABS chain.

`params` supplies mu, E_z, Delta, t_n, t_so and U using the policies of
`prepare_parameters`. Returned tuples follow site/bond order; modes are
(site0 up, site0 down, site1 up, ...). Onsite energies are mu +/- E_z,
pairing Delta may be complex, and U couples opposite spins on each site.
Adjacent sites have spin-preserving t_n and spin-flip t_so hopping.
All energies share a caller-chosen unit; the full Fock space is retained.

[View source](https://gitlab.kwant-project.org/qt/pmm_tools/-/blob/e412d66507a554f455ef935b755fc39f28ab4e05/pmm_tools/models/chains.py#L36-L74)

## pmm_tools.models.chains.interacting_kitaev_chain

*function*

```python
def interacting_kitaev_chain(length, params=None)
```

Return (Hamiltonian, fermions, parameters) for an interacting Kitaev chain.

`params` supplies mu, t, Delta and nearest-neighbor U using the scalar,
sequence or symbolic policies of `prepare_parameters`. Returned parameter
values are tuples in site/bond order. Modes are c_0,...,c\_(length-1).
The Hamiltonian contains +mu\*n, hopping t, pair creation Delta and U\*n\*n_next,
with Hermitian conjugates for hopping and pairing. All energies use the
same caller-chosen unit; no Hilbert-space projection is made.

[View source](https://gitlab.kwant-project.org/qt/pmm_tools/-/blob/e412d66507a554f455ef935b755fc39f28ab4e05/pmm_tools/models/chains.py#L10-L33)
