Missing bonds across the periodic boundaries using Moltemplate.

LAMMPS users and Andrew,

I intend to build a infinite 2D sheet using Moltemplate. But the bonds across the periodic boundaries are not properly write to the data file and missing. I was wondering if there’s any specific command to do this in Moltemplate.

Many thanks in advance.


I apologize for the slow reply.
Somehow I did not see this message.

The feature you are asking for is the ability to automatically connect
nearby atoms with bonds. I never spent the time to implement a
feature like this in moltemplate. That might change in the future, if
I ever need to simulate this kind of object in my own work. (I run
simulations of coarse-grained biopolymers and lipids. The only
infinite sheets I ever have to simulate are lipid bilayers.)

You have two options, both of which are discussed here:


   ---- Short Summary: ----

1) Topotools/VMD has the ability to generate automatic bonds between
nearby atoms. (Warning:. Last I checked, bonds could not span the
simulation's periodic boundary box. This may have changed. You must
check to see if this is still true.) You can build the entire system
in VMD. Alternately, you can build the infinite sheet in VMD, save it
to a DATA file, and convert this data file into moltemplate (.LT)
format. Then you can combine this infinite sheet with other molecules
which you have defined in moltemplate.

2) You can write a short script containing a (two-dimensional) nested
for-loop to add bonds between atoms in neighboring unit cells. This
can be tricky to do for 3-D crystals, but for 2-D sheets, it should
not be as difficult. As an example the end of the link
(http://lammps.sandia.gov/threads/msg60262.html), there is a short
python program which contains a three dimensional nested for-loop to
build a 3-D bonded crystal (a little over 100 lines long). It should
not be too difficult to create a 2-D version of this kind of for-loop.
But you have to be careful to visualize your system to check that it
is generating the correct bonds. (Depending on the crystal you are
simulating you may need to add bonds between atoms in unit cells which
are located diagonally accross from each other.)
    You would use a short script like this to create a file which
moltemplate would read. Then moltemplate will convert this file into
a DATA file which LAMMPS could read. (Alternately if you prefer to
write a for loop to add bonds to the DATA file directly, that would
work too.)

See the link above for details.


(If I have more time to devote to moltemplate, I may add this feature,
but it won't happen this year. If anyone wants to add this feature,
feel free.)