direct-derivation_method_qpa
Differences
This shows you the differences between two versions of the page.
Next revision | Previous revision | ||
direct-derivation_method_qpa [2019/09/04 02:29] – created rowlesmr3 | direct-derivation_method_qpa [2022/11/03 15:08] (current) – external edit 127.0.0.1 | ||
---|---|---|---|
Line 1: | Line 1: | ||
+ | |||
+ | ====== Quantitative phase analysis by the Direct-Derivation Method ====== | ||
+ | |||
+ | |||
+ | Quantitative phase analysis by X-ray diffraction is a powerful method. The most widely used is quantification using the Rietveld methodology[1, | ||
+ | |||
+ | The simplest implementation of DDM in TOPAS uses '' | ||
+ | |||
+ | Three macros are given below: '' | ||
+ | |||
+ | The first two arguments for all macros are number of the current phase, and the total number of phases. This is to allow for the correct summation of the masses for the calculation of the weight fractions. The phase number can be in any order, but must start from 1, and not skip any numbers. The current implementation is arbitrarily limited to a maximum of 10 phases, but this can be easily expanded. The last argument for all macros reports the weight percentage for that phase. | ||
+ | |||
+ | For the '' | ||
+ | |||
+ | For the '' | ||
+ | |||
+ | As an explicit side-effect, | ||
+ | |||
+ | | DDM_w_# | ||
+ | | DDM_m_# | ||
+ | | DDM_m_total | ||
+ | | DDM_A_# | ||
+ | | DDM_a_# | ||
+ | | DDM_n2_# | ||
+ | | DDM_M_# | ||
+ | |||
+ | |||
+ | Example input files are given below using the data from the IUCr CPD QPA RR, and are available from https:// | ||
+ | |||
+ | Contributor: | ||
+ | |||
+ | |||
+ | - B. O. Loopstra and H. M. Rietveld, Acta Crystallographica B, 1969, 25, 787-791. | ||
+ | - H. M. Rietveld, J. Appl. Crystallogr., | ||
+ | - R. Hill and C. Howard, J. Appl. Crystallogr., | ||
+ | - D. L. Bish and S. A. Howard, J. Appl. Crystallogr., | ||
+ | - N. V. Y. Scarlett and I. C. Madsen, Powder Diffr., 2006, 21, 278-284. | ||
+ | - H. Toraya, J. Appl. Crystallogr., | ||
+ | - H. Toraya, J. Appl. Crystallogr., | ||
+ | - H. Toraya, J. Appl. Crystallogr., | ||
+ | - H. Toraya and K. Omote, J. Appl. Crystallogr., | ||
+ | - H. Toraya, J. Appl. Crystallogr., | ||
+ | |||
+ | |||
+ | |||
+ | ===== Macros ===== | ||
+ | |||
+ | The main '' | ||
+ | <code topas> | ||
+ | macro DDM(m, | ||
+ | ' | ||
+ | macro H { 1.008 } macro He { 4.003 } macro Li { 6.941 } macro Be { 9.012 } macro B { 10.811 } | ||
+ | macro C { 12.011 } macro N { 14.007 } macro O { 15.999 } macro F { 18.998 } macro Ne { 20.18 } | ||
+ | macro Na { 22.99 } macro Mg { 24.305 } macro Al { 26.982 } macro Si { 28.086 } macro P { 30.974 } | ||
+ | macro S { 32.065 } macro Cl { 35.453 } macro Ar { 39.948 } macro K { 39.098 } macro Ca { 40.078 } | ||
+ | macro Sc { 44.956 } macro Ti { 47.867 } macro V { 50.942 } macro Cr { 51.996 } macro Mn { 54.938 } | ||
+ | macro Fe { 55.845 } macro Co { 58.933 } macro Ni { 58.693 } macro Cu { 63.546 } macro Zn { 65.39 } | ||
+ | macro Ga { 69.723 } macro Ge { 72.64 } macro As { 74.922 } macro Se { 78.96 } macro Br { 79.904 } | ||
+ | macro Kr { 83.8 } macro Rb { 85.468 } macro Sr { 87.62 } macro Y { 88.906 } macro Zr { 91.224 } | ||
+ | macro Nb { 92.906 } macro Mo { 95.94 } macro Tc { 98 } macro Ru { 101.07 | ||
+ | macro Pd { 106.42 | ||
+ | macro Sb { 121.76 | ||
+ | macro Ba { 137.327 } macro La { 138.906 } macro Ce { 140.116 } macro Pr { 140.908 } macro Nd { 144.24 | ||
+ | macro Pm { 145 } macro Sm { 150.36 | ||
+ | macro Dy { 162.5 } macro Ho { 164.93 | ||
+ | macro Lu { 174.967 } macro Hf { 178.49 | ||
+ | macro Os { 190.23 | ||
+ | macro Tl { 204.383 } macro Pb { 207.2 } macro Bi { 208.98 | ||
+ | macro Rn { 222 } macro Fr { 223 } macro Ra { 226 } macro Ac { 227 } macro Th { 232.038 } | ||
+ | macro Pa { 231.036 } macro U { 238.029 } | ||
+ | |||
+ | prm DDM_M_##m =chemical_formula; | ||
+ | # | ||
+ | Ge As Se Br Kr Rb Sr Y Zr Nb Mo Tc Ru Rh Pd Ag Cd In Sn Sb Te I Xe Cs Ba La Ce Pr Nd Pm Sm | ||
+ | Eu Gd Tb Dy Ho Er Tm Yb Lu Hf Ta W Re Os Ir Pt Au Hg Tl Pb Bi Po At Rn Fr Ra Ac Th Pa U } | ||
+ | |||
+ | ' | ||
+ | macro | ||
+ | macro | ||
+ | macro | ||
+ | macro | ||
+ | macro | ||
+ | macro | ||
+ | macro | ||
+ | macro | ||
+ | macro | ||
+ | macro | ||
+ | macro | ||
+ | macro | ||
+ | macro | ||
+ | macro | ||
+ | macro | ||
+ | macro | ||
+ | macro | ||
+ | macro | ||
+ | macro | ||
+ | |||
+ | prm DDM_n2_##m = chemical_formula ; ' | ||
+ | # | ||
+ | Ge As Se Br Kr Rb Sr Y Zr Nb Mo Tc Ru Rh Pd Ag Cd In Sn Sb Te I Xe Cs Ba La Ce Pr Nd Pm Sm | ||
+ | Eu Gd Tb Dy Ho Er Tm Yb Lu Hf Ta W Re Os Ir Pt Au Hg Tl Pb Bi Po At Rn Fr Ra Ac Th Pa U } | ||
+ | |||
+ | prm DDM_a_##m = DDM_M_##m / DDM_n2_##m; 'mass per square electron' | ||
+ | prm DDM_A_##m = Get(numerical_area); | ||
+ | prm DDM_m_##m = DDM_a_##m DDM_A_##m; ' " | ||
+ | |||
+ | ' | ||
+ | ' | ||
+ | #m_if m == 1; | ||
+ | # | ||
+ | #m_elseif n == 2; prm DDM_m_total = DDM_m_1+DDM_m_2; | ||
+ | #m_elseif n == 3; prm DDM_m_total = DDM_m_1+DDM_m_2+DDM_m_3; | ||
+ | #m_elseif n == 4; prm DDM_m_total = DDM_m_1+DDM_m_2+DDM_m_3+DDM_m_4; | ||
+ | #m_elseif n == 5; prm DDM_m_total = DDM_m_1+DDM_m_2+DDM_m_3+DDM_m_4+DDM_m_5; | ||
+ | #m_elseif n == 6; prm DDM_m_total = DDM_m_1+DDM_m_2+DDM_m_3+DDM_m_4+DDM_m_5+DDM_m_6; | ||
+ | #m_elseif n == 7; prm DDM_m_total = DDM_m_1+DDM_m_2+DDM_m_3+DDM_m_4+DDM_m_5+DDM_m_6+DDM_m_7; | ||
+ | #m_elseif n == 8; prm DDM_m_total = DDM_m_1+DDM_m_2+DDM_m_3+DDM_m_4+DDM_m_5+DDM_m_6+DDM_m_7+DDM_m_8; | ||
+ | #m_elseif n == 9; prm DDM_m_total = DDM_m_1+DDM_m_2+DDM_m_3+DDM_m_4+DDM_m_5+DDM_m_6+DDM_m_7+DDM_m_8+DDM_m_9; | ||
+ | #m_elseif n ==10; prm DDM_m_total = DDM_m_1+DDM_m_2+DDM_m_3+DDM_m_4+DDM_m_5+DDM_m_6+DDM_m_7+DDM_m_8+DDM_m_9+DDM_m_10; | ||
+ | #m_endif | ||
+ | #m_endif | ||
+ | |||
+ | prm DDM_w_##m = 100 DDM_m_##m / DDM_m_total; | ||
+ | } | ||
+ | </ | ||
+ | |||
+ | |||
+ | The '' | ||
+ | <code topas> | ||
+ | macro DDM_M_n2(m, | ||
+ | |||
+ | prm DDM_M_##m = M; ' | ||
+ | prm DDM_n2_##m = n2; ' | ||
+ | prm DDM_a_##m = DDM_M_##m / DDM_n2_##m; 'mass per square electron' | ||
+ | prm DDM_A_##m = Get(numerical_area); | ||
+ | prm DDM_m_##m = DDM_a_##m DDM_A_##m; ' " | ||
+ | |||
+ | ' | ||
+ | ' | ||
+ | #m_if m == 1; | ||
+ | # | ||
+ | #m_elseif n == 2; prm DDM_m_total = DDM_m_1+DDM_m_2; | ||
+ | #m_elseif n == 3; prm DDM_m_total = DDM_m_1+DDM_m_2+DDM_m_3; | ||
+ | #m_elseif n == 4; prm DDM_m_total = DDM_m_1+DDM_m_2+DDM_m_3+DDM_m_4; | ||
+ | #m_elseif n == 5; prm DDM_m_total = DDM_m_1+DDM_m_2+DDM_m_3+DDM_m_4+DDM_m_5; | ||
+ | #m_elseif n == 6; prm DDM_m_total = DDM_m_1+DDM_m_2+DDM_m_3+DDM_m_4+DDM_m_5+DDM_m_6; | ||
+ | #m_elseif n == 7; prm DDM_m_total = DDM_m_1+DDM_m_2+DDM_m_3+DDM_m_4+DDM_m_5+DDM_m_6+DDM_m_7; | ||
+ | #m_elseif n == 8; prm DDM_m_total = DDM_m_1+DDM_m_2+DDM_m_3+DDM_m_4+DDM_m_5+DDM_m_6+DDM_m_7+DDM_m_8; | ||
+ | #m_elseif n == 9; prm DDM_m_total = DDM_m_1+DDM_m_2+DDM_m_3+DDM_m_4+DDM_m_5+DDM_m_6+DDM_m_7+DDM_m_8+DDM_m_9; | ||
+ | #m_elseif n ==10; prm DDM_m_total = DDM_m_1+DDM_m_2+DDM_m_3+DDM_m_4+DDM_m_5+DDM_m_6+DDM_m_7+DDM_m_8+DDM_m_9+DDM_m_10; | ||
+ | #m_endif | ||
+ | #m_endif | ||
+ | |||
+ | prm DDM_w_##m = 100 DDM_m_##m / DDM_m_total; | ||
+ | } | ||
+ | </ | ||
+ | |||
+ | |||
+ | The '' | ||
+ | <code topas> | ||
+ | macro DDM_a(m, | ||
+ | |||
+ | prm DDM_a_##m = alpha; 'mass per square electron' | ||
+ | prm DDM_A_##m = Get(numerical_area); | ||
+ | prm DDM_m_##m = DDM_a_##m DDM_A_##m; ' " | ||
+ | |||
+ | ' | ||
+ | ' | ||
+ | #m_if m == 1; | ||
+ | # | ||
+ | #m_elseif n == 2; prm DDM_m_total = DDM_m_1+DDM_m_2; | ||
+ | #m_elseif n == 3; prm DDM_m_total = DDM_m_1+DDM_m_2+DDM_m_3; | ||
+ | #m_elseif n == 4; prm DDM_m_total = DDM_m_1+DDM_m_2+DDM_m_3+DDM_m_4; | ||
+ | #m_elseif n == 5; prm DDM_m_total = DDM_m_1+DDM_m_2+DDM_m_3+DDM_m_4+DDM_m_5; | ||
+ | #m_elseif n == 6; prm DDM_m_total = DDM_m_1+DDM_m_2+DDM_m_3+DDM_m_4+DDM_m_5+DDM_m_6; | ||
+ | #m_elseif n == 7; prm DDM_m_total = DDM_m_1+DDM_m_2+DDM_m_3+DDM_m_4+DDM_m_5+DDM_m_6+DDM_m_7; | ||
+ | #m_elseif n == 8; prm DDM_m_total = DDM_m_1+DDM_m_2+DDM_m_3+DDM_m_4+DDM_m_5+DDM_m_6+DDM_m_7+DDM_m_8; | ||
+ | #m_elseif n == 9; prm DDM_m_total = DDM_m_1+DDM_m_2+DDM_m_3+DDM_m_4+DDM_m_5+DDM_m_6+DDM_m_7+DDM_m_8+DDM_m_9; | ||
+ | #m_elseif n ==10; prm DDM_m_total = DDM_m_1+DDM_m_2+DDM_m_3+DDM_m_4+DDM_m_5+DDM_m_6+DDM_m_7+DDM_m_8+DDM_m_9+DDM_m_10; | ||
+ | #m_endif | ||
+ | #m_endif | ||
+ | |||
+ | prm DDM_w_##m = 100 DDM_m_##m / DDM_m_total; | ||
+ | } | ||
+ | </ | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | ===== Example input files ===== | ||
+ | |||
+ | This first input file provides an example usage with '' | ||
+ | <code topas> | ||
+ | xdd " | ||
+ | r_exp | ||
+ | r_wp 11.2186846 r_wp_dash | ||
+ | r_p 8.24844865 r_p_dash | ||
+ | weighted_Durbin_Watson | ||
+ | |||
+ | bkg bg -0.255565762` | ||
+ | One_on_X(oneonx, | ||
+ | |||
+ | Specimen_Displacement(sd, | ||
+ | LP_Factor(26.4) | ||
+ | Rp 173 | ||
+ | Rs 173 | ||
+ | axial_conv | ||
+ | filament_length | ||
+ | sample_length | ||
+ | receiving_slit_length | ||
+ | primary_soller_angle | ||
+ | secondary_soller_angle | ||
+ | axial_n_beta | ||
+ | Slit_Width( 0.3) | ||
+ | Divergence( 1) | ||
+ | lam | ||
+ | ymin_on_ymax | ||
+ | la 0.0159 lo 1.534753 lh 3.6854 | ||
+ | la 0.5791 lo 1.540596 lh 0.437 | ||
+ | la 0.0762 lo 1.541058 lh 0.6 | ||
+ | la 0.2417 lo 1.54441 lh 0.52 | ||
+ | la 0.0871 lo 1.544721 lh 0.62 | ||
+ | |||
+ | start_X 7 | ||
+ | finish_X 147.5 | ||
+ | |||
+ | |||
+ | str | ||
+ | phase_name " | ||
+ | |||
+ | DDM(1, | ||
+ | MVW( 611.768, 254.824`, 33.746`) | ||
+ | |||
+ | scale sc_cor | ||
+ | LVol_FWHM_CS_G_L( 1, 136.44164`, 0.89, 164.17169`, | ||
+ | e0_from_Strain( 0.00005`,@, 0.00010`_LIMIT_MIN_0.0001, | ||
+ | space_group " | ||
+ | Trigonal(acor | ||
+ | site Al num_posns | ||
+ | site O num_posns | ||
+ | |||
+ | str | ||
+ | phase_name " | ||
+ | |||
+ | DDM(2, | ||
+ | MVW( 312.299, 163.118`, 33.433`) | ||
+ | |||
+ | scale sc_flu | ||
+ | LVol_FWHM_CS_G_L( 1, 597.30690`, 0.89, 835.04027`,,, | ||
+ | e0_from_Strain( 0.00014`,,, | ||
+ | space_group " | ||
+ | Cubic(acell_flu | ||
+ | site Ca num_posns | ||
+ | site F num_posns | ||
+ | |||
+ | str | ||
+ | phase_name " | ||
+ | |||
+ | DDM(3, | ||
+ | MVW( 162.817, 47.616`, 32.821`) | ||
+ | |||
+ | scale sc_zin | ||
+ | LVol_FWHM_CS_G_L( 1, 147.83204`, 0.89, 206.67049`,,, | ||
+ | space_group " | ||
+ | Hexagonal(acell_zin | ||
+ | site Zn num_posns | ||
+ | site O num_posns | ||
+ | </ | ||
+ | |||
+ | |||
+ | |||
+ | This second input file provides an example usage with '' | ||
+ | <code topas> | ||
+ | |||
+ | xdd " | ||
+ | r_exp | ||
+ | r_wp 10.1211 r_wp_dash | ||
+ | r_p 7.07515051 r_p_dash | ||
+ | weighted_Durbin_Watson | ||
+ | |||
+ | bkg bg 3.98842635` | ||
+ | One_on_X(oneonx, | ||
+ | |||
+ | Specimen_Displacement(sd, | ||
+ | LP_Factor(26.4) | ||
+ | Rp 173 | ||
+ | Rs 173 | ||
+ | axial_conv | ||
+ | filament_length | ||
+ | sample_length | ||
+ | receiving_slit_length | ||
+ | primary_soller_angle | ||
+ | secondary_soller_angle | ||
+ | axial_n_beta | ||
+ | Slit_Width( 0.3) | ||
+ | Divergence( 1) | ||
+ | lam | ||
+ | ymin_on_ymax | ||
+ | la 0.0159 lo 1.534753 lh 3.6854 | ||
+ | la 0.5791 lo 1.540596 lh 0.437 | ||
+ | la 0.0762 lo 1.541058 lh 0.6 | ||
+ | la 0.2417 lo 1.54441 lh 0.52 | ||
+ | la 0.0871 lo 1.544721 lh 0.62 | ||
+ | |||
+ | start_X 7 | ||
+ | finish_X 147.5 | ||
+ | |||
+ | |||
+ | hkl_Is | ||
+ | phase_name " | ||
+ | |||
+ | DDM(1, | ||
+ | |||
+ | LVol_FWHM_CS_G_L( 1, 155.73193`, 0.89, 194.67508`, | ||
+ | e0_from_Strain( 0.00007`,@, 0.01272`_LIMIT_MIN_0.0001, | ||
+ | Trigonal(acor | ||
+ | space_group " | ||
+ | load hkl_m_d_th2 I ' | ||
+ | { | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | } | ||
+ | ' | ||
+ | |||
+ | hkl_Is | ||
+ | phase_name " | ||
+ | |||
+ | DDM(2, | ||
+ | |||
+ | LVol_FWHM_CS_G_L( 1, 401.22091`, 0.89, 560.91034`,,, | ||
+ | e0_from_Strain( 0.00012`,,, | ||
+ | space_group " | ||
+ | Cubic(acell_flu | ||
+ | load hkl_m_d_th2 I ' | ||
+ | { | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | } | ||
+ | ' | ||
+ | |||
+ | hkl_Is | ||
+ | phase_name " | ||
+ | |||
+ | DDM(3, | ||
+ | |||
+ | LVol_FWHM_CS_G_L( 1, 153.44741`, 0.89, 214.52081`,,, | ||
+ | space_group " | ||
+ | Hexagonal(acell_zin | ||
+ | load hkl_m_d_th2 I ' | ||
+ | { | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | } | ||
+ | ' | ||
+ | </ |