the basis vectors are written by the convention that the down spin are written first according to formula
| basis state > = Multiply(i=1 to i=N) ( for_spin_up ) cDag[i,Up_spin] Multiply(i=1 to i=N) ( for_spin_down ) cDag[i,Down_spin] | 0 >
Now for two site system half filling 1 up spin and 1 down spin the basis are
| basis 1 > = cDag[ 1, up ] cDag[ 2, down ] |0 > | basis 2 > = cDag[ 2, up ] cDag[ 1, down ] |0 > (* Now position cahanged as down spin is first according to convention *) | basis 3 > = cDag[ 1, up ] cDag[ 1, down ] |0 > | basis 4 > = cDag[ 2, up ] cDag[ 2, down ] |0 >
Now when we analyticaaly solve for hubbard hamiltonian we get the matrix
((0,0,-t,-t),(0,0,-t,-t),(-t,-t,U,0),(-t,-t,0.U)) but alps give the matrix ((0,1,-1,0),(1,0,0,1),(-1,0,0,-1),(0,1,-1,0))
the matrices are equivalent as long as their eigen values are same.
from which we can have eigen values and eigen vectors
I want from alps to have basis vectors with this convention. what I see from naked eye if one of the basis vector get a minus sign then the hamiltonian are equivalent.
I want the alps to generate basis states according to this convention down spin first and then compute the hamiltonian matrix, otherwise I think program is very powerful.
There is any way that we give our basis to the program to compute hamiltonian matrix.
best regards
Khalid Loane
Dear Khalid,
We just have a different convention where we sort by site first and then by spin and not by spin first and then by site. There are technical reasons for that - this is much easier to implement in the general case, especially for models that do not conserve SU(2) symmetry. If you want to convert from our convention to your convention, you will need to write a simple conversion program.
Matthias
On May 13, 2009, at 2:44 AM, khalid hassan wrote:
the basis vectors are written by the convention that the down spin are written first according to formula
| basis state > = Multiply(i=1 to i=N) ( for_spin_up ) cDag[i,Up_spin] Multiply(i=1 to i=N) ( for_spin_down ) cDag[i,Down_spin] | 0 >
Now for two site system half filling 1 up spin and 1 down spin the basis are
| basis 1 > = cDag[ 1, up ] cDag[ 2, down ] |0 > | basis 2 > = cDag[ 2, up ] cDag[ 1, down ] |0 > (* Now position cahanged as down spin is first according to convention *) | basis 3 > = cDag[ 1, up ] cDag[ 1, down ] |0 > | basis 4 > = cDag[ 2, up ] cDag[ 2, down ] |0 >
Now when we analyticaaly solve for hubbard hamiltonian we get the matrix
((0,0,-t,-t),(0,0,-t,-t),(-t,-t,U,0),(-t,-t,0.U)) but alps give the matrix ((0,1,-1,0),(1,0,0,1),(-1,0,0,-1),(0,1,-1,0))
the matrices are equivalent as long as their eigen values are same.
from which we can have eigen values and eigen vectors
I want from alps to have basis vectors with this convention. what I see from naked eye if one of the basis vector get a minus sign then the hamiltonian are equivalent.
I want the alps to generate basis states according to this convention down spin first and then compute the hamiltonian matrix, otherwise I think program is very powerful.
There is any way that we give our basis to the program to compute hamiltonian matrix.
best regards
Khalid Loane
comp-phys-alps-users@lists.phys.ethz.ch