Dynamical calculation (common core)¶
ReciPro's diffraction and imaging simulators share a common Bloch-wave (Bethe) dynamical-scattering core, described on this page (crystal potential, Debye–Waller and absorption terms, the eigenvalue problem, transmission coefficients, and intensities). The method-specific protocols build on this core:
For the underlying theory (Schrödinger equation, Bloch's theorem, Bethe's dynamical equation, the eigenvalue problem, and the Ewald-sphere definitions), see Appendix A2. Dynamical Diffraction by the Bloch-Wave Method.
Constants¶
- \(\gamma\) : relativistic correction factor; \(E\) : accelerating voltage; \(m_0\), \(m\) : rest and relativistic electron mass.
- \(\Omega\) : unit-cell volume.
- \(k_{vac}\) : wavenumber of the electron in vacuum.
Crystal potential for elastic scattering¶
The Fourier coefficient of the crystal potential for elastic scattering, summed over the atoms \(k\) at positions \(\mathbf r_k\), is
where the atomic scattering factor uses a Gaussian parameterisation \((a_i, b_i)\),
and \(T_k\) is the Debye–Waller (temperature) factor. For an isotropic temperature factor \(M_k\),
and for an anisotropic atomic displacement tensor \(\mathbf U\),
with the quadratic form
The Cartesian components of \(\mathbf g\) are obtained from the reciprocal basis vectors and the Miller indices:
Note
The \(U_{\mathbf g}\) values shown in the diffraction simulator's Details table are the raw values before the relativistic factor \(\gamma\) is applied.
Absorptive potential (thermal diffuse scattering)¶
The imaginary (absorption) potential that accounts for thermal diffuse scattering (TDS) is
with the absorptive scattering factor
Here \(h\) in the prefactor \(2h/(\beta m_0 c)\) is Planck's constant (not a beam index). The \(U^{C}\) and \(U'\) coefficients are the entries of the structure matrix \(\mathbf A\) in Appendix A2.
From the eigensolution to the diffracted intensity¶
Diagonalising the structure matrix (see Appendix A2) gives the eigenvalues \(\lambda^{(j)}\) and the Bloch-wave amplitudes \(C_{\mathbf g}^{(j)}\). The wave amplitudes on the exit surface — the transmission coefficients \(T_{\mathbf g}\) — at specimen thickness \(t\) are
or, component by component,
- \(\alpha^{(j)}\) : the weighting (excitation) coefficients of each Bloch wave, fixed by the boundary condition at the entrance surface.
- \(t\) : specimen thickness.
The diffracted intensity of beam \(\mathbf g\) is then
Parallel-Beam SAED Calculation¶
Ordinary SAED (selected-area electron diffraction) is treated as parallel-beam diffraction with a single incident direction. Unlike CBED, it does not scan many \(\mathbf K\) points inside a convergent aperture. The current crystal orientation and accelerating voltage define one incident wavevector \(\mathbf k_0\), and ReciPro evaluates the position and intensity of each reflection \(\mathbf g\) for that condition.
The calculation can be organised as follows.
- Use the crystal orientation, accelerating voltage, wavelength, camera length, and detector geometry to define the vacuum incident wavevector \(\mathbf k_{vac}\) and the detector plane.
- Apply the refraction correction from the mean inner potential \(U_0\) and obtain the crystal reference wavevector \(\mathbf k_0\).
- Enumerate candidate reciprocal-lattice vectors \(\mathbf g\) and evaluate their distance from the Ewald sphere through quantities such as \(Q_g=|\mathbf k_0|^2-|\mathbf k_0+\mathbf g|^2\) and the excitation error \(S_g\).
- Calculate the intensity of each reflection using the selected intensity mode.
- Project the direction of \(\mathbf k_0+\mathbf g\) onto the detector plane and draw it as a diffraction spot.
ReciPro's SAED mode mainly offers the following intensity models.
| Mode | Calculation | Typical use |
|---|---|---|
| Only excitation error | Estimates intensity only from how close the reflection is to the Ewald sphere. Structure factors are not used. | Fast checks of spot positions and zone-axis geometry. |
| Kinematical + excitation error | Uses \(\lvert F_{\mathbf g}\rvert^2\) together with excitation-error damping. Multiple scattering is not included. | Thin specimens, weak diffraction, and extinction-rule checks. |
| Dynamical theory | Uses the Bloch-wave core on this page to obtain \(T_{\mathbf g}(t)\) and sets \(I_{\mathbf g}=\lvert T_{\mathbf g}\rvert^2\). | Thickness dependence, multiple scattering, and strong electron-diffraction reflections. |
The reciprocal-lattice-point display modes, such as solid-sphere cross sections and Gaussian spots, mainly control the drawing profile. In dynamical-theory mode, the physical reflection intensity is determined by the Bloch-wave value \(|T_{\mathbf g}|^2\), and that intensity is then assigned to the chosen display profile.
PED can be viewed as integrating this parallel-beam SAED calculation over precession directions, while CBED can be viewed as arranging many incident directions inside diffraction disks.
Mean inner potential and refraction¶
When the electron enters the crystal from vacuum, the mean inner potential \(U_0\) slightly changes the reference wavevector inside the crystal. The component parallel to the surface is fixed by the boundary condition, so the vacuum wavevector \(\mathbf k_{vac}\) and the crystal reference wavevector \(\mathbf k_0\) can be written as
where \(x\) is the correction along the surface normal. It is obtained from
This refracted \(\mathbf k_0\) is used when evaluating \(P_g\), \(Q_g\), excitation errors, and the structure matrix \(\mathbf A\) in the overview page. The absorptive potential also has a \(\mathbf g=\mathbf 0\) component, \(U'_0\), which acts as a common mean attenuation for waves propagating through the crystal.
Beam Selection¶
The Bloch-wave calculation cannot include infinitely many reciprocal-lattice vectors, so ReciPro selects a finite beam set \(\{\mathbf g\}\). The ranking quantity is
and beams with smaller \(R_{\mathbf g}\) are included first. This favours beams with short reciprocal-lattice vectors that are also close to the Ewald sphere.
In practical calculations, it is important to check how much the intensity or image changes as the maximum number of Bloch waves is increased. Strong zone-axis conditions and CBED patterns with HOLZ-line detail can require several hundred beams, while off-zone conditions may converge with fewer beams.
Solver Choice¶
After the finite beam set is chosen, ReciPro mainly uses two equivalent ways to obtain the transmission coefficients.
| Method | Feature | Typical use |
|---|---|---|
| Eigenvalue method | Diagonalises the structure matrix \(\mathbf A\) and obtains the eigenvalues \(\lambda^{(j)}\) and eigenvectors \(C_{\mathbf g}^{(j)}\). Thickness dependence is then evaluated through \(e^{2\pi i\lambda^{(j)}t}\). | Thickness series, CBED, and EBSD calculations that scan many depths or energies |
| Matrix-exponential method | Directly evaluates the scattering matrix \(\exp(2\pi i\mathbf A t)\) without explicitly using an eigendecomposition. | Single-thickness STEM calculations and slice-integrated calculations |
Both methods solve the same Bethe equation. In the implementation, the code chooses among the eigenvalue method, the matrix-exponential method, managed .NET routines, and the native Eigen library according to the number of beams, the thickness array, and whether the native library is available.
Convergence Checks¶
For dynamical calculations, checking that the basis is large enough is as important as the formula itself. A useful diagnostic is the relative change when the beam count is increased from \(N-\Delta N\) to \(N\):
For STEM, check this together with the detector-angle setting. For CBED, inspect the disk interiors and HOLZ lines. For EBSD, also compare the Kikuchi-band widths and background in the master pattern. This connects numerical convergence with the physical features visible in the simulated result.