Molecule Swap Monte Carlo

Dear Community and Developers,

I'm thinking of swapping complete molecules instead of atoms for analysing the co-ion adsorption. Does anyone have experience with this?

I guess that the atom/swap fix can be used for this by using unique molecule IDs and a separation into two groups between which an exchange would be allowed.

Do you think that would be generally possible to do on the basis of the atom/swap fix?

I know that the atom/swap fix is not capable of a further relaxation after each swap step, which would be necessary if molecules have not nearly the same size. Including rotations of the swapping molecules would also be a nice feature.


Hi Robert,

You can get this functionality with the existing code by using two gcmc fixes, one for each molecule. However, if the energy of adsorption of the molecules is a lot greater than their difference, your Monte Carlo acceptance rate for desorption will be very low at the temperatures of interest. If you want to do this using molecule swaps, you would need to either extend the FixatomSwap class, or create a new class similar to FixAtomSwap. A lot of the machinery for adding and removing molecules already exists in FixGCMC, so you could copy that over to your new class. I will say that getting things like this to work in LAMMPS is not straightforward.


Dear Aidan,

thanks for the hint, I’ll give the two GCMCs a try.