[gmx-users] selected forces

Ali Hassanali ahassana at chemistry.ohio-state.edu
Thu Sep 9 17:50:48 CEST 2010

Dear Gromacs Users,

I've read through various posts on a related issue but am hoping that 
someone will have some ideas on this or at least point me in the right 
direction. I am also hoping that some discussion on this will help develop 
some routines that would allow users to approach this problem as a black 

The system I intend to simulate consists of a polymer surrounded by water, 
lets call them as energygroups Protein and SOL. At each time step during a 
molecular dynamics simulation, I need (or would like to) have access to 
the force on each solvent atom exerted only by the protein atoms and not 
the other solvent atoms. For now lets assume that the protein is 
uncharged and so only interacts with the solvent via LJ interactions.
I've been ploughing through the code and have gotten to the following:

1) do_force(f) has a force vector array f that is invoked in md.c
2) do_force(f) in sim_util.c calls do_force_lowlevel(f) to determine the 
bonded and non-bonded interactions.
3) do_force_lowlevel(f) in force.f calls do_nonbonded(f) which I assume 
will determine the LJ interactions for all particles.
4) do_nonbonded(f) in nonbonded.c seems to have different kernel routines 
for water and other atoms (as the manual states, forces on water molecules 
are determined with special kernel loops)
5) do_nonbonded(f) calls a specific nonbonded kernel function and this is 
where its getting a bit tricky. Any help would be appreciated. I'd like to 
access the solvent atoms and sum up the forces coming from just the 
protein/polymer and not the other solvent atoms.

Unfortunately doing a mdrun -rerun zeroing out different parts of the 
hamiltonian is not possible for me because I need the 'selected forces' on 
the fly and not at the end of the simulation.

Any ideas/pointers/help would be greatly appreciated.

Thanks in advance.

Ali Hassanali

More information about the gromacs.org_gmx-users mailing list