15. APPENDIX II: Elastic Electron-Atom Scattering in Solids and Surface Slabs - User Guide

John Rundgren

KTH Royal Institute of Technology,

Theoretical Physics AlbaNova,

SE-10691 Stockholm,

Sweden

15.1. Acknowledgement notice

Please acknowledge use of the EEASiSSS package by citing the following:

J. Rundgren, Phys. Rev. B, 68, 125405 (2003).

J. Rundgren, Phys. Rev. B, 76, 195441 (2007).

15.2. Contact

John Rundgren: jru@kth.se

15.3. Overview

The EEASiSSS program is characterized by three features:

  1. Muffin-tin radii \(r_{MT}\) and charge content \(q_{MT}\) per MT sphere are calculated inside the program without any exterior start values.

  2. The inner potential is spatially flat. It gets an energy variation due to the use of Kohn-Sham and Hedin-Lundqvist local density approximation to the exchange-correlation interaction of incident-electron and crystal electron gas [1] [2] . In consequence \(r_{MT}\) and \(q_{MT}\) show weak energy variations.

  3. Coulomb potential and electron density are generated by superposition of free-atom potentials (default) or extracted from WIEN2k’s FLAPW program packet by means of an ASA routine [3] . FLAPW is full-potential linearized augmented plane wave; ASA is atomic sphere approximation.

WIEN2k is a licensed program packet and the ASA routine is WIEN2k property. Public use of ASA requires that the routine be acknowledged by the WIEN2k team.

The variation of the inner potential versus incident energy puts a particular programming condition on the LEED program applying EEASiSSS. Calculated phase shifts, describing electron scattering inside the crystal, are referred to the in-crystal energy:

\[E_{cryst} = E_{inc} - V_0(E_{inc})\]

Where \(E_{inc}\) is the incident energy.

EEASiSSS provides an interstitial energy file \(V_0(E)\) to be read-in by the LEED program. A selection math:V_0 = const is provided for LEED programs not equipped with \(E_{cryst}\) code.

K. Heinz et al. have shown by LEED experiment that the use of \(V_0(E)\) resolves structural parameters with precision 0.01 Angstroms [4] . Selection \(V_0(E)\) was the winner in an accuracy competition between various phase shift methods arranged by V.B. Nascimento et al. in a LEED investigation on the (001) surface of calcium strontium ruthenate [5] . Recently \(V_0(E)\) has been used in several complex LEED cases, for instance, magnetite [6] and polyaromatic trithiolate adsorbed on Cu(111) [7] .

The input data to an EEASiSSS calculation are illustrated by an input template on the GaAs(110)-(1x1) surface slab structure [8] .

15.4. EEASiSSS calculation

The EEASiSSS package performs the calculation of the phase shifts in two steps:

  1. The atomic charge densities of each element in the model is calculated using the Hartree-Fock method by the hf.py program using a variant of Eric Shirley’s hartfock() subroutine.

  2. The phase shifts are then calculated from the generated charge density files and an EEASiSSS input file describing the model geometry and calculation parameters.

Although these steps are taken care of automatically through the phsh script, two utility programs - hf.py and eeasisss.py, respectively - are installed as part of the phaseshifts package.

15.4.1. hf.py

A Python command line script is installed as part of the phaseshifts package which can be used to calculate atomic charge densities for different elements.

15.4.1.1. Syntax

The command line calling convention for the hf.py program is:

hf.py -i <input> [-a <chgden_dir> -o <log_file>]

The options are described below:

-i <input>

Specifies the path to the atomic orbital input file. Default is ‘./InputA’.

-a <chgden_dir>

Optional argument which specifies the output directory to place the calculated atomic charge density chgden* files into. If no argument is given, the ATLIB environment variable is used as the output directory, else ‘~/atlib’ path is used. Use ‘.’ for <chgden_dir> to place the output files into the current working directory.

-o <log_file>

Optionally redirects the calculation log to the file specified by <log_file>. The default is to print to stdout if the argument is omitted.

Note

The hf.py script should be installed on the system PATH and therefore executing the program using the absolute file path should not be needed.

An example input file can be found under examples/EEASiSSS/GaAs/inputA and covers the format of the atomic orbital input file.

The charge density output files for each element in the form: chgden<symbol>

15.4.2. eeasisss.py

15.4.2.1. Syntax

The eeasisss.py Python script can be called using the following syntax:

eeasisss.py -i <input> [-o <output_dir> -a <chgden_dir> -l <log_file>]

The command line options for calling the program are:

-i <input>

Specifies the path to the EEASiSSS model input file. A complete description of the format is given below. Default is ‘./inputX’.

-l <log_file>

Name of log file. Default is stdout if -l argument is not specified.

-o <output_dir>

path to log file, phase shifts, and selected intermediate files. Default is ‘./result/’.

-a <chgden_dir>

path to charge density files and to intermediate electrostatic MT charge file(s). Default, in order, is ATLIB environment variable, then the path given by ‘~/atlib/’.

15.5. EEASiSSS input

What follows is an example of EEASiSSS applied to GaAs(110)-(1x1) surface structure.

inputX
 1STRUCTURE:
 2GaAs110
 3$WIEN2kpath/GaAs110
 41.889726  |FactorDefiningBohrInside [1.889726, WhenUnitCell&PositionsAreIn(A)].
 5         3.997980   0.000000   0.000000
 6         0.000000   5.653998   0.000000
 7         0.000000   0.000000  15.610722
 812   |#IneqAt
 91 33  1  1  0.0,0.0,0.0 'y' |#EqAt,id(1:3),rMTmin,rMTmax,cls(eV),BmSel
10    0.000000   0.000000   0.000000 |x y z AtPos
111 31  2  8  0.0,0.0,0.0 'y'
12    1.998990   4.360516   0.686750
131 31  3 12  0.0,0.0,0.0 'y'
14    0.000000   1.193521   2.159887
151 33  4  2  0.0,0.0,0.0 'y'
16    1.998990   2.607020   2.189891
171 31  5 10  0.0,0.0,0.0 'y'
18    1.998990   4.020520   4.173879
191 33  6  3  0.0,0.0,0.0 'y'
20    0.000000   5.434019   4.173879
211 31  7  7  0.0,0.0,0.0 'y'
22    0.000000   1.193521   6.172869
231 33  8  4  0.0,0.0,0.0 'y'
24    1.998990   2.607020   6.172869
251 31  9  9  0.0,0.0,0.0 'y'
26    1.998990   4.020520   8.171859
271 33 10  5  0.0,0.0,0.0 'y'
28    0.000000   5.434019   8.171859
291 31 11 11  0.0,0.0,0.0 'y'
30    0.000000   1.193521  10.170849
311 33 12  6  0.0,0.0,0.0 'y'
32    1.998990   2.607020  10.170849
33OPTIONS:
34'S'  |VCoul :'S'=FreeAtomSuperpos/'W'=WIEN2k.
35'E'  |Vxc   :'E'=EnergyDependent V0(E)/'C'=constant V0.
36'n'  |VMadl : MadelungElectrostaticPotential? 'yes'/'no'.
37'D'  |MTrad :'D'=DEopt/'M'=MidptNNdist/'I'=IntersecNNpot.
38'n'  |SpinPS: print_SpinUp&DownPhaseShifts? 'yes'/no'.
39'nn' |print_RhoPot? 'yes'/'no' and 'yes'/'no' (ie=1 default).
40'n'  |print_WaveFunction? 'yes'/'no' (Einc fixed).
41'n'  |print_TotalCrossSection sigma? 'yes'/'no' (Einc varying).
42'n'  |print_log10(DsigmaDomega)? 'yes'/'no' (Einc fixed).
43'n'  |print_DsigmaDtheta? 'yes'/'no' (Einc fixed).
44'n'  |print_Sherman? 'yes'/'no' (Einc fixed).
452.,4.,2.    |energy grid: E1,E2,DE (start, end, mesh at start).
4606      |lmax
470.625d0 |rMTweight in interval (0.,1.), weight of rerr vs verr (see README).
480.075   |maximum verr (eV), accuracy of Vtot continuity at rMT(:).
49DIFFERENTIAL EVOLUTION METHOD:
501.d-06            | VTR (pot. step in eV).
519  0.8d0 0.5d0    | NPfac,F_XC,CR_XC
520  1  0           | method
532  0.8d0          | strategy,F_CR
5410000  0          | itermax,refresh

15.5.1. Comments on example input file

15.5.1.1. STRUCTURE Section

Line 1: Title of the surface structure; output files are named by the title following the designation convention of WIEN2k.

Line 2: Active with WIEN2k, path to charge-density and potential data.

Line 3: Factor defining length in Bohr units inside the program; it is 1.889726 when unit cell and atomic positions are given in Angstroms. Energy units inside are Rydbergs.

Line 4-6: Unit cell basis vectors a 1, a 2 and a 3, respectively, in Angstroms.

Line 7: nieq = number of inequivalent atoms.

Line 8: contains eight items, which are ordered as follows:

  1. neq = number of equivalent atoms (= 1 in the template);

  2. Z = atomic number (i.e. 31 for Ga, 33 for As);

  3. identification number of atom, consecutive i=1,nieq.

  4. When selection Vcoul=='S': 4th item not used, can be set to zero; When selection Vcoul=='W': identification number in WIEN2k calculation, i.e. the integer of a WIEN2k permutation with value i=1,nieq.

  5. \(r_{MT}^{min}\) = minimum \(r_{MT}\) used in MT radius optimization; default = 0 in the template corresponds to 0.5 Bohr inside.

  6. \(r_{MT}^{max}\) = maximum \(r_{MT}\) in muffin-tin radius optimization; default = 0 in the template corresponds to a value set by the charge density input.

  7. core level shift of atomic potential in eV.

  8. print this particular phase shift? 'yes'/'no'.

Note

Items 5, 6 and 7 are beta quantities that were provided for computer experiments with EEASiSSS.

Line 9: Atomic positions x,y,z of which x,y are parallel to surface plane and z increases with depth below surface. When neq on line 8 is > 1, line 9 is replaced by neq lines of atomic positions.

15.5.1.2. OPTIONS Section

Line 1: VCoul which can be either:
  • 'S' for Free Atom Superposition

  • 'W' for WIEN2k.

With 'S' atomic electron density and Coulomb potential are generated by superposition of free-atom charge densities. Selection 'W', extracts the charge densities from a WIEN2k calculation.

Line 2: Vxc which can be either:
  • 'E' for Energy Dependent \(V_0(E)\)

  • 'C' for constant \(V_0\).

With 'E' the exchange-correlation potential \(V_0(E)\) is calculated from Kohn-Sham theory via the Hedin-Lundqvist local density approximation; see figure README.V0vsE.ps. With 'C' the inner potential is put equal to \(V_0(E)\), \(E`=60 eV, although the phase shifts were calculated with energy :code:`E\) variable.

Line 3: VMadl - a flag for whether the Madelung potential is used and can be either code:’yes’/’no’. Selection code:’n’ corresponds to current LEED. Selection 'y' generates the Madelung (electrostatic) potential at a particular atom from the infinite collection of neighboring atoms.

The literature on electrostatic potentials is incomplete for LEED investigations; required is a theory for semi-crystals z > 0 and for various distributions of top-layer charges.

In EEASiSSS an improvised surface description is used, cf. comments in subroutine ProcRoySoc_ElectrostaticPotential. Selection VMadl='y' requires that selection VMadl='n' has been executed beforehand to produce charge content per MT sphere \(q_{MT}(E)\).

Line 4: MTrad has three options:
  • 'D' = DEopt

  • 'M' = MidptNNdist

  • 'I' = IntersecNNpot.

Selection 'D' is recommended: Differential Evolution method determines MT spheres from three conditions: that non-overlapping MT spheres are as large as possible; that MT potentials are continuous to a flat inner potential; and that all MT potentials are energy-shifted by the same amount.

Old-fashioned selections 'M' and 'I' are at user’s service: 'M' sizes MT spheres approximately to halve next-neighbour distance, and 'I' searches points on atom-to-atom lines where the next-neighbour potentials intersect.

Line 5: SpinPS option to print SpinPhaseShift? 'yes'/no'. With 'y' files are printed using designations .su. and .sd. for spin up and down, respectively. Relativistic spin-less phase shifts labelled .sl. are calculated from .su. and .sd. as linear averages with weights \(\frac{l+1}{2l+1}\) and \(\frac{l}{2l+1}\), respectively (\(l=0,1,2,...\)).

Line 12: Energy grid. The present program version uses a uniform energy grid of mesh 2 eV. By uncommenting lines in subroutine EnergyGrid one can create non-uniform grids getting gradually sparser at energies above a convenient limit, say, 80 eV.

Line 14: Selection of \(r_{MT}^{weight}\) .

Two errors are calculated, \(r_{err} = rms(g_{NN})\) and \(v_{err} = rms(V_{stp})\), from two concurrent quantities \(g_{NN}(:)\) = gap between next-neighbor MT spheres (in Bohr), \(V_{stp}(:)\) = discontinuity of potential at \(r_{MT}\) (in eV), where (:) symbolizes set of atoms, \(V_{tot}\) is total potential of MT sphere, and \(V_0\) is interstitial potential. Using rMTweight the errors are weighted together to a single fitness value guiding the optimization by the Differential Evolution method.

\[fitness = \sqrt{(r_{MT}^{weight} \times r_{err}^2) + (1 - r_{MT}^{weight})v_{err}^2}\]

where \(0 < r_{MT}^{weight} < 1\)

It is noted that fitness combines quantities of different units of measurement. The mix of units seems meaningful when \(v_{err}\) and \(r_{err}\) harmonize with the resolution of a LEED investigation in terms of voltage and interatomic distance.

Line 15: accuracy (in eV) of zeroth order potential continuity at MT sphere radius. Physically available and acceptable values of accuracy and \(r_{MT}^{weight}\) are studied in the log file.

15.5.1.3. DIFFERENTIAL EVOLUTION METHOD Section

Selection of parameters from reference: R. Storn and K. V. Price, J. Global Optimization 11, 341-59 (1997); http://www1.icsi.berkeley.edu/~storn/code.html.

NPfac and itermax have high or low values when the number of atoms is high or low; fitness and number of iterations are inspected in the EEASiSSS log.