Please send the input files you use, and the exact commands you perform- otherwise we cannot try to reproduce what you observe. One quick guess is that it might be your use of J2#. How can ALPS decide whether J20 is J# with #=20 or J2 with #=0.



On 27 Apr 2015, at 22:25, Alexander Herzog <Metalhead@web.de> wrote:

Hello Matthias,
 
I have tried this (and other) lattcies. My current lattice part 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" /><TARGET vertex="1" offset="0"/></EDGE>
  <EDGE type="3"><SOURCE vertex="2" /><TARGET vertex="2" offset="1"/></EDGE>
</UNITCELL>
 
However I still recieve "= expected after J2" even though I do have this in the paramert 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 }
 
and the model is more or less a shrinked copy of "spin" with an adaption so as to take account of J2 and delta:
 
<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>
 
Have you ever heard of such an error report?
 
Kind regards and thank you for all your support.
 
Alex
Gesendet: Montag, 27. April 2015 um 11:12 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
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