Fix atom/swap command doesn't work well

Dear lammps users,

I would like to simulate point defects in YSZ, Y stabilized ZrO2.

After I ran NVT or NPT simulation at 273K and 1 bar for relaxation, I tried to swap Zr atoms with Y atoms in the same ensemble.

However, it didn’t work well, and i got such error like below;

In case of NVT:

Step Temp PotEng f_mcswap2[1] f_mcswap2[2] Lx Ly Lz Press Pxx Pyy Pzz Volume
0 246.7638 -11900.491 0 0 15.383859 15.383859 15.383859 1804.9412 1668.4532 3541.723 204.6473 3640.7922
10 -nan -nan 10 0 15.383859 15.383859 15.383859 -nan -nan -nan -nan 3640.7922
ERROR on proc 1: Non-numeric atom coords - simulation unstable (…/domain.cpp:522)
ERROR on proc 2: Non-numeric atom coords - simulation unstable (…/domain.cpp:522)
ERROR on proc 3: Non-numeric atom coords - simulation unstable (…/domain.cpp:522)
ERROR on proc 4: Non-numeric atom coords - simulation unstable (…/domain.cpp:522)

test.atomin (18.3 KB)

Dear lammps users,

I would like to simulate point defects in YSZ, Y stabilized ZrO2.

After I ran *NVT* or *NPT* simulation at 273K and 1 bar for relaxation, I
tried to swap Zr atoms with Y atoms in the same ensemble.

​there are multiple problems with your input.
please find my comments below.​

However, it didn't work well, and i got such error like below;

In case of* NVT*:

Step Temp PotEng f_mcswap2[1] f_mcswap2[2] Lx Ly Lz Press Pxx Pyy Pzz
Volume
       0 246.7638 -11900.491 0 0
15.383859 15.383859 15.383859 1804.9412 1668.4532
3541.723 204.6473 3640.7922
      10 -nan -nan 10 0
15.383859 15.383859 15.383859 -nan -nan
-nan -nan 3640.7922
ERROR on proc 1: Non-numeric atom coords - simulation unstable
(../domain.cpp:522)
ERROR on proc 2: Non-numeric atom coords - simulation unstable
(../domain.cpp:522)
ERROR on proc 3: Non-numeric atom coords - simulation unstable
(../domain.cpp:522)
ERROR on proc 4: Non-numeric atom coords - simulation unstable
(../domain.cpp:522)

​the reason for that is, that your simulation cell is too small for use
with fix atom/swap relative to the cutoffs involved, when fix atom/swap
needs to communicate data.
if you insert a:

replicate 2 2 2

command after read_data, this kind of error should go away. also, running
in serial should avoid the issue.

============================================================

= BAD TERMINATION OF ONE OF YOUR APPLICATION PROCESSES
= EXIT CODE: 1
= CLEANING UP REMAINING PROCESSES
= YOU CAN IGNORE THE BELOW CLEANUP MESSAGES

=======================

In case of *NPT*:

ERROR: Pressure control must be used with fix npt (../fix_npt.cpp:30)
Last command: fix setnpt2 all npt temp 273.0 273.0 0.1

​this is incorrect syntax for fix npt. it is missing the pressure control
keyword. it would be correct for fix nvt.​

============================================================

= BAD TERMINATION OF ONE OF YOUR APPLICATION PROCESSES
= EXIT CODE: 1
= CLEANING UP REMAINING PROCESSES
= YOU CAN IGNORE THE BELOW CLEANUP MESSAGES

=======================

In those two cases, swapping atoms didn't seem to be preformed.

​given that you are a full electron charge difference​ between the two atom
types in question, swapping is rather unlikely.

I am very happy if anyone give me an advise.

I add the input script below, and also attached an atomic configuration
file.

Thank you in advance.

Shin Kiyohara

*input script #Initialize Simulation --------------------- units metal
dimension 3 boundary p p p atom_style charge atom_modify map array #
---------- Create Atoms --------------------- read_data test.atomin #
---------- Define Interatomic Potential --------------------- kspace_style
ewald 1e-12*

FYI, ​it is rather meaningless to try a kspace style accuracy beyond 1.e-9,
since the analytical expressions to approximate erfc() are only this
accurate.​

* #1:O, 2:Zr, 3:Y pair_style hybrid buck/coul/long 20.0 18.0 coul/long
18.0 pair_coeff 1 1 buck/coul/long 9547.96 0.2192 32.0 #O-O pair_coeff 1
2 buck/coul/long 1502.11 0.3477 5.10 #O-Zr pair_coeff 1 3
buck/coul/long 1766.40 0.33849 19.43 #O-Y pair_coeff 2 2 coul/long #Zr-Zr
pair_coeff 2 3 coul/long #Zr-Y pair_coeff 3 3 coul/long #Y-Y neigh_modify
one 10000 pair_modify table 0 # ---------- Define Settings
--------------------- compute eng all pe
########################################################### #relaxaion of
supercell timestep 0.001 reset_timestep 0 thermo 100 thermo_style custom
step temp pe lx ly lz press pxx pyy pzz vol fix setnpt1 all npt temp 273.0
273.0 0.1 iso 1.0 1.0 0.1** ( in case of NPT)*

​please note the syntax error cause by "( in case of NPT)"​

*#fix setnpt2 all npt temp 273.0 273.0 0.1 ( in case of NVT)*

​please also note the incorrect syntax. for NVT, you must specify "fix nvt"​

* velocity nonvacancy create 273.0 1 dist gaussian*

​the group "nonvacancy" does not exist.​

* run 100000 unfix setnpt1 #atom swapping timestep 0.000005 reset_timestep
0 fix setnpt2 all npt temp 273.0 273.0 0.1 iso 1.0 1.0 0.1 ( in case of
NPT)*
*#fix setnpt2 all npt temp 273.0 273.0 0.1 ( in case of NVT)*

​see above about the thermostats.​

axel.

Thank you for your kind reply.

I am deeply sorry for having made mistakes in writing the input code.

After i revised my input code (see below), i got the same errors like below again.

NPT:

Step Temp PotEng f_mcswap2[1] f_mcswap2[2] Lx Ly Lz Press Pxx Pyy Pzz Volume
0 273 -98069.56 0 0 30.323478 30.292833 30.281844 2694.0354 6035.537-387.03326 2433.6026 27816.419
ERROR: Non-numeric pressure - simulation unstable (…/fix_nh.cpp:1029)
Last command: run 100000 #run 1 nano seconds

NVT:

Step Temp PotEng f_mcswap2[1] f_mcswap2[2] Lx Ly Lz Press Pxx Pyy Pzz Volume
0 273 -98070.933 0 0 30.2931 30.221 30.2384 16353.666 16217.627 18317.372 14525.998 27682.886
ERROR on proc 0: Non-numeric atom coords - simulation unstable (…/domain.cpp:522)
ERROR on proc 1: Non-numeric atom coords - simulation unstable (…/domain.cpp:522)
ERROR on proc 2: Non-numeric atom coords - simulation unstable (…/domain.cpp:522)

input script
#Initialize Simulation ---------------------
units metal
dimension 3
boundary p p p
atom_style charge
atom_modify map array

# ---------- Create Atoms ---------------------

read_data test.atomin

replicate 2 2 2

# ---------- Define Interatomic Potential ---------------------

#1:O, 2:Zr, 3:Y
pair_style hybrid buck/coul/long 20.0 18.0 coul/long 18.0
pair_coeff 1 1 buck/coul/long 9547.96 0.2192 32.0 #O-O
pair_coeff 1 2 buck/coul/long 1502.11 0.3477 5.10 #O-Zr
pair_coeff 1 3 buck/coul/long 1809.68 0.3547 20.40 #O-Ce
pair_coeff 2 2 coul/long #Zr-Zr
pair_coeff 2 3 coul/long #Zr-Ce
pair_coeff 3 3 coul/long #Ce-Ce

Thank you for your kind reply.

I am deeply sorry for having made mistakes in writing the input code.

After i revised my input code (see below), i got the same errors like
below again.

​the input below is not working because of obvious errors. please review
the mailing list posting guidelines, especially number 3 and 9.

axel.