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