XICSRT: Photon based raytracing in Python¶
XICSRT is a general purpose, photon based, raytracing code intended for both optical and x-ray raytracing.
The best way to get started with XICSRT is with the
XICSRT provides a simple, extensible, optical and x-ray raytracing capability in Python. Input is a single python dictionary (which can be saved to a json file), output is a python dictionary (which can be saved to a hdf5 file).
For interactive use XICSRT can run within a jupyter notebook. Simple examples for 2D and 3D plotting using the matplotlib and plotly libraries are included. A command line interface to XICSRT is also available.
XICSRT has been written with a primary goal of simplicity and ease of extensibility, rather than computational speed. That being said the code has been thoroughly vectorized and optimized, and most expensive calculations are performed through built-in numpy routines. Use across multiple processors can be achieved though the built-in multiprocessing capabilities.
Documentation of XICSRT is still in progress. Please get involved and help us improve the documentation!
XICSRT can be simply installed using pip
pip install xicsrt
Alternatively you can install from source using setuptools
python setup.py install
XICSRT is run by supplying a config dictionary to raytrace().
results = xicsrt.raytrace(config)
If you use XICSRT for work leading to a publication, please use the following citation:
N. A. Pablant, M. Bitter, P. C. Efthimion, L. Gao, K. W. Hill, B. F. Kraus, J. Kring, M. J. MacDonald, N. Ose, Y. Ping, M. B. Schneider, S. Stoupin, and Y. Yakusevitch, “Design and expected performance of a variable-radii sinusoidal spiral x-ray spectrometer for the National Ignition Facility”, Review of Scientific Instruments 92, 093904 (2021) https://doi.org/10.1063/5.0054329
A list of publications relating to XICSRT can be found at the List of Publications page.