LAMMPS WWW Site - LAMMPS Documentation - LAMMPS Mailing List Archives
Re: [lammps-users] OPLSAA for lammps input using moltemplate
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [lammps-users] OPLSAA for lammps input using moltemplate

From: John Smith <johnson21smith@...24...>
Date: Mon, 31 Jul 2017 15:52:38 -0500

Thank you for your reply! I just saw this. I have a better idea of how to do this now. The naming in the file is a little confusing though, for example @atom:99 description says Alcohol CH3OH & RCH2OH -- here I am confused whether atom refers to carbon, hydrogen or oxygen? Is there documentation for this?


On 26 July 2017 at 21:29, Andrew Jewett <jewett@...1937...> wrote:
On Fri, Jul 21, 2017 at 6:31 PM, John Smith <johnson21smith@...24...> wrote:
> I am using moltemplate to generate OPLSAA forcefield input for LAMMPS. I am looking to simulate butanol, but I am confused which @atom type should be selected for the OH group.

> Secondly, there are many options for OH in the file as follows.
> Which one is the most appropriate for butanol? How do I decide this?

Regrettably, this is the most difficult aspect of using moltemplate
with all-atom force fields.

Generally speaking, here are some suggestions on how to guess atom types:

As of 2017-7, for the specific case of the OPLSAA force field, the key
to figuring out what atom types to use is to look at the CHARGE of
each atom.  (I wish the descriptions next to each atom were more
explicit.  We copy them right out of the TINKER oplsaa.prm files.)

Here's that list of atoms again:

> set type @atom:96 charge -0.683  # "Alcohol -OH"
> set type @atom:97 charge 0.418  # "Alcohol -OH"
> set type @atom:99 charge 0.145  # "Alcohol CH3OH & RCH2OH"
> My best bet is @atom:99, but I wasn't sure about this. Please advice!

My first guess would be to use @atom:97 for the hydrogen atom, and
@atom:96 for the oxygen atom.  Unfortunately, those two charges do not
cancel out (-0.683, 0.418).  The remaining charge to neutralize this
must be distributed somewhere else in the butanol molecule:
Keep in mind that the entire molecule must have neutral charge (or
more generally, integer charge)  Since the CH3 and CH2 groups in an
alkane chain in OPLSAA each independently have zero charge
(0=-0.18+0.06*3,  and  0=-0.12*0.06*2), then the charge on the
remaining atoms in the molecule (CH2-OH) must sum up to 0.
This means that the carbon which is attached to the oxygen atom is
probably different from the carbon atoms elsewhere in the alkane
chain.  I continue to make the assumption that all of the hydrogen
atoms which are bound to carbon are the same type (@atom:85), and
(since in, charge is determined by atom type), they all have
the same partial charge (0.06),   So I think the carbon atom is of
type @atom:99, because when you add all of the charges together, you
get zero:

0 = 0.145 + 0.06 + 0.06  -  0.683 + 0.418

> set type @atom:20 charge -0.7  # "Alcohol OH (UA)"
> set type @atom:21 charge 0.435  # "Alcohol OH (UA)"

The first two are for the united atom variant of the OPLS force field.
Simulations that use these kinds of atoms are less popular.  For this
reason, I'm guessing these are probably not what you want.

Hope this helps


P.S.  I attached some moltemplate files for butanol to this message.
Let me know if you find any errors.
P.P.S.  If I get around to porting the class2 force fields (COMPASS,
PCFF, ...) into moltemplate, then we will have to use different tricks
to figure out the correct atom types to use when building a new

Some programs (EMC) seem to be able to do attempt to do automatic atom
type selection for some force fields based on the context of where
each atom appears, but I'm not sure it supports the full OPLSAA force
field yet.  Moltemplate doesn't, and it's currently not a high
priority to add that feature anytime soon.