Multislice
The multislice algorithm is a method for the simulation of the interaction of an electron beam with matter, including all multiple elastic scattering effects. The method is reviewed in the book by Cowley.[1] The algorithm is used in the simulation of high resolution Transmission electron microscopy micrographs, and serves as a useful tool for analyzing experimental images.[2] Here we describe relevant background information, the theoretical basis of the technique, approximations used, and several software packages that implement this technique. Moreover, we delineate some of the advantages and limitations of the technique and important considerations that need to be taken into account for real-world use.
Background
The multislice method has found wide application in electron crystallography. The mapping from a crystal structure to its image or diffraction pattern has been relatively well understood and documented. However, the reverse mapping from electron micrograph images to the crystal structure is generally more complicated. The fact that the images are two-dimensional projections of three-dimensional crystal structure makes it tedious to compare these projections to all plausible crystal structures. Hence, the use of numerical techniques in simulating results for different crystal structure is integral to the field of electron microscopy and crystallography. Several software packages exist to simulate electron micrographs.
There are two widely used simulation techniques that exist in literature: the Bloch wave method, derived from Hans Bethe's original theoretical treatment of the Davisson-Germer experiment, and the multislice method. In this paper, we will primarily focus on the multislice method for simulation of diffraction patterns, including multiple elastic scattering effects. Most of the packages that exist implement the multislice algorithm along with Fourier analysis to incorporate electron lens aberration effects to determine electron microscope image and address aspects such as phase contrast and diffraction contrast. For electron microscope samples in the form of a thin crystalline slab in the transmission geometry, the aim of these software packages is to provide a map of the crystal potential, however this inversion process is greatly complicated by the presence of multiple elastic scattering.
The first description of what is now known as the multislice theory was given in the classic paper by Cowley and Moodie .[3] In this work, the authors describe scattering of electrons using a physical optics approach without invoking quantum mechanical arguments. Many other derivations of these iterative equations have since been given using alternative methods, such as Greens functions, differential equations, scattering matrices or path integral methods.
A summary of the development of a computer algorithm from the multislice theory of Cowley and Moodie for numerical computation was reported by Goodman and Moodie.[4] They also discussed in detail the relationship of the multislice to the other formulations. Specifically, using Zassenhaus's theorem, this paper gives the mathematical path from multislice to 1. Schroedingers equation (derived from the multislice), 2. Darwin's differential equations, widely used for diffraction contrast TEM image simulations - the Howie-Whelan equations derived from the multislice. 3. Sturkey's scattering matrix method. 4. the free-space propagation case, 5. The phase grating approximation, 6. A new "thick-phase grating" approximation, which has never been used, 7. Moodie's polynomial expression for multiple scattering, 8. The Feynman path-integral formulation, and 9. relationship of multislice to the Born series. The relationship between algorithms is summarized in Section 5.11 of Spence (2013),[5] (see Figure 5.9).
Theory
The form of multislice algorithm presented here has been adapted from Peng, Dudarev and Whelan 2003.[6] The multislice algorithm is an approach to solving the Schrödinger wave equation:
In 1957, Cowley and Moodie [3] showed that the Schrödinger equation can be solved analytically to evaluate the amplitudes of diffracted beam. Subsequently, the effects of dynamical diffraction can be calculated and the resulting simulated image will exhibit good similarities with the actual image taken from a microscope under dynamical conditions. Furthermore, the multislice algorithm does not make any assumption about the periodicity of the structure, as a result this method can be used to simulate HREM images of aperiodic systems as well.
The following section will include a mathematical formulation of the Multislice algorithm. The Schrödinger equation can also be represented in the form of incident and scattered wave as:
where is the Green’s function that represents the amplitude of the electron wave function at a point due to a source at point .
Hence for an incident plane wave of the form the Schrödinger equation can be written as:
We then choose the coordinate axis in such a way that the incident beam hits the sample at (0,0,0) in the -direction. Now we consider wave-function with a modulation function for the amplitude of the wave-function. Hence, the modulation function can be represented as:
Now we make substitutions with regards to the coordinate system we have adhered.
where, is the wavelength of the electrons with energy
So far we have set up the mathematical formulation of wave mechanics without addressing the scattering in the material. The interaction constant is defined as
Further we also need to address the transverse spread which is done in terms of Fresnel propagation function
In multislice simulation the thickness of each slice over which the iteration is performed is usually small and as a result within a slice the potential field can be approximated to be constant . Subsequently, the modulation function can be represented as:
We can therefore represent the modulation function in the next slice
where, * represents convolution, and defines the transmission function of the slice.
Hence, the iterative application of the aforementioned procedure will provide a full interpretation of the sample in context. Further, it should be reiterated that no assumptions have been made on the periodicity of the sample apart from assuming that the potential is uniform within the slice. As a result, it is evident that this method in principle will work for any system. However, for aperiodic systems in which the potential will vary rapidly along the beam direction, the slice thickness has to be significantly small and hence will result in higher computational expense.
Data Points | N | Discrete FT | Fast FT | Ratio |
---|---|---|---|---|
64 | 6 | 4,096 | 384 | 10.7 |
128 | 7 | 16,384 | 896 | 18.3 |
256 | 8 | 65,536 | 2,048 | 32 |
512 | 9 | 262,144 | 4,608 | 56.9 |
1,024 | 10 | 1,048,576 | 10,240 | 102.4 |
2,048 | 11 | 4,194,304 | 22,528 | 186.2 |
Practical Considerations
The basic premise is to calculate diffraction from each layer of atoms using Fast Fourier Transforms (FFT) and multiplying each by a phase grating term. The wave is then multiplied by a propagator, inverse Fourier Transformed, multiplied by a phase grating term yet again, and the process is repeated. The use of FFTs allows a significant computational advantage over the Bloch Wave method in particular, since the FFT algorithm involves steps compared to the diagonalization problem of the Bloch wave solution which scales as where is the number of atoms in the system. (See Table 1 for comparison of computational time).
The most important step in performing a multislice calculation is setting up the unit cell and determining an appropriate slice thickness. In general, the unit cell used for simulating images will be different from the unit cell that defines the crystal structure of a particular material. The primary reason for this due to aliasing effects which occur due wraparound errors in FFT calculations. The requirement to add additional “padding” to the unit cell has earned the nomenclature “super cell” and the requirement to add these additional pixels to the basic unit cell comes at a computational price.
To illustrate the effect of choosing a slice thickness that is too thin, let us consider a simple example. The Fresnel propagator describes the propagation of electron waves in the z direction (the direction of the incident beam) in a solid:
Where is the reciprocal lattice coordinate, z is the depth in the sample, and lambda is the wavelength of the electron wave (related to the wave vector by the relation ). Figure [fig:SliceThickness] shows vector diagram of the wave-fronts being diffracted by the atomic planes in the sample. In the case of the small-angle approximation ( 100 mRad) we can approximate the phase shift as . For 100 mRad the error is on the order of 0.5% since . For small angles this approximation holds regardless of how many slices there are, although choosing a greater than the lattice parameter (or half the lattice parameter in the case of perovskites) for a multislice simulation would result in missing atoms that should be in the crystal potential.
Additional practical concerns are how to effectively include effects such as inelastic and diffuse scattering, quantized excitations (e.g. plasmons, phonons, excitons), etc. There was one code that took these things into consideration through a coherence function approach [7] called Yet Another Multislice (YAMS), but the code is no longer available either for download or purchase.
Available Software
There are several software packages available to perform multislice simulations of images. Among these is NCEMSS, NUMIS, MacTempas, and Kirkland . Other programs exist but unfortunately many have not been maintained (e.g. SHRLI81 by Mike O’Keefe of Lawrence Berkeley National Lab and Cerius2 of Accerlys). A brief chronology of multislice codes is given in Table 2, although this is by no means exhaustive.
Code Name | Author | Year Released |
---|---|---|
SHRLI | O’Keefe | 1978 |
TEMPAS | Kilaas | 1987 |
NUMIS | Marks | 1987 |
NCEMSS | O’Keefe & Kilaas | 1988 |
MacTEMPAS | Kilaas | 1978 |
TEMSIM | Kirland | 1988 |
HREMResearch | Ishizuka | 2001 |
JEMS | Stadelmann | 2004 |
JMULTIS | Zuo | 1990 |
ACEM/JCSTEM
This software is developed by Professor Earl Kirkland of Cornell University. This code is freely available as an interactive Java applet and as standalone code written in C/C++. The Java applet is ideal for a quick introduction and simulations under a basic incoherent linear imaging approximation. The ACEM code accompanies an excellent text of the same name by Kirkland which describes the background theory and computational techniques for simulating electron micrographs (including multislice) in detail. The main C/C++ routines use a command line interface (CLI) for automated batching of many simulation. The ACEM package also includes a graphical user interface that is more appropriate for beginners. The atomic scattering factors in ACEM are accurately characterized by a 12-parameter fit of Gaussians and Lorentzians to relativistic Hartree–Fock calculations. http://people.ccmr.cornell.edu/~kirkland/
NCEMSS
This package was released from the National Center for High Resolution Electron Microscopy. This program uses a mouse-drive graphical user interface and is written by Dr. Roar Kilaas and Dr. Mike O’Keefe of Lawrence Berkeley National Laboratory. While the code is no longer developed, the program is available through the Electron Direct Methods (EDM) package written by Professor Laurence Marks of Northwestern University. Debye-Waller factors can be included in as a parameter to account for diffuse scattering, although the accuracy is unclear (i.e. a good guess of the Debye-Waller factor is needed).
http://www.numis.northwestern.edu/edm/
NUMIS
The Northwestern University Multislice and Imaging System (NUMIS) is a package is written by Professor Laurence Marks of Northwestern University. It uses a command line interface (CLI) and is based in UNIX. A structure file must be provided as input in order to run use this code, which makes it ideal for advanced users. The NUMIS multislice programs use the conventional multislice algorithm by calculating the wavefunction of electrons at the bottom of a crystal and simulating the image taking into account various instrument-specific parameters including and convergence. This program is good to use if one already has structure files for a material that have been used in other calculations (for example, Density Functional Theory). These structure files can be used to general X-Ray structure factors which are then used as input for the PTBV routine in NUMIS. Microscope parameters can be changed through the MICROVB routine.
http://www.numis.northwestern.edu/ourwiki/index.php/Multislice
MacTempas
This software is specifically developed to run in Mac OS X by Dr. Roar Kilaas of Lawrence Berkeley National Laboratory. It is designed to have a user-friendly user interface and has been well-maintained relative to many other codes (last update May 2013). It is available (for a fee) from http://www.totalresolution.com.
JMULTIS
This is a software for multislice simulation was written in FORTRAN 77 by Dr. J. M. Zuo, while he was a postdoc research fellow at Arizona State University under the guidance of Prof. John C. H. Spence. The source code was published in the book of Electron Microdiffraction.[8] A comparison between multislice and Bloch wave simulations for ZnTe was also published in the book. A separate comparison between several multislice algorithms at the year of 2000 was reported in [9]
QSTEM: Quantitative TEM/STEM Simulations
Electron and Ion Microscopy, written by Professor Christopher Koch of Ulm University in Germany. Allows simulation of HAADF, ADF, ABF-STEM, as well as conventional TEM and CBED. The executable and source code is available as a free download at the Koch group website: http://elim.physik.uni-ulm.de/?page_id=834
STEM-CELL
This is a code written by Dr Vincenzo Grillo of the Institute for Nanoscience (CNR) in Italy. This code is essentially a graphical frontend to the multislice code written by Kirkland, with more additional features. These include tools to generate complex crystalline structures, simulate HAADF images and model the STEM probe, as well as modeling of strain in materials. Tools for image analysis (e.g. GPA) and filtering are also available. The code is updated quite often with new features and a user mailing list is maintained. Freely available at http://tem-s3.nano.cnr.it/?page_id=2
DR. PROBE
Multi-slice image simulations for high-resolution scanning and coherent imaging transmission electron microscopy written by Dr. Juri Barthel from the Ernst Ruska-Centre at the Jülich Research Centre. The software comprises a graphical user interface version for direct visualization of STEM image calculations, as well as a bundle of command-line modules for more comprehensive calculation tasks. The programs have been written using Visual C++, Fortran 90, and Perl. Executable binaries for Microsoft Windows 32-bit and 64-bit operating systems are available for free from the website: http://www.er-c.org/barthel/drprobe/
References
- ↑ John M. Cowley (1995). Diffraction Physics, 3rd Ed. North Holland Publishing Company.
- ↑ Dr. Earl J. Kirkland. Advanced Computing in Electron Microscopy.
- 1 2 J. M. Cowley and A. F. Moodie (1957). Acta Crystallographica. 10. Missing or empty
|title=
(help) - ↑ P. Goodman and A. F. Moodie, Acta Crystallogr. 1974, A30, 280
- ↑ John C. H. Spence (2013). High-Resolution Electron Microscopy, 4th Ed. Oxford University Press.
- ↑ L. M. Peng, S. L. Dudarev and M. J. Whelan (2003). High-Energy Electron Diffraction and Microscopy. Oxford Science Publications.
- ↑ Heiko Muller (2000). A Coherence Function Approach to Image Simulation (Ph.D.). Vom Fachbereich Physik Technischen Universitat Darmstadt.
- ↑ Electron Microdiffraction, J.C. H. Spence and J. M. Zuo, Plenum, New York, 1992
- ↑ Koch, C. and J.M. Zuo, “Comparison of multislicecomputer programs for electron scattering simulations and the Bloch wavemethod”, Microscopy and Microanalysis,Vol. 6 Suppl. 2, 126-127, (2000).
- ↑ Willams, D.B; Carter, C. B. (1996). Transmission Electron Microscopy. 1 - Basics. Plenum Press. ISBN 0-306-45324-X.
External links
- Multislice source code (with tutorial) available under the GNU General Public Licence