Re: AMBER: NSNB parameter

From: Chris Moth <>
Date: Sat, 24 Apr 2004 07:31:55 -0500

At 10:45 PM 4/23/2004, Helios Chen wrote:
>Dear all, I have no idea how to use this "NSNB" parameter. Could anybody
>tell me what's this and when to use this parameter?

In order to save computation time, sander does not compute nonbonded
interactions between atoms which are distanced > CUT apart.

But, the list of atom pairs which are close enough to warrant calculation
is not computed at every time step. There are two methods in sander which
can determine when to compute this list. From amber7.pdf : "If nbflag = 0,
construct the direct sum nonbonded list in the "old" way, i.e.
update the list every nsnb steps. If nbflag = 1 (the default), nsnb is
ignored, and the list is updated whenever any atom has moved more than 1/2
since the last list update."

I have only used nbflag=1 (the default) in my simulations - and thinks have
worked out OK - so far. Intutitively, the idea that sander can compute new
a pairs list when it needs it (no more or less often) is appealing.

> By the way, why to set "igb=0 and nbflag=0" with using this NSNB
> parameter? Thanks in advance.

I am not a sander expert - but often find it helpful to explore the source

I cd'd to the sander source directory on our Amber7 system and typed:

   grep -i nsnb *.f

which shows me that runmd.f has code to turn on calculation of the
nonbonded list ever nsnb steps:

       NTNB = 0
       if (mod(nstep,nsnb) .eq. 0) ntnb = 1

   grep -i ntnb *.f

shows that ntnb is considred in the ew*.f code which handles non-bonded
terms when vacuum or pme periodic md is run. This code is not run when igb=0.

When I look through the egb.f code (run when igb > 0), it seems that the
cutoffs are applied inside each MD step - and the nonbonded list is not
used as a tool to speed calculations.
All nonbonded pairs have to be computed anyway to evaluate the GB
energy. The numex and natex arrays appear to be computed at each step, and
offer some speedup:

The comments at the outset of egb.f explain:

c The "numex" and "natex" arrays are used to find "excluded" pairs of
c atoms, for which gas-phase electrostatics and LJ terms are skipped;
c note that GB terms are computed for all pairs of atoms.

So, I suspect nbflag and nsnb are simply ignored when igb > 0. But, if you
are using GB, you are safer setting the variables to zero as recommended in
the manual.

The AMBER Mail Reflector
To post, send mail to
To unsubscribe, send "unsubscribe amber" to
Received on Sat Apr 24 2004 - 14:53:01 PDT
Custom Search