How to establish the hamiltonian matrix as soon as possible?

Join the discussion
Registration is free. Start your own thread to ask a follow-up.
2 replies · 4K views
wdlang
Messages
306
Reaction score
0
in the bose-hubbard model, we need to enumerate all the possible basis

usually, the basis vectors are taken as the fock states

The problem is that, how to arrange the basis and how to establish the matrix of the hamiltonian as soon as possible

It is apparent the the matrix will be very sparse

then how can we avoid to set the matrix elements that are surely zero ?

i find this problem non-trivial
 
Physics news on Phys.org
Well, you need to find some operator that commutes with your Hamiltonian, and then you know that its eigenvalues are good quantum numbers, so the Hamiltonian will be block diagonal with each block corresponding to a different quantum number of this other operator. For instance, every term in the Bose-Hubbard model contains the same number of creation and annihilation operators, so the total particle number is conserved. This means that the Hamiltonian will only have matrix elements between states with the same particle number.

I'm not an expert on exact diagonalization, but I think that is probably about as far as you can go with it, due to the non-local nature of the hopping and the local nature of the interaction.
 
kanato said:
Well, you need to find some operator that commutes with your Hamiltonian, and then you know that its eigenvalues are good quantum numbers, so the Hamiltonian will be block diagonal with each block corresponding to a different quantum number of this other operator. For instance, every term in the Bose-Hubbard model contains the same number of creation and annihilation operators, so the total particle number is conserved. This means that the Hamiltonian will only have matrix elements between states with the same particle number.

I'm not an expert on exact diagonalization, but I think that is probably about as far as you can go with it, due to the non-local nature of the hopping and the local nature of the interaction.


yes, this is a trick

but i want more

i want such trick that faciliate the coding and programming

especially, i want to know quickly where the matrix elements are nonzero

generally, the matrix can be millions by millions, and i cannot test whether each element is zero or not. That requies too much time, though each testing can be very simple.