If I understand you right the third edge should be
<EDGE type="3"><SOURCE vertex="2" offset="0"/><TARGET vertex=“2"offset="1"/></EDGE>
> On 26 Apr 2015, at 23:02, Alexander Herzog <
Metalhead@web.de> wrote:
>
> Hm, maybe I do not understand the syntax correctly. The two vertices should be located on neighboring sites, as we have strong and weak bonds. So the strong bond say goes from site j to site j+1, which means it starts at vertex 1 and ends at vertex 2. The corresponding nnn interaction is shited by 1, thus the offset. Therefore I would say, these two lines are correct.
>
> Concerning the next two lines I am not so sure. Is it from vertex 2 -> vertex 2 offset 1 and vertex 2-> vertex 1 offset 1?
>
> I tried this option. Still throws the same error. Since the system is translational invariant, I thought it should go back to vertex 1 and vertex 1 offs. 1....
>
> Sorry for firing questions at you in this way...
>
> Alex
> Gesendet: Sonntag, 26. April 2015 um 22:38 Uhr
> Von: "Matthias Troyer" <
troyer@phys.ethz.ch>
> An: "
comp-phys-alps-users@lists.phys.ethz.ch" <
comp-phys-alps-users@lists.phys.ethz.ch>
> Betreff: Re: [ALPS-users] Cannot calculate boundary crossing if neither vertex is in the original cell
>
> If you draw the graph on paper you will see that it is still not correct.
>
> On 26.04.2015, at 22:31, Alexander Herzog <
Metalhead@web.de> wrote:
>
> Thank you again. I have chagned the unitcell it now reads:
>
> <UNITCELL name="complex1d_alt" dimension="1">
> <VERTEX id="1" type="0"><COORDINATE> 0 </COORDINATE></VERTEX>
> <VERTEX id="2" type="1"><COORDINATE> 1/2 </COORDINATE></VERTEX>
> <EDGE type="0"><SOURCE vertex="1" /><TARGET vertex="2"/></EDGE>
> <EDGE type="2"><SOURCE vertex="1" /><TARGET vertex="2" offset="1"/></EDGE>
> <EDGE type="1"><SOURCE vertex="2" offset="0"/><TARGET vertex="1"
> offset="0"/></EDGE>
> <EDGE type="3"><SOURCE vertex="2" offset="0"/><TARGET vertex="1"
> offset="1"/></EDGE>
> </UNITCELL>,
>
> whereas th elattciegraph reads
>
> <LATTICEGRAPH name = "nnn chain lattice with dimerization">
> <FINITELATTICE>
> <LATTICE name="chain lattice" dimension="1">
> <PARAMETER name="a" default="1"/>
> <BASIS><VECTOR>a</VECTOR></BASIS>
> <RECIPROCALBASIS><VECTOR>2*pi/a</VECTOR></RECIPROCALBASIS>
> </LATTICE>
> <EXTENT dimension="1" size ="L"/>
> <BOUNDARY type="periodic"/>
> </FINITELATTICE>
> <UNITCELL ref="complex1d_alt"/>
> </LATTICEGRAPH>
>
> Attributed to the two vertices, I have adapted the Hamiltonian so as to read:
>
> <HAMILTONIAN name="dimfrust">
> <PARAMETER name="J1" default="0"/>
> <PARAMETER name="J2" default="0"/>
> <PARAMETER name="delta'" default="0"/>
> <PARAMETER name="Jxy'" default="J'"/>
> <PARAMETER name="Jz1" default="Jz'"/>
> <PARAMETER name="Jxy1" default="Jxy'"/>
> <PARAMETER name="h" default="0"/>
> <PARAMETER name="Gamma" default="0"/>
> <PARAMETER name="D" default="0"/>
> <PARAMETER name="K" default="0"/>
> <BASIS ref="spin"/>
> <SITETERM site="i">
> <PARAMETER name="h#" default="h"/>
> <PARAMETER name="Gamma#" default="Gamma"/>
> <PARAMETER name="D#" default="D"/>
> -h#*Sz(i)-Gamma#*Sx(i)+D#*Sz(i)*Sz(i)
> </SITETERM>
> <BONDTERM type="0" source="i" target="j">
> <PARAMETER name="J1#" default="J1/>
> <PARAMETER name="J2#" default="J2"/>
> <PARAMETER name="delta#" default="delta"/>
> J1#*(1+delta)*Sz(i)*Sz(j)+J1#*(1+delta)*exchange_xy(i,j)
> </BONDTERM>
> <BONDTERM type="1" source="i" target="j">
> <PARAMETER name="J1#" default="J1/>
> <PARAMETER name="J2#" default="J2"/>
> <PARAMETER name="delta#" default="delta"/>
> J1#*(1-delta)*Sz(i)*Sz(j)+J1#*(1-delta)*exchange_xy(i,j)
> </BONDTERM>
> <BONDTERM type="2" source="i" target="j">
> <PARAMETER name="J1#" default="J1/>
> <PARAMETER name="J2#" default="J2"/>
> <PARAMETER name="delta#" default="delta"/>
> J2#*Sz(i)*Sz(j)+J2#*exchange_xy(i,j)
> </BONDTERM>
> <BONDTERM type="3" source="i" target="j">
> <PARAMETER name="J1#" default="J1/>
> <PARAMETER name="J2#" default="J2"/>
> <PARAMETER name="delta#" default="delta"/>
> J2#*Sz(i)*Sz(j)+J2#*exchange_xy(i,j)
> </BONDTERM>
> </HAMILTONIAN>
>
> Now using the following parameter file:
>
> LATTICE="nnn chain lattice with dimerization"
> J1=-1
> J2=0
> delta=0
> local_S=0.5
> MODEL="dimfrust"
> CONSERVED_QUANTUMNUMBERS="N,Sz"
> Sz_total=0
> SWEEPS=6
> NUMBER_EIGENVALUES=1
> MEASURE_AVERAGE[Magnetization]=Sz
> MEASURE_AVERAGE[Exchange]=exchange
> MEASURE_LOCAL[Local magnetization]=Sz
> MEASURE_CORRELATIONS[Diagonal spin correlations]=Sz
> MEASURE_CORRELATIONS[Offdiagonal spin correlations]="Splus:Sminus"
> L=32
> { MAXSTATES=20 }
>
> throws the error "= expected after attribute name J2" which I do not understand as J2 is followed by = in the parameter file. I have however somehow the suspection, that still the lattice graph is wrong and that the basis has to attribiuted to the dimerization and thus the splitting of the unit-cell. I do however not know, how this needs to be done.
>
> I am very grateful for every further hint.
>
> Thank you in advance and best regards,
>
> Alex
>
> Gesendet: Sonntag, 26. April 2015 um 21:09 Uhr
> Von: "Matthias Troyer" <
troyer@phys.ethz.ch>
> An: "
comp-phys-alps-users@lists.phys.ethz.ch" <
comp-phys-alps-users@lists.phys.ethz.ch>
> Betreff: Re: [ALPS-users] Cannot calculate boundary crossing if neither vertex is in the original cell
> Yes, and the first one should have offset 0 for both vertices. The n.n.n interaction then needs to appear twice as well, once for vertex 0 and once for vertex 1
>
> Matthias
>
>
>
>
> On Apr 26, 2015, at 21:07, Alexander Herzog <
Metalhead@web.de> wrote:
>
> Hello Matthias,
>
> thank you for your quick reply. Does that mean that instead of the second line, I should write
>
> <EDGE type="1"><SOURCE vertex="2" offset="0"/><TARGET vertex="1" offset="1"/></EDGE>
>
> which should fix the problem?
>
> Kind regards,
>
> Alex
> Gesendet: Sonntag, 26. April 2015 um 21:03 Uhr
> Von: "Matthias Troyer" <
troyer@phys.ethz.ch>
> An:
comp-phys-alps-users@lists.phys.ethz.ch
> Betreff: Re: [ALPS-users] Cannot calculate boundary crossing if neither vertex is in the original cell
> The problem is that for a dimerized system you need to define two vertices in the unit cell. You cannot claim
>
> <EDGE type="0"><SOURCE vertex="1" offset="0"/><TARGET vertex="1" offset="1"/></EDGE>
> <EDGE type="1"><SOURCE vertex="1" offset="1"/><TARGET vertex="1" offset="2"/></EDGE>
>
> since the lattice is translation invariant and thus these two need to be the same.
>
>
>
> On 26 Apr 2015, at 20:49, Alexander Herzog <
Metalhead@web.de> wrote:
>
> Hello everybody,
>
>
> I was trying to run a simulation on the frustrated 1D dimerized chain. To this end, I have adapted the follwoing unit-cell
>
> <UNITCELL name="complex1d_alt" dimension="1">
> <VERTEX/>
> <EDGE type="0"><SOURCE vertex="1" offset="0"/><TARGET vertex="1" offset="1"/></EDGE>
> <EDGE type="1"><SOURCE vertex="1" offset="1"/><TARGET vertex="1" offset="2"/></EDGE>
> <EDGE type="2"><SOURCE vertex="1" offset="0"/><TARGET vertex="1" offset="2"/></EDGE>
> </UNITCELL>
>
> from the "complex1d" unitcell. This enters into the latticgraph
>
> <LATTICEGRAPH name = "nnn chain lattice with dimerization" vt_name="NNNChainLattice">
> <FINITELATTICE>
> <LATTICE ref="chain lattice"/>
> <EXTENT dimension="1" size ="L"/>
> <BOUNDARY type="periodic"/>
> </FINITELATTICE>
> <UNITCELL ref="complex1d_alt"/>
> </LATTICEGRAPH>
>
> For the most part, this is adapted from "nnn chain lattice". Consequently it uses the same definition in Lattice i.e. "chain lattice".
>
> This latticegraph is supposed to comunicate with the following Hamiltonian
>
>
> <HAMILTONIAN name="dimfrust">
> <PARAMETER name="J1" default="0"/>
> <PARAMETER name="J2" default="0"/>
> <PARAMETER name="delta'" default="0"/>
> <PARAMETER name="Jxy'" default="J'"/>
> <PARAMETER name="Jz1" default="Jz'"/>
> <PARAMETER name="Jxy1" default="Jxy'"/>
> <PARAMETER name="h" default="0"/>
> <PARAMETER name="Gamma" default="0"/>
> <PARAMETER name="D" default="0"/>
> <PARAMETER name="K" default="0"/>
> <BASIS ref="spin"/>
> <SITETERM site="i">
> <PARAMETER name="h#" default="h"/>
> <PARAMETER name="Gamma#" default="Gamma"/>
> <PARAMETER name="D#" default="D"/>
> -h#*Sz(i)-Gamma#*Sx(i)+D#*Sz(i)*Sz(i)
> </SITETERM>
> <BONDTERM type="0" source="i" target="j">
> <PARAMETER name="J1#" default="J1/>
> <PARAMETER name="J2#" default="J2"/>
> <PARAMETER name="delta#" default="delta"/>
> J1#*(1+delta)*Sz(i)*Sz(j)+J1#*(1+delta)*exchange_xy(i,j)
> </BONDTERM>
> <BONDTERM type="1" source="i" target="j">
> <PARAMETER name="J1#" default="J1/>
> <PARAMETER name="J2#" default="J2"/>
> <PARAMETER name="delta#" default="delta"/>
> J1#*(1-delta)*Sz(i)*Sz(j)+J1#*(1-delta)*exchange_xy(i,j)
> </BONDTERM>
> <BONDTERM type="2" source="i" target="j">
> <PARAMETER name="J1#" default="J1/>
> <PARAMETER name="J2#" default="J2"/>
> <PARAMETER name="delta#" default="delta"/>
> J2#*Sz(i)*Sz(j)+J2#*exchange_xy(i,j)
> </BONDTERM>
> </HAMILTONIAN>
>
> which, as far as I can see resembles the dimerized J1-J2-model.
>
> However when running a dmrg calculation (for testing reasons with J1=-1, J2=delta=0) I recieve the error:
>
> "Cannot calculate boundary crossing if neither vertex is in the original cell".
>
> Somehow I seem to misunderstand the implementation in unitcell (that is what I at least would suppose is the source of the problem).
>
> I would be very grateful for any kind of helpful remarks.
>
> Thank you in advance and kindest regards,
>
> Alex