# Computing Hamiltonian matrix for a 1-D spin chain.

1. Nov 3, 2009

### minerva

I'm not going to "follow the template provided" in the strictest sense - but I'm going to include all the same information expected - statement of the problem and a showing of how I've tried to do it, in the intended "spirit" of the template, since these different components are kind of "mixed" throughout my post.

If that's really not OK, please let me know nicely, and I'll use the template strictly next time.

We consider a set of three spin-1/2 particles. Each particle can of course have spin 1/2, or spin up, or spin -1/2, spin down. For the sake of having nice whole numbers to deal with, we shall denote spin up by 1 and spin down by -1, so a particular spin can be +/-1.

Hence, we have 8 possible states, working in the Sz basis: [1, 1, 1], [1, 1, -1]... and the six other binary combinations of the three spin sites.

Now, the Hamiltonian in the Heisenberg spin chain model, in one dimension, is $H = \sum^{N-1}_{k = 0} [H_z(k) + H_f(k)]$. It's that operator that I want to compute the corresponding Hamiltonian matrix for.

Or, in other words, for three spins, H = Hz(0) + Hf(0) + Hz(1) + Hf(1).

Hz(k) is the diagonal operator, and Hf(k) is the flipping operator.

For the moment, let's ignore the Hf(k) terms and look only at Hz(k).

The operation of Hz(k) on a basis state $| \psi \rangle$ gives us sz(k) sz(k+1) $| \psi \rangle$.

OK, suppose we consider the [1, 1, 1] state vector.

So, Hz(0) [1, 1, 1] = [1, 1, 1], multiplying by the spins of the first two sites, and Hz(1) [1, 1, 1] = [1, 1, 1], multiplying by the spins of the second two sites.

Is this the right implementation of this operator in this context?

But the overall Hamiltonian operator is the sum of these individual components of the operator - and therefore, so it would seem, the overall result of operating on such a vector with this operator is the sum of the results of those sub-components of the operator - So I just add those vectors together, and get something like [2, 2, 2] in this particular case. Is this right, or not?

We can operate on each of the eight state vectors and get some new, transformed vectors: [2, 2, 2], [0.5, -0.5, 0.5], ... etc. for a particular Hamiltonian, for each of those 8 state vectors. (This should be the sum over both the flipping operator and diagonal operator terms... although I haven't written down the details of the flipping operator.)

Now, to generate each of the 64 elements of the Hamiltonian matrix, I want to take the inner product of the i'th original state vector with the j'th transformed state vector.... right?

But what kind of algorithm do I use for the inner product in this case?

It cannot be just a dot product, because if I just make the Hamiltonian operator some simple scalar multiple, then any state vector must be an eigenstate of the Hamiltonian and hence we must get a diagonal matrix for the Hamiltonian, as per the Kronecker delta function... which we will not if we just naively use a dot product, because we won't be getting all those 0 terms in the off-diagonal positions.

So, how do I compute the correct inner product?

Also, is my general methodology for computing the Hamiltonian matrix sound?

Thanks greatly, in advance :)
1. The problem statement, all variables and given/known data

2. Relevant equations

3. The attempt at a solution

Know someone interested in this topic? Share this thread via Reddit, Google+, Twitter, or Facebook

Can you offer guidance or do you also need help?
Draft saved Draft deleted