Simple NVT monte carlo with lammps

Dear lammps users,

I’m trying to run a simple NVT monte carlo simulation in lammps (no particle exchange). Is that possible with gcmc or tfmc?

A similar question was asked here:
http://lammps.sandia.gov/threads/msg57044.html

Would these solutions suggested there work: (I would appreciate it if you explain why not)

  1. Set the average number of GCMC exchanges “X” as zero
  2. Set the chemical potential of imaginary reservoir “mu” as zero
  3. Set the probability of GCMC exchange as zero directly in “fix_gcmc.cpp”

Best,
Jamal

A chemical potential of 0 doesn’t mean no exchange so option 2 would not work. Option 3 is more like a hack so I cannot recommend it. Option 1 is worth trying. Did you try it? I don’t know if it is explicitly not allowed in the source or not.

Thanks Stefan for your response.

I agree with you. I’ve tested the first one it and it seems to be working fine so far. Although it is much slower than I expected.
Since I didn’t find anything online that had done this, I thought there might be some problem with doing it.

Best,
Ali

What force field are you using? The more complex force fields such as those in the MANYBODY package, and ReaxFF etc will, for each move / rotation, calculate the energy of the full system, also those atoms that are outside the cutoff. This is done so to support these force fields, but it is not ideal since there is way more calculations done than required. Only those force fields with single_enable=true (in the source code) will be efficient and compute only energies for that single atom that was moved.

Anders

Thanks Anders,

I’m modeling a 2D sheet, so I just have harmonic bonds and dihedrals with “pair_style none”. In other words, I have a single molecule in the system with just translational moves. Does gcmc automatically recognize that it just needs to calculate the energy for the single atom that was moved or do I need to adjust something?

Best,
Ali

units real
boundary p p p
atom_style molecular
pair_style none
atom_modify sort 0 0
comm_modify mode single cutoff 3.5

bond_style harmonic
dihedral_style harmonic
read_data data.dat

minimize 1.0e-8 1.0e-8 10000 10000

fix MC all gcmc 1 0 1 2 165464 300 1 .05
fix 2 all print 1000 “(pe) (pxx) $(pyy)” title “pe pxx pyy” file out screen no

run 2000000

If LAMMPS is using the energy_full option (it will detect if this is required), you should see this warning in your log file: Fix gcmc using full_energy option.

You don’t need to adjust something, but if you get this warning, you will need to fix the code to avoid it.

Anders