How to use parallel simulation with ReaxFF method

A couple of general suggestions:

Check if the error persists in current version of lammps.
Check if it occurs on other nodes or multicore PC.
Provide some minimal input that reproduces the problem.

Regards,
Oleg

10:12, 21 ноября 2014 г., luxing :

Thank you for reply, Professor Sergeev.
I have run it on two diffrent Linux machines and one Windows machine with mpi. Similar problem occured.
My version of lammps is the latest stable one: Feb-2014. I attached my input file and data file below.?

Input:
units real
dimension 3
boundary p p f
atom_style charge
read_data data.Fe100
variable lo equal 23.28
variable hi equal 58
variable mid equal 25
region up block INF INF INF INF {hi} INF region down block INF INF INF INF INF {lo}
region substrate block INF INF INF INF {lo} {hi}
region mobile block INF INF INF INF {mid} {hi}
group up region up
group down region down
group substrate region substrate
pair_style reax/c NULL checkqeq yes
pair_coeff * * ffield.reax.Fe_O_C_H Fe O
mass 1 55.8450
mass 2 15.9994
group Fe type 1
group oxygen type 2
neighbor 2 bin
neigh_modify every 1 delay 0 check yes
variable T equal 900
velocity substrate create $T 5812775
fix 1 substrate nve
fix 2 substrate temp/berendsen $T $T 100
fix charge all qeq/reax 1 0.0 10.0 1e-6 reax/c
timestep 1
thermo 1
run 10
unfix 1
unfix 2
reset_timestep 0
variable Nsubtot equal count(all,substrate)
variable Oxysub equal count(oxygen,substrate)
variable Oxytot equal count(oxygen)

region upadd block 0 31.57 0 31.57 69 70
fix ref oxygen wall/reflect zhi EDGE

label loopt
variable t loop 500000

group mobile region mobile
compute mtemp mobile temp
compute_modify mtemp dynamic yes
fix 30 oxygen nve
group leave subtract mobile oxygen
fix 32 leave nve
fix 31 mobile temp/berendsen $T $T 100

variable Oxymol equal count(oxygen,mobile)
variable Nmotot equal count(all,mobile)
variable Nmotot2 equal count(mobile)

compute p1 oxygen property/atom type q
compute h1 oxygen reduce ave c_p1[1]
compute h11 oxygen reduce min c_p1[2]
compute p2 oxygen coord/atom 1.4 2
compute h2 oxygen reduce sum c_p2
thermo_style custom step temp pe c_h1 c_h11 c_h2
thermo_modify temp mtemp
run 0

variable nq atom “(c_p1[2] >(-0.5))&&(c_p1[1] == 2)”
group gas variable nq

variable m equal count(gas)

thermo_style custom step atoms temp etotal press
thermo_modify temp mtemp

if “($m==0)” then “fix 33 oxygen deposit 2 2 1 12345 region upadd near 1 vz -0.00772 -0.008”

run 2
uncompute p1
uncompute h1
uncompute h11
uncompute p2
uncompute h2
unfix 30
unfix 31
unfix 32
uncompute mtemp

group gas delete
group mobile delete

next t
jump in.FeO-100-900-f loopt

Thank you for reply, Professor Sergeev.
I have run it on two diffrent Linux machines and one Windows machine with mpi. Similar problem occured.
My version of lammps is the latest stable one: Feb-2014. I attached my input file and data file below.
The data file is too big and has exceed the limit of my e-mail box, so I just have to attached it in the accessory.

My input file is

Input:
units real
dimension 3
boundary p p f
atom_style charge
read_data data.Fe100
variable lo equal 23.28
variable hi equal 58
variable mid equal 25
region up block INF INF INF INF {hi} INF region down block INF INF INF INF INF {lo}
region substrate block INF INF INF INF {lo} {hi}
region mobile block INF INF INF INF {mid} {hi}
group up region up
group down region down
group substrate region substrate
pair_style reax/c NULL checkqeq yes
pair_coeff * * ffield.reax.Fe_O_C_H Fe O
mass 1 55.8450
mass 2 15.9994
group Fe type 1
group oxygen type 2
neighbor 2 bin
neigh_modify every 1 delay 0 check yes
variable T equal 900
velocity substrate create $T 5812775
fix 1 substrate nve
fix 2 substrate temp/berendsen $T $T 100
fix charge all qeq/reax 1 0.0 10.0 1e-6 reax/c
timestep 1
thermo 1
run 10
unfix 1
unfix 2
reset_timestep 0
variable Nsubtot equal count(all,substrate)
variable Oxysub equal count(oxygen,substrate)
variable Oxytot equal count(oxygen)
region upadd block 0 31.57 0 31.57 69 70
fix ref oxygen wall/reflect zhi EDGE
label loopt
variable t loop 500000
group mobile region mobile
compute mtemp mobile temp
compute_modify mtemp dynamic yes
fix 30 oxygen nve
group leave subtract mobile oxygen
fix 32 leave nve
fix 31 mobile temp/berendsen $T $T 100
variable Oxymol equal count(oxygen,mobile)
variable Nmotot equal count(all,mobile)
variable Nmotot2 equal count(mobile)
compute p1 oxygen property/atom type q
compute h1 oxygen reduce ave c_p1[1]
compute h11 oxygen reduce min c_p1[2]
compute p2 oxygen coord/atom 1.4 2
compute h2 oxygen reduce sum c_p2
thermo_style custom step temp pe c_h1 c_h11 c_h2
thermo_modify temp mtemp
run 0
variable nq atom “(c_p1[2] >(-0.5))&&(c_p1[1] == 2)”
group gas variable nq
variable m equal count(gas)
thermo_style custom step atoms temp etotal press
thermo_modify temp mtemp

if “($m==0)” then “fix 33 oxygen deposit 2 2 1 12345 region upadd near 1 vz -0.00772 -0.008”
run 2
uncompute p1
uncompute h1
uncompute h11
uncompute p2
uncompute h2
unfix 30
unfix 31
unfix 32
uncompute mtemp
group gas delete
group mobile delete
next t
jump in.FeO-100-900-f loopt

data.Fe100 (109 KB)

Thank you for reply, Professor Sergeev.
I have run it on two diffrent Linux machines and one Windows machine with mpi. Similar problem occured.
My version of lammps is the latest stable one: Feb-2014. I attached my input file and data file below.?

Feb 2014 is not the latest stable version.

And I am not a professor :slight_smile:

Anyway, I cannot run the script right now, but there seem to be some fancy adding/removing atoms tricks. I would suggest to debug the loop by turning off commands inside, and then turning them back on one by one. With the latest lammps.

Regards,
Oleg

15:32, 21 ноября 2014 г., Axel Kohlmeyer <[email protected]…24…>: