forked from lijiext/lammps
77 lines
1.6 KiB
Plaintext
77 lines
1.6 KiB
Plaintext
# NEB simulation of vacancy hopping in silicon crystal
|
|
|
|
units metal
|
|
|
|
atom_style atomic
|
|
atom_modify map array
|
|
boundary p p p
|
|
atom_modify sort 0 0.0
|
|
|
|
# coordination number cutoff
|
|
|
|
variable r equal 2.835
|
|
|
|
# diamond unit cell
|
|
|
|
variable a equal 5.431
|
|
lattice custom $a &
|
|
a1 1.0 0.0 0.0 &
|
|
a2 0.0 1.0 0.0 &
|
|
a3 0.0 0.0 1.0 &
|
|
basis 0.0 0.0 0.0 &
|
|
basis 0.0 0.5 0.5 &
|
|
basis 0.5 0.0 0.5 &
|
|
basis 0.5 0.5 0.0 &
|
|
basis 0.25 0.25 0.25 &
|
|
basis 0.25 0.75 0.75 &
|
|
basis 0.75 0.25 0.75 &
|
|
basis 0.75 0.75 0.25
|
|
|
|
region myreg block 0 4 &
|
|
0 4 &
|
|
0 4
|
|
create_box 1 myreg
|
|
create_atoms 1 region myreg
|
|
|
|
mass 1 28.06
|
|
|
|
group Si type 1
|
|
|
|
# make a vacancy
|
|
|
|
group del id 300
|
|
delete_atoms group del
|
|
group vacneigh id 174 175 301 304 306 331 337
|
|
|
|
# choose potential
|
|
|
|
pair_style sw
|
|
pair_coeff * * Si.sw Si
|
|
|
|
# set up neb run
|
|
|
|
variable u uloop 20
|
|
|
|
# only output atoms near vacancy
|
|
|
|
dump events vacneigh custom 1000 dump.neb.sivac.$u id type x y z
|
|
|
|
# initial minimization to relax vacancy
|
|
|
|
displace_atoms all random 0.1 0.1 0.1 123456
|
|
minimize 1.0e-6 1.0e-4 1000 10000
|
|
|
|
reset_timestep 0
|
|
|
|
fix 1 all neb 1.0
|
|
|
|
thermo 100
|
|
|
|
# run NEB for 2000 steps or to force tolerance
|
|
|
|
timestep 0.01
|
|
min_style quickmin
|
|
|
|
neb 0.0 0.01 50 100 10 final final.sivac
|
|
|