Dear Dr. Troyer and users of ALPS,
I am trying to measure local magnetization with MEASURE_LOCAL[Local magnetization]=Sx for the following model:
<HAMILTONIAN name="my spin model 1"> <BASIS ref="spin"/> <SITETERM site="i"> -2*xi*Sz(i)-2*h*Sx(i) </SITETERM> <BONDTERM source="i" target="j"> -g*(Splus(i)*Sminus(j)+Sminus(i)*Splus(j)) </BONDTERM> </HAMILTONIAN>
Value of parameter xi depends on the site in an actual problem, but this is not important now.
Since dirloop_sse says that "Offdiagonal site terms are not implemented in this SSE code", I use the worm code.
Worm code says the following for this: "Will not measure "Local magnetization" since it is off-diagonal or not a site operator".
As a trick to overcome this problem, I tried to rotate the coordinate system in order to measure the required values with MEASURE_LOCAL[Local magnetization]=Sz In this case the rotated model is:
<SITEOPERATOR name="Sy" site="x"> 1/2/I*(Splus(x)-Sminus(x)) </SITEOPERATOR>
<HAMILTONIAN name="my spin model 2"> <BASIS ref="spin"/> <SITETERM site="i"> -2*xi*Sy(i)-2*h*Sz(i) </SITETERM> <BONDTERM source="i" target="j"> -2*g*Sz(i)*Sz(j)-2*g*Sx(i)*Sx(j) </BONDTERM> </HAMILTONIAN>
Now the worm code says the following: "can not convert complex number into real one".
Therefore, the worm code does not seem to understand Sy(i) as a site term in Hamiltonian (?).
Finally, I tried another version of rotation, which also would allow to measure with MEASURE_LOCAL[Local magnetization]=Sz The rotated model is:
<SITEOPERATOR name="Sy" site="x"> 1/2/I*(Splus(x)-Sminus(x)) </SITEOPERATOR>
<HAMILTONIAN name="my spin model 3"> <BASIS ref="spin"/> <SITETERM site="i"> 2*xi*Sx(i)-2*h*Sz(i) </SITETERM> <BONDTERM source="i" target="j"> -2*g*Sz(i)*Sz(j)-2*g*Sy(i)*Sy(j) </BONDTERM> </HAMILTONIAN>
Now the worm code says the following: "Cannot simulate this bond term with the worm code".
Therefore, the worm code does not seem to understand Sy(i)*Sy(j) as a bond term in Hamiltonian (?).
Could you let me know whether there are ways to perform the measurement ?
Sincerely yours, Lev Barash
On Sep 18, 2012, at 8:19 AM, Lev lev251@gmail.com wrote:
"Cannot simulate this bond term with the worm code".
Therefore, the worm code does not seem to understand Sy(i)*Sy(j) as a bond term in Hamiltonian (?)
it does understand it, but the ALPS worm code cannot do transverse field.
Matthias Troyer
comp-phys-alps-users@lists.phys.ethz.ch