Using fix gcmc without molecule insertion

Hello All,

I have the following script which I am trying to implement. I keep on getting an error about invalid atom type in ‘fix gcmc’ command. I want to just implement MC moves and not perform any molecule insertions/deletions. Somehow, i’m unable to debug the script. I don’t require the mol option to be turned on. Can anyone help me out with this? I am using LAMMPS version of 7th Aug 2019.

clear

units si

dimension 3

boundary p p p

atom_style full

read_data xyz.data

include forcefield.xyz

group grp type 1 2

neighbor 2.0e-10 bin

neigh_modify delay 0 every 1 check yes one 7000

velocity ch create 500 36990 dist gaussian

fix 4 grp nvt temp 500 500 1.0e-13

fix 5 grp gcmc 100 0 100 1 54341 500.0 -2.1 0.5 full_energy

thermo 20

compute vir_p all pressure NULL virial

variable v_press1 equal c_vir_p[1]

variable v_press2 equal c_vir_p[2]

variable v_press3 equal c_vir_p[3]

variable v_press4 equal c_vir_p[4]

variable v_press5 equal c_vir_p[5]

variable v_press6 equal c_vir_p[6]

variable vir_press equal (v_v_press1+v_v_press2+v_v_press3+v_v_press4+v_v_press5+v_v_press6)

thermo_style custom step temp press v_vir_press vol density pxx pyy pzz pxy pxz pyz pe ke etotal epair ebond eangle edihed

thermo_modify lost warn norm no

timestep 1.0e-15

run 20000

write_data final.data

that error message is inconsistent with the input and i don’t get that error, if i copy your fix gcmc line to a system with two atom types and no molecules/bonds. this is with the currently latest LAMMPS version 5 May 2020.

axel.

Hello All,

Thanks for the clarification. I got a simulation working where there’s a system with two or more atom types and no molecules/bonds. If I want to go ahead with applying the same logic to a bulk system with a molecule having two atom types, therein arrises an issue in implementation of the fix gcmc command. I don’t need molecular exchanges, just MC moves on molecules as a whole. With different atom types it becomes difficult to parse a value for the mol option of the fix gcmc command. Is there a way around this? Or would it be better to program a MC code of my own and use in conjunction with LAMMPS? I have read such threads in the past where it was said that using a separate MC code is advisable but it was a long time ago and I was wondering if recent updates to the LAMMPS code have brought in additional support for hybrid MC-MD calculations.

if there were any updates with the kind of feature you are looking for, it would be announced at: https://lammps.sandia.gov/bug.html or (with more details) at: https://github.com/lammps/lammps/releases

however, I am not aware of anything, and - contrary to what you may believe - these kind of operations are inherently tricky and complex to do with the domain decomposition based distributed data parallel programming model employed by LAMMPS. it works and parallelizes very well with MD simulations, but not MC runs. Those are better parallelized in time (as there is no time axis) rather than in space.

Axel.

I don’t understand what you are asking. If you look at the LAMMPS gcmc examples, you will see examples for both H2O and CO2, both of which have 2 atom types.