Skip to content
Xiao Xiao Cai edited this page Jan 20, 2021 · 4 revisions

This is a general purpose small angle scattering plugin for NCrystal. The initial goal of this plugin is to take small angle scattering into account when simulating neutron transport in an isotropic sample. SasCSNS is planned to support some simple module functions(i.e. sphere, tube), as well as user provided I(Q) curves by the means of data points or closed-form expression. Notice that NCrystal describes scatterings at the atomistic level, hence the scattering cross section used in this model is in the unit of barn per atom, but not the commonly assumed barn per nano object.

This plugin treats ncrystal @CUSTOM_SASCSNS section, which describes uniformly distributed nano structures in a homogeneous solvent. Thus, the packing factor of the material should always be unity. Config string will be rejected if "packfact" is specified to a value other than 1.0. For powder samples, the "solvent" can be defined as materials of free-gass dynamics (ie. ambient air).

The scattering of interest is defined as

Numerically, SasCSNS calculates the integral cross section

Because

For isotropic elastic scattering, the integral cross section is reduced to

Rejection sampling method is applied to the I(Q) curve to sample the momentum transfer of a scattering. In such a method, only the shape of curve affects the distribution. (see https:// doi.org/10.1016/j.jcp.2018.11.043)

If indicent energy exceeds the upper bound of the I(Q) curve, the curve will be padded with zeros to extend the range. This approximation is valid when the upper limit Q is a few Aa^-1, where the integral of this scattering process is weak (see equation above), and neutron is more sensitive to atomic scale structure.

Clone this wiki locally