Dear ALPS Developers and Users,
I am trying to implement Fermi-Hubbard model in saw-tooth lattice and use ALPS MPS for further calculations. However, I am not able to get the correct results. I have checked my custom lattice using printgraph, also it seems to work fine with the Bose-Hubbard model. It will be really helpful if someone can look into the scripts below and let me know if there is a mistake? Or if there is some issue with ALPS MPS itself?
parameters file: --------------------
import pyalps
parms = [] p = dict() p['SWEEPS' ] = 10 p['NUMBER_EIGENVALUES'] = 1 p['optimization' ] = 'twosite' p['MAXSTATES' ] = 1200 p['TRUNCATION' ] = 1.e-10 p['init_state' ] = 'default' p['LATTICE_LIBRARY' ] = 'mylattices.xml' p['LATTICE' ] = 'sawtooth open chain lattice' p['MODEL_LIBRARY' ] = 'mymodel.xml' p['MODEL' ] = 'fermion Hubbard' p['L' ] = 10 p['t0' ] = -1.4142135623731 p['t1' ] = -1.0 p['t2' ] = -1.4142135623731 p['U' ] = 0.0 p['Nup_total' ] = 5 p['Ndown_total' ] = 5 p['COMPLEX' ] = 1 p['CONSERVED_QUANTUMNUMBERS' ] = 'Nup,Ndown' p['MEASURE[EnergyVariance]' ] = 1 p['MEASURE_LOCAL[n-up]' ] = 'n_up' p['MEASURE_LOCAL[n-down]' ] = 'n_down' p['storagedir'] = 'storage' parms.append(p)
## write the input file and run the simulation infiles=pyalps.writeInputFiles('sim',parms) res=pyalps.runApplication('mps_optim',infiles,writexml=True) ---------------------------------------------------------------------------------------------
lattice file --------------
<LATTICES> <LATTICE name="chain lattice" dimension="1"> <PARAMETER name="a" default="1"/> <BASIS><VECTOR>a</VECTOR></BASIS> <RECIPROCALBASIS><VECTOR>2*pi/a</VECTOR></RECIPROCALBASIS> </LATTICE>
<UNITCELL name="sawtooth" dimension="1"> <VERTEX id="1" type="0"></VERTEX> <VERTEX id="2" type="1"></VERTEX> <EDGE type="0"><SOURCE vertex="1" offset="0"/><TARGET vertex="2" offset="0"/></EDGE> <EDGE type="1"><SOURCE vertex="1" offset="0"/><TARGET vertex="1" offset="1"/></EDGE> <EDGE type="0"><SOURCE vertex="2" offset="0"/><TARGET vertex="1" offset="1"/></EDGE> </UNITCELL>
<LATTICEGRAPH name = "sawtooth open chain lattice" vt_skip="true"> <FINITELATTICE> <LATTICE ref="chain lattice"/> <EXTENT dimension="1" size ="L"/> <BOUNDARY type="open"/> </FINITELATTICE> <UNITCELL ref="sawtooth"/> </LATTICEGRAPH>
</LATTICES>
------------------------------------------------------------------------------------------------------------ model file -------------
<MODELS> <SITEBASIS name="fermion"> <QUANTUMNUMBER name="Nup" min="0" max="1" type="fermionic"/> <QUANTUMNUMBER name="Ndown" min="0" max="1" type="fermionic"/> <OPERATOR name="Splus" matrixelement="1"> <CHANGE quantumnumber="Ndown" change="-1"/> <CHANGE quantumnumber="Nup" change="1"/> </OPERATOR> <OPERATOR name="Sminus" matrixelement="1"> <CHANGE quantumnumber="Nup" change="-1"/> <CHANGE quantumnumber="Ndown" change="+1"/> </OPERATOR> <OPERATOR name="Sz" matrixelement="(Nup-Ndown)/2"/> <OPERATOR name="Nup" matrixelement="Nup"/> <OPERATOR name="Ndown" matrixelement="Ndown"/> <OPERATOR name="c_down" matrixelement="1"> <CHANGE quantumnumber="Ndown" change="-1"/> </OPERATOR> <OPERATOR name="cdag_down" matrixelement="1"> <CHANGE quantumnumber="Ndown" change="1"/> </OPERATOR> <OPERATOR name="c_up" matrixelement="1"> <CHANGE quantumnumber="Nup" change="-1"/> </OPERATOR> <OPERATOR name="cdag_up" matrixelement="1"> <CHANGE quantumnumber="Nup" change="1"/> </OPERATOR> <OPERATOR name="n" matrixelement="Nup+Ndown"/> <OPERATOR name="n_up" matrixelement="Nup"/> <OPERATOR name="n_down" matrixelement="Ndown"/> <OPERATOR name="double_occupancy" matrixelement="Nup*Ndown"/> </SITEBASIS>
<BASIS name="fermion"> <SITEBASIS ref="fermion"/> <CONSTRAINT quantumnumber="Nup" value="Nup_total"/> <CONSTRAINT quantumnumber="Ndown" value="Ndown_total"/> </BASIS>
<SITEOPERATOR name="fielddag_ud" site="x"> cdag_up(x)*cdag_down(x) </SITEOPERATOR> <SITEOPERATOR name="field_du" site="x"> c_down(x)*c_up(x) </SITEOPERATOR>
<SITEOPERATOR name="nsqu" site="x"> n(x)*n(x) </SITEOPERATOR> <SITEOPERATOR name="Szsqu" site="x"> Sz(x)*Sz(x) </SITEOPERATOR>
<BONDOPERATOR name="fermion_hop" source="x" target="y">
cdag_up(x)*c_up(y)+cdag_up(y)*c_up(x)+cdag_down(x)*c_down(y)+cdag_down(y)*c_down(x) </BONDOPERATOR>
<HAMILTONIAN name="harm fermion Hubbard"> <PARAMETER name="mu" default="0"/> <PARAMETER name="t" default="1"/> <PARAMETER name="V" default="0"/> <PARAMETER name="t'" default="0"/> <PARAMETER name="V'" default="0"/> <PARAMETER name="U" default="0"/> <PARAMETER name="t0" default="t"/> <PARAMETER name="t1" default="t'"/> <PARAMETER name="V0" default="V"/> <PARAMETER name="V1" default="V'"/> <PARAMETER name="K" default="0"/> <BASIS ref="fermion"/> <SITETERM site="i"> <PARAMETER name="mu#" default="mu"/> <PARAMETER name="U#" default="U"/> <PARAMETER name="K#" default="K"/> -mu#*n(i)+U#*n_up(i)*n_down(i)+K#*n(i)*(x-0.5*L)^2 </SITETERM> <BONDTERM source="i" target="j"> <PARAMETER name="t#" default="0"/> <PARAMETER name="V#" default="0"/> -t#*fermion_hop(i,j) + V#*n_up(i)*n_up(j) </BONDTERM> </HAMILTONIAN>
<HAMILTONIAN name="fermion Hubbard"> <PARAMETER name="mu" default="0"/> <PARAMETER name="t" default="1"/> <PARAMETER name="V" default="0"/> <PARAMETER name="t'" default="0"/> <PARAMETER name="V'" default="0"/> <PARAMETER name="U" default="0"/> <PARAMETER name="t0" default="t"/> <PARAMETER name="t1" default="t'"/> <PARAMETER name="V0" default="V"/> <PARAMETER name="V1" default="V'"/> <BASIS ref="fermion"/> <SITETERM site="i"> <PARAMETER name="mu#" default="mu"/> <PARAMETER name="U#" default="U"/> -mu#*n(i)+U#*n_up(i)*n_down(i) </SITETERM> <BONDTERM source="i" target="j"> <PARAMETER name="t#" default="0"/> <PARAMETER name="V#" default="0"/> -t#*fermion_hop(i,j) + V#*n(i)*n(j) </BONDTERM> </HAMILTONIAN> </MODELS> -----------------------------------------------------------------------------------------------------------
Best regards- Manpreet
comp-phys-alps-users@lists.phys.ethz.ch