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"