+
Skip to content

jhuang97/fastssb

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

16 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

GPU-accelerated single side-band ptychography

Python code to calculate a phase image from the bright field disk of atomic resolution 4D-STEM data using the single side-band method.

Acknowledgements

Philipp Pelz authored the original GPU-accelerated single side-band code with post-processing aberration correction (Github repo, paper). Peter Ercius helped me to understand and use this code.

I built upon this foundation by reorganizing the code, rewriting the data pre-processing part, and changing the aberration correction user interface somewhat.

Features

  • Fast: The code takes less than a minute to import and preprocess a 4D-STEM data set, and less than 10 seconds (on my computer at least) to compute a single side-band reconstruction.
  • I've written pre-processing code to support data from both the EMPAD and the 4D Camera from NCEM (see the provided Jupyter notebooks).
  • Post-processing aberration correction. You can manually correct for defocus in your 4D-STEM data, allowing for you to quickly check your defocused 4D-STEM data sets. (Can also manually correct for geometric aberrations up to 3rd order.)
  • Plots slices of $G(K_f, Q_p)$, which may let you better understand the probe aberrations in your 4D data set.

Limitations

  • You have to manually put in experimental parameters like convergence angle, probe step size, etc.
  • Limitations of single side-band ptychography: Assumes a weak phase object. Spatial resolution is limited by convergence angle; it can be a bit better than ADF-STEM but is not as good as iterative, full-field ptychography.
  • Though the crop_bin_sparse_to_dense function uses less GPU memory, it still requires a lot of RAM (10s of GB for some 4D Camera scans) -- there is room for improvement here.

Requirements

  • Needs a Nvidia GPU and CUDA installed.

Installation

  1. Install cupy. The command you need to run likely depends on the version of CUDA you have, e.g.,
pip install cupy-cuda117

for CUDA v11.7.
2. Install ipywidgets.
3. Install this package using pip. Open a terminal in this folder, and run

pip install .

or

pip install -e .

This should automatically install this code as a Python package, along with all dependencies not already listed.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published
点击 这是indexloc提供的php浏览器服务,不要输入任何密码和下载