atoms drift problem

Yes,thank you,Axel.

I know that method. But I don’t know whether it can reflect real physical problem in my oxidation process?
Could I use “fix 1 substrate momentum 1 linear 0 0 1” to put constraints on the substrate without oxygen atmospher in order to remove the translational and the angular momentums of the substrate? Is that OK?

Also, I use langevin thermostat to relax the metal substrate first to 900K. Then I add two oxygen atoms with velocities(vz) according to mv*v/2=3/2Kb T. And thermostat the substrate only. But the substrate temperature could not be kept as 900K. Actually, it drops down to 700K and increase then. How can I do right temperature control in the dynamic process? Thank you so much in advance.

my input file:

ReaxFF MD simulation for Fe(100)-O

1. Initialization

units real
dimension 3
boundary p p f
atom_style full

2. Atom definition

lattice bcc 2.8700
region box block 0 11 0 11 0 27.875
create_box 2 box
create_atoms 1 box

region up block INF INF INF INF 19.2 INF
region down block INF INF INF INF INF 8.0
region substrate block INF INF INF INF 8.0 19.2
group up region up
group down region down
delete_atoms group up
delete_atoms group down
group substrate region substrate

3. Settings

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

#=================relaxation==================

variable T equal 900
fix 1 substrate nve
fix 2 substrate langevin $T $T 100 587283
fix charge all qeq/reax 1 0.0 10.0 1e-6 reax/c
timestep 1
compute mtemp substrate temp
compute_modify mtemp dynamic yes
thermo 1
run 10000
reset_timestep 0

#=================end relaxation=================

#============dynamic=================

region upadd block 0 11 0 11 25 26
fix ref oxygen wall/reflect zhi EDGE
fix 4 oxygen nve
fix 77 substrate momentum 1 linear 0 0 1

dump 1 all custom 100 dump_dynamic.atom id type xs ys zs vx vy vz q
dump 2 all image 100 image.*.jpg type type axes yes 0.8 0.02 view 80 -30

label loopt
variable t loop 500000

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
run 0

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

variable m equal count(gas)

thermo_style custom step atoms temp etotal press v_Nsubtot v_Oxysub v_Oxytot v_m

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

run 2
uncompute p1
uncompute h1
uncompute h11
uncompute p2
uncompute h2

group gas delete

next t
jump in.process-lal2 loopt

write_restart restart.oxidation

Axel Kohlmeyer 写:

Yes,thank you,Axel.

I know that method. But I don't know whether it can reflect real physical
problem in my oxidation process?

it is a hell of lot better than having two free surfaces. and also,
simple laws of classical physics require that your surface will be
drifting due to momentum conservation, if you deposit molecules.

it is quite strange that you keep questioning well established
simulation protocols but in turn insist on doing things that are
clearly not physical (like thermalizing deposited molecules).
if that is the attitude you keep following, then there is little help
that i can offer.

Could I use "fix 1 substrate momentum 1 linear 0 0 1" to put constraints on
the substrate without oxygen atmospher in order to remove the translational
and the angular momentums of the substrate? Is that OK?

that is nonsense and will make things worse.

Also, I use langevin thermostat to relax the metal substrate first to 900K.
Then I add two oxygen atoms with velocities(vz) according to mv*v/2=3/2Kb T.
And thermostat the substrate only. But the substrate temperature could not
be kept as 900K. Actually, it drops down to 700K and increase then. How can
I do right temperature control in the dynamic process? Thank you so much in
advance.

sorry. this is turning into an "how do i do a simple depositing
simulation". i don't have time for that. talk to your adviser, read
the literature, compare to what other people have done, search the
web. there is a ton of information out there. you just need to find it
and make an informed choice.

axel.