[lammps-users] possible problem with lammps GCMC code

Dear all,

I used the example in.gcmc.h2o provided with lammps-3Mar20 to look at water vapor at different pressures and also look at the condensation. the only modification I made to the file is replacing pressure as GMC input instead of mu (chemical potential).

I find a notable problem with lammps results:

At low vapor pressures, I always have one water molecule present in the box. This one molecule is present even when pressure is equal to zero. there are two problems with this. 1- no matter what the box size is this single molecule always stays which means we will have different vapor densities for a given pressure. 2- this result doesn’t match with what I get from Cassandra which agrees better with experimental results. In the case of GCMC with Cassandra, I get a box which depending on vapor pressure has one or no water molecules which gives on average the density of water vapor. the ever-present water molecule gives a very high density on average compared to expected results for SPCE.

I searched and played with the input file but still don’t find where the problem is. I would be very thankful if anyone can give me an insight into this problem. I send the input files with this email however nothing changes compare to the original file.


Ali Shomali

Department of mechanical and process engineering


H2O.txt (535 Bytes)

in.gcmc.h2o (2.59 KB)

This is documented behavior. Please see the fix gcmc command documentation under “Restrictions”.

two comments:

a) the 2016 version has multiple known bugs, so it may run and give results, but they may be wrong as well. just in more subtle ways.
b) your use case is not something that fix gcmc command (or LAMMPS for that matter) was designed for. if you need the kind of behavior you describe, you will be better off with a dedicated MC code instead of using LAMMPS. LAMMPS is first and foremost an MD code and designed to simulate large systems with many atoms or molecules (just look at what the LAMMPS acronym stands for).

Dear Axel,

Thank you very much for your comment. strangely the behavior still persists even when I delete the fix shake command, shake option from gcmc command and also shake flags from molecule command. Is there anyway I can avoid this behavior?

just one note: when I use the 2016 version this works fine (of course instead of dynamic/dof yes I have to use a combination of compute modify and a fix modify but that I don’t think is relevant)