Skip to main content

Tutorial Joyofconv

Single Peak Fitting Using Convolution Approach- Y2O3

Files needed: conv_joy_01.inpy2o3_fwhm_01.xye

Learning Outcomes: This tutorial will introduce you to convolutions and how they influence peak shapes in powder diffraction.

Information: Data were “collected” on a diffractomer with Cu Ka1 radiation on a sample of Y2O3. The monochromator angle was 27.26, the tube filament was 12 mm long, the sample was 15 mm long, 5 degree primary and secondary Soller slits were used. The 332 nm crystallite size gave a Lorentzian and the 0.05 % strain a Gaussian broadening contribution.

1. If you have an ancient browser that allows java appletes you can go to the “joy of convolution” web page and have a play with different convolutions.

2. There’s a more modern site here, but it only lets you select certain functions. Try convoluting two 2 second pulses (hats in TOPAS language); you’ll see a triangle. Try a triangle with another hat; you’ll see something that approaches a Gaussian. I unclick the “show complete solution” tick box to see the convolutoin in action on graph 3.

3. File conv_joy_01.inp will let you try different convolutions for fitting peaks as in lecture.

4. Try first hat @ 0.01, then 2 hats, then 4 hats.

5. Try gauss_fwhm @ 0.01.

6. Try lor_fwhm @ 0.01.

7. Try 4/5 together.

8. Add a circles_conv @ -0.1

9. Comment out the line “#define try_convolutions” and you’ll then use the full fundamental parameters approach.

10. In points 3-7 convolutions were just used to fit a single peak. When fitting a powder pattern it’s common to add a 2-theta dependence so mimic effects like size or strain. Open topas.inc from the topas-editor help section. Search for CS_G and Strain_G. You’ll see that they contain simple equations to achieve this. You could write similar equations in your Files.


'Crystallite size Gaussian broadening
macro CS_G(c, v)
   {
      #m_argu c
      If_Prm_Eqn_Rpt(c, v, min .3 max = Min(Val 2 + .3, 10000);)
      gauss_fwhm = 0.1 Rad Lam / (Cos(Th) CeV(c,v));
   }

'Microstrain Lorentzian broadening
macro Strain_L(c, v)
   {
      #m_argu c
      If_Prm_Eqn_Rpt(c, v, min .0001 max 5)
      lor_fwhm = CeV(c,v) Tan(Th);
   }