Dear ALPS developers, Thank you for your quick and very helpful reply. I might be doing something wrong as is the first time I define a lattice in ALPS by myself. I want to add to the Heisenberg Hamiltonian on a 1d spin chain the term Sz(i)*Sz(i+2) In the lattice file I set the basis as <BASIS><VECTOR>1</VECTOR></BASIS> and in the unit cell I put the two bonds <EDGE type="0"><SOURCE vertex="1" offset="0"/><TARGET vertex="1" offset="1"/></EDGE> <EDGE type="1"><SOURCE vertex="1" offset="0"/><TARGET vertex="1" offset="2"/></EDGE> which, as far I have understood connect respectively sites 1, and 2 lattice spacing far. Then in the model file I define the bond operators as <BONDOPERATOR type="0" name="usual" source="x" target="y"> usual Heisenberg bond term... </BONDOPERATOR> <BONDOPERATOR type="1" name="test" source="x" target="y"> Sz(x)*Sz(y) </BONDOPERATOR> and I put them in the Hamiltonian as <BONDTERM type="0" source="i" target="j"> usual(i,j) </BONDTERM> <BONDTERM type="1" source="i" target="j"> Jtest*test(i,j) </BONDTERM> But it gives me error. It creates the parameter file but doesn't manage to compute any simulations (fulldiag, dmrg, etc etc). I think is the way I have written it that has something wrong. Moreover I don't manage to use printgraph in any way to see if the lattice is correct. Do I have to use printgraph on the xml lattice file? Many thanks in advance for your help. Kindest regards. -- Emanuele Levi emanuele.levi@gmail.com