Dear ALPS users, I am checking the performance of the DMRG application of ALPS on a simple Ising chain with periodic boundary conditions. The program seems not to be able to converge to the right ground state, even for lengths of the chain such as L=6,8,.. Comparing to the results of the sparsdiag algorithm included in the package the ground state energies are very different.
Does anyone know why it is so? Any idea on how to overcome this problem?
Thank you in advance.
Dear Emanuele Levi,
It is well known that periodic boundary conditions are a problem for DMRG. You will need a large number of states ( you don't mention how many you use) and you need to sweep often.
Matthias
On Nov 14, 2013, at 10:33, Emanuele Levi emanuele.levi@gmail.com wrote:
Dear ALPS users, I am checking the performance of the DMRG application of ALPS on a simple Ising chain with periodic boundary conditions. The program seems not to be able to converge to the right ground state, even for lengths of the chain such as L=6,8,.. Comparing to the results of the sparsdiag algorithm included in the package the ground state energies are very different.
Does anyone know why it is so? Any idea on how to overcome this problem?
Thank you in advance.
-- Dr Emanuele Levi
emanuele.levi@gmail.com
Dear Matthias,
thank you for your quick answer. Actually I have considered both periodic and open boundary conditions.
The model I defined as follows
<SITEOPERATOR name="Sx" site="x"> 1/2*(Splus(x)+Sminus(x)) </SITEOPERATOR>
<HAMILTONIAN name="Ising"> <PARAMETER name="J" default="0"/> <PARAMETER name="h" default="0"/> <BASIS ref="spin"/> <SITETERM site="i"> J*h*2*Sz(i) </SITETERM> <BONDTERM source="i" target="j"> J*4*Sx(i)*Sx(j) </BONDTERM></HAMILTONIAN>
And I run the following simulations: An exact
parms = [{ 'LATTICE_LIBRARY' :"/MyIsing/lattice.xml", 'MODEL_LIBRARY' :"/MyIsing/model.xml", 'LATTICE' :"open chain lattice", 'MODEL' :"Ising", 'h' : 2.1, 'J' : -0.5, 'L' : 8 }] input_file = pyalps.writeInputFiles('IsingEXACT',parms) res = pyalps.runApplication('sparsediag',input_file,writexml=True)
and a DMRG
parms = [{ 'LATTICE_LIBRARY' :"/MyIsing/lattice.xml", 'MODEL_LIBRARY' :"/MyIsing/model.xml", 'LATTICE' :"open chain lattice", 'MODEL' :"Ising", 'J' : -0.5, 'h' : 2.1, 'SWEEPS' : 4, 'NUMBER_EIGENVALUES' : 1, 'L' : 8, 'MAXSTATES' : 600 }]
The sparsediag gives me
-8.8210316277121077
and the DMRG gives me
-8.5812583500526003
with truncation error -2.2204460492503131e-16
Why the data are so distant notwithstanding the truncation error is so small, and it seems to be converged?
Kindest regards.
On 14 November 2013 20:03, Matthias Troyer troyer@phys.ethz.ch wrote:
Dear Emanuele Levi,
It is well known that periodic boundary conditions are a problem for DMRG. You will need a large number of states ( you don't mention how many you use) and you need to sweep often.
Matthias
On Nov 14, 2013, at 10:33, Emanuele Levi emanuele.levi@gmail.com wrote:
Dear ALPS users, I am checking the performance of the DMRG application of ALPS on a simple Ising chain with periodic boundary conditions. The program seems not to be able to converge to the right ground state, even for lengths of the chain such as L=6,8,.. Comparing to the results of the sparsdiag algorithm included in the package the ground state energies are very different.
Does anyone know why it is so? Any idea on how to overcome this problem?
Thank you in advance.
-- Dr Emanuele Levi
emanuele.levi@gmail.com
You have to do more than four sweeps. Please increase the number of sweeps and observe how the error changes.
On Nov 14, 2013, at 16:56, Emanuele Levi emanuele.levi@gmail.com wrote:
Dear Matthias,
thank you for your quick answer. Actually I have considered both periodic and open boundary conditions.
The model I defined as follows
<SITEOPERATOR name="Sx" site="x"> 1/2*(Splus(x)+Sminus(x)) </SITEOPERATOR>
<HAMILTONIAN name="Ising"> <PARAMETER name="J" default="0"/> <PARAMETER name="h" default="0"/> <BASIS ref="spin"/> <SITETERM site="i"> J*h*2*Sz(i) </SITETERM> <BONDTERM source="i" target="j"> J*4*Sx(i)*Sx(j) </BONDTERM></HAMILTONIAN>
And I run the following simulations: An exact
parms = [{ 'LATTICE_LIBRARY' :"/MyIsing/lattice.xml", 'MODEL_LIBRARY' :"/MyIsing/model.xml", 'LATTICE' :"open chain lattice", 'MODEL' :"Ising", 'h' : 2.1, 'J' : -0.5, 'L' : 8 }] input_file = pyalps.writeInputFiles('IsingEXACT',parms) res = pyalps.runApplication('sparsediag',input_file,writexml=True)
and a DMRG
parms = [{ 'LATTICE_LIBRARY' :"/MyIsing/lattice.xml", 'MODEL_LIBRARY' :"/MyIsing/model.xml", 'LATTICE' :"open chain lattice", 'MODEL' :"Ising", 'J' : -0.5, 'h' : 2.1, 'SWEEPS' : 4, 'NUMBER_EIGENVALUES' : 1, 'L' : 8, 'MAXSTATES' : 600 }]
The sparsediag gives me
-8.8210316277121077
and the DMRG gives me
-8.5812583500526003
with truncation error -2.2204460492503131e-16
Why the data are so distant notwithstanding the truncation error is so small, and it seems to be converged?
Kindest regards.
On 14 November 2013 20:03, Matthias Troyer troyer@phys.ethz.ch wrote: Dear Emanuele Levi,
It is well known that periodic boundary conditions are a problem for DMRG. You will need a large number of states ( you don't mention how many you use) and you need to sweep often.
Matthias
On Nov 14, 2013, at 10:33, Emanuele Levi emanuele.levi@gmail.com wrote:
Dear ALPS users, I am checking the performance of the DMRG application of ALPS on a simple Ising chain with periodic boundary conditions. The program seems not to be able to converge to the right ground state, even for lengths of the chain such as L=6,8,.. Comparing to the results of the sparsdiag algorithm included in the package the ground state energies are very different.
Does anyone know why it is so? Any idea on how to overcome this problem?
Thank you in advance.
-- Dr Emanuele Levi
emanuele.levi@gmail.com
-- Dr Emanuele Levi
emanuele.levi@gmail.com
Dear Matthias, I tried to increase the sweeps running
parms = [] for s in [4,8,12]: parms.append( { 'LATTICE_LIBRARY' :"/MyIsing/lattice.xml", 'MODEL_LIBRARY' :"/MyIsing/model.xml", 'LATTICE' :"open chain lattice", 'MODEL' :"Ising", 'J' : -0.5, 'h' : 2.1, 'SWEEPS' : s, 'NUMBER_EIGENVALUES' : 1, 'L' : 8, 'MAXSTATES' : 800 })
that means I am doing 4,8,12 sweeps. The result does not change too much
s=4, -8.5812583500526003 s=8, -8.5812583500217769 s=12, -8.5812583528577377
and the truncation errors are always on the order of 10^(-16). What strikes me is that I am keeping 600 states for a L=8 spin chain, with a Hilbert space of dimension 2^8=256. So the DMRG step should really be just a change of basis. Could it be that due to the approximations at the warm up the algorithm gets stuck into a metastable configuration even for such a short chain?
Kindest regards.
On 14 November 2013 22:13, Matthias Troyer troyer@phys.ethz.ch wrote:
You have to do more than four sweeps. Please increase the number of sweeps and observe how the error changes.
On Nov 14, 2013, at 16:56, Emanuele Levi emanuele.levi@gmail.com wrote:
Dear Matthias,
thank you for your quick answer. Actually I have considered both periodic and open boundary conditions.
The model I defined as follows
<SITEOPERATOR name="Sx" site="x"> 1/2*(Splus(x)+Sminus(x)) </SITEOPERATOR>
<HAMILTONIAN name="Ising"> <PARAMETER name="J" default="0"/> <PARAMETER name="h" default="0"/> <BASIS ref="spin"/> <SITETERM site="i"> J*h*2*Sz(i) </SITETERM> <BONDTERM source="i" target="j"> J*4*Sx(i)*Sx(j) </BONDTERM></HAMILTONIAN>
And I run the following simulations: An exact
parms = [{ 'LATTICE_LIBRARY' :"/MyIsing/lattice.xml", 'MODEL_LIBRARY' :"/MyIsing/model.xml", 'LATTICE' :"open chain lattice", 'MODEL' :"Ising", 'h' : 2.1, 'J' : -0.5, 'L' : 8 }] input_file = pyalps.writeInputFiles('IsingEXACT',parms) res = pyalps.runApplication('sparsediag',input_file,writexml=True)
and a DMRG
parms = [{ 'LATTICE_LIBRARY' :"/MyIsing/lattice.xml", 'MODEL_LIBRARY' :"/MyIsing/model.xml", 'LATTICE' :"open chain lattice", 'MODEL' :"Ising", 'J' : -0.5, 'h' : 2.1, 'SWEEPS' : 4, 'NUMBER_EIGENVALUES' : 1, 'L' : 8, 'MAXSTATES' : 600 }]
The sparsediag gives me
-8.8210316277121077
and the DMRG gives me
-8.5812583500526003
with truncation error -2.2204460492503131e-16
Why the data are so distant notwithstanding the truncation error is so small, and it seems to be converged?
Kindest regards.
On 14 November 2013 20:03, Matthias Troyer troyer@phys.ethz.ch wrote:
Dear Emanuele Levi,
It is well known that periodic boundary conditions are a problem for DMRG. You will need a large number of states ( you don't mention how many you use) and you need to sweep often.
Matthias
On Nov 14, 2013, at 10:33, Emanuele Levi emanuele.levi@gmail.com wrote:
Dear ALPS users, I am checking the performance of the DMRG application of ALPS on a simple Ising chain with periodic boundary conditions. The program seems not to be able to converge to the right ground state, even for lengths of the chain such as L=6,8,.. Comparing to the results of the sparsdiag algorithm included in the package the ground state energies are very different.
Does anyone know why it is so? Any idea on how to overcome this problem?
Thank you in advance.
-- Dr Emanuele Levi
emanuele.levi@gmail.com
-- Dr Emanuele Levi
emanuele.levi@gmail.com
comp-phys-alps-users@lists.phys.ethz.ch