How to perform Hybrid MD/MC simulation

I am quite new with LAMMPS software. I have to perform a hybrid MD/MC simulation for my undergraduate thesis project. Can anyone help me regarding this problem?

Currently, I am working with an high entropy alloy consisting of five elements. I want to swap atoms for obtaining minimum potential energy of each atoms. In each MD/MC loop, a MD simulation is conducted on the latest configuration for 10000 steps with NPT ensemble where temp is 300K and pressure is 0. Then the MC process is carried out on the resulting configuration so that the atoms in the configuration can cross the energy barrier into a lower energy state. For each MC process, the positions of 5,000 pairs of different atoms which are selected randomly in the configuration are swapped sequentially. In this work, a total of 700 MD/MC loops are performed, corresponding to 700ps (simulation timestep is 1fs) of MD simulation and 3.5 million MC swaps.

After some research I get to know that this hybrid MD/MC simulation can be performed using atom/swap command. But I do not understand how to write the atom/swap command that will serve my conditions.

Have you talked with your project supervisor about this? This should be the primary person to ask for assistance, specifically since you are asking or assistance on a rather general level and specifically to match requirements that you have been given. People here no nothing about the intents and purposes of your project, so it is very difficult to give advice that is within the boundaries of your project. Your project supervisor, on the other hand, should know all those details and thus should be in a much better position to advise you.

Yes, I have consulted with my supervisor. But unfortunately he did not perform any hybrid MD/MC simulation before. That’s why he doesn’t have clear knowledge about this problem’s solution. But he assured me that he will try the simulation run and will give me the solution. Also told me to find any solution online regarding this. That’s why I’m asking for help in here.

Hi Riazul,

As Dr. Kohlmeyer said, the best person to consult with is your advisor. However, here are my suggestions for you:
1- There are a noticeable number of articles that used the MD/MC approach to perform similar tasks that I assume you intend to do. Even, you can find articles on high entropy alloys (HfNbTaTiZr family, for example). Please spend some time on Google Scholar and find these articles and read them in detail.
2- Please read the LAMMPS commands documents on atom/swap. They explained the command in detail, and you can use it based on what you aim to achieve (It will take some time to understand it completely, so don’t get discouraged if you can’t get it the first time.)
3- Doing MD/MC simulations on high entropy alloys is a complicated task. But getting results that make physical sense is even harder. Especially, since you aim to predict phase formation, the interatomic potentials might behave inaccurately at the intended temperature.


I am not sure if I know about any hybrid MC/MD packages using LAMMPS but I can recommend you a pyMCMD package that uses GOMC (MC) & NAMD (MD).

Here is the github:

Hope it helps.

Thanks for your help. Currently I’m not familiar with the python version of LAMMPS command or how to use this types of python code in my LAMMPS command.

I have generated a code for performing Hybrid MD/MC simulation after reading the documentation and from other’s code. The code is stated below -

fix MC1 all atom/swap 1 1 11345678 300 ke no types 1 2
run 350000
unfix MC1

fix MC2 all atom/swap 1 1 11345678 300 ke no types 1 3
run 350000
unfix MC2

fix MC3 all atom/swap 1 1 11345678 300 ke no types 1 4
run 350000
unfix MC3

fix MC4 all atom/swap 1 1 11345678 300 ke no types 1 5
run 350000
unfix MC4

fix MC5 all atom/swap 1 1 11345678 300 ke no types 2 3
run 350000
unfix MC5

fix MC6 all atom/swap 1 1 11345678 300 ke no types 2 4
run 350000
unfix MC6

fix MC7 all atom/swap 1 1 11345678 300 ke no types 2 5
run 350000
unfix MC7

fix MC8 all atom/swap 1 1 11345678 300 ke no types 3 4
run 350000
unfix MC8

fix MC9 all atom/swap 1 1 11345678 300 ke no types 3 5
run 350000
unfix MC9

fix MC10 all atom/swap 1 1 11345678 300 ke no types 4 5
run 350000
unfix MC10

Can anyone tell me is this code will serve my simulation conditions??

Also, I have found that this type of swapping can be performed in just one instance of fix atom/swap from this thread([Help regarding hybrid MC/MD simulation in lammps]). After reading the documentation, I have no clue how to do it in one instance. Can anyone help?