[gmx-users] Creating an atomtype where all nonbonded interactions are enumerated

Andrew DeYoung adeyoung at andrew.cmu.edu
Wed Mar 21 21:40:01 CET 2012


I am trying to simulate a liquid (EMI-BF4) in a box with two walls, one at
z=0 and one at z=z_0.  I am trying to create a new atom type to use as my
walls' atom type, so that I can manipulate the interaction between the atoms
of the liquid and the atoms of the wall.  I am basing this idea on the
manual (http://manual.gromacs.org/current/online/mdp_opt.html#walls), which
in the walls section describes how wall_atomtype can be used:

"wall_atomtype: the atom type name in the force field for each wall. By (for
example) defining a special wall atom type in the topology with its own
combination rules, this allows for independent tuning of the interaction of
each atomtype with the walls."

In my force field, atoms within the liquid interact with each other by
combination rule 3, which means that in ffnonbonded.itp, I specify sigma and
epsilon for each atom type in my liquid.  This is specified in my main
topology (mytopology.top), which includes a statement #include
"./forcefield.itp".  forcefield.itp, in turn, contains the following: 

; forcefield.itp

[ defaults ]
; nbfunc        comb-rule       gen-pairs       fudgeLJ fudgeQQ
	1              3               yes             0.5     0.5

#include "./ffnonbonded.itp"
#include "./ffbonded.itp"

But what if I now want to define a new atom type (called mywall) that will
interact with the liquid, but not in the standard way (i.e., not by
specifying sigma and epsilon and using combination rule 3 to handle cross
terms)?  I would like to enumerate all of the possible sigma_ij's and
epsilon_ij's, where i is "mywall" and j is an atom type from the liquid.

So, I wrote a new file called mywall.itp:

; mywall.itp
[ moleculetype ]
; name nrexcl
mywall 3

[ nonbond_params ]
; i j func sig eps
mywall N 1 0.29750 4.56912
mywall C 1 0.31200 3.07524
mywall H 1 0.26170 1.17675
mywall B 1 0.31225 3.48667
mywall F 1 0.28974 2.82420

where I have specified all of the sigma_ij's and epsilon_ij's.  I try to
include this file by using the following mytopology.top:

; mytopology.top
#include "./forcefield.itp"
#include "./emi_flex.itp"
#include "./bf4.itp"
#include "./mywall.itp"

[ system ]

[ molecules ]
; Name number
EMI  256
BF4  256

When I use these files and run grompp, I get this error message:

Program grompp, VERSION 4.5.5
Source code file: toppush.c, line: 1166

Fatal error:
Atomtype mywall not found

One problem I see with what I have done is that in mywall.itp, I am defining
a moleculetype "mywall", whereas I really want to define an atomtype
"mywall".  However, I am not exactly sure how to do this.  Normally, I would
define an atomtype in ffnonbonded.itp in my homemade force field, with a
line like this (for boron, for example):

[ atomtypes ]
;type at.n	mass   charge   ptype  sig   eps
  B   5   10.81000   1.1504   A   3.58140e-1    3.97480e-1

But I don't want to just specify (single values of) sigma and epsilon.
Rather, I want to enumerate all of the sigma_ij's and epsilon_ij's, using
perhaps a "[ nonbond_params ]"-like directive.  Can you please help me know
how to do this?

Thanks so much!

Andrew DeYoung
Carnegie Mellon University

More information about the gromacs.org_gmx-users mailing list