source: sasmodels/doc/guide/sesans/sans_to_sesans.rst @ e46dde6

Last change on this file since e46dde6 was e46dde6, checked in by Adam Washington <adam.washington@…>, 6 years ago

Start writing up log_sesans theory

  • Property mode set to 100644
File size: 3.1 KB

SANS to SESANS conversion

?
.. currentmodule:: sasmodels

The conversion from SANS into SESANS in absolute units is a simple Hankel transformation when all the small-angle scattered neutrons are detected. First we calculate the Hankel transform including the absolute intensities by

G(δ) = 2π0J0(Qδ)(dΣ)/(dΩ)(Q)QdQ, 

in which J0 is the zeroth order Bessel function, δ the spin-echo length, Q the wave vector transfer and (dΣ)/(dΩ)(Q) the scattering cross section in absolute units.

Out of necessity, a 1-dimensional numerical integral approximates the exact Hankel transform. The upper bound of the numerical integral is Qmax , which is calculated from the wavelength and the instrument's maximum acceptance angle, both of which are included in the file. While the true Hankel transform has a lower bound of zero, most scattering models are undefined at :math: Q=0, so the integral requires an effective lower bound. The lower bound of the integral is Qmin = 0.1 × 2π ⁄ Rmax , in which Rmax is the maximum length scale probed by the instrument multiplied by the number of data points. This lower bound is the minimum expected Q value for the given length scale multiplied by a constant. The constant, 0.1, was chosen empirically by integrating multiple curves and finding where the value at which the integral was stable. A constant value of 0.3 gave numerical stability to the integral, so a factor of three safety margin was included to give the final value of 0.1.

From the equation above we can calculate the polarisation that we measure in a SESANS experiment:

P(δ) = et(λ)/(2π)2(G(δ) − G(0)), 

in which t is the thickness of the sample and λ is the wavelength of the neutrons.

Log Spaced SESANS

For computational efficiency, the integral in the Hankel transform is converted into a Reimann sum

G(δ) ≈ 2πqmaxQ = qminJ0(Qδ)(dΣ)/(dΩ)(Q)QΔQ

However, this model approximates more than is strictly necessary. Specifically, it is approximating the entire integral, when it is only the scattering function that cannot be handled analytically. A better approximation might be

G(δ) ≈ n = 02π(dΣ)/(dΩ)(qn)qn + 1qnJ0(Qδ)QdQ = n = 0(2π)/(δ)(dΣ)/(dΩ)(qn)(qn + 1J1(qn + 1δ) − qnJ1(qnδ)), 

Assume that vectors qn and In represent the q points and corresponding intensity data, respectively. Further assume that δm and Gm are the spin echo lengths and corresponding Hankel transform value.

Gm = HnmIn

where

Hnm = (2π)/(δm)(qn + 1J1(qn + 1δm) − qnJ1(qnδm))
Note: See TracBrowser for help on using the repository browser.