[gmx-users] confout.gro contains PBC-broken molecules after EM in parallel with domain decomposition

Justin A. Lemkul jalemkul at vt.edu
Sat Jan 9 23:58:43 CET 2010

On 1/9/10 1:44 PM, chris.neale at utoronto.ca wrote:
> Hi Justin,
> I can confirm that I see that code snippet in my md.c code, although my
> tests indicate that this is not the end of the story.
> I have now taken the output .gro, ran it through trjconv -pbc mol and
> then ran mdrun again under a variety of conditions:
> 1. EM(steep) mdrun_mpi NP=8 -dd (BROKEN) *ran twice*
> 2. EM(steep) mdrun_mpi NP=8 -pd (whole)
> 3. EM(steep) mdrun NP=1 (whole)
> 4. MD mdrun_mpi NP=8 -dd (whole)
> 5. MD mdrun_mpi NP=8 -pd (whole)
> 6. MD mdrun NP=1 (whole)
> 7. EM(cg) mdrun_mpi NP=8 -dd (BROKEN)
> 8. EM(l-bfgs) mdrun_mpi NP=8 -dd (n/a)
> error: Cannot do parallel L-BFGS Minimization - yet.
> The tests above were with nsteps=500, so I ran one more steep EM with
> mdrun_mpi NP=8 -dd and found that confout.gro was indeed broken over PBC
> even with only a single step (nsteps=1).
> Justin: Can you confirm that you can run a steep EM under mdrun_mpi NP=8
> with domain decomposition and obtain a confout.gro that is not broken
> over PBC?

Indeed, you're quite right.  The few systems I had at hand when I posted earlier 
were all proteins in water, so nothing was crossing PBC.  My lipid systems 
indeed are still broken after EM.

It looks like the confout writing was fixed in mdrun.c, but perhaps not for the 
minimization routines?  Would this be in minimize.c?  I tried looking through 
the source a bit, but couldn't come up with a fix.  Too much of a novice :) 
Maybe this one is worth a bugzilla?  Probably one of the developers could fix 
this in about half a heartbeat.


> Thank you,
> Chris.
> On 1/9/10 11:25 AM, chris.neale at utoronto.ca wrote:
>> Hi Justin,
>> I just double checked and certainly the confout.gro from my EM run in
>> parallel with domain decomposition in mdrun is broken over periodic
>> boundaries.
>> I'm running gromacs-4.0.5 on a nehalem under openmpi. Here is my .mdp
>> file
> That's really weird. None of my 4.0.x runs have had that problem. Now, I
> am no
> C expert, but I found the following in md.c (taken from the 4.0.5 source):
> fprintf(stderr,"\nWriting final coordinates.\n");
> if (ir->ePBC != epbcNONE && !ir->bPeriodicMols && DOMAINDECOMP(cr)) {
> /* Make molecules whole only for confout writing */
> do_pbc_mtop(fplog,ir->ePBC,state->box,top_global,state_global->x);
> ...after which confout.gro is written.
> There are no such lines in the 4.0 source, so I think this was added
> over the
> course of later development.
> I don't know what's going on with your system(s); maybe we should
> continue any
> other discussion in a new thread, so we don't hijack this one :) There
> are also
> several entries in the list archive where users have spotted broken
> frames in
> the trajectory, but an intact confout.gro.
> -Justin


Justin A. Lemkul
Ph.D. Candidate
ICTAS Doctoral Scholar
Department of Biochemistry
Virginia Tech
Blacksburg, VA
jalemkul[at]vt.edu | (540) 231-9080


More information about the gromacs.org_gmx-users mailing list