LAMMPS Parallel Tempering with Pure MC

Hi,

I am attempting to perform parallel tempering on my system in LAMMPS to reach a ground state energy. I would like to do purely Monte Carlo swaps, but ‘temper’ does not accept the ‘atom/swap’ as a valid fix. Is there any known way to get temper to work with the fix atom/swap? I am open to modifying my lammps source code, but are there other barriers built in to ‘temper’ that will prevent this fix from working with it?

Thank you,
Chloe

There cannot be, since fix atom/swap is not a thermostat nor a fix to do propagation of atoms.

What do you mean by this? You are referring to two different MC methodologies in your post. Which of those are you referring to?

I don’t see a way to use the temper command for this.

That said, If you want to set up a run of concurrent simulations with fix atom/swap that use different settings, you could set this up using the LAMMPS python module or by writing the equivalent code in C/C++ with the C-language library interface and more-or-less follow the same pattern as in python.

An outline of what that python script or C/C++ program would do is here:

  1. set up a multi-partition run by splitting the world communicator into as many partitions as you want and then use the sub-communicators to initialize a LAMMPS instance.
  2. also set up a communicator for the python-to-python exchange (usually only needed for the root of each partition)
  3. read your system setup and input template that does not include the atom/swap fix or any run commands
  4. now issue the fix command with the different settings for each partition
  5. now run for a bit
  6. now extract the potential energy for all partitions and proceed with swapping settings if the energies require it or the monte carlo criterion says so.
  7. if you have run for long enough, shut down the system, write out restarts and exit.
  8. remove the current atom/swap fix and jump back to step 4.