Creating Bonds, Angles, Dihedrals in the LAMMPS input file

In the example I sent you, you don't have to explicitly worry about
how to create angles, dihedrals, and impropers. All of these details
are taken care of for you by the moltemplate.sh and
oplsaa_moltemplate.py scripts. Angles, dihedrals, and impropers are
generated according to OPLSAA conventions. All you have to do is
specify the list of atom types, and bonds for each type of molecule.
(Located in the "ethylene.lt" file and "benzene.lt" file in that
example.)

However if you prefer to explicitly create these angles, dihedrals,
and impropers manually, that is not difficult.
To do this, you have to learn the syntax of the .lt files.
I will explain this below.

You must create a file which includes the rules which tell moltemplate
how to generate angles, dihedrals, and impropers. All of this
information was contained in the "oplsaa.lt" file I attached in my
previous email. (The "oplsaa.lt" file is referenced by "ethylene.lt"
and "benzene.lt".) I apologize for not explaining this file. Even
for such a simple molecular system, it is a surprisingly complicated.
Feel free to read it. (I attached it again to this post.) However to
understand what is going on, I think it is better to start with a more
simple example:

---- Consider the following (unrealistic) molecule with only 14 atoms: ----

http://www.moltemplate.org/images/2bead_homopolymer/2bead_peptide.jpg

In this example, there are 2 types of atoms (named "CA" and "R").

You do that by adding these sections to your moltemplate files (.lt files):
We tell moltemplate to generate dihedrals this way:

oplsaa.lt (4.3 KB)