CyRSoXS  1.1.5.0
GPU Accelerated RSoXS Simulator
Welcome to CyRSoXS

Introduction

CyRSoXS is a GPU-accelerated codebase that calculates resonant X-ray scattering in the Born Approximation. It takes a voxel-based model and optical constants as input, and returns simulated X-ray scattering patterns. These models can be derived from real space measurements (AFM, TEM, 4DSTEM), or synthetically generated using procedural morphology generators. Currently, the code can run on multiple GPUs on a single node and it supports both single- and double-precision floating point operations. A speedup of up to two orders of magnitude is observed as compared to the previous state-of-the-art Igor-based RSoXS simulator.

This core C++/CUDA simulation engine is used in the NIST RSoXS Simulation Suite (NRSS), which includes additional Python code for creating, simulating, and analyzing RSoXS. For more information on NRSS, please see the documentation. For more information on what RSoXS is and how you can possible apply it in your own research, check out the NIST RSOXS project page.

Dependencies

The code has following dependencies:

Limitations

The current version of the code assumes that the complete data fits in GPU memory.

Contributors

This software was developed at Iowa State University in collaboration with NIST. The Iowa State team provided expertise in high performance computing, and the NIST team provided scientific expertise on the RSoXS technique.

Iowa State University

NIST

Acknowledgement

We thank ONR MURI Center for Self-Assembled Organic Electronics for providing support for this work.