Contents

Multislice Algorithm

Armed with our numerical scattering potentials (the “object”) and our incident electron wavefunction (the “probe”), we are now ready to simulate our STEM measurements.

In this section we will introduce the most popular way of simulating electron scattering experiments, the multislice method, introduced by Cowley & Moodie (1957). In Bloch Wave Algorithm, we introduce an alternative approach better suited for periodic calculations of small unit-cells.

Scaled Schrödinger equation

Our starting point is the time-independent Schrödinger equation introduced in Scattering Potentials:

[22m2r2+V(r)]ψ(r)=Eψ(r), \left[-\frac{\hbar^{2}}{2 m} \frac{\partial^{2}}{\partial \bm{r}^{2}}+V(\bm{r})\right] \psi(\bm{r}) = E\psi(\bm{r}),

where recall V(r)V(\bm{r}) is the crystal potential and EE is the energy of the electron wavefunction ψ(r)\psi(\bm{r}).

In the quantum-mechanical wave picture above, we define the De Broglie wavelength (Matter wave) of relativistic free electrons as

λ(U0)=hceU0(2mc2+eU0),\lambda(U_0) = \frac{h c}{\sqrt{e U_0 \left(2 m c^2 + e U_0 \right)}},

where hh is the Planck constant, cc is the Speed of light, ee is the Elementary charge of electrons, and U0U_0 is the accelerating voltage of our microscope’s electron gun.

Source:Multislice Algorithm
energies = np.linspace(20e3,300e3,128)
wavelengths = abtem.core.units.energy2wavelength(energies)

with plt.ioff():
    fig,ax = plt.subplots(figsize=(6,4))
ax.plot(energies/1e3,wavelengths*1e3,color='red')
ax.set(
    xlabel=r"accelerating voltage, $U_0$ [kV]",
    ylabel=r"relativistic electron wavelength, $\lambda$ [pm]"
)
fig.tight_layout()
fig
<Figure size 600x400 with 1 Axes>

This allows us to define the electron-potential interaction parameter:

σ(U0)=2πmeλ(U0)h2,\sigma(U_0) = \frac{2\pi \,m\, e\, \lambda(U_0)}{h^2},

and express (3.2) as:

[2+4π2k02]ψ(r)=4π2σV(r)ψ(r),\left[\nabla^2 + 4 \pi^2 k_0^2 \right]\psi(\bm{r}) = -4\pi^2 \sigma V(\bm{r})\psi(\bm{r}),

where we have introduced the in-plane electron wavevector, k0=1/λ(U0)k_0 = 1/ \lambda(U_0). Note this has an implicit dependence on the accelerating voltage, which we omit for notational convenience.

Multislice assumptions

To proceed, the multislice method makes two assumptions:

  • The 2/z2\partial^2 / \partial z^2 term in the Laplacian can be neglected, since the wavefunction variation along the beam direction (z-axis) is much lower than the in-plane variation
  • The in-plane wavevector k0k_0 is much larger than the in-plane variations of the wavefunction, i.e. k0x,y2k_0 \gg \left| \nabla^2_{x,y}\right|

Using these assumptions (5.3) can be simplified further to highlight the separation in timescales between the axial and in-plane components Kirkland, 2020:

zψ(r)=iλ(U0)4πx,y2ψ(r)+iσV(r)ψ(r).\frac{\partial}{\partial z} \psi(\bm{r}) = \frac{i \lambda(U_0)}{4\pi} \nabla^2_{x,y} \psi(\bm{r}) + i \sigma V(\bm{r}) \psi(\bm{r}).

Equation (5.4) outlines the numerical scheme we will use to solve it. Namely, for a wavefunction ψn\psi_n at a specific depth inside the sample, znz_n, we can evaluate the operators on the right-hand side over a distance Δz\Delta z to calculate a new wavefunction ψn(r)\psi_n^{\prime}(\bm{r}) at position zn+Δzz_n + \Delta z.

For small Δz\Delta z, the solution to (5.4) is given by Kirkland, 2020:

ψn(r)=exp[iλ(U0)4πΔzx,y2+iσVnΔz(r)]ψn(r),\psi_n^{\prime}(\bm{r}) = \mathrm{exp} \left[\frac{i \lambda(U_0)}{4 \pi}\Delta z \nabla^2_{x,y} + i \sigma V_n^{\Delta z}(\bm{r}) \right] \psi_n (\bm{r}),

where

VnΔz(r)=znzn+ΔzV(r)dz,V_n^{\Delta z}(\bm{r}) = \int_{z_n}^{z_n + \Delta z} V(\bm{r}) dz,

is one slice of the numerical-grid representation of our scattering potential we described in Scattering Potentials.

Split-step Solution

Unfortunately, the two operators in (5.5) don’t commute with one another, so a closed-form solution is out of reach. Instead, the multislice method solves (5.5) numerically, by alternating between solving each of the two operators independently.

Transmission Operator

Assuming an infinitesimally thin potential slice, we can drop the x,y2\nabla^2_{x,y} term in (5.5) to obtain the solution Kirkland, 2020:

ψn(r)=exp[iσ(U0)VnΔz(r)]ψn(r)tn(r)ψn(r),\begin{align} \psi_n^{\prime}(\bm{r}) & = \mathrm{exp} \left[i\, \sigma(U_0)\, V_n^{\Delta z}(\bm{r}) \right] \psi_n(\bm{r}) \\ & \equiv t_n(\bm{r}) \psi_n(\bm{r}), \end{align}

where we have defined the transmission operator, tn(r)t_n(\bm{r}). Intuitively, this can be understood as the electron wavefunction acquiring a positive phase-shift proportional to the scattering potential in a particular slice.

Propagation Operator

In the next half-step, we need to propagate the electron wavefunction from one slice to the next using (5.5). Setting the space between the slices empty, V(r)=0V(\bm{r})=0, and Taylor expanding, we obtain:

ψn+1(r)=exp[iλ(U0)Δz4πx,y2]ψn(r)=[m=0(iλ(U0)Δz4π)m2mψn(r)x2m][l=0(iλ(U0)Δz4π)l2lψn(r)y2l].\begin{align} \psi_{n+1}(\bm{r}) & = \mathrm{exp} \left[ \frac{\mathrm{i\, \lambda(U_0) \Delta z}}{4 \pi} \nabla^2_{x,y} \right] \psi_n^{\prime}(\bm{r}) \\ & = \left[ \sum_{m=0}^{\infty}\left(\frac{\mathrm{i}\,\lambda(U_0) \Delta z}{4 \pi}\right)^m \frac{\partial^{2m} \psi_{n}^{\prime}(\bm{r})}{\partial x^{2m}} \right] \left[ \sum_{l=0}^{\infty}\left(\frac{\mathrm{i}\,\lambda(U_0) \Delta z}{4 \pi}\right)^l \frac{\partial^{2l} \psi_{n}^{\prime}(\bm{r})}{\partial y^{2l}} \right]. \end{align}

Equation (5.8) simplifies further when expressed in Fourier space, Ψn+1(k)=Frk[ψn+1(r)]\Psi_{n+1}(\bm{k}) = \mathcal{F}_{\bm{r}\rightarrow \bm{k}} \left[ \psi_{n+1}(\bm{r}) \right]:

Ψn+1(k)=[m=0(iπλ(U0)Δzkx2)m][l=0(iπλ(U0)Δzky2)l]=exp(iπλ(U0)Δzkx2)exp(iπλ(U0)Δzky2)Ψn(k)=exp(iπλ(U0)Δzk2)Ψn(k)PΔz(k)Ψn(k),\begin{align} \Psi_{n+1}(\bm{k}) & = \left[ \sum_{m=0}^{\infty} \left(- \mathrm{i}\,\pi \lambda(U_0) \Delta z k^2_x \right)^m \right] \left[ \sum_{l=0}^{\infty} \left(- \mathrm{i}\,\pi \lambda(U_0) \Delta z k^2_y \right)^l \right] \\ & = \mathrm{exp}\left(-\mathrm{i}\,\pi \lambda(U_0) \Delta z k^2_x\right) \mathrm{exp}\left(-\mathrm{i}\,\pi \lambda(U_0) \Delta z k^2_y\right) \Psi_{n}^{\prime}(\bm{k}) \\ & = \mathrm{exp}\left(-\mathrm{i}\,\pi \lambda(U_0) \Delta z \left|k\right|^2\right) \Psi_{n}^{\prime}(\bm{k}) \\ & \equiv \mathcal{P}_{\Delta z}(\bm{k}) \Psi_{n}^{\prime}(\bm{k}), \end{align}

where we have defined the Fresnel propagator, PΔz(k)\mathcal{P}_{\Delta z}(\bm{k}).

Iterative Fourier Implementation

The two propagators can be combined efficiently using the convolution property of the Fourier transform to obtain:

ψn+1(r)=Fkr1[PΔz(k)Frk[tn(r)ψn(r)]]Mnψn(r),\begin{align} \psi_{n+1}(\bm{r}) & = \mathcal{F}_{\bm{k}\rightarrow \bm{r}}^{-1} \left[ \mathcal{P}_{\Delta z}(\bm{k}) \mathcal{F}_{\bm{r} \rightarrow \bm{k}} \left[ t_n(\bm{r}) \psi_{n}(\bm{r}) \right] \right] \\ & \equiv \mathcal{M}_n \psi_n(\bm{r}), \end{align}

where we have defined the multislice operator, Mn\mathcal{M}_n. Equation (5.10) can be applied iteratively until all the potential slices have been traversed, to return the exit wavefunction ψN(r)\psi_N(\bm{r}):

ψN(r)=MN1MN2M0ψ0(r).\psi_{N}(\bm{r}) = \mathcal{M}_{N-1} \mathcal{M}_{N-2} \dots \mathcal{M}_0 \psi_0(\bm{r}).

Figure 5.1 illustrates the above equations interactively, illustrating the effect of each operator separately. Click somewhere on the potential to position the incoming electron wavefunction, and use the buttons to transmit/propagate the wavefunction through the potential.

Source:Multislice Algorithm
References
  1. Cowley, J. M., & Moodie, A. F. (1957). The scattering of electrons by atoms and crystals. I. A new theoretical approach. Acta Crystallographica, 10(10), 609–619. 10.1107/s0365110x57002194
  2. Kirkland, E. J. (2020). Advanced Computing in Electron Microscopy. Springer International Publishing. 10.1007/978-3-030-33260-0
Colin Ophus Lab | StanfordColin Ophus Lab | Stanford
Understanding materials, atom by atom — Colin Ophus Lab
Lab Group Website by Curvenote