Elastic neutron scattering models for NCrystal
The NCrystal library provides a range of models for simulation of both elastic and inelastic scattering of thermal neutrons in a range of material structures. This article presents the available models for elastic scattering, and includes detailed discussion of their theoretical background, their implementation, and in particular their validation. The lineup includes a model for Bragg diffraction in crystal powders as well as one for incoherent elastic scattering, but the main focus is given to models of Bragg diffraction in ideally imperfect single crystals: both for the most widely applicable model of isotropic Gaussian mosaicity, and for a more specific model of layered single crystals which is relevant for materials such as pyrolytic graphite. Although these single crystal models are utilising computationally efficient approximations where appropriate, attention is given to the provision of precise and trustworthy results also for the extreme cases of back-scattering, forward-scattering, and crystals with very large mosaic spreads. Together with NCrystal's other features for crystal structure initialisation and inelastic physics, the presented models enable realistic modelling of components at neutron scattering instruments in frameworks like Geant4 and McStas, including monochromators, analysers, filters, support materials, shielding, and many kinds of samples. As a byproduct of the work, an improved formula for approximating cross sections in isotropic single crystals with Gaussian mosaicity is provided.