Hello,
From http://alps.comp-phys.org/mediawiki-1.9.3/index.php/Tutorials:ModelHOWTO
"Optionally, a type attribute can be set to bosonic (the default) or fermionic. It should be set to fermionic when the quantum number is a fermionic number operator. This information will be used when determining commutation relation between operators on different sites."
This is very imprecise. To be honest, I do not understand that at all.
First of all, good quantum numbers take numerical values, and numbers commute. Hence, the relations for quantum numbers are always *commutation* relations.
The anticommutation relations are for the creation and annihilation *operators*. Hence, whether or not it make sense to assign such a "type=" attribute to a degree of freedom (call it a QUANTUMNUMBER), the attribute applies to *operators*! Moreover, not all operators, but only those that are odd in the creation and annihilation operators. For example, the spin operator for a pair of spin-up, spin-down fermion states satisfies *commutation* relations.
Now please tell me why the code refuses to generate a matrix (probably for the hopping and exchange terms, but the error message does not state which terms pose a problem). Both terms are even in the creation and annihilation operators (capital S refers to a bosonic spin):
<SITEBASIS name="orbital"> <QUANTUMNUMBER name="Nup" min="0" max="1" type="fermionic"/> <QUANTUMNUMBER name="Ndown" min="0" max="1" type="fermionic"/> <OPERATOR name="a_up" matrixelement="1"> <CHANGE quantumnumber="Nup" change="-1"/> </OPERATOR> <OPERATOR name="adag_up" matrixelement="1"> <CHANGE quantumnumber="Nup" change="1"/> </OPERATOR> <OPERATOR name="a_down" matrixelement="1"> <CHANGE quantumnumber="Ndown" change="-1"/> </OPERATOR> <OPERATOR name="adag_down" matrixelement="1"> <CHANGE quantumnumber="Ndown" change="1"/> </OPERATOR> <OPERATOR name="splus" matrixelement="1/2"> <CHANGE quantumnumber="Nup" change="1"/> <CHANGE quantumnumber="Ndown" change="-1"/> </OPERATOR> <OPERATOR name="sminus" matrixelement="1/2"> <CHANGE quantumnumber="Nup" change="-1"/> <CHANGE quantumnumber="Ndown" change="1"/> </OPERATOR> <OPERATOR name="sz" matrixelement="(Nup-Ndown)/2"/> <OPERATOR name="n" matrixelement="Nup+Ndown"/> </SITEBASIS>
<BONDOPERATOR name="exchange_xy" source="x" target="y"> 1/2*(splus(x)*Sminus(y)+sminus(x)*Splus(y)) </BONDOPERATOR>
<BONDOPERATOR name="exchange_z" source="x" target="y"> sz(x)*Sz(y) </BONDOPERATOR>
<BONDOPERATOR name="hop" source="x" target="y">
adag_up(x)*a_up(y)+adag_up(y)*a_up(x)+adag_down(x)*a_down(y)+adag_down(y)*a_down(x) </BONDOPERATOR>
Regards, Cezary Sliwa