[lammps-users] The feature for triclinic box simulations

Dear lammps users,

From the LAMMPS site, I know that LAMMPS now has support for triclinic (non-orthogonal) simulation boxes. But I cannot find some examples with these features. I think that the format of the input data file should have some changes.
Could you kindly present some hints ?



Add a line containing "xy xz yz" at the end after the "xlo xhi" etc definitions to the data file, e.g.

   -5 5 xlo xhi
   -5 5 ylo yhi
   -5 5 zlo zhi
   1 0 0 xy xz yz

This defines a shape matrix h

   10 1 0
   0 10 0
   0 0 10

Note that currently the declarations "xy xz yz" are a misnomer: it might change to "yx zx zy" in future.


Does anyone have, by chance, a receipt how to convert from shape given
by general 3x3 matrix (it's used e.g. in AtomEye and DL_POLY formats)
to the lammps shape matrix, i.e. with three zeros?
I was looking at lammps tools and pizza, but the conversion tools
there are not handling triclinic boxes yet.



You would have to find the rotation matrix that rotates one to the other:

  R.h_lammps = h_dl


  R = R_x(phi).R_z(theta)

Note that

  a_lammps = (xx, 0, 0)^t
  a_dl = (xx, xy, xz)^t

You could align a_dl with a_lammps first, followed by aligning b_lammps with b_dl. A bit of mathematical finagling should do the trick.


The doc pages for read_data, create_box, create_atoms, lattice commands explain
how to setup non-orthogonal simulation boxes.