[lammps-users] problem with press/berendsen


I am using the press/berendsen fix to equilibrate a system of solid aluminium and iron to a pressure of 11.2GPa. It works fine for a system of the size of 4x100x4 nm, and equilibrates to the desired pressure.

However, for 8.7x100x8.7 nm, the pressure settles down at about 24GP for pxx and 22GP for pzz (pyy is controlled through application of an external force) instead of the desired 11.2GPa. I have also plotted the size of the system and the press/berendsen fix does not increase the size of the simulation box to reduce the pressure to the desired value.

The only difference between the small (which relaxes to the right pressure) and the larger case (which relaxes to the wrong pressure) is the size in x and z direction. So I wonder if there maybe a problem that someone else has encountered too. Otherwise there must be something which I did take into account.

I would be thankful for any comments that help to solve that problem,


No idea on this one - if the box size isn't changing
when the pressure is consistently different than
the target (as opposed to fluctuating widely), then
you might need to put some debug statements in
the press_berendsen.cpp file to see why the
volume isn't being changed correctly.



Have you tried reducing “Pdamp”, the pressure damping parameter? Typically the pressure in the system in a Berendsen barostat approaches the desired pressure over “Pdamp (time units)”. The current value of Pdamp you are using may be too large, allowing the system to respond to the external force which controls Pyy.


2009/7/8 Marco Kalweit <m.kalweit@…51…>

Hi Steve and Manoj,

thanks for the replies. I have put some debug comments into the press/berendsen and essentially it was because the values for relaxation time and bulk modulus were too small. The reason why it did not show up on the log file, was that the pressure basically oscillated from one time step to another from a very high positive value to a even negative value. The output only showed the high positive value, even when printing every single time step and that is the reason why I did not pick that up.

With higher values for relaxation time and bulk modulus it is working fine now.


Steve Plimpton wrote: