ABSTRACT (original article): Understanding electron irradiation effects is vital not only for reliable transmission electron microscopy characterization, but increasingly also for the controlled manipulation of 2D materials. The displacement cross sections of monolayer hexagonal boron nitride (hBN) are measured using aberration-corrected scanning transmission electron microscopy in near ultra-high vacuum at primary beam energies between 50 and 90 keV. Damage rates below 80 keV are up to three orders of magnitude lower than previously measured at edges under poorer residual vacuum conditions, where chemical etching appears to dominate. Notably, it is possible to create single vacancies in hBN using electron irradiation, with boron almost twice as likely as nitrogen to be ejected below 80 keV. Moreover, any damage at such low energies cannot be explained by elastic knock-on, even when accounting for the vibrations of the atoms. A theoretical description is developed to account for the lowering of the displacement threshold due to valence ionization resulting from inelastic scattering of probe electrons, modeled using charge-constrained density functional theory molecular dynamics. Although significant reductions are found depending on the constrained charge, quantitative predictions for realistic ionization states are currently not possible. Nonetheless, there is potential for defect-engineering of hBN at the level of single vacancies using electron irradiation. CITATION (original article): Bui, T.A., Leuthner, G.T., Madsen, J., Monazam, M.R.A., Chirita, A.I., Postl, A., Mangler, C., Kotakoski, J. and Susi, T. (2023), Creation of Single Vacancies in hBN with Electron Irradiation. Small, 19: 2301926. https://doi.org/10.1002/smll.202301926

Constants definition

c=Entity["PhysicalConstant","SpeedOfLight"]["Value"][[1]];(*speedoflight*)​​e=Entity["PhysicalConstant","ElementaryCharge"]["Value"][[1]];(*elementarycharge*)​​m=Entity["PhysicalConstant","ElectronMass"]["Value"][[1]];(*massofelectron*)​​m1=m*c^2./e;(*electronmassineV*)​​ℏ=Entity["PhysicalConstant","ReducedPlanckConstant"]["Value"][[1]];(*reducedPlanckconstant*)​​eps=Entity["PhysicalConstant","ElectricConstant"]["Value"][[1]];(*vacuumpermittivity*)​​a0=Entity["PhysicalConstant","BohrRadius"]["Value"][[1]];(*Bohrradius.*)​​ER=Entity["PhysicalConstant","RydbergEnergy"]["Value"][[1]]/e;(*Rydbergenergy.*)​​NA=Entity["PhysicalConstant","AvogadroConstant"]["Value"][[1]];(*Avogadro'sconstant.*)​​kB=Entity["PhysicalConstant","BoltzmannConstant"]["Value"][[1]];(*Boltzmann'sconstant.*)
Re-defining constants directly to speed up computation of numerical integrals.
c=299792458.;​​e=
801088317
5000000000000000000000000000
;​​m=9.10938370150000079003439766`9.211300968617545*^-31;​​m1=510998.9499961641`;​​ℏ=
132521403
400000000000000000000000000000000000000000π
;​​eps=8.85418781762039`*^-12;​​a0=5.291772109029999813118170167`9.519481150304392*^-11;​​ER=13.60569312299423437751198959631745574385`11.42021640338319;​​NA=602214076000000000000000.;​​kB=
1380649
100000000000000000000000000000
;​​ZB=5;(*Boronatomicnumber*)​​ZC=6;(*Carbonatomicnumber*)​​ZN=7;(*Nitrogenatomicnumber*)​​ZS=16;(*Sulfuratomicnumber*)​​
Functions for calculating ionization energies and shell populations for the Bethe cross section.
β[U_?NumericQ]:=Sqrt[1.-1./((U*1000./m1)+1.)^2.];(*RelativisticbetaforkineticenergyinkeV.*)​​​​Ec[Z_,i_]:=QuantityMagnitude[UnitConvert[ElementData[Z]["IonizationEnergies"][[i]],"eV/mol"]/NA];(*Nthionizationenergy*)​​ns[Z_,s_]:=ElementData[Z]["ElectronShellConfiguration"][[s]];(*Numberofelectronsonshells.*)​​​​bethe[U_,Z_,ne_,b_,cc_,Ec_]:=Piecewise​​
28
10
2π
4
e
*ne*b
(4*Pi*eps)^2(
2
c
m)
2
β[U]
(Ec*e)
*Log(cc*(
2
c
m)*
2
β[U]
)(2*(Ec*e))-Log[1-β[U]^2]-β[U]^2,(cc*
2
c
m)*
2
β[U]
(2*(Ec*e))>=1,0;(*Betheionizationcrosssection.*)

Atomic fitting for Boron

Atomic ionization cross sections for B: “Total counting” values from Table II of DOI: 10.1103/PhysRevA.64.052707
tableB={{9,0.094`},{10,0.865`},{12,1.503`},{15,2.193`},{20,3.058`},{25,3.558`},{30,3.842`},{40,4.066`},{50,4.071`},{60,3.984`},{70,3.859`},{80,3.721`},{90,3.581`},{100,3.444`},{125,3.13`},{150,2.862`},{175,2.635`},{200,2.441`},{225,2.276`},{250,2.132`},{275,2.007`},{300,1.896`},{400,1.559`},{500,1.329`},{600,1.162`},{700,1.034`},{800,0.934`},{900,0.852`},{1000,0.784`}};​​tableB[[All,1]]*=1/1000;(*ConverttokeV.*)​​tableB[[All,2]]*=1/10^20*10^28;(*Converttobarn.*)
Pre-assigning ionization energies and shell populations for speed.
EcB1=Ec[ZB,1];​​EcB2=Ec[ZB,2];​​EcB3=Ec[ZB,3];​​neB=ns[5,2];
Fitting B atomic data with two ionized states.
dB=5;(*Numberofpointstodropfromthestart;ensuresbetterfitofthecrucialhigh-energytail.*)​​nlmB2=NonlinearModelFit[Drop[tableB,dB],​​{bethe[U,ZB,neB,B,CC,EcB1]+bethe[U,ZB,neB,B,CC,EcB2],​​{{0<B<1.0},{0<CC<1.0}}},{{B,0.5},{CC,0.5}},U,Method->"NMinimize",MaxIterations1000];​​​​BoptB2=nlmB2["BestFitParameters"][[1,2]];​​CoptB2=nlmB2["BestFitParameters"][[2,2]];​​​​Show{Plot[{bethe[U,ZB,neB,BoptB2,CoptB2,EcB1],bethe[U,ZB,2,BoptB2,CoptB2,EcB2],bethe[U,ZB,neB,BoptB2,CoptB2,EcB1]+bethe[U,ZB,2,BoptB2,CoptB2,EcB2]},{U,0,1},PlotRangeFull,PlotStyle{Directive[Dashed,RGBColor[0.75,0.0,0.75]],Directive[Dashed,RGBColor[0.9,0.0,0.9]],Purple},FrameTrue,FrameStyle->Thickness[0.003],FrameLabel{"Electron energy (keV)","Cross section (barn)"(*,"Boron (Bethe
n
2
="<>ToString[neB]<>", b and c constants for this shell)"*)}],ListPlot[tableB,PlotStyleBlack]},PlotRange{{0,1},{0,5*10^8}},ImageSizeLarge,EpilogInsetColumn​​PointLegend[{Black},{"Kim & Stone (2001)"}],LineLegend[{Purple},{"Total (1st + 2nd ionized state)"}],​​LineLegend{Directive[Dashed,Purple]},"
ion
E
1
="<>ToString[EcB1]<>" eV,
b
2
="<>ToString[BoptB2]<>",
c
2
="<>ToString[CoptB2],​​LineLegend{Directive[Dashed,Lighter[Purple]]},"
ion
E
2
="<>ToString[EcB2]<>" eV",Scaled[{0.65,0.7}],BaseStyle14
Out[]=
Setting the directory of the notebook file as the working directory.
setDir:=Quiet@Check[SetDirectory@DirectoryName@$InputFileName,SetDirectory@NotebookDirectory[]]
Export["Bethe_boron_valence_2ionized_shellconst.pdf",%]
Out[]=
Bethe_boron_valence_2ionized_shellconst.pdf

Nitrogen atomic fitting

Atomic ionization cross sections for N: “70-30 mix” values from Table IV of DOI: 10.1103/PhysRevA.66.012708
tableN={{14,0.0822`},{16,0.177`},{18,0.298`},{20,0.419`},{25,0.675`},{30,0.89`},{35,1.068`},{40,1.205`},{45,1.309`},{50,1.389`},{60,1.493`},{70,1.55`},{80,1.576`},{90,1.583`},{100,1.577`},{120,1.544`},{150,1.47`},{180,1.389`},{200,1.336`},{250,1.215`},{300,1.111`},{350,1.022`},{400,0.947`},{450,0.882`},{500,0.826`},{600,0.734`},{700,0.661`},{800,0.602`},{900,0.553`},{1000,0.512`},{2000,0.3`},{3000,0.216`},{4000,0.17`},{5000,0.141`}};​​tableN[[All,1]]*=1/1000;(*ConverttokeV.*)​​tableN[[All,2]]*=1/10^20*10^28;(*Converttobarn.*)
Pre-calculating ionization energies and shell populations for speed.
EcN1=Ec[ZN,1];​​EcN2=Ec[ZN,2];​​EcN3=Ec[ZN,3];​​neN=ns[7,2];
Fitting N atomic data with three ionized states.
dN=0;(*Numberofpointstodropfromthestart.*)​​nlmN3=NonlinearModelFit[Drop[tableN,dN],​​{bethe[U,ZN,neN,B,CC,EcN1]+bethe[U,ZN,neN,B,CC,EcN2]+bethe[U,ZN,neN,B,CC,EcN3],​​{{B>0},{0<CC<1.0}}},{{B,0.5},{CC,0.5}},U,Method->"NMinimize",MaxIterations1000];​​​​BoptN3=nlmN3["BestFitParameters"][[1,2]];​​CoptN3=nlmN3["BestFitParameters"][[2,2]];​​​​Show{Plot[{bethe[U,ZN,neN,BoptN3,CoptN3,EcN1],bethe[U,ZN,neN,BoptN3,CoptN3,EcN2],bethe[U,ZN,neN,BoptN3,CoptN3,EcN3],bethe[U,ZN,neN,BoptN3,CoptN3,EcN1]+bethe[U,ZN,neN,BoptN3,CoptN3,EcN2]+bethe[U,ZN,neN,BoptN3,CoptN3,EcN3]},{U,0,5},PlotRangeFull,PlotStyle{Directive[Dashed,RGBColor[0,0.5,1]],Directive[Dashed,RGBColor[0,0.7,1]],Directive[Dashed,RGBColor[0,0.9,1]],Darker[Blue]},FrameTrue,BaseStyle->13,FrameStyle->Thickness[0.003],FrameLabel{"Electron energy (keV)","Cross section (barn)"(*,"Nitrogen (Bethe
n
2
="<>ToString[ns[7,2]]<>", b and c constant for this shell)"*)}],ListPlot[tableN,PlotStyleBlack]},PlotRange{{0,5},{0,2*10^8}},ImageSizeLarge,EpilogInsetColumn​​PointLegend[{Black},{"Kim & Desclaux (2002)"}],LineLegend[{Darker[Blue]},{"Total (1st + 2nd + 3rd ionized state)"}],​​LineLegend{Directive[Dashed,RGBColor[0,0.5,1]]},"
ion
E
1
="<>ToString[EcN1]<>" eV,
b
2
="<>ToString[BoptN3]<>",
c
2
="<>ToString[CoptN3],​​LineLegend{Directive[Dashed,RGBColor[0,0.7,1]]},"
ion
E
2
="<>ToString[EcN2]<>" eV",​​LineLegend{Directive[Dashed,RGBColor[0,0.9,1]]},"
ion
E
3
="<>ToString[EcN3]<>" eV",Scaled[{0.6,0.65}],BaseStyle14
N vs B atomic cross sections extrapolated to our experimental energies.

Cross sections for hBN from here onwards

Additional formulas for elastic McKinley-Feshbach cross section with vibrational enhancement of energy transfer based on DOI: 10.1038/ncomms13040
Calculating the mean-squared out-of-plane velocity from the phonon dispersion.
Experimental cross sections for B ejection from hBN with uncertainty limits
Experimental cross sections for N ejection from hBN with uncertainty limits
Omit 75 keV point for fitting; restore all values for plotting. Separate variables for values and uncertainty limits for ease of use in fitting below.
Optimal fit values; these were found via extensive search, used below as a basis for examples of how the total error is optimized with respect to a couple of parameters at a time.
Calculating uncertainty-weighted mean-squared sum of error between experiment and theory. Due to complicated numerical nature of the fitting function and the computational cost of calculating values, need to be iteratively optimized by varying the different fitting parameters one after another.
WARNING: these will take several minutes to evaluate even on 10 parallel kernels.
First optimize the second excited state.
Then optimize the ground-state threshold energy and the first excited state.
Plotting theoretical cross section values for B with optimal fit parameters; pre-calculating values first.

Nitrogen from here onwards

Optimal fit values; these were found via extensive search, used below as a basis for examples of how the total error is optimized with respect to a couple of parameters at a time.
Calculating uncertainty-weighted mean-squared sum of error between experiment and theory. Due to complicated numerical nature of the fitting function and the computational cost of calculating values, need to be iteratively optimized by varying the different fitting parameters one after another.
WARNING: will take several minutes to evaluate even on 10 parallel kernels.
First optimize the third excited state.
Then optimize the second excited state.
And finally the first excited state.
Note that any ground-state threshold energy higher than a very low value of 19 eV will not affect the fitting at all, and thus is left out.
Plotting theoretical cross section values for N with optimal fit parameters; pre-calculating values first.

Relative uncertainties and statistics for b and n data

Calculating relative uncertainties for the experimental data.

Extrapolation of total cross sections for hBN damage to higher energies

Estimating the relative change in total uncertainty-weighted error due to change of ground-state threshold energy with respect to optimal fit values for B.
Estimating the relative change in total uncertainty-weighted error due to change of ground-state threshold energy with respect to optimal fit values for N.
Plotting extrapolated total cross sections for B and N with the above-estimated uncertainties.

CDFT threshold energies plot

CITE THIS NOTEBOOK

Cross sections for ionization-assisted electron knock-on damage of hBN​
by Thuy An Bui,* Gregor T. Leuthner, Jacob Madsen, Mohammad R. A. Monazam,Alexandru I. Chirita, Andreas Postl, Clemens Mangler, Jani Kotakoski, and Toma Susi​
Wolfram Community, STAFF PICKS, May 15, 2024
​https://community.wolfram.com/groups/-/m/t/3177018