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
RevLine 
[8ae8532]1.. currentmodule:: sasmodels
2.. Wim Bouwman, DUT, written at codecamp-V, Oct2016
3
4.. _SESANS:
5
6SANS to SESANS conversion
7=========================
8
9The conversion from SANS into SESANS in absolute units is a simple Hankel
10transformation when all the small-angle scattered neutrons are detected.
11First we calculate the Hankel transform including the absolute intensities by
12
13.. math:: G(\delta) = 2 \pi \int_0^{\infty} J_0(Q \delta) \frac{d \Sigma}{d \Omega} (Q) Q dQ \!,
14
15in which :math:`J_0` is the zeroth order Bessel function, :math:`\delta`
16the spin-echo length, :math:`Q` the wave vector transfer and :math:`\frac{d \Sigma}{d \Omega} (Q)`
[f0fc507]17the scattering cross section in absolute units.
18
19Out of necessity, a 1-dimensional numerical integral approximates the exact Hankel transform.
20The upper bound of the numerical integral is :math:`Q_{max}`, which is calculated from the wavelength and the instrument's maximum acceptance angle, both of which are included in the file.
21While 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.
22The lower bound of the integral is :math:`Q_{min} = 0.1 \times 2 \pi / R_{max}`, in which :math:`R_{max}` is the maximum length scale probed by the instrument multiplied by the number of data points.
23This lower bound is the minimum expected Q value for the given length scale multiplied by a constant.
24The constant, 0.1, was chosen empirically by integrating multiple curves and finding where the value at which the integral was stable.
25A 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.
26
27
28From the equation above we can calculate the polarisation that we measure in a SESANS experiment:
[8ae8532]29
30.. math:: P(\delta) = e^{t \left( \frac{ \lambda}{2 \pi} \right)^2 \left(G(\delta) - G(0) \right)} \!,
31
[f0fc507]32in which :math:`t` is the thickness of the sample and :math:`\lambda` is the wavelength of the neutrons.
[e46dde6]33
34Log Spaced SESANS
35-----------------
36
37For computational efficiency, the integral in the Hankel transform is
38converted into a Reimann sum
39
40
41.. math:: G(\delta) \approx
42          2 \pi
43          \sum_{Q=q_{min}}^{q_{max}} J_0(Q \delta)
44          \frac{d \Sigma}{d \Omega} (Q)
45          Q \Delta Q \!
46
47However, this model approximates more than is strictly necessary.
48Specifically, it is approximating the entire integral, when it is only
49the scattering function that cannot be handled analytically.  A better
50approximation might be
51
52.. math:: G(\delta) \approx
53          \sum_{n=0} 2 \pi \frac{d \Sigma}{d \Omega} (q_n)
54          \int_{q_n}^{q_{n+1}} J_0(Q \delta) Q dQ
55          =
56          \sum_{n=0} \frac{2 \pi}{\delta} \frac{d \Sigma}{d \Omega} (q_n)
57          (q_{n+1}J_1(q_{n+1} \delta) - q_{n}J_1(q_{n} \delta))\!,
58
59Assume that vectors :math:`q_n` and :math:`I_n` represent the q points
60and corresponding intensity data, respectively.  Further assume that
61:math:`\delta_m` and :math:`G_m` are the spin echo lengths and
62corresponding Hankel transform value.
63
64.. math:: G_m = H_{nm} I_n
65
66where
67
68.. math:: H_{nm} = \frac{2 \pi}{\delta_m}
69          (q_{n+1} J_1(q_{n+1} \delta_m) - q_n J_1(q_n \delta_m))
Note: See TracBrowser for help on using the repository browser.