-
Notifications
You must be signed in to change notification settings - Fork 18
Included physics
The physics modelled by NCrystal will depend on both the input file and the values of optional parameters in a given configuration string (more about configuration strings here).
NCrystal includes both coherent and incoherent elastic physics, and all elastic models are discussed in great detail in the dedicated publication: https://doi.org/10.1016/j.cpc.2021.108082 .
NCrystal treats the valid Bragg diffractions on each reflection plane in a crystalline sample explicitly.
First, at material initialisation time, NCrystal calculates the list of relevant reflection planes (a.k.a. hkl-planes) and their associated structure factors (when using NCMAT files as input, other input sources might use pre-calculated lists of hkl-planes). The structure factor calculations are based on isotropic atomic displacements, with Debye-Waller factors (i.e. mean-squared-displacement values) derived from phonon density curves if available (otherwise falling back to estimating them from Debye temperatures).
Depending on configuration, the material is then modelled either as a powder, a single crystal with ideal Gaussian mosaicity, or a layered single crystal also with Gaussian mosaicities (for e.g. pyrolythic graphite). Care is taken to implement everything in a mathematically consistent manner, so effects like back-scattering or rocking curve asymmetries in the case of high mosaicities are included, and likewise the total scattering cross sections do not miss any contribution at short wavelengths.
As of NCrystal v2.0.0, the cross-sections and angular dependencies of incoherent elastic scatterings are modelled in a consistent manner using the same Debye-Waller factor model as the one used for Bragg diffraction. Specifically, the incoherent elastic scattering is based on eq. 23 of the NCrystal paper.
NCrystal release v3.0.0 introduced framework support for SANS physics. Included in the v3.0.0 release is only a single actual SANS model (hardspheres), but it is the hope that more models will be added in a later release. More details about the current support can be found on the Announcement-Release3.0.0 page.
As of NCrystal v2.0.0, inelastic scattering in NCrystal is implemented via scattering kernels in the context of the incoherent approximation [3]. Such scattering kernels can be either provided directly in the .ncmat files (typically converted from preexiting kernels in e.g. ENDF format), or the .ncmat files might instead just contain smaller 1D phonon Density Of States (DOS) curves in which case NCrystal will expand them to full-blown scattering kernels at initialisation time (the cost of this is typically just a few milliseconds). Finally, in the absence of any relevant input data, NCrystal will fall-back to using a Debye Model phonon DOS curve, which is then also expanded to a full-blown scattering kernel at runtime.
For more details and plots, refer to the Announcement-Release2.0.0 page.
We have yet to publish a detailed publication concerning all aspects of the inelastic models in NCrystal, but we have published details about our novel scattering kernel sampling method: https://doi.org/10.1016/j.jcp.2018.11.043 .
Starting with NCrystal v3.0.0, it is straight forward to set up multiphase materials in NCrystal. For details, see the Announcement-Release3.0.0 page. Additionally, it has since release v2.1.0 been possible to modify the exact atomic definitions by specifying isotopic composition or overriding atomic scattering lengths and cross sections. For details, see the Announcement-Release2.1.0 page.
NCrystal is mostly concerned with scattering of thermal neutrons, but for usage in e.g. McStas where it is not possible to provide just parts of the cross section, simple absorption cross sections are also available. This is implemented in terms of the 1/v model, which is fortunately usually rather accurate at thermal neutron energies.
Home
Get NCrystal
Using NCrystal
Data library
Cfg string parameters
Included physics
NCMAT format
Plugins (how to use)
Plugins (how to develop)
Release 2.0.0 announcement
Release 2.1.0 announcement
Release 2.5.0 announcement
Release 2.7.0 announcement
Release 3.0.0 announcement
Release 3.1.0 announcement
Release 3.2.0 announcement
About
Contact