source: sasmodels/doc/guide/orientation/orientation.rst @ 7e6bc45e

core_shell_microgelsmagnetic_modelticket-1257-vesicle-productticket_1156ticket_1265_superballticket_822_more_unit_tests
Last change on this file since 7e6bc45e was 7e6bc45e, checked in by Paul Kienzle <pkienzle@…>, 6 years ago

update orientation docs

  • Property mode set to 100644
File size: 8.8 KB
RevLine 
[da5536f]1.. _orientation:
2
3Oriented particles
4==================
5
[7e6bc45e]6With two dimensional small angle diffraction data sasmodels will calculate
[e964ab1]7scattering from oriented particles, applicable for example to shear flow
8or orientation in a magnetic field.
[da5536f]9
[3d40839]10In general we first need to define the reference orientation
[7e6bc45e]11of the particle's $a$-$b$-$c$ axes with respect to the incoming
12neutron or X-ray beam. This is done using three angles: $\theta$ and $\phi$
13define the orientation of the $c$-axis of the particle, and angle $\Psi$ is
14defined as the orientation of the major axis of the particle cross section
15with respect to its starting position along the beam direction (or
16equivalently, as rotation about the $c$ axis). There is an unavoidable
17ambiguity when $c$ is aligned with $z$ in that $\phi$ and $\Psi$ both
18serve to rotate the particle about $c$, but this symmetry is destroyed
19when $\theta$ is not a multiple of 180.
20
21The figures below are for an elliptical cross section cylinder, but may
22be applied analogously to other shapes of particle.
[da5536f]23
24.. note::
[e964ab1]25    It is very important to note that these angles, in particular $\theta$
26    and $\phi$, are NOT in general the same as the $\theta$ and $\phi$
27    appearing in equations for the scattering form factor which gives the
28    scattered intensity or indeed in the equation for scattering vector $Q$.
29    The $\theta$ rotation must be applied before the $\phi$ rotation, else
30    there is an ambiguity.
[da5536f]31
32.. figure::
33    orient_img/elliptical_cylinder_angle_definition.png
34
[e964ab1]35    Definition of angles for oriented elliptical cylinder, where axis_ratio
[7e6bc45e]36    b/a is shown >1. Note that rotation $\theta$, initially in the $x$-$z$
[3d40839]37    plane, is carried out first, then rotation $\phi$ about the $z$-axis,
[e964ab1]38    finally rotation $\Psi$ is around the axis of the cylinder. The neutron
[7e6bc45e]39    or X-ray beam is along the $-z$ axis.
[da5536f]40
41.. figure::
42    orient_img/elliptical_cylinder_angle_projection.png
43
[e964ab1]44    Some examples of the orientation angles for an elliptical cylinder,
45    with $\Psi$ = 0.
[da5536f]46
[7e6bc45e]47Having established the mean direction of the particle (the view) we can then
48apply angular orientation distributions (jitter). This is done by a numerical
49integration over a range of angles in a similar way to particle size
50dispersity. The orientation dispersity is defined with respect to the
51$a$-$b$-$c$ axes of the particle, with roll angle $\Psi$ about the $c$-axis,
52yaw angle $\theta$ about the $b$-axis and pitch angle $\phi$ about the
53$a$-axis.
54
55More formally, starting with axes $a$-$b$-$c$ of the particle aligned
56with axes $x$-$y$-$z$ of the laboratory frame, the orientation dispersity
57is applied first, using the
58`Tait-Bryan <https://en.wikipedia.org/wiki/Euler_angles#Conventions_2>`_
59$x$-$y'$-$z''$ convention with angles $\Delta\phi$-$\Delta\theta$-$\Delta\Psi$.
60The reference orientation then follows, using the
61`Euler angles <https://en.wikipedia.org/wiki/Euler_angles#Conventions>`_
62$z$-$y'$-$z''$ with angles $\phi$-$\theta$-$\Psi$.  This is implemented
63using rotation matrices as
64
65.. math::
66
67    R = R_z(\phi)\, R_y(\theta)\, R_z(\Psi)\,
68        R_x(\Delta\phi)\, R_y(\Delta\theta)\, R_z(\Delta\Psi)
69
70To transform detector $(q_x, q_y)$ values into $(q_a, q_b, q_c)$ for the
71shape in its canonical orientation, use
72
73.. math::
74
75    [q_a, q_b, q_c]^T = R^{-1} \, [q_x, q_y, 0]^T
76
77
78The inverse rotation is easily calculated by rotating the opposite directions
79in the reverse order, so
80
81.. math::
82
83    R^{-1} = R_z(-\Delta\Psi)\, R_y(-\Delta\theta)\, R_x(-\Delta\phi)\,
84             R_z(-\Psi)\, R_y(-\theta)\, R_z(-\phi)
85
[da5536f]86
[3d40839]87The $\theta$ and $\phi$ orientation parameters for the cylinder only appear
[7e6bc45e]88when fitting 2d data. On introducing "Orientation Distribution" in the
89angles, "distribution of theta" and "distribution of phi" parameters will
[e964ab1]90appear. These are actually rotations about the axes $\delta_1$ and $\delta_2$
[7e6bc45e]91of the cylinder, which correspond to the $b$ and $a$ axes of the cylinder
92cross section. (When $\theta = \phi = 0$ these are parallel to the $Y$ and
93$X$ axes of the instrument.) The third orientation distribution, in $\Psi$,
94is about the $c$ axis of the particle. Some experimentation may be required
95to understand the 2d patterns fully. A number of different shapes of
96distribution are available, as described for size dispersity, see
97:ref:`polydispersityhelp`.
98
99Given that the angular dispersion distribution is defined in cartesian space,
100over a cube defined by
101
102.. math::
103
104    [-\Delta \theta, \Delta \theta] \times
105    [-\Delta \phi, \Delta \phi] \times
106    [-\Delta \Psi, \Delta \Psi]
107
108but the orientation is defined over a sphere, we are left with a
109`map projection <https://en.wikipedia.org/wiki/List_of_map_projections>`_
110problem, with different tradeoffs depending on how values in $\Delta\theta$
111and $\Delta\phi$ are translated into latitude/longitude on the sphere.
112
113Sasmodels is using the *equirectangular* projection. In this projection,
114square patches in angular dispersity become wedge-shaped patches on the
115sphere. To correct for the changing point density, there is a scale factor of
116$\sin(\Delta\theta)$ that applies to each point in the integral. This is not
117enough, though. Consider a shape which is tumbling freely around the $b$
118axis, with $\Delta\theta$ uniform in $[-180, 180]$. At $\pm 90$, all points
119in $\Delta\phi$ map to the pole, so the jitter will have a
120distinct angular preference. If the spin axis is normal to the beam
121(which will be the case for $\theta=90$ and $\Psi=90$), the scattering
122pattern should be circularly symmetric, but it will go to zero at $\pm 90$ due
123to the $\sin(\Delta\theta)$ correction. This problem does not appear for a shape
124that is tumbling freely around the $a$ axis, with $\Delta\phi$ uniform in
125$[-180, 180]$, so swap the $a$ and $b$ axes so $\Delta\theta < \Delta\phi$
126and adjust $\Psi$ by 90. This works with the existing sasmodels shapes
127due to symmetry.
128
129There are alternative projections. The *sinusoidal* projection works by
130scaling $\Delta\phi$ as $\Delta\theta$ increases, and dropping those points
131outside $[-180, 180]$. The distortions are a little less for middle ranges of
132$\Delta\theta$, but they are still severe for large $\Delta\theta$ and the
133model is much harder to explain. The *Guyou* projection has an excellent
134balance with reasonable distortion in both $\Delta\theta$ and $\Delta\phi$,
135as well as preserving small patches. However, it is considerably more
136expensive to implement, and we have not yet computed the distortion
137correction, measuring the degree of stretch at the
138point $(\Delta\theta, \Delta\phi)$ in the correction.
[da5536f]139
[82592da]140.. note::
[7e6bc45e]141    Note that the form factors for oriented particles are performing
142    numerical integrations over one or more variables, so care should be
143    taken, especially with very large particles or more extreme aspect
144    ratios. In such cases results may not be accurate, particularly at very
145    high Q, unless the model has been specifically coded to use limiting
146    forms of the scattering equations.
147
148    For best numerical results keep the $\theta$ distribution narrower than
149    the $\phi$ distribution. Thus for asymmetric particles, such as
150    elliptical_cylinder, you may need to reorder the sizes of the three axes
151    to acheive the desired result. This is due to the issues of mapping a
152    rectanglar distribution onto the surface of a sphere.
153
154Users can experiment with the values of *Npts* and *Nsigs*, the number of steps
155used in the integration and the range spanned in number of standard deviations.
156The standard deviation is entered in units of degrees. For a "rectangular"
157distribution the full width should be $\pm \sqrt(3)$ ~ 1.73 standard deviations.
158The new "uniform" distribution avoids this by letting you directly specify the
[82592da]159half width.
160
[7e6bc45e]161The angular distributions may be truncated outside of the range -180 to +180
162degrees, so beware of using saying a broad Gaussian distribution with large
163value of *Nsigs*, as the array of *Npts* may be truncated to many fewer
164points than would give a good integration,as well as becoming rather
165meaningless. (At some point in the future the actual dispersion arrays may be
166made available to the user for inspection.)
[e964ab1]167
168Some more detailed technical notes are provided in the developer section of
169this manual :ref:`orientation_developer` .
[da5536f]170
[7e6bc45e]171This definition of orientation is new to SasView 4.2.  In earlier versions,
172the orientation distribution appeared as a distribution of view angles.
173This led to strange effects when $c$ was aligned with $z$, where changes
174to the $\phi$ angle served only to rotate the shape about $c$, rather than
175having a consistent interpretation as the pitch of the shape relative to
176the flow field defining the reference orientation.  Prior to SasView 4.1,
177the reference orientation was defined using a Tait-Bryan convention, making
178it difficult to control.  Now, rotation in $\theta$ modifies the spacings
179in the refraction pattern, and rotation in $\phi$ rotates it in the detector
180plane.
181
182
[da5536f]183*Document History*
184
[7e6bc45e]185| 2017-11-06 Richard Heenan
186| 2017-12-20 Paul Kienzle
Note: See TracBrowser for help on using the repository browser.