Cold moderators in LEAPR
This is a follow up of #103 presented by @chlavell, and might be of interest to @ameliajo.
I tried to recreate the evaluation for solid methane in ENDF/B-VIII.0 using a current version of NJOY and the input in the manual. What you get for the inelastic scattering cross section is:
This is a long known problem with cold moderators: lower temperatures mean larger beta values, and smaller values of S(alpha,beta) at high energies that are not well calculated. A workaround is to raise smin to change the point in energy where SCT starts to take over. The result is this:
Although this is not ideal, as the important part for cold moderator is the interaction with cold neutrons, using SCT in the epithermal range is usually not an issue.
But, given that the evaluation in ENDF/B-VIII.0 was computed with NJOY (NJOY94 maybe?) it is clearly possible to do something better. I concluded that a combination of quad precision and a slight change in the bfact() subroutine of LEAPR to avoid dropping small values does the trick. I did not prepare a pull request with this because clearly quad precision is not a good default, but you can check out the changes here. This is the result:
On one hand, I think this is an issue of NJOY2016/NJOY21 because at least one input in the manual does not run correctly, but on the other this is probably not the right solution. Perhaps @ameliajo can give a more permanent solution, or use this evaluation as a benchmark. But in the mean time this might help as a guide for users trying to deal with cold moderators.
While not directly related to solid methane, I have come across a similar problem.
I’m trying to process the JEFF3.3 thermal scattering library for para-hydrogen, and I noticed that there was some odd behavior in the energy-differential cross section. For example, with Ei=1.16 eV, the energy-differential cross section exhibits an odd behavior:

Looking at the plot, from Ef=0-0.69 eV, the curve appears to be close to flat, indicating that it is in the short collision time regime. The curious thing is that there are defined S(alpha,beta) data points in that energy range that are ignored. Looking at the THERMR source file, there’s a flag sabflg defined on line 1545 of thermr.f which is used to say that, if S(alpha,beta) is less than this value (currently set at -225), to automatically assume short-collision-time calculations (instead of calculating the cross section from tabulated S(alpha,beta)). This might be a problem, since many data points in the JEFF3.3 evaluation of para-hydrogen are less than this value (the data is stored as natural log of S(alpha,beta)).
Is there a physical reason for there to have a cutoff at -225 (10^-225 in this case), or is it an artifact of an older version of NJOY?