Open ndisner opened 3 years ago
I think the problem is in the padinterp
function, defined here. This seems to be returning the last value of the cross section, even for energies past the upper bound of the cross section data.
In the Phelps dataset, the "effective" cross section is defined for energies that exceed the upper bound of the ionization cross section. This leads to the case where the artificially constant ionization cross section is being subtracted from the exponentially decreasing effective cross section. Which inevitably leads to negative values for the estimate of the elastic cross section.
It seems like changing the extrapolation method used in padinterp
would probably solve this issue. But I'm not sure what the best extrapolation method would be.
When loading in the Phelps cross section data set for molecular nitrogen the parser informs the user that
After subtracting INELASTIC from EFFECTIVE, target N2 has negative cross-section.
There is an instance where this operation takes place and calls a functionpadinterp
where the function interpolates the data but there are additional elements that are being added to the cross section, and am curious if this could be the root of the negative cross section. Any information on why a negative cross section is occurring would be great, has anyone tested the Phelps total cross sections?