Skip to content

Commit

Permalink
Added specimen figure to post-processing.
Browse files Browse the repository at this point in the history
  • Loading branch information
TomaSusi committed Jul 27, 2024
1 parent ace1ecd commit 755645e
Show file tree
Hide file tree
Showing 4 changed files with 20 additions and 21 deletions.
12 changes: 10 additions & 2 deletions 10_post.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,19 +10,27 @@ STEM simulations usually requires some post-processing, we apply some of the mos

Scanning imaging modes such as STEM works by rastering an electron probe across a sample pixel by pixel and recording the scattering signal. The computational cost of the simulation is directly proportional to the number of scan pixels, each requiring a separate multislice simulation.

For periodic speciments, even though the potential needs to be large enough to fit the probe, there is no need to scan over repated unit cells as tiliing afterwards can yield the same result. For the post-processing examples below, we use an STO-LTO heterointerface as a specimen, as shown below in [](#fig_stem_specimen).

```{figure} #app:stem_specimen
:name: fig_stem_specimen
:placeholder: ./static/stem_specimen.png
A SrTiO<sub>3</sub>/LaTiO<sub>3</sub> (STO/LTO) interface model.
```

### Interpolation
We can save a lot of computational effort by scanning at the Nyquist frequency [insert reference], but the result is quite pixelated. To address this, we can interpolate the images to a sampling of 0.05 Å. *ab*TEM’s default interpolation algorithm is Fourier-space padding, but spline interpolation is also available, which is more appropriate if the image in non-periodic.

### Blurring
A finite Gaussian-shaped source will result in a blurring of the image. Vibrations and other instabilities may further contribute to the blur. We apply a Gaussian blur with a standard deviation of $0.35 \ \mathrm{Å}$ (corresponding to a source of approximately that size). Note that correctly including spatial and temporal incoherence is a bit more complicated and may be necessary for quantitative comparisons with experiment.

### Noise
Simulations correspond to the limit of infinite electron dose. We can emulate finite dose by drawing random numbers from a Poisson distribution for every pixel. We apply Poisson noise corresponding a dose per area of $10^4 \ \mathrm{e}^- / \mathrm{Å}^2$.
Simulations correspond to the limit of infinite electron dose. We can emulate finite dose by drawing random numbers from a Poisson distribution for every pixel. We apply Poisson noise corresponding a dose per area of $10^5 \ \mathrm{e}^- / \mathrm{Å}^2$.

The different STEM post-processing steps can be explored in [](#fig_stem_processing).

```{figure} #app:stem_processing
:name: fig_stem_processing
:placeholder: ./static/stem_processing.png
Using the slider observe how different post-processing steps affect the scanned bright-field, medium-angle, and high-angle annular dark-field images of an STO-LTO heterostructure.
Using the slider observe how different post-processing steps affect the scanned bright-field, medium-angle, and high-angle annular dark-field images of an STO/LTO heterostructure.
```
10 changes: 5 additions & 5 deletions notebooks/STEM_post_processing.ipynb
Original file line number Diff line number Diff line change
Expand Up @@ -14,21 +14,21 @@
},
{
"cell_type": "code",
"execution_count": 539,
"execution_count": 540,
"id": "744695c6-083f-486e-a6fb-7cb959c49637",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"[########################################] | 100% Completed | 105.27 ms\n"
"[########################################] | 100% Completed | 104.34 ms\n"
]
},
{
"data": {
"application/vnd.jupyter.widget-view+json": {
"model_id": "2b16c11e61c44e29b18a0949f497d544",
"model_id": "873e219d1106426a9c3c5bc5ed1771cb",
"version_major": 2,
"version_minor": 0
},
Expand All @@ -42,10 +42,10 @@
{
"data": {
"text/plain": [
"<abtem.visualize.visualizations.Visualization at 0x30a22b320>"
"<abtem.visualize.visualizations.Visualization at 0x30a3a1430>"
]
},
"execution_count": 539,
"execution_count": 540,
"metadata": {},
"output_type": "execute_result"
}
Expand Down
19 changes: 5 additions & 14 deletions notebooks/STEM_post_processing_calculation.ipynb
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@
},
{
"cell_type": "code",
"execution_count": 4,
"execution_count": 34,
"id": "744695c6-083f-486e-a6fb-7cb959c49637",
"metadata": {},
"outputs": [],
Expand All @@ -36,19 +36,10 @@
},
{
"cell_type": "code",
"execution_count": 5,
"execution_count": 35,
"id": "79901d04-645e-45c3-a9f8-f48a0d9a3c98",
"metadata": {},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"/Users/tomasusi/miniforge3/envs/guide-tem-simulation/lib/python3.12/site-packages/ase/io/cif.py:834: UserWarning: Occupancies present but no occupancy info for \"{symbol}\"\n",
" warnings.warn(str(err))\n"
]
}
],
"outputs": [],
"source": [
"sto_lto = repeated_srtio3.copy()\n",
"\n",
Expand All @@ -63,14 +54,14 @@
},
{
"cell_type": "code",
"execution_count": 6,
"execution_count": 36,
"id": "0782c824-d93f-413d-885b-d755ecc45b6c",
"metadata": {},
"outputs": [
{
"data": {
"application/vnd.jupyter.widget-view+json": {
"model_id": "d208904bd1b34205a7efeffa8101c119",
"model_id": "a3e2b09fad854dddbbccaa480054137f",
"version_major": 2,
"version_minor": 0
},
Expand Down
Binary file added static/stem_specimen.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.

0 comments on commit 755645e

Please sign in to comment.