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