hop(src, dst, amount=1)ΒΆ

hop transfers occupation from one site to another.

It is shorthand for a paired shift:

hop("i", "j", amount=a)
# equivalent to:
shift("i", -a).shift("j", +a)

Use it for off-diagonal hopping terms where one quantum number is removed from the source site and added to the destination site.

Example:

hopping = (
    SymbolicDiscreteJaxOperator(hi, "hopping")
    .for_each(("i", "j"), over=graph.edges())
    .where(site("i") > 0)
    .emit(hop("i", "j"), matrix_element=-t)
    .build()
)

For larger transfer steps, pass amount:

pair_hop = hop("i", "j", amount=2)