Greetings!
I am running a modified version of Gromacs 3.3 that calls the
do_nonbonded subroutine twice, in order to calculate specific
interactions. Unfortunately for my purposes, the settle restraints
(which I would assume to be a 'bonded' interaction) seem to be called
within the nb_kernel. Is there a flag that I can reset within gromacs
to temporarily turn off the subroutine that runs the settle potential
calculation? I have been searching, but cannot seem to find where this
is even called. If I run a single step MD run without settle (define =
-DFLEXIBLE, with SPC/E force constants set to zero) then I obtain the
correct coulombic interaction potential, otherwise there is a
discrepancy.
Currently, the non_bonded subroutine is called using the following:
if (fcoul) /* added */
do_nonbonded(fplog,cr,fr,x,fcoul,md, /* added */
grps->estat.ee[egCOULSR], /* added */
grps->estat.ee[egCOULSR],box_size,nrnb, /* added */
lambda,&dvdlambda,FALSE,-1,-1,bDoForces); /* added */
Also, I am surprised that by substituting the COULSR table where the LJ
table is usually passed allows for the complete neglect of LJ without
the (expected?) doubling of the coulombic force, although the coulombic
potential is doubled. I believe I read in the code that there is a
check in the inner loop to make sure that no forces are redundantly
calculated, but any further clarification would be appreciated (as this
was discovered empirically).
Thanks in advance!
Justin
_________________________________________________________________
Justin M. Shorb Phone: (608) 262-0483
Skinner Group shorb at wisc.edu
University of Wisconsin-Madison, Department of Chemistry
1101 University Ave., Madison, WI, 53706