LAMMPS WWW Site - LAMMPS Documentation - LAMMPS Mailing List Archives
Re: [lammps-users] barostat in systems with rigid and non-rigid bodies
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [lammps-users] barostat in systems with rigid and non-rigid bodies


From: Steve Plimpton <sjplimp@...24...>
Date: Thu, 5 Oct 2017 12:23:12 -0600

Hi - it sounds like you are doing everything along
the lines of what the fix rigid doc page suggests.

>Use "compute pressure" to get the pressure that the barostat uses/computes to make box volume >adjustments (this number is consistently positive and fluctuates around a value greater than zero; I am >not sure why the barostat does not increase the box volume to reduce the pressure to the target value of >zero)

Not clear what you mean by this.  You are using fix npt on the
non-rigid group.  But it should be computing pressure
for the entire system with a compute it creates internally.
See the fix npt doc page, the section on computes it creates.
So are you monitoring the output from that internally
created compute using the ID the fix npt doc page explains?
And it is it consistenly off the target pressure?
Or are you comparing to the output from some other
compute pressure command?  I suggest you also monitor
the temperature of the internal compute temp used by
fix npt.  And compare it to your target, and to computes
you define for the temperature of both the rigid and non-rigid
bodies.  To see if anything funny is going on with temperature.

You might also try using fix langevin on the non-rigid and fix nph
also on the non-rigid, to see if that changes anything.

Steve

On Thu, Sep 21, 2017 at 2:09 PM, Scott M Smith <sms387@...1461...> wrote:
Hello lammps users,

I am running into an issue of the barostat not achieving the target pressure (zero) in a system with rigid and non-rigid bodies. This issue was discussed previously on the forum, with the subject titled "global pressure with rigid and non-rigid bodies." I was unsuccessful in replying to the old thread, so I have started a new one. From the old thread, I was not able to figure out why the barostat (nose-hoover) was not achieving the target pressure, and so I eventually moved forward with a Berendsen barostat because it was reaching the target pressure as desired. However, my latest simulations require calculation of a bulk modulus, and Berendsen does not capture the correct physics for a bulk modulus determination. I recently tried going back to the Nose-Hoover barostat, and not surprisingly, the pressure issue has returned.  

I believe there is a bug in the way the pressure is handled for systems with rigid and non-rigid bodies when using a Nose-Hoover barostat, and I have provided supporting evidence below. 

In my system, I use fix rigid/nvt on the rigid bodies and npt on the non-rigid. I have attached a sample input file and data file for a system with 16 rigid bodies in a polymer melt; I apply a small amount of positive pressure initially (ramp the LJ pressure from 0.01 to 0 to prevent the system from vaporizing) and then switch the target pressure to zero and monitor the pressure. To reduce noise in the output, I have also printed a pressure that is averaged over 1000 timesteps using the fix ave/time command. In my experience, this output reveals a positive pressure that scales linearly in the number of rigid bodies included in the simulation (although the target pressure is zero in each case), as shown in the attachment.

I am running the March 2017 version of lammps. The following list includes troubleshooting techniques that I have employed in trying to understand what is going on with the system:
  • Using "neigh_modify exclude molecule/intra" to prevent bogus pressure contributions due to intraparticle forces
  • reducing the timestep from 0.005 tau LJ to 0.001 tau LJ (no change in the results)
  • changing the pressure damping parameter from 2 tau to 20 tau (no change in the results)
  • Use "compute pressure" to get the pressure that the barostat uses/computes to make box volume adjustments (this number is consistently positive and fluctuates around a value greater than zero; I am not sure why the barostat does not increase the box volume to reduce the pressure to the target value of zero)
  • invoking the barostat on the rigid body time integration: fix rigid/npt for rigid body, fix nvt for non-rigid (this throws many FENE bond warnings, and the pressure still does not go to the target value of zero)
  • using "aniso" instead of "iso" for altering the box dimensions due to pressure fluctuations (no change)
  • I am allowing the rigid body COM's to dilate with the changing box size ("dilate all"; this command is a default anyways)
  • Reducing the volume fraction of rigid bodies to rule out possible jamming effects

I want to emphasize that this is not an issue of fluctuations in the pressure; I am seeing fluctuations around a mean pressure value that is not the target value. I would greatly appreciate if someone could confirm this result by running the attached sample system and observing the pressure magnitude in the thermo output. Thank you for any feedback.

Scott


------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
lammps-users mailing list
lammps-users@...6297....sourceforge.net
https://lists.sourceforge.net/lists/listinfo/lammps-users