https://github.com/s-sajid-ali/multislice
Multislice codes for simulating xray propogation. Uses pyFFTW and numexpr for efficinecy
https://github.com/s-sajid-ali/multislice
multislice synchrotron xray
Last synced: 3 months ago
JSON representation
Multislice codes for simulating xray propogation. Uses pyFFTW and numexpr for efficinecy
- Host: GitHub
- URL: https://github.com/s-sajid-ali/multislice
- Owner: s-sajid-ali
- License: mit
- Created: 2017-08-22T19:08:45.000Z (almost 9 years ago)
- Default Branch: main
- Last Pushed: 2020-06-16T01:21:27.000Z (about 6 years ago)
- Last Synced: 2025-03-13T22:43:52.217Z (over 1 year ago)
- Topics: multislice, synchrotron, xray
- Language: Jupyter Notebook
- Homepage:
- Size: 1.72 MB
- Stars: 2
- Watchers: 0
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
## Multislice
Multislice wave propagation in Python.
#### Contents
* `prop.py` - propogation routines including Transfer Function, Single Fourer Transform, Fraunhofer, Impulse Response
* propTF - Transfer function propogator
* prop1FT - Single fourier transform propogator
* propFF - Fraunhofer propogator
* propIR - Impulse Response propogator
* `prop_utils.py` - utilities for multilsice propogation
* modify - modify the wavefront by the material
* modify_two_materials_case_1, modify_two_materials_case_2 - mixing two materials
* decide - Decide which propogator to use
* number_of_steps - Compute the number of steps to be used for propogation within an object.
* plot_2d_complex - Plot the wavefront
* optic_illumination - Utility function that takes an input wavefront and optic and produces the focal spot.
* `fft_utils.py` - pyfftw wrapper (numpy.fft can be used as well)
* FFT2 - 2D fft
* IFFT2 - 2D ifft
* `wisdom.pickle` - file containing pre planned wisdom to elimnate the need for planning at runtime
#### Installation :
Clone the directory via git clone and run `pip install .`. Note that this project uses [flit](https://github.com/takluyver/flit/) as it's build system.
#### Testing
The tests folder has ipython notebooks which compare the results with [this](https://github.com/mdw771/xdesign/blob/master/tests/test_tube_particles.py) test case. Additional tests evaluate the performance of ffts.
#### Credits
This work is based on `Multislice does it all : calculating the performance of nanofocusing x-ray optics, Optics Express, vol. 25, 2017 `.