Warning: Trying to access array offset on value of type null in /home/site/wwwroot/lib/plugins/move/action/rename.php on line 42

Warning: Cannot modify header information - headers already sent by (output started at /home/site/wwwroot/lib/plugins/move/action/rename.php:42) in /home/site/wwwroot/inc/common.php on line 1955

Warning: Cannot modify header information - headers already sent by (output started at /home/site/wwwroot/lib/plugins/move/action/rename.php:42) in /home/site/wwwroot/inc/actions.php on line 38
preferred_orientation [topas wiki]

User Tools

Site Tools


preferred_orientation

Differences

This shows you the differences between two versions of the page.


Previous revision
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, and asymmetric reflection. 
 +
 +The maths for this was taken from [1].
 +
 +Contributor: Matthew Rowles
 +
 +
 +[1] [[http://www.crl.nitech.ac.jp/ar/2013/0711_acrc_ar2013_review.pdf|Ida, Takeshi. 2013. 'Effect of Preferred Orientation in Synchrotron X-Ray Powder Diffraction'. Annual Report of the Advanced Ceramics Research Center: Nagoya Institute of Technology.]].
 +
 +
 +===== March-Dollase model =====
 +
 +The March-Dollase pole density profile is given by
 +
 +P<sub>**p<sup>*</sup>**</sub>(r,rho) = (r<sup>2</sup> cos<sup>2</sup>rho + (sin<sup>2</sup>rho/r))<sup>-3/2</sup>
 +
 +where r is the preferred orientation factor, and rho is the polar angle between the preferred orientation direction, **p<sup>*</sup>**, and the specimen direction, **s<sup>*</sup>**. The specimen is assumed to have rotational symmetry about **s<sup>*</sup>**.
 +
 +To find the factor by which a the intensity of a reflection of any given direction should multiplied, we use the following equations:
 +
 +f<sub>**d<sup>*</sup>**</sub>(r,alpha,Delta) = (1/(2*Pi)) * Int(g(r,alpha,Delta,phi), phi=0..2*Pi)
 +
 +g(r,alpha,Delta,phi) = P<sub>**p<sup>*</sup>**</sub>(r,rho)
 +
 +cos(rho) = cos(alpha)*cos(Delta) - sin(alpha)*sin(Delta)*sin(phi)
 +
 +where alpha is the angle between the diffraction vector, **d<sup>*</sup>**, of interest and the preferred orienation vector, and Delta is the angle between **d<sup>*</sup>** and **s<sup>*</sup>**. 
 +
 +Delta is 0 for symmetric reflection, Pi/2 for capillary transmission, and Abs(Th - omega) for asymmetric reflection, where the incident beam angle is given by omega.
 +
 +
 +The integral can be expressed as a summation:
 +
 +f<sub>**d<sup>*</sup>**</sub>(r,alpha,Delta) = (1/N) * Sum(g(r,alpha,Delta,(j+(1/2))*Pi/N), j=0..(N-1))
 +
 +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, r_v, hkl)
 +{
 + generalised_PO_eqn(r_c, r_v, , hkl, , 0, 16)
 +}
 +
 +macro PO_capillary_transmission(r_c, r_v, hkl)
 +{
 + generalised_PO_eqn(r_c, r_v, , hkl, , (Pi/2), 16)
 +}
 +
 +macro PO_asymmetric_reflection(r_c, r_v,omega_c,omega_v, hkl)
 +{
 + #m_argu omega_c
 + If_Prm_Eqn_Rpt(omega_c, omega_v, min 0.0001 max 90) 'incident angle in degrees'
 + prm #m_unique Delta = Abs(Th - ((CeV(omega_c,omega_v))*Deg)) ;
 + generalised_PO_eqn(r_c, r_v, , hkl, , Delta, 16)
 +}
 +</code>
 +
 +
 +An example of their use would be
 +<code topas>
 +PO_asymmetric_reflection(r, 0.6, !omega, 7.5, 0 0 1)
 +</code>
 +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(& alpha, & Delta, & phi)
 +{
 + Cos(alpha)*Cos(Delta) - Sin(alpha)*Sin(Delta)*Sin(phi) 
 +}
 +
 +macro & PO_P(& r, & alpha, & Delta, & phi)
 +{
 + (r^2 * cosrho(alpha,Delta,phi)^2 + (1-cosrho(alpha,Delta,phi)^2)/r)^(-3/2)
 +}
 +
 +macro & PO_f(& r, & alpha, & Delta, & N)
 +{
 + 'hard coded this for N==16 as the Sum formalism is not working '
 + '(1/N)*Sum( PO_P(r,alpha,Delta,(j+(1/2))*Pi/N) , j=0,j<=N-1,j=j+1)'
 + (1/16)*
 + (PO_P(r,alpha,Delta,( 0+(1/2))*Pi/16) +
 +   PO_P(r,alpha,Delta,( 1+(1/2))*Pi/16) +
 +   PO_P(r,alpha,Delta,( 2+(1/2))*Pi/16) +
 +   PO_P(r,alpha,Delta,( 3+(1/2))*Pi/16) +
 +   PO_P(r,alpha,Delta,( 4+(1/2))*Pi/16) +
 +   PO_P(r,alpha,Delta,( 5+(1/2))*Pi/16) +
 +   PO_P(r,alpha,Delta,( 6+(1/2))*Pi/16) +
 +   PO_P(r,alpha,Delta,( 7+(1/2))*Pi/16) +
 +   PO_P(r,alpha,Delta,( 8+(1/2))*Pi/16) +
 +   PO_P(r,alpha,Delta,( 9+(1/2))*Pi/16) +
 +   PO_P(r,alpha,Delta,(10+(1/2))*Pi/16) +
 +   PO_P(r,alpha,Delta,(11+(1/2))*Pi/16) +
 +   PO_P(r,alpha,Delta,(12+(1/2))*Pi/16) +
 +   PO_P(r,alpha,Delta,(13+(1/2))*Pi/16) +
 +   PO_P(r,alpha,Delta,(14+(1/2))*Pi/16) +
 +   PO_P(r,alpha,Delta,(15+(1/2))*Pi/16))
 +}
 +
 +
 +'angles in radians'
 +macro generalised_PO_eqn(r_c, r_v, alpha, hkl, Delta_c, Delta_v, N) 
 +{
 +   #m_argu r_c
 +   #m_argu Delta_c
 +   If_Prm_Eqn_Rpt(r_c, r_v, min 0.0001 max = 2 Val + .5;) 'preferred orientation parameter'
 +   If_Prm_Eqn_Rpt(Delta_c, Delta_v, min 0.0001 max =Pi;) 'angle in radians:  ==0 symmetric reflection, ==Pi/2 capillary transmission, ==Abs(Th-Omega) asymmetric reflection'
 +   
 +   'The following code modified from S11.5.4 in the TechRef & PO macro in topas.inc'
 +   #m_ifarg alpha ""
 +      #m_unique_not_refine alpha
 +   #m_endif
 +
 +   str_hkl_angle alpha hkl 'angle in radians between PO direction and current diffraction vector'
 +
 +   scale_pks = Multiplicities_Sum(  PO_f(CeV(r_c,r_v), alpha, CeV(Delta_c,Delta_v), N)  );  
 +}
 +</code>
 +
 +