semi grand canonical simulation using fix atom/swap

Hello Everyone,

I am using LAMMPS 22 Aug 2018 stable version. I am attempting these SGC simulations on an HPC cluster (I use multiple nodes). The interatomic potentials I am using for this purpose are 2NN MEAM. The issue is - the concentration of impurity atoms § in the bulk (Fe) doesn’t seem to converge (with fix atoms/swap ‘semigrand’ set to ‘yes’). I already know the equilibrium P concentration in bulk Fe. But I am trying to see the same through these simulations. All I am trying for is to obtain the equilibrium impurity concentration and configuration in the bulk Fe at different temperatures with atoms swapping probability as a function of difference in chemical potentials of Fe and P.

If my inputs are not logical, there is no way I can get results. So I keep looking for possible mistakes from me. So far I have tried quite a few things. Few are - 1. Increased the system size to see the change in concentration (that I am expecting), 2. credibility of the 2NN MEAM potential that I am using for these simulations (I am using the 2NN MEAM potential with which some other group has obtained the results using a different MD code), 3. run the simulations for 1ns.

Sorry for the inconvenience but it would be very helpful if someone could give any suggestions. Here is the input script:

variable T equal 1300
units metal
dimension 3
boundary p p p
atom_style atomic
read_data Fe-P_bulk.lmp
pair_style meam/c
pair_coeff * * library.meam Fe P FeP.meam Fe P

fix 1 all box/relax iso 0.0001 nreset 10
thermo 10
thermo_style custom step temp pxx pyy pzz press pe etotal lx ly lz
minimize 1.0e-12 1.0e-12 100000 100000
unfix 1
velocity all create $T 825577 mom yes rot no
reset_timestep 0
fix 2 all npt temp $T $T 0.1 iso 0.0 0.0 0.1
run 100000
unfix 2
fix 3 all nvt temp $T $T 0.1
run 100000
unfix 3
dump 2 all custom 10 dump.semiGC id type xu yu zu
dump_modify 2 append yes
reset_timestep 0
timestep 0.001

fix 4 all atom/swap 1 500 12345 $T semi-grand yes types 1 2 mu 1.9 1.0

fix 5 all nvt temp $T $T 0.1
run 1000000

Thanks and regards
Praveen

LTH

Lund, Sweden

please note the release notes for LAMMPS version 10 October 2018 ( https://lammps.sandia.gov/bug2018.html ) and the associated discussion on github ( https://github.com/lammps/lammps/pull/1143 )

axel.

Hello Dr. Axel Kohlmeyer,

First of all thank you for guiding me to the discussion. It has been helpful.

But, the semi grand canonical monte carlo simulation still doesn’t end with a constant concentration of P atoms in bulk Fe (concentration just goes to zero when lammps 12 Dec 18 stable version).

The initial P atoms’ distribution is uniform and 1 at%. After running for 0.1 nanoseconds, this P atoms’ concentration goes to zero.

Just to check how the code behaves, I have tried changing the sign of input chemical potentials of P and Fe species. I also have tried swapping the chemical potentials of the two species (as chemical potential difference is the most important parameter here). The LAMMPS input script is as follows.

variable T equal 1300.00
units metal
dimension 3
boundary p p p
atom_style atomic
read_data 100Fe-P_bulk.lmp # 1% P in Fe bulk .
pair_style meam
pair_coeff * * library.meam Fe P FeP.meam Fe P

fix 1 all box/relax iso 0.0001 nreset 10
thermo 10
thermo_style custom step temp pxx pyy pzz press pe etotal lx ly lz
minimize 1.0e-12 1.0e-12 100000 100000
unfix 1
velocity all create $T 825577 mom yes rot no
reset_timestep 0
fix 2 all npt temp $T $T 0.1 iso 0.0 0.0 0.1
run 1000
unfix 2
fix 3 all nvt temp $T $T 0.1
run 1000
unfix 3
dump 2 all custom 10 dump.semiGC id type xu yu zu
dump_modify 2 append yes
reset_timestep 0
timestep 0.001
fix 4 all atom/swap 1 100 12345 $T semi-grand yes types 1 2 mu 1.8 0.9 ## also used “1 2 mu 0.9 1.8” ; “1 2 mu -1.8 -0.9”
fix 5 all nvt temp $T $T 0.1 1
run 100000
print “All done”

May I please get a bit more assistance? Thank you in advance.

Praveen

sorry, but i don’t know anything about this except for the fact, that there was a patch changing the sign and the discussion leading up to it.

axel.