Primary Knock-on (PKA) from irradiation
Primary Knock-On (PKA) events refer to the displacement of an atom from its lattice site as a result of an energetic collision with an incident particle, such as a neutron, ion, or electron. The study of PKA events is crucial for understanding radiation damage in materials and has broad applications in nuclear engineering, materials science, and semiconductor technology. Atomic simulations provide valuable insights into the atomic-scale processes that occur.
### Created by Eric N. Hahn ###
### ericnhahn@gmail.com ###
### Simulating PKA ###
### Version 0.1 ###
clear
units metal
boundary p p p
atom_style atomic
lattice fcc 5.55
variable cubelength equal 25
region box block -${cubelength} ${cubelength} -${cubelength} ${cubelength} -${cubelength} ${cubelength} units lattice
create_box 1 box
create_atoms 1 region box
region PKA block -0.1 0.1 -0.1 0.1 -0.1 0.1
group PKA region PKA
pair_style eam/alloy
pair_coeff * * Au_GLJ10_3.eam.alloy.txt Au
velocity all create 5 12345
fix npt all npt temp 5 5 0.1 iso 0 0 1
minimize 1e-5 1e-5 100 100
thermo 10
thermo_style custom step time temp press pe ke etotal lx ly lz
timestep 0.0005
run 200
unfix npt
reset_timestep 0
velocity PKA set 0 33 -1333 units box
compute 3 all pe/atom
dump eve all custom 1 dump.PKA.* id type x y z vx vy vz c_3
fix impactdt all dt/reset 1 0.5e-5 0.0005 0.05 units box
fix nve all nve
run 20000
print "Job's Done"
### Created by Eric N. Hahn ###
### ericnhahn@gmail.com ###
### Simulating PKA: "ion" impact ###
### Version 0.4 ###
### Update to simulate incident angles and simplify KeV calculation ###
### does not account for ion charge, only kintetic energy ###
clear
units metal
boundary p p s
atom_style atomic
lattice fcc 5.55
variable xlength equal 20
variable ylength equal 20
variable zlength equal 30
region box block -${xlength} ${xlength} -${ylength} ${ylength} -${zlength} 5 units lattice
region atoms block -${xlength} ${xlength} -${ylength} ${ylength} -${zlength} 0 units lattice
create_box 1 box
create_atoms 1 region atoms
pair_style eam/alloy
pair_coeff * * Au_GLJ10_3.eam.alloy.txt Au
velocity all create 50 12345 dist gaussian
create_atoms 1 single -0 0 15 units box
region PKA block INF INF INF INF 14.9 15.1 units box
group PKA region PKA
fix nve all nve
thermo 10
thermo_style custom step time temp press pe ke etotal lx ly zlo zhi
timestep 0.0005
reset_timestep 0
variable keV equal 10
variable angle equal 45 #degrees from normal
variable mass equal 196.96657
variable massg equal ${mass}*1.66*10^-24
variable enorm equal 6.24150913*10^21
variable KEnorm equal ${keV}*1000/${enorm}
variable KEpermasstimes2 equal ${KEnorm}/${massg}*2
variable velocity equal ((${KEpermasstimes2})^0.5)
print ${velocity}
variable velocityAps equal ${velocity}*10
variable velocityx equal ${velocityAps}*sin(${angle}*3.14159/180)
variable velocityz equal ${velocityAps}*cos(${angle}*3.14159/180)
velocity PKA set ${velocityx} 0 -${velocityz} units box
print " "
print "${keV} keV at ${angle} = ${velocityx} ${velocityz}"
print " "
compute 3 all pe/atom
compute 4 all ke/atom
dump eve all custom 5 ./dump/dump.PKA_Au_${keV}keV_${angle}_v14.* id type mass x y z vx vy vz c_3 c_4
# https://docs.lammps.org/fix_dt_reset.html# It can be useful when running an impact simulation where one or more high-energy atoms collide with a solid, causing a damage cascade.
fix impactdt all dt/reset 1 0.5e-5 0.0005 0.05 units box
run 5500
print "Job's Done"