[gmx-developers] move_x and move_f
Nathan Moore
nmoore at physics.umn.edu
Fri Jun 24 02:03:17 CEST 2005
I've been looking into the parallelization of GROMACS - specifically the
way messages are passed in the functions move_f and move_x (defined in
src/gmxlib/mvxvf.c)
In the source file I see,
void move_f(FILE *log,
int left,int right,rvec f[],rvec fadd[],
t_nsborder *nsb,t_nrnb *nrnb)
{
move_rvecs(log,TRUE, TRUE,left,right,f,fadd,nsb->shift,nsb,nrnb);
move_rvecs(log,FALSE,TRUE,left,right,f,fadd,nsb->bshift,nsb,nrnb);
where();
}
I don't understand why the move_rvecs function is called twice. What's
the difference between nsb->shift and nsb->bshift? Do I understand
correctly that move_f broadcasts, by way of the ring, each node's updated
f array to all of the other nodes? I feel like something else is going on
in the function that I don't understand yet.
regards,
Nathan Moore
More information about the gromacs.org_gmx-developers
mailing list