11.5 ‘Exact’ diagonalisation of quantum chains 351
Before we proceed, we note that the Heisenberg Hamiltonian can be written in
the form (see Problem 11.3)
H=J
N∑− 1
i= 1
[
1
2
(Si+Si−+ 1 +S−iS+i+ 1 )+SizSzi+ 1
]
. (11.37)
Furthermore, the Hamiltonian commutes with quite a few symmetry operators. We
shall study these in detail inSection 11.5.2.
Multiplication of this Hamiltonian with a given vector|ψ〉proceeds in a way
analogous to the transfer matrix problem: we ‘zip’ through the chain and collect
all the generated terms into the resulting vector. The heart of the algorithm looks
as follows:
FOR each siteIDO
FORN1=0TO(MS)I−^1 − 1
FORN2=0TO(MS)L−I−^1 − 1
FOR S1 = 0,MS− 1
FOR S2 = 0,MS− 1
FOR S1P = 0,MS− 1
FOR S2P = 0,MS− 1
J = N1+N2*(MS)I+^1 + S1*(MS)I−^1 +
S2*(MS)I;
JP = N1+N2*(MS)I+^1 + S1P*(MS)I−^1 +
S2P*(MS)I;
HPsi(JP) = HPsi(JP)+
HMat(S1P, S2P, S1, S2)*Psi(J);
END FOR;
END FOR;
END FOR;
END FOR;
END FOR;
END FOR;
END FOR;
It is understood that forinear the boundary, some modification is necessary. The
matrix HMat is the part of the Hamiltonian which couples the spins at sitesi
andi+1. This matrix is directly found from the Heisenberg Hamiltonian with
Si=^12 (σx,σy,σz), andσiare the three Pauli matrices.
This procedure can now readily be used in the Lanczos algorithm to find the
lowest few eigenvalues.