Dear Prof. Troyer
 
I am trying to calculate the ground state energy of the transverse Ising-Model ( -J*4*Sx(i)*Sx(j)-h*2*Sz(i) ) on a period 1d-chain-lattice with the DMRG. Though I had use both the default model and a modified model, the results are not satisfactory. So I ask for why the DMRG doesn't give a good result in transverse field Ising model as in other 1D model.
the modified model is:
<MODELS>
<SITEBASIS name="spin">
  <PARAMETER name="local_spin" default="local_S"/>
  <PARAMETER name="local_S" default="1/2"/>
  <QUANTUMNUMBER name="S" min="local_spin" max="local_spin"/>
  <QUANTUMNUMBER name="Sz" min="-S" max="S"/>
  <OPERATOR name="Splus" matrixelement="sqrt(S*(S+1)-Sz*(Sz+1))">
    <CHANGE quantumnumber="Sz" change="1"/>
  </OPERATOR>
  <OPERATOR name="Sminus" matrixelement="sqrt(S*(S+1)-Sz*(Sz-1))">
    <CHANGE quantumnumber="Sz" change="-1"/>
  </OPERATOR>
  <OPERATOR name="Sz" matrixelement="Sz"/>
</SITEBASIS>
<BASIS name="spin">
  <SITEBASIS ref="spin">
    <PARAMETER name="local_spin" value="local_S#"/>
    <PARAMETER name="local_S#" value="local_S"/>
    <PARAMETER name="local_S" value="1/2"/>
  </SITEBASIS>
  <CONSTRAINT quantumnumber="Sz" value="Sz_total"/>
</BASIS>
<SITEOPERATOR name="Sx" site="x">
  1/2*(Splus(x)+Sminus(x))
</SITEOPERATOR>
<HAMILTONIAN name="trans_Ising">
   <PARAMETER name="J" default="0"/>
   <PARAMETER name="h" default="0"/>
   <BASIS ref="spin"/>
   <SITETERM site="i">
     h*2*Sz(i)
   </SITETERM>
   <BONDTERM source="i" target="j">
     J*4*Sx(i)*Sx(j)
   </BONDTERM>
</HAMILTONIAN>
</MODELS>
 
Separately, the parameter files are:
LATTICE="chain lattice"
MODEL= "spin"
Jz=-4
Gamma=2
local_S=1/2
SWEEPS=4
NUMBER_EIGENVALUES=1
L=8
{MAXSTATES=20} 
 
LATTICE="chain lattice"
MODEL= "trans_Ising"
J=-1
h=-1
local_S=1/2
SWEEPS=4
NUMBER_EIGENVALUES=1
L=8
{MAXSTATES=20} 

Correspondingly, the results are:
FINAL SWEEP - LAST ITERATION
NUMBER OF STATES: 8 2 2 8 256
E0 = -282.636028178
ITER = 3 ENTROPY = 1.78546641552
-------------------------------------------
Truncation error = -4.98732999343e-17
-------------------------------------------
Checking if it is finished: not yet, next check in 60 seconds ( 0% done).
Halted Simulation 1
This task took 46 seconds.
Checkpointing Simulation 1
Finished with everything.
FINAL SWEEP - LAST ITERATION
NUMBER OF STATES: 8 2 2 8 256
E0 = -9.11126807853
ITER = 3 ENTROPY = 0.931162271124
-------------------------------------------
Truncation error = 2.22044604925e-16
-------------------------------------------
Checking if it is finished: not yet, next check in 60 seconds ( 0% done).
Halted Simulation 1
This task took 13 seconds.
Checkpointing Simulation 1
Finished with everything.
 
but the correct data should be  -10.251661790966022
which calculated by sparsediag.
 
I don't understand why DMRG give a low precision result, even I had set h=0. Remarkably, the default model gives a wrong data, which far away from the correct one.
I had exercise the XX model, which gives a very well data. I wonder if the transverse field Ising model has some special feature, or the DMRG parameter I used is not right?
 
best regards,
Shuai Cui