Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

Version 1 Current »

Overview

In this tutorial you will model nanoparticles using a few different methodologies. The importance of determining the instrumental contributions of the peak damping and broadening will be emphasised. Fitting using both bulk models and atomistic models will be explored.

Acknowledgements

The X-ray PDF data from Fe2O3 for this tutorial was kindly donated by Jun.-Prof. Dr. Mirijam Zobel and Dr Sabrina Thomä (University of Bayreuth) and relates to the publication S. L. J. Thomä, S. W. Krauss, M. Eckardt, P. Chater and M. Zobel, "Atomic insight into hydration shells around facetted nanoparticles", Nature Communications (2019) 10, 995. PDF data was collected at the XPDF (I15-1) beamline at Diamond Light Source and processed with PDFgetX3.

Required files

  • Si.xy

  • Kapton.xy

  • Si_NIST_640c.cif

  • nanoFe2O3_small_pdf.xy

  • nanoFe2O3_large_pdf.xy

  • nanoFe2O3_mix_pdf.xy

  • Maghemite_Fe2O3.cif

  • Fe.cif

  • nanoFe_pdf.xy

Tutorial instructions

Nanoparticles from bulk models

Before attempting to extract nanoparticle sizes from PDF data, we need to know the instrumental contributions to the data.

  1. Load the file Si.xy for a Bragg fit (TOPASforBragg > 1. Select Diffraction File > 1a. Select Diffraction File).

  2. Select a Chebyshev Background function (TOPASforBragg > 1. Background > i. Chebyshev Background).

  3. Include a second background from a file of the empty Kapton capillary (TOPASforBragg > 1. Background > vi. background from file, then change the filename to "Kapton.xy").

  4. Enter the radiation source as a synchrotron energy for an area detector beamline with an energy of 65.4 keV (TOPASforBragg > 3. Radiation Source > 3a. X-ray Sources > ii. Synchrotron energy (Area detector)).

  5. Add silicon as a Rietveld fit using Si_NIST_640c.cif (TOPASforBragg > 5. Rietveld Refinement > 5c. new structure from .CIF file > i. Read a .CIF file) and allow the Si beq value to refine.

  6. Add a phase name, which will also refine a scale factor (TOPASforBragg > 5. Rietveld Refinement > 5c. new structure from .CIF file > ii. Phase Name).

  7. Add the "Bragg dQ + alpha.Q peak shape" peak type (TOPASforBragg > 5. Rietveld Refinement > 5c. new structure from .CIF file > iii. Peak Type > Bragg dQ + alpha.Q peak shape)

  8. Do not all the lattice parameters to refine. They should be correct for the silicon standard.

  9. Save and run the refinement.

    1. What do you notice about the result?

    2. How good is the fit at high Q?

  10. Add a 'polynomial 2th correction' and re-run the refinement (TOPASforBragg > 3. Radiation Source > 3a. X-ray Sources > ix. 2th corrections > polynomial 2th correction). Accept the results of the refinement.

    1. Does this improve the fit?

    2. What affect might this offset have on the PDF data?

We now have most of the parameters that we need to perform a refinement on the PDF data.

  1. Start a new PDF refinement using the file "nanoFe2O3_small_pdf.xy".

  2. Start the refinement from an r of 1 Å.

  3. Add a 'dQ damping with Lorentzian contribution' instrument parameter, using the dQ and lor parameters refined from the silicon standard data above and make sure that the parameters are fixed (i.e. not refined).

  4. Add a 'Q-dependent broadening convolution', using the alpha parameter refined from the silicon standard data above and make sure that it is not refined.

  5. This PDF data was processed using PDFgetX3 using a Qmax of 25 Å−1. Add a 'Qmax Sinc function colvolution' with a Qmax of 25.

  6. Insert the structure of Fe2O3 from the file Maghemite_Fe2O3.cif, allow the lattice parameters to refine within cubic symmetry and refine a scale factor.

  7. Add a beq_spherical peak shape for the Fe and O atoms.

  8. Run the refinement, but reject the result.

    1. What do you notice about the fit?

    2. How well does it fit at high Å?

  9. Add a spherical_damping function (TOPASforPDF > 3. Phase information > sample shape functions > spherical damping) with a starting value of 25. This is a spherical radius in Å for the damping function which we will use to model how the intensity of the PDF of a spherical particle varies as a function of r.

  10. Run the refinement and look at the result.

    1. What does the refinement look like now?

    2. What does the spherical radius refine to?

  11. Include do_errors and re-run the refinement.

    1. How meaningful is the error on the refined radius?

    2. How might this radius compare with a value determined from other methods like microscopy?

  12. Now allow dQ, lor and alpha to refine and re-run the refinement.

    1. How has this affected the accuracy and precision of the refined radius?

Repeat this process, but using the file "nanoFe2O3_large_pdf.xy". Make sure that dQ, lor and alpha are fixed at the values you determined for silicon.

  1. What radius does the spherical damping refine to?

  2. Now allow dQ, lor and alpha to refine and re-run the refinement.

    1. How has this affected the accuracy and precision of the refined radius?

    2. Is this better or worse than when refining the smaller nanoparticles?

  3. Look at the dQ_lor_damping and spherical_damping macros in pdf.inc and plot the shape of the functions using e.g. Excel.

    1. What does this tell you about the importance of instrumental functions in the extraction of nanoparticle size information?

Both of these samples of nanocrystalline Fe2O3 have a very well defined particle size. How might the analysis differ if you had a range of particle sizes, or a non-monodisperse distribution of sizes? Try the same refinement, but with the file "nanoFe2O3_mix_pdf.xy". This data is created by mixing the data from the small and large particles.

  1. What radius do you find if you just refine a single phase with spherical damping?

  2. What radii do you find if you refine two phases, each with a different spherical damping?

  3. How sensitive is this refinement to the starting values you give to the two spherical damping functions?

  4. What does this tell you about the importance of other complimentary characterisation methods?

Nanoparticles in P1

There are many ways of creating atomistic models of nanoparticles. Here we describe one way of doing this using TOPAS. It is not meant as a tutorial for the best possible way to model a nanoparticle. Instead, this tutorial is design to show you one possible way of doing this in TOPAS and gain familiarity with editing large files.

First we need to get a large box of atoms, from which we will create our nanoparticle. The size of the large box needs to be big enough to allow the modelling to proceed, but not so large as to slow the refinement.

  1. Open Fe.cif in VESTA.

  2. Remove the symmetry from the unit cell to make it P1 (Edit > Edit Data > Unit cell... > Remove symmetry) and then click 'Apply'.

  3. Select 'Structure parameters' and click 'Remove duplicate atoms' to just be left with 4 atoms in the unit cell.

  4. Return to the 'Unit cell' tab, click on 'Option...' and enter the matrix shown in the picture to expand the unit cell to a 14×14×14 version of itself containing 10,976 atoms. Click OK and answer 'Yes' to changing the unit cell volume and searching for additional atoms. Click OK to accept the changes to the unit cell.

  5. Export the expanded super-cell to a .cif file called 'Fe_14x14x14.cif' (File > Export Data), then close the file without saving it.

  6. In order for the rest of the tutorial to work, we need each of the Fe sites in the .cif to have different labels. Edit the .cif file to change each of the _atom_site_label values from just 'Fe' to 'Fe000001' etc.

    There are many ways of doing this. For example, use Excel to create a column of numbers from 1 to 10967. Then in the next column enter the equation ="Fe"&TEXT(A1,"00000"). Copy this column, and paste it over the original column in the .cif file using jEdit.

Next we will enter this large box of atoms into TOPAS and use a series of macros to turn it into a nanoparticle with a refinable radius.

  1. Start a new PDF refinement using the file "nanoFe_pdf.xy".

  2. Add a fixed dQ damping of 0.07, and end the refinement at an r of 25 Å.

  3. Add the super-cell to the refinement by loading in Fe_14x14x14.cif.

  4. Add a beq_spherical peak shape to one site, then use Rectangular Selection in jEdit to add this for all of the sites.

  5. Add the following parameters to the refinement; these will be used to define the radius of the nanoparticle, and the full-width-at-half-maximum of the radius distribution of the particles.

    prm r 10
    prm fwhm 1 min 0.1 max 10
  6. Add a dummy site with the name X1 at position ½,½,½ (site X1 x 0.5 y 0.5 z 0.5 occ H 0).

  7. We are going to define the occupancy of each site relative to their position from the dummy atom X1. To do this, we need to calculate the distance of each atom from X1. The following code will calculate the distance between atoms X1 and Fe00001, put it in the parameter called rFe00001 and displace the result where it currently says 0.

    Get_Distance(X1 Fe00001, rFe00001, 0)

    Use Rectangular Selection in jEdit to create one of these Get_Distance commands for each site towards the bottom of the .inp file.

  8. Add '{{{ before and '}}} after the block of Get_Distance commands and the block of sites. Within jEdit, select Utilities > Buffer Options... set 'Folding mode' to 'explicit'. You can now select the arrow in the left hand margin of your .inp file to collapse part of your .inp file. This makes navigating large files much quicker.

  9. Use Rectangular Selection to replace occ Fe 1 with occ Fe =erf_fwhm((r-rFe00001),fwhm); for each Fe site. The macro erf_fwhm is:

    macro erf_fwhm(r,fwhm,fwhmv)
    'Defines a crossover (error) function from 0 to 1 centered at r=0, with an equivalent Gaussian width fhwm
    'NOTE: Erf_Approx is the error function for a sigma of ln(2). 1.632237 is ln(2)*2(2ln(2))^0.5 to convert this to fwhm.
    {
        #m_argu r
        #m_argu fwhm
        If_Prm_Eqn_Rpt(fwhm, fwhmv,  min 0.01 max 100 del 0.001)
        (Erf_Approx(r 1.632237/CeV(fwhm,fwhmv))+1)/2
    }
    macro erf_fwhm(r,fwhm) { erf_fwhm(r, ,fwhm) }

    It is used to set all values where rFe << r to 1 and rFe >> r to 0. For a value of rFe near r, it has a value determined by a crossover (error) function. This has the effect of giving the nanoparticle a diffuse edge.

    1. Why do you think you can't just use something like occ = IF rFe < r THEN 1 ELSE 0 ENDIF;? This about what the least-squares refinement process and what is being refined.

  10. Run the refinement and reject the result. Note that this will take a fair bit longer than most refinements as you are calculating many millions of atomic pairs.

    1. What do you notice about the shape of the fit?

  11. In a real sample, the nanoparticle is not floating in free air. Therefore, our model has missing correlations which give rise to an incorrect background. Try adding a Chebyshev background with 4 parameters (bkg @ 0 0 0 0) and refining it again.

    1. Does this adequately fit the model?

  12. Instead of an arbitary background, we can try an analytical destription of the background we would expect for this nanoparticle. Comment out the bkg line. In order for us to do this. We need to know a couple of parameters relating to our model nanoparticle which we can calculate by adding the following to our str:

    prm particle_fraction = ((4/3) Pi r^3) / Get(cell_volume); :  0
    prm phase_density = 10976 / Get(cell_volume); :  0 'Number density, atoms Ang.^-3

    The ': 0' will report the result of this equation after it has been run. The particle_fraction is now much of the total unit cell volume is made up of the nanoparticle. phase_density is the number density of the bulk phase in atoms Å−3.

  13. Next, add the line fit_obj = -4 Pi X (phase_density); to the xdd section of the .inp. This is the sloping background we would expect for the bulk sample. Run a single cycle of the refinement and see what the result looks like.

  14. Next we need to add a function describing how the density of the particle varies as a function of r. The shape of this function is similar to the spherical damping used to model a nanoparticle from bulk data, but this time we need to add it as a background. We can do this with the following:

    fit_obj = 4 Pi X (phase_density)
        IF X > 2 r THEN
            1
        ELSE
            If(X>0.01,1-((Pi X^2 ((0.25 (X/r)^3)-(3 X/r)+4)) / (4 Pi X^2 1)),0)
        ENDIF;

    Add this and run a single refinement cycle. This should bring us a lot closer to the true 'background', but there is still one more correction to apply which is due to the density of the particle itself.

  15. Add the final fit object:

    fit_obj = If(X < 2 r,4 Pi X (particle_fraction phase_density),4 Pi 2 r (particle_fraction phase_density));

    Run the refinement and look at the results. Use TOPAS to output the result to a .cif file and look at the result in VESTA.

    1. What kind of results might you be able to extract from this type of model that you can't get from the bulk nanostructure modelling of the previous sections?

Final comments

The use of the real instrumental parameters are essnetial for extracting meaningful values from the study of nanostructured materials from PDF data. There are differernt ways of modelling the PDF of nanoparticle, all with their pros and cons. Never forget about Bragg data - if you have large enough crystallites, the Bragg data can also give you much more rich directional data by analysing differences between hkl reflections.

  • No labels