You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
MPSKitModels.jl provides operators, tools and utilities for MPSKit.jl.
The main goal is to facilitate the definition and readability of Hamiltonians on (1+0)-dimensional quantum systems, as well as their quasi-one-dimensional extensions, such as cylinders, ladders, etc.
Additionally, some models from (2+0)-dimensional statistical mechanics are provided.
Overview
The main building blocks of these Hamiltonians are local N-body operators, which are provided in the form of an AbstractTensorMap{N,N} (see TensorKit.jl).
Several often-used operators are defined and exported within MPSKitModels.jl:
These operators can then be combined to define Hamiltonians by way of the @mpoham macro.
This transforms {} expressions to denote the site-indices upon which the operators act, and generates site-indices for various geometries.
Some examples to showcase this:
using MPSKitModels, TensorKit
g =1.0
H_ising =@mpohamsum(S_xx(){i, i +1} + g *S_z(){i} for i in-Inf:Inf)
J = [1.0-1.0] # staggered couplings over unit cell of length 2
H_heisenberg_ =@mpohamsum(J[i] *S_exchange(SU2Irrep; spin=1){i, i +1} for i invertices(InfiniteChain(2)))
H_heisenberg_cylinder =@mpohamsum(J1 *S_exchange(; spin=1){i, j} for (i, j) innearest_neighbours(InfiniteCylinder(3)))
J1 =0.8
J2 =0.2
H_J1J2 =@mpohamsum(J1 *S_exchange(){i, j} for (i, j) innearest_neighbours(InfiniteCylinder(4))) +sum(J2 *S_exchange(){i,j} for (i, j) innext_nearest_neighbours(InfiniteCylinder(4)))
For convenience, several models have already been defined. The full list can be found in the docs.
About
A Julia package for constructing models for MPSKit.jl