Re: [AMBER] Turning off non-bonded interactions for specific atomtype pairs

From: Jason Swails <jason.swails.gmail.com>
Date: Wed, 12 Oct 2011 13:27:28 -0400

On Wed, Oct 12, 2011 at 9:21 AM, Marc van der Kamp <marcvanderkamp.gmail.com
> wrote:

> Thanks Jason and Qiantao for your replies!
>
> To clarify, what I aim to do is to turn off non-bonded interactions between
> certain particles, whilst maintaining non-bonded interactions between the
> particles and a solute.
> In other words, if my particle atom types are A and B and we call all other
> atom types X, then I want to turn off these non-bonded
> interactions: A-A, A-B, B-B
> Whilst keeping: A-X, B-X
>
> Jason, is this really possible by 'just' modifying the topology? I presume
> you mean hacking the %FLAG EXCLUDED_ATOMS_LIST section, or (also)
> elsewhere?
> Wouldn't I be turning off all non-bonded interactions for specific atoms
> (so
> also A-X and B-X)?
>

Yes, it's possible by "just modifying the topology" (I keep the quotes to
imply that it's trivial in theory, but quite painful to do by hand to the
point of impossibility for large topology files). The excluded atoms list
effectively defines a list of atom pairs whose pairwise non-bonded
potentials will be excluded ("bonding" 2 atoms together tells leap to add
these two atoms to each others' exclusion list so their non-bonded potential
will not be calculated). The section EXCLUDED_ATOMS_LIST is a long list
that is broken up into a list of atoms to be ignored for each atom. sander
knows which excluded atoms belong to which atoms (which part of the
EXCLUDED_ATOMS_LIST belongs to each atom) via the NUMBER_EXCLUDED_ATOMS
section, which effectively tells sander how many excluded atoms each atom
has.


>
> Re: using bonds between all A-A, A-B and B-B pairs:
> Jason, I was thinking of using one-atom particles, so creating angles and
> dihedrals by defining bonds between these shouldn't be a problem (as long
> as
> I define them, using zero force constants). My point was that, in order to
> exclude interactions for all A-A, A-B and B-B pairs, I'd have to introduce
> a
> lot of "bonds" (just as many as there are non-bonded evaluations in a
> system
> with infinite cut-off).


But this operates via the exclusion list that I had suggested modifying,
anyway. The excluded_atoms_list is just a list of atoms that form bonds,
angles, or dihedrals with each of the atoms in the system. The point that I
was trying to make is that if these magical particles are bonded to any
*other* atom (not *just* to each other), then you will be modifying the
exclusion list more than you would expect. For instance, suppose mystery
particle X is bonded to atom A and mystery particle Y is bonded to atom B.
If you then create a bond between the mystery particles X and Y, A and B
have now formed a dihedral with one another and are therefore added to the
exclusion list, so their non-bonded interactions will not be calculated
normally (they'll be calculated and scaled according to the 1-4 scaling).
This is what I was talking about. Creating bonds is a simple way of
modifying the exclusion list, but it can have more effects than you
anticipate due to added angles and dihedrals as a result.


> So if the number of A and B particles is big, I
> would guess it would start hurting performance (even though a bond-term
> should take less time to evaluate than a Lennard-Jones 6-12 term). Or am I
> missing something?
>

This part scales as number of mystery particles ** 2, I think. Again, your
reason to create all of these bonds is just to add these atoms to the
exclusion list, so why not just do that directly (without having to
calculate all of these useless bonds, angles, and dihedrals)?

Re: where to start in case I'd need to change code:
> Qiantao, you suggested looking at src/sander/set.f. But, as I'm dealing
> with
> changing non-bonded interactions, shouldn't that be
> src/sander/nonbond_list.f?
>

This is just the non-bonded pairlist. You could certainly tinker with it so
that mystery particles don't end up in each others' pair lists, but this
*only* affects the direct-space interactions for PME simulations (GB and
vacuum simulations don't have a pairlist, or I guess you could say every
atom has a full pairlist by virtue of not having an explicit one
allocated). Therefore, this approach won't work for GB simulations, and
will have the same effect as hacking the excluded atoms list for PME
simulations, unless I'm missing something here.

Like I mentioned previously, I've written a topology file editor that makes
this kind of stuff easier. I took 5 minutes last night to explicitly add
the ability to modify exclusion lists the way you want, since it only
required ~20 additional lines of code to the program and was straightforward
to do. If you want to give it a try, contact me off-list and we can try to
get it working.

HTH,
Jason

-- 
Jason M. Swails
Quantum Theory Project,
University of Florida
Ph.D. Candidate
352-392-4032
_______________________________________________
AMBER mailing list
AMBER.ambermd.org
http://lists.ambermd.org/mailman/listinfo/amber
Received on Wed Oct 12 2011 - 10:30:03 PDT
Custom Search