Dear developers,
I have written a model (who can be used as a model library) who generalize to classical Heisenberg model for fermion with spin up and down to fermion with ’n’ degrees of freedom and two particles per sites. Here is my code
<MODELS> <SITEBASIS name ="SU5_m2"> <QUANTUMNUMBER name="N_1" min ="0" max ="1" type="fermionic"/> <QUANTUMNUMBER name="N_2" min ="0" max ="1" type="fermionic"/>
<QUANTUMNUMBER name="N_3" min ="0" max ="(1 - N_1*N_2)" type ="fermionic"/> <QUANTUMNUMBER name="N_4" min ="(1 - N_1)*(1 - N_2)*(1 - N_3)" max ="(1 - N_1*N_2)*(1 - N_1*N_3)*(1 - N_2*N_3)" type ="fermionic"/> <QUANTUMNUMBER name="N_5" min ="2 - N_1 - N_2 - N_3 - N_4" max ="2 - N_1 - N_2 - N_3 - N_4" type ="fermionic"/>
<OPERATOR name="S_1_1" matrixelement="N_1"/> <OPERATOR name="S_2_2" matrixelement="N_2"/> <OPERATOR name="S_3_3" matrixelement="N_3"/> <OPERATOR name="S_4_4" matrixelement="N_4"/> <OPERATOR name="S_5_5" matrixelement="N_5"/>
<OPERATOR name="S_1_2" matrixelement="1"> <CHANGE quantumnumber="N_2" change="-1"/> <CHANGE quantumnumber="N_1" change="+1"/> </OPERATOR> <OPERATOR name="S_1_3" matrixelement="1"> <CHANGE quantumnumber="N_3" change="-1"/> <CHANGE quantumnumber="N_1" change="+1"/> </OPERATOR> <OPERATOR name="S_1_4" matrixelement="1"> <CHANGE quantumnumber="N_4" change="-1"/> <CHANGE quantumnumber="N_1" change="+1"/> </OPERATOR> <OPERATOR name="S_1_5" matrixelement="1"> <CHANGE quantumnumber="N_5" change="-1"/> <CHANGE quantumnumber="N_1" change="+1"/> </OPERATOR>
<OPERATOR name="S_2_1" matrixelement="1"> <CHANGE quantumnumber="N_1" change="-1"/> <CHANGE quantumnumber="N_2" change="+1"/> </OPERATOR> <OPERATOR name="S_2_3" matrixelement="1"> <CHANGE quantumnumber="N_3" change="-1"/> <CHANGE quantumnumber="N_2" change="+1"/> </OPERATOR> <OPERATOR name="S_2_4" matrixelement="1"> <CHANGE quantumnumber="N_4" change="-1"/> <CHANGE quantumnumber="N_2" change="+1"/> </OPERATOR> <OPERATOR name="S_2_5" matrixelement="1"> <CHANGE quantumnumber="N_5" change="-1"/> <CHANGE quantumnumber="N_2" change="+1"/> </OPERATOR>
<OPERATOR name="S_3_1" matrixelement="1"> <CHANGE quantumnumber="N_1" change="-1"/> <CHANGE quantumnumber="N_3" change="+1"/> </OPERATOR> <OPERATOR name="S_3_2" matrixelement="1"> <CHANGE quantumnumber="N_2" change="-1"/> <CHANGE quantumnumber="N_3" change="+1"/> </OPERATOR> <OPERATOR name="S_3_4" matrixelement="1"> <CHANGE quantumnumber="N_4" change="-1"/> <CHANGE quantumnumber="N_3" change="+1"/> </OPERATOR> <OPERATOR name="S_3_5" matrixelement="1"> <CHANGE quantumnumber="N_5" change="-1"/> <CHANGE quantumnumber="N_3" change="+1"/> </OPERATOR>
<OPERATOR name="S_4_1" matrixelement="1"> <CHANGE quantumnumber="N_1" change="-1"/> <CHANGE quantumnumber="N_4" change="+1"/> </OPERATOR> <OPERATOR name="S_4_2" matrixelement="1"> <CHANGE quantumnumber="N_2" change="-1"/> <CHANGE quantumnumber="N_4" change="+1"/> </OPERATOR> <OPERATOR name="S_4_3" matrixelement="1"> <CHANGE quantumnumber="N_3" change="-1"/> <CHANGE quantumnumber="N_4" change="+1"/> </OPERATOR> <OPERATOR name="S_4_5" matrixelement="1"> <CHANGE quantumnumber="N_5" change="-1"/> <CHANGE quantumnumber="N_4" change="+1"/> </OPERATOR>
<OPERATOR name="S_5_1" matrixelement="1"> <CHANGE quantumnumber="N_1" change="-1"/> <CHANGE quantumnumber="N_5" change="+1"/> </OPERATOR> <OPERATOR name="S_5_2" matrixelement="1"> <CHANGE quantumnumber="N_2" change="-1"/> <CHANGE quantumnumber="N_5" change="+1"/> </OPERATOR> <OPERATOR name="S_5_3" matrixelement="1"> <CHANGE quantumnumber="N_3" change="-1"/> <CHANGE quantumnumber="N_5" change="+1"/> </OPERATOR> <OPERATOR name="S_5_4" matrixelement="1"> <CHANGE quantumnumber="N_4" change="-1"/> <CHANGE quantumnumber="N_5" change="+1"/> </OPERATOR> </SITEBASIS>
<BASIS name = "SU5_m2" > <SITEBASIS ref="SU5_m2"/> <CONSTRAINT quantumnumber="N_1" value="N_total"/> <CONSTRAINT quantumnumber="N_2" value="N_total"/> <CONSTRAINT quantumnumber="N_3" value="N_total"/> <CONSTRAINT quantumnumber="N_4" value="N_total"/> <CONSTRAINT quantumnumber="N_5" value="N_total"/> </BASIS>
<HAMILTONIAN name ="SU5_m2" > <BASIS ref="SU5_m2"/> <BONDTERM source="i" target="j"> S_1_1(i)*S_1_1(j) + S_1_2(i)*S_2_1(j) + S_1_3(i)*S_3_1(j) + S_1_4(i)*S_4_1(j) + S_1_5(i)*S_5_1(j) + S_2_1(i)*S_1_2(j) + S_2_2(i)*S_2_2(j) + S_2_3(i)*S_3_2(j) + S_2_4(i)*S_4_2(j) + S_2_5(i)*S_5_2(j) + S_3_1(i)*S_1_3(j) + S_3_2(i)*S_2_3(j) + S_3_3(i)*S_3_3(j) + S_3_4(i)*S_4_3(j) + S_3_5(i)*S_5_3(j) + S_4_1(i)*S_1_4(j) + S_4_2(i)*S_2_4(j) + S_4_3(i)*S_3_4(j) + S_4_4(i)*S_4_4(j) + S_4_5(i)*S_5_4(j) + S_5_1(i)*S_1_5(j) + S_5_2(i)*S_2_5(j) + S_5_3(i)*S_3_5(j) + S_5_4(i)*S_4_5(j) + S_5_5(i)*S_5_5(j) </BONDTERM> </HAMILTONIAN> </MODELS>
The problem is that the ground state energy is -622 and the first excited energy is -670 in a open chain lattice with 5 sites. Obviously somethings is wrong because the ground state energy is greater than the first excited energy.
I don’t know if the min and max condition in the quantum number are correctly implemented or maybe this is not the correct way to implement the bond term?
Can you help me ?
Best regards,
William Moreno
comp-phys-alps-users@lists.phys.ethz.ch