Software:Sassena
| Developer(s) | Benjamin Lindner, Jeremy C. Smith, and contributors |
|---|---|
| Initial release | 2012 |
| Stable release | 1.9.4
/ January 30, 2026 |
| Written in | C++ |
| Operating system | Unix-like |
| Type | Computational chemistry |
| License | GPL v3 |
| Website | https://codebase.helmholtz.cloud/DAPHNE4NFDI/sassena |
Sassena is a free and open-source software for computing neutron and X-ray scattering intensities from molecular dynamics (MD) simulation trajectories. Sassena is designed to scale on massively parallel computing architectures, and supports both solution scattering and crystalline diffraction as well as static and dynamic scattering functions.[1]
History
Sassena was created by Benjamin Lindner and Jeremy C. Smith at the Oak Ridge National Laboratory (ORNL) and the University of Tennessee. Its name is derived from the precursor programs SASSIM and SERENA (SASS-ENA).[2]
Early development is recorded in the Git log since 2009; the first version tag is v0.1.0 from 2010. Version 1.4 was documented in a Computer Physics Communications paper from 2012.[2] Lindner described the theoretical and computational foundations in detail in his doctoral thesis at the University of Tennessee the same year.[3]
In 2016/17, a fork was created at ORNL, and a number of patches applied.[4] In January 2023 the project was migrated to a GitLab instance of the Helmholtz Association.[5] A 2024 study by Majumdar, Müller, and Busch reported significant performance improvements and introduced a new finite-size correction method (Q-clean),[6][7] implemented as Sassena version v1.4.3. Further clean-up and modernization of the code base coincided with a version number jump to 1.9.0 in July 2024.[5] Documentation is maintained at Read the Docs.[1]
Features
Sassena reads MD trajectories in standard formats (XTC, TRR, DCD) together with a structure file (PDB) and a user-supplied XML configuration file. Output is written in HDF5 format.
The software computes:
- Coherent and incoherent X-ray and neutron scattering amplitudes and intensities
- Wide-angle X-ray scattering (WAXS)
- Small-angle scattering (SAS) in solution
- Bragg diffraction (crystal geometry)
- Inelastic X-ray scattering (IXS)
- Intermediate scattering functions I(Q,τ), Fourier transforms of the dynamic structure factors S(Q,ω)
- Elastic incoherent structure factors (EISF)
Two calculation modes are provided:
- all (coherent) scattering, in which data are partitioned by trajectory frame;
- self (incoherent) scattering, in which data are partitioned by atom.
Powder averaging over the orientation of the scattering vector Q is performed by a Monte Carlo sampling scheme. Atomic X-ray form factors and neutron scattering lengths are read from a built-in database.
Finite-size correction
Because MD simulation boxes are small compared with real samples, a spurious small-angle signal appears in naïvely computed diffractograms (finite-size effect). Sassena offers two correction methods: the original r-clean approach, which subtracts the average scattering-length density of the solvent in real space (but distorts the wide-angle pattern), and the newer Q-clean method introduced in 2024, which subtracts the scattering amplitude of a homogeneous cuboid in reciprocal space and leaves the wide-angle region undistorted.[6]
Implementation and performance
Sassena is written in C++ and uses OpenMPI for distributed-memory parallelisation and OpenMP for shared-memory (thread-level) parallelisation, enabling hybrid MPI/OpenMP execution.
The original 2012 release demonstrated near-linear scaling to 7000 cores on the Jaguar Cray XT5 petaflop supercomputer at Oak Ridge National Laboratory.[2] The 2024 revision introduced SIMD vectorisation (Intel compiler and Math Kernel Library), achieving an approximately eightfold single-core speedup for coherent scattering and a twofold speedup for incoherent scattering relative to the GNU-compiled original; the OpenMP implementation was added to complement the existing MPI parallelism.[6]
Related software
Sassena is typically used to post-process MD simulations performed with software like GROMACS or LAMMPS.
An alternative to Sassena is the Python-based software MDANSE (successor of nMoldyn), which offers broader functionality but is not optimized for speed and scalability to the same degree.
References
- ↑ 1.0 1.1 Sassene documentation. Readthedocs. https://sassena.readthedocs.io Retrieved 2026-05-06.
- ↑ 2.0 2.1 2.2 Lindner, B.; Smith, J. C. (2012). "Sassena — X-ray and neutron scattering calculated from molecular dynamics trajectories using massively parallel computers". Computer Physics Communications. 183 (7): 1491–1501. doi:10.1016/j.cpc.2012.02.010
- ↑ Lindner, B. (2012). Towards a Unification of Supercomputing, Molecular Dynamics Simulation and Experimental Neutron and X-ray Scattering Techniques. Ph.D. thesis, University of Tennessee, Knoxville, TN. https://trace.tennessee.edu/utk_graddiss/1589
- ↑ camm/sassena. GitHub. https://github.com/camm/sassena Retrieved 2026-05-06.
- ↑ 5.0 5.1 DAPHNE4NFDI/sassena. Helmholtz GitLab. https://codebase.helmholtz.cloud/DAPHNE4NFDI/sassena Retrieved 2026-05-06.
- ↑ 6.0 6.1 6.2 Majumdar, A.; Müller, M.; Busch, S. (2024). "Computation of X-ray and Neutron Scattering Patterns to Benchmark Atomistic Simulations against Experiments". International Journal of Molecular Sciences. 25 (3): 1547. doi:10.3390/ijms25031547
- ↑ Majumdar, A. (2026). Investigation of the loading and unloading process in a hydrogen storage material based on the complementary use of simulations and neutron scattering measurements.. Ph.D. thesis, Christian-Albrechts-Universität zu Kiel, Germany. https://nbn-resolving.org/urn:nbn:de:gbv:8:3-2026-00229-3
