[gmx-users] micelle disaggregated in serial, but not parallel, runs using sd integrator

chris.neale at utoronto.ca chris.neale at utoronto.ca
Wed Feb 4 19:35:30 CET 2009


Hello,

I have been experiencing problems with a detergent micelle falling  
apart. This micelle spontaneously aggregated in tip4p and was stable  
for >200 ns. I then took the .gro file from 100 ns after stable  
micelle formation and began some free energy calculations, during  
which the micelle partially disaggregated, even at lambda=0. At first  
I thought that this was related to the free energy code, and indeed  
the energygrps solution posted by Berk did stop my to-be-annihilated  
detergent monomer from flying around the box even at lambda=0.00.  
However, I have been able to reproduce this disaggregation in the  
absence of the free-energy code, so I believe that there is something  
else going on and my tests using GMX_NO_SOLV_OPT, separate energygrps,  
and the code change all indicate that this is a separate issue.

I have been trying to locate the error for a few days, but each round  
of tests takes about 24h so the progress is slow. Here is a summary of  
what I have learned so far.

A. Do not fall apart by 2.5 ns:
GMX 3.3.1, 4.0.2, or 4.0.3
integrator          =  md
energygrps          =  DPC SOL
tcoupl              =  Berendsen
tc_grps             =  DPC     SOL
tau_t               =  0.1     0.1
ref_t               =  300.    300.

B. Partial dissaggregation or irregular micelle shape observed by 2.5 ns:
GMX 3.3.1, 4.0.2, or 4.0.3
integrator          =  sd
energygrps          =  System  --- or ---  DPC SOL
tc_grps             =  System
tau_t               =  0.1
ref_t               =  300.
* GMX 4.0.3 gives same result with "export GMX_NO_SOLV_OPT=1"
* GMX 4.0.3 gives same result when compiled with the tip4p  
optimization code fix.
* GMX 4.0.3 Using tip3p in place of tip4p gives same result.

C. Does not fall apart by 7.5 ns when running section B options in parallel.

Common MDP options:
comm_mode           =  linear
nstcomm             =  1
comm_grps           =  System
nstlist             =  5
ns_type             =  grid
pbc                 =  xyz
coulombtype         =  PME
rcoulomb            =  0.9
fourierspacing      =  0.12
pme_order           =  4
vdwtype             =  cut-off
rvdw_switch         =  0
rvdw                =  1.4
rlist               =  0.9
DispCorr            =  EnerPres
Pcoupl              =  Berendsen
pcoupltype          =  isotropic
compressibility     =  4.5e-5
ref_p               =  1.
tau_p               =  4.0
gen_temp            =  300.
gen_seed            =  9896
constraints         =  all-bonds
constraint_algorithm=  lincs
lincs-iter          =  1
lincs-order         =  6
gen_vel             =  no
unconstrained-start =  yes
dt                  =  0.004

##################

My current hypothesis is that the sd integrator somehow functions  
differently in serial than in parallel in gromacs versions 3.3.1,  
4.0.2, and 4.0.3. I suspect that this is not limited to tip4p, since I  
see disaggregation in tip3p also, although I did not control the tip3p  
run and this may not be related to the md/sd difference.

I realize that I may have other problems, for example perhaps I should  
have used dt=1.0 instead of dt=0.1 while using the sd integrator, but  
the fact that a parallel run resolved the problem makes me think that  
it is something else.

I am currently working to find a smaller test system, but would  
appreciate it if a developer can comment on the liklihood of my above  
hypothesis being correct. Also, any suggestions on sets of mdp options  
that might narrow down the possibilities would be greatly appreciated.

I have included the entire .mdp file from the 4 core job that ran  
without disaggregation:

integrator          =  sd
comm_mode           =  linear
nstcomm             =  1
comm_grps           =  System
nstlog              =  50000
nstlist             =  5
ns_type             =  grid
pbc                 =  xyz
coulombtype         =  PME
rcoulomb            =  0.9
fourierspacing      =  0.12
pme_order           =  4
vdwtype             =  cut-off
rvdw_switch         =  0
rvdw                =  1.4
rlist               =  0.9
DispCorr            =  EnerPres
Pcoupl              =  Berendsen
pcoupltype          =  isotropic
compressibility     =  4.5e-5
ref_p               =  1.
tau_p               =  4.0
tc_grps             =  System
tau_t               =  0.1
ref_t               =  300.
annealing           =  no
gen_temp            =  300.
gen_seed            =  9896
constraints         =  all-bonds
constraint_algorithm=  lincs
lincs-iter          =  1
lincs-order         =  6
energygrps          =  SOL DPC DPN
; Free energy control stuff
free_energy              = no
init_lambda              = 0.00
delta_lambda             = 0
sc_alpha                 = 0.0
sc-power                 = 1.0
sc-sigma                 = 0.3
couple-moltype           = DPN
couple-lambda0           = vdw-q
couple-lambda1           = vdw
couple-intramol          = no
nsteps              =  50000
tinit               =  7600
dt                  =  0.004
nstxout             =  50000
nstvout             =  50000
nstfout             =  50000
nstenergy           =  2500
nstxtcout           =  2500
gen_vel             =  no
unconstrained-start =  yes

####

Note that the free energy code was turned on in the above (with  
lambda=0). This is because I started the debugging when I thought that  
the free-energy code / tip4p combination was causing the differences.  
I also ran this exact mdp file in serial and observed disaggregation  
in ~2 ns.

Thank you,
Chris.




More information about the gromacs.org_gmx-users mailing list