[gmx-users] Skewed box using Parrinello-Rahman pressure coupling

reich at mpikg.mpg.de reich at mpikg.mpg.de
Wed Mar 5 09:40:58 CET 2008


Hi Berk,

some of my simulations crashed again, basically with the same error message:

"Source code file: ns.c, line: 313

Fatal error:
Could not correct too skewed box"

Right now I have factored all occurrences of BOX_MARGIN by 2 in
src/gmxlib/pbc.c but kept the original value of 0.5001 for BOX_MARGIN in
include/pbc.h. Could the bug maybe fixed by setting BOX_MARGIN to 0.5005
while multiplying all instances in src/gmxlib/pbc.c by 2?


Best

Luther


> All occurrences of BOX_MARGIN in pbc.c should have the factor of 2:
>
> #ifdef ALLOW_OFFDIAG_LT_HALFDIAG
>   else if ((fabs(box[YY][XX])+fabs(box[ZZ][XX])>
2*BOX_MARGIN*box[XX][XX])
> ||
> 	   (fabs(box[ZZ][YY])> 2*BOX_MARGIN*box[YY][YY]))
> #else
>   else if ((fabs(box[YY][XX])> 2*BOX_MARGIN*box[XX][XX]) ||
> 	   (fabs(box[ZZ][XX])> 2*BOX_MARGIN*box[XX][XX]) ||
> 	   (fabs(box[ZZ][YY])> 2*BOX_MARGIN*box[YY][YY]))
>
> You can leave BOX_MARGIN at 0.5001.
>
> All these things are not critical for correct results.
> The only annoying thing is that the "old" 3.3 code can give a fatal
error
> due to a rounding issue.
>
> Berk.
>
>> Date: Thu, 14 Feb 2008 14:31:15 +0100
>> From: reich at mpikg.mpg.de
>> To: gmx-users at gromacs.org
>> Subject: [gmx-users] Skewed box using Parrinello-Rahman pressure coupling
>> Hi Berk,
>> thanks again. I am not sure though whether I have understood what
modifications you have suggested. In src/gmxlib/pbc.c there are several
occurrences of BOX_MARGIN, some with and some without a factor of two.
Should each occurrence be multiplied by two (so those that have the
factor
>> already are left as they are and all others get multiplied)? Could you
post the lines 71 to 76 of src/gmxlib/pbc.c with the right corrections
so
>> that I can be sure to implement them correctly?
>> Also, should I leave the value for BOX_MARGIN in include/pbc.h at
0.5005
>> or change it back to 0.5001 ?
>> Best
>> Luther
>> > That good news.
>> >
>> > While looking at the code again just now,
>> > I realized what the actual problem is.
>> > The check before and after the box correction are both done with
BOX_MARGIN,
>> > which can lead to the problem you observed when the last bit of the
>> box
>> > is rounded in an unlucky fashion. So even with your change the
problem
>> > could still occur.
>> > A real fix is adding a factor 2 (2*) in front of BOX_MARGIN in
src/gmxlib/pbc.c.
>> > I have added this fix for the 3.3.3 release.
>> >
>> > Berk.
>> >
>> >> Date: Wed, 13 Feb 2008 16:37:55 +0100
>> >> From: reich at mpikg.mpg.de
>> >> To: gmx-users at gromacs.org
>> >> Subject: [gmx-users] Skewed box using Parrinello-Rahman pressure
coupling
>> >>
>> >> Hi Berk,
>> >>
>> >> the change of parameter worked! My simulation finished without
>> crashing.
>> >>
>> >>
>> >> Thanks for your help
>> >>
>> >> Luther
>> >>
>> >>
>> >> >> Dear Gromacs-users,
>> >> >>
>> >> >> I have been performing simulations with cubic and
>> octahedron-shaped
>> >> >> boxes
>> >> >> using Parrinello-Rahman pressure coupling. After some time I get
>> the
>> >> >> error
>> >> >> message "Could not correct too skewed box" and the simulations
>> crash.
>> >> >> I set the parameters for the coupling as listed below:
>> >> >>
>> >> >> pcoupltype               = isotropic
>> >> >> tau_p                    = 5.0
>> >> >> compressibility          = 5e-5
>> >> >> ref_p                    = 1.0
>> >> >>
>> >> >>
>> >> >> I have never encountered the same problems when using Berendsen
>> >> pressure
>> >> >> coupling so I suppose I must have made a bad choice for some
>> >> parameter
>> >> >> for
>> >> >> the Parrinello-Rahman barostat. I tried to equilibrate my system
>> >> using a
>> >> >> Berendsen barostat before switching to Parrinello-Rahman for 1ns
>> (and
>> >> >> tau_p=1.0) but this didn´t help. Do you have any clue about where
>> the
>> >> >> problem originates from?
>> >> >>
>> >> >>
>> >> >> Best
>> >> >>
>> >> >> Luther
>> >> >
>> >> > I guess this is a rounding issue in the box checking/correcting
>> >> routines.
>> >> > Could you change BOX_MARGIN in include/pbc.h from 0.5001 to
0.5005,
>> >> > recompile gmxlib, mdlib and mdrun and see if the problem still
>> occurs?
>> >> > Please report back, so we can fix this for 3.3.3.
>> >> >
>> >> > Berk.






More information about the gromacs.org_gmx-users mailing list