An open API service indexing awesome lists of open source software.

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

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 `.