Source code for pythtb.models.ssh
from pythtb import TBModel, Lattice
[docs]
def ssh(v, w):
r"""Su-Schrieffer-Heeger (SSH) model.
.. versionadded:: 2.0.0
This function constructs the SSH model with the specified hopping parameters.
The SSH model is a one-dimensional tight-binding model that describes a chain of atoms
with alternating hopping parameters. The tight-binding Hamiltonian for the SSH model can be
written as:
.. math::
H = v \sum_{i} (c_{i, 1}^{\dagger} c_{i, 2} + \text{h.c.}) + w \sum_{i} (c_{i, 2}^{\dagger} c_{i+1, 1} + \text{h.c.})
Parameters
----------
v : float
The intracell hopping within the unit cell.
w : float
The intercell hopping to neighboring unit cells.
Returns
-------
TBModel
The tight-binding model for the SSH lattice.
"""
lat_vecs = [[1]]
orb_vecs = [[0], [1 / 2]]
lat = Lattice(lat_vecs, orb_vecs, periodic_dirs=[0])
my_model = TBModel(lattice=lat, spinful=False)
my_model.set_hop(v, 0, 1, [0])
my_model.set_hop(w, 1, 0, [1])
return my_model