Alternatively, you can make custom operator definitions: Physics (SiteType) System Examples · ITensors.jl and then construct MPOs from symbolic representations of the Hamiltonian by constructing an OpSum and converting to an MPO. Note that should allow you to represent any Hamiltonian, since you can define a complete local operator basis and expand your Hamiltonian in that basis.