Hi, all,
I have two questions to bother you.
the first one is: Here is part of the model I defined. It is Heisenberg AFM model with different coupling constant J on each type of bond. See the defined BONDTERM. The default coupling Jz2 is J, and I specify J=1 in the parameter file.
<HAMILTONIAN name="spin"> <PARAMETER name="Jz" default="J"/> <PARAMETER name="Jxy" default="J"/> <PARAMETER name="J" default="1"/>
<BONDTERM type="2" source="i" target="j"> <PARAMETER name="Jz2" default="J"/> <PARAMETER name="Jxy2" default="J"/> Jz2*Sz(i)*Sz(j)+Jxy2*exchange_xy(i,j)+ ........
However, when I tried to run it, I got following error message.
parsing task files ... Starting task 1. Cannot evaluate expression Jz2 * -0.5 * -0.5
It seems that Alps didn't take the numerical value of Jz2. Or I make a mistake somewhere. Can someone help point out?
The second question about "sparse diagonalization":
When I use Lanczos method to get the ground state energy, it seems that it can only give me the value of energy, not the degeneracy of states. The value of energy has error in it, as a result, sometimes, it will consider two degenerate states as two different states. Is my understanding correct?
So, in order to judge whether the two states are degenerate or not from the energy value, we need to estimate of the magnitude of errors. Do you know how to do it? Run the same program several time and see the fluctuation of the corresponding energy and state? What do you suggest?
best, Gang
On 7 Sep 2007, at 18:33, GANG CHEN wrote:
Hi, all,
I have two questions to bother you.
the first one is: Here is part of the model I defined. It is Heisenberg AFM model with different coupling constant J on each type of bond. See the defined BONDTERM. The default coupling Jz2 is J, and I specify J=1 in the parameter file.
<HAMILTONIAN name="spin"> <PARAMETER name="Jz" default="J"/> <PARAMETER name="Jxy" default="J"/> <PARAMETER name="J" default="1"/>
<BONDTERM type="2" source="i" target="j"> <PARAMETER name="Jz2" default="J"/> <PARAMETER name="Jxy2" default="J"/> Jz2*Sz(i)*Sz(j)+Jxy2*exchange_xy(i,j)+ ........
However, when I tried to run it, I got following error message.
parsing task files ... Starting task 1. Cannot evaluate expression Jz2 * -0.5 * -0.5
It seems that Alps didn't take the numerical value of Jz2. Or I make a mistake somewhere. Can someone help point out?
Can you please send the full file - and tell us which code causes the problems - I will then look at it. Also, which version of ALPS do you use?
The second question about "sparse diagonalization":
When I use Lanczos method to get the ground state energy, it seems that it can only give me the value of energy, not the degeneracy of states. The value of energy has error in it, as a result, sometimes, it will consider two degenerate states as two different states. Is my understanding correct?
So, in order to judge whether the two states are degenerate or not from the energy value, we need to estimate of the magnitude of errors. Do you know how to do it? Run the same program several time and see the fluctuation of the corresponding energy and state? What do you suggest?
The Lanczos algorithm cannot get degeneracies - even if a state is degenerate it will give only one linear combination, as given by the starting vector, if exact arithmetic is used. Any degeneracies found are solely due to roundoff errors and not the degeneracy of the system. What you can do is either use fulldiag on smaller systems, or calculate the eigenvectors: for degenerate eigenvalues the eigenvectors will not be linearly dependent.
Matthias
comp-phys-alps-users@lists.phys.ethz.ch