SPC/e water model

Your most recent question sounds like a VMD question. I don’t know enough about VMD to answer it.

Fortunately, perhaps I don’t need to. The issue has nothing to do with PSF files. Neither LAMMPS, not moltemplate read or care about PSF files. You can run your simulations without them. (I have only ever needed PSF files to view my molecules in VMD.)

However if you are adding ions, then you will need to inform LAMMPS and moltemplate about them. The simplest way to do that is to modify your “system.lt” file this way:

---- “system.lt” file: ----

import “spce.lt
import “ions.lt

wat = new SPCE [260]
na = new NaIon [3]
cl = new ClIon [3]

---- end of “system.lt” file ----

(Again, “3” and “260” are the number of ions and water molecules in this example.)


For a working example of the “ions.lt” file, see this link:


…or if that link is broken, try this one:

The “ions.lt” file contains additional pair_coeff commands to define Lennard Jones parameters for these atoms. Later on, as your system gets more complicated, you may decide it is more convenient to use a canned force field that already contains definitions for all these atom types by replacing the “import ions.lt” line with one of these choices:

import “oplsaa.lt” #(OPLS boss4.8 force field)


import “gaff.lt” #(AMBER force field)

#(…and rename your @atom types accordingly)

More force fields are planned. Right now, there are two scripts distributed with moltemplate which have been written to add more force field support (tinkerparm2lt.py and emcprm2lt.py) these scripts can convert some of the other force fields distributed with TINKER and EMC into moltemplate format. But force field conversion can be arduous work, and some force fields contain terms which are not yet implemented in lammps.

Dear Andrew,

Thanks a ton to explain about all these things.

Here I want to understand some lines in system.lt file.

" wat = new SPCE [10].move(0.00, 0.00, 3.45)
[10].move(0.00, 3.45, 0.00)
[10].move(3.45, 0.00, 0.00)

na = new NaIon [2].move(0,0,17.25)

cl = new ClIon [2].move(0,0,17.25)

][][].move(12.075,12.075,12.5) "

Here what “move” does.?

If I will not mention this then what will happen.? Is this mandatory to mention.?

And please explain last two lines specially.



Hello Andrew,

Now I got the meaning of that. And I understood about removal of “move” also. Now you don’t need to explain.

I am sorry.




Glad you found it.
   For anyone else who stumbles upon this discussion, the .move()
commands are explained in the first couple pages of the
introduction/tutorial chapter at the beginning of the moltemplate
manual. (At http://moltemplate.org/doc/ Currently, this is chapter
"4", although the numbering may change later.) Also read the
"coordinate generation" chapter (currently chapter 6). These are
short chapters, ~7-8 pages long. A complete list of movement commands
is located in the "Quick Reference" chapter (currently chapter 3.3)