Skip to content

Announcement Release3.1.0

Thomas Kittelmann edited this page Jun 29, 2022 · 4 revisions

NCrystal v3.1.0 : Some love for UCN/VCN neutron production!

This release focuses on those inelastic scattering events that almost bring the neutron to rest, and which are in particular important for UCN/VCN (ultra/very cold neutron) production in neutron moderators.

The work on the release was supported by the European Union’s Horizon 2020 research and innovation programme under grant agreement No 951782 (the HighNESS project).

1 General improvements in inelastic scattering kernel sampling.

Despite the improved sampling algorithms developed for NCrystal (cf. https://doi.org/10.1016/j.jcp.2018.11.043), some edge-cases still exist where the sampling algorithms introduce a few modelling artifacts, in the name of sampling speed. One of these edge-cases concerns sampling of scattering events near the kinematic end-point where the scattering cause the neutron to lose almost all of its energy. Although further improvements are still be possible (cf. issue #40), issues related to production of UCN/VCN neutrons are much reduced in this new release - as can be seen in the following comparison of long-wavelength tails in the spectrum of 5Å neutrons scattered in a superfluid He4 kernel (kernel courtesy of Douglas Di Julio, ESS):

2 Dedicated UCN/VCN production process.

One practical challenge facing in particular UCN moderator design studies is that only a tiny fraction of scattered neutrons will normally be left with an energy at the desired UCN scale. Thus, in order to get sufficient statistics while keeping computational requirements reasonable, it is necessary to employ some sort of biasing or variance reduction scheme. The new NCrystal release facilitates this, by making it possible to split a scattering process into two: a down-scatter-to-UCN-regime process and a process with the rest of the physics, by respectively appending ";comp=inelas;ucnmode=only" and ";ucnmode=remove" to a given cfg-string. Furthermore, the dedicated UCN process is implemented with a special improved model which is believed to be completely free of any modelling artifacts. A new configuration parameter, ucnmode is used to control this UCN process split-up (cf. CfgRefDoc for details). Note that in order to divide neutrons into UCN and non-UCN regimes, the code also needs the definition of a UCN threshold energy. If not set explicitly, this will default to 300neV (~522Å).

As an example, the UCN process cross sections in superfluid He4 are shown in the following plot for 3 different values of the UCN threshold. These cross sections are the result of careful integrations over all relevant part of the S(α,β) kernel, but as a cross-check the UCN cross section based on a simplified λS(λ) model is also shown (this simple λS(λ) model estimates the cross-section by evaluating S only at the kinematic endpoint where the neutron exactly looses all energy, and will be exact only in the limit of vanishing UCN threshold):

3 Other changes.

In order to properly implement and validate the work described above, several internal utilities were added related to S(α,β) kernels. This includes code for easily evaluating S(α,β) kernels at any (α,β) point, as well as utilities for what is essentially exact S(α,β)-sampling or S(α,β)-integration for cross sections. These utilities are useful as they allow us to validate scattering kernel models better, are used directly in the new UCN-production models, and will hopefully facilitate future improvements. A few other minor changes were added in the release as well, as detailed in the CHANGELOG