preferred_orientation
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revision | |||
preferred_orientation [2016/02/11 02:25] – rowlesmr3 | preferred_orientation [2022/11/03 15:08] (current) – external edit 127.0.0.1 | ||
---|---|---|---|
Line 1: | Line 1: | ||
+ | |||
+ | |||
+ | ====== Generalised March-Dollase preferred orientation corrections ====== | ||
+ | |||
+ | This is a collection of macros that are used to model preferred orientation using the March-Dollase model, where the angle between the preferred orientation vector and the diffraction vector is able to change. | ||
+ | |||
+ | In these macros, you can deal explicitly with symmetric reflection, capillary transmission, | ||
+ | |||
+ | The maths for this was taken from [1]. | ||
+ | |||
+ | Contributor: | ||
+ | |||
+ | |||
+ | [1] [[http:// | ||
+ | |||
+ | |||
+ | ===== March-Dollase model ===== | ||
+ | |||
+ | The March-Dollase pole density profile is given by | ||
+ | |||
+ | P< | ||
+ | |||
+ | where r is the preferred orientation factor, and rho is the polar angle between the preferred orientation direction, **p< | ||
+ | |||
+ | To find the factor by which a the intensity of a reflection of any given direction should multiplied, we use the following equations: | ||
+ | |||
+ | f< | ||
+ | |||
+ | g(r, | ||
+ | |||
+ | cos(rho) = cos(alpha)*cos(Delta) - sin(alpha)*sin(Delta)*sin(phi) | ||
+ | |||
+ | where alpha is the angle between the diffraction vector, **d< | ||
+ | |||
+ | Delta is 0 for symmetric reflection, Pi/2 for capillary transmission, | ||
+ | |||
+ | |||
+ | The integral can be expressed as a summation: | ||
+ | |||
+ | f< | ||
+ | |||
+ | however, convergence is slow if r >> 1. N = 16 is usually sufficient. | ||
+ | |||
+ | |||
+ | |||
+ | ===== The macros ===== | ||
+ | |||
+ | |||
+ | The macros to use are the following: | ||
+ | |||
+ | <code topas> | ||
+ | macro PO_symmetric_reflection(r_c, | ||
+ | { | ||
+ | generalised_PO_eqn(r_c, | ||
+ | } | ||
+ | |||
+ | macro PO_capillary_transmission(r_c, | ||
+ | { | ||
+ | generalised_PO_eqn(r_c, | ||
+ | } | ||
+ | |||
+ | macro PO_asymmetric_reflection(r_c, | ||
+ | { | ||
+ | #m_argu omega_c | ||
+ | If_Prm_Eqn_Rpt(omega_c, | ||
+ | prm #m_unique Delta = Abs(Th - ((CeV(omega_c, | ||
+ | generalised_PO_eqn(r_c, | ||
+ | } | ||
+ | </ | ||
+ | |||
+ | |||
+ | An example of their use would be | ||
+ | <code topas> | ||
+ | PO_asymmetric_reflection(r, | ||
+ | </ | ||
+ | to refine the preferred orientation factor for the (001) plane with a fixed incident beam angle of 7.5°. | ||
+ | |||
+ | |||
+ | The required helper macros are as follows, and implement equation 10 (aka I) in [1]: | ||
+ | <code topas> | ||
+ | macro & cosrho(& | ||
+ | { | ||
+ | Cos(alpha)*Cos(Delta) - Sin(alpha)*Sin(Delta)*Sin(phi) | ||
+ | } | ||
+ | |||
+ | macro & PO_P(& r, & alpha, & Delta, & phi) | ||
+ | { | ||
+ | (r^2 * cosrho(alpha, | ||
+ | } | ||
+ | |||
+ | macro & PO_f(& r, & alpha, & Delta, & N) | ||
+ | { | ||
+ | 'hard coded this for N==16 as the Sum formalism is not working ' | ||
+ | ' | ||
+ | (1/16)* | ||
+ | (PO_P(r, | ||
+ | PO_P(r, | ||
+ | PO_P(r, | ||
+ | PO_P(r, | ||
+ | PO_P(r, | ||
+ | PO_P(r, | ||
+ | PO_P(r, | ||
+ | PO_P(r, | ||
+ | PO_P(r, | ||
+ | PO_P(r, | ||
+ | PO_P(r, | ||
+ | PO_P(r, | ||
+ | PO_P(r, | ||
+ | PO_P(r, | ||
+ | PO_P(r, | ||
+ | PO_P(r, | ||
+ | } | ||
+ | |||
+ | |||
+ | ' | ||
+ | macro generalised_PO_eqn(r_c, | ||
+ | { | ||
+ | # | ||
+ | # | ||
+ | | ||
+ | | ||
+ | |||
+ | ' | ||
+ | # | ||
+ | # | ||
+ | # | ||
+ | |||
+ | | ||
+ | |||
+ | | ||
+ | } | ||
+ | </ | ||
+ | |||
+ | |||
preferred_orientation.txt · Last modified: 2022/11/03 15:08 by 127.0.0.1