Extensive tutorials
Durham TOPAS tutorials (TOPAS site copy)
December 2026 note: these tutorials are undergoing extensive updates ready for the 2026 Durham school. Links may be broken and instructions incorrect over any ~2 day period.
Various tutorials on the use of topas/jEdit are given below. They’ve been collated from various schools and user meetings. There’s more background/theory on many of them in the TOPAS Rietveld book.
Please note that these tutorials have been created over several years in TOPAS versions from v3 to v8. In some cases there may now be better ways of tackling the problem or setting up the input file. Most tutorials will run in v4.2 onwards, but some need functionality only available in later releases.
Many of the tutorials were originally written with jEdit. Most now assume that you are using topas-editor, but should still be fine with jEdit.
Peak positions and auto Indexing
Peak positions are one of the fundamental aspects of a diffraction pattern and are determined by the unit cell size and shape, the wavelength used and any instrumental offsets. These tutorials look at how unknown unit cells are obtained (indexing) then refined. You can try these procedures on any of the other data sets provided. If you’ve never used topas-editor/TOPAS before you might want to try e.g. tutorial 8 or tutorial 9 first which go through some of the mechanics of using topas-editor in a bit more detail.
Tutorial 6 – (U) Peak Fitting: How to perform individual peak fitting in TOPAS, often the first step before indexing.
Tutorial 7 – (U) Indexing: How to index a powder pattern in TOPAS.
Simple Rietveld refinement in topas-editor/TOPAS
The tutorials below are intended to give you an introduction to Rietveld and Pawley refinement using the topas-editor/TOPAS interface. The aim of the tutorial session is not to necessarily fully understand what your doing, but to make sure you’re happy with the “mechanics” of the overall process of Rietveld refinement.
If you want even more basic tutorials then take a look at the introductory tutorials on the web. The examples there have far more detail and contain screen shots of (approximately) what you should see at each stage.
Tutorial 8 – How to run a prewritten input file.
Tutorial 9 – (U) TiO2 lab data Rietveld and Pawley refinements using laboratory data using topas-editor menus or templates.
Tutorials 10-12 – TiO2 examples using jEdit for Rietveld from scratch, Rietveld from a template and Pawley from scratch . These are retained for legacy reasons.
Tutorial 13 – (U) Rietveld analysis of Y2O3, with a few twists at the end.
Tutorial 14 – (U) ZrW2O8 Rietveld: Simple Rietveld refinements using lab data, constant wavelength neutron and time of flight neutron data – make sure you have John’s local.inc on your computer.
Tutorial 15 – (U) Multiphase Rietveld refinement.
Tutorial 16 – (U) LaMnO3 Rietveld with no detailed instructions.
Neutron/synchrotron/combined refinement
How to perform Rietveld/Pawley refinements using neutron/sychrotron data. As well as these examples you might want to repeat/complete the exercises from session 14.
Tutorial 17 – (U) Y2O3 data recorded on id31 at the esrf.
Tutorial 18 – (U) ZrW2O8 Rietveld: Simple Rietveld refinements using lab data, constant wavelength neutron and time of flight neutron data – make sure you have john’s local.inc on your computer. Note this is the same as the ZrW2O8 tutorial in the Rietveld section above.
Tutorial 19 – (U) POLARIS time-of-flight Si data using template.
Tutorial 20 – (U) PbSO4 constant wavelength neutron data from Jeremy Cockcroft that have been used in several Rietveld schoools.
Tutorial 21 – (U) Combined Refinement: Builds from earlier tutorial on ZrW2O8 and shows how to simultaneously fit X-ray and neutron data. Also discusses ab-inition structure solution from X-ray and neutron data. See also gsas 3 and gsas 4.
Peak shapes and microstructure
Peak shapes are another fundamental aspect of a diffraction pattern. These tutorials investigate some of the functions used in Rietveld packages and how peak shapes can be used to give sample size/strain information.
Tutorial 22 – (U) This tutorial explores convolutions to fit a single peak in a pattern using the convolution approach discussed in Rietveld school lectures.
Tutorial 23 – (U) In this tutorial you’ll investigate some of the empirical various peak shape functions that are used in Rietveld refinement packages. You’ll use experimental fwhm vs 2-theta data in excel to come up with functions that might describe a real data set. You’ll then try these functions in TOPAS.
Tutorial 24 – Fundamental Parameters peak shape fitting – modelling peak shapes in terms of instrumental and sample contributions.
Tutorial 25 – (U) Size/Strain Analysis: Shows how size/strain can be determined in topas using the CeO2 round robin data using an empirical instrumental resoultion function.
Tutorial 26 – (U) Nanoparticle Sizing: Determines the size of ~2 nm nanoparticles from diffraction data.
Tutorial 27 – (U) Whole Powder Pattern Modelling (WPPM) by Prof. Paolo Scardi. This tutorial describes a more rigorous approach for modelling the contributions of size and strain distributions on powder peak shapes.
Restraints/rigid bodies
Use of extra chemical information such as restraints and rigid bodies is often important when analysing powder data. Several of the tutorials (e.g. the one on ZrW2O8 Rietveld) use bond distance and angle restraints. Tutorials in this section provide more examples.
Tutorial 28 – (U) Rietveld refinement of an organic molecule using restraints and rigid bodies. See also gsas 7.
Tutorial 29 – (U) A complex use of rigid bodies to refine 3 molecules in asymmetric unit with z-matrix description of local bodies to constrain internal symmetry. Data recorded on id31.
Structure solution
Structure solution is not formally part of the course, but you could try the tutorials below if you’re interested. The tutorial on combined refinement of ZrW2O8 also explores these ideas.
Tutorial 30 – (U) Structure Solution of an inorganic oxide: Takes the information from earlier tutorials and solves the structure of TiO2 using simulated annealing.
Tutorial 31 – (U) Structure solution of a rigid organic molecule and other examples.
Tutorial 32 – (U) Structure solution of inorganic materials.
Miscellaneous examples
Tutorial 33 – (U) Quantitative Rietveld refinement. This is extremely important in many industries. This example uses the Round Robin data of Ian Madsen and Nikki Scarlett.
Tutorial 34 – (U) Solving a structure from single crystal data using charge flipping
Tutorial 36 – (U) Single crystal: How to do a simple single crystal refinement in topas.
Tutorial 37 – (U) Using functions in TOPAS v5+ to explore the fundamental equations used in crystallographic refinement.
Sequential and parametric/surface refinement
Tutorial 38 – (U) How to refine against multiple datasets sequentially in v6+ with #list format or v4/v5 with command files.
Tutorial 39 – (U) Parametric or surface Rietveld refinement – how to use surface fitting to analyse 100 patterns simultaneously to follow phase transitions in WO3. Tutorials linked from this one show several different ways of setting up input files.
Tutorial 40 – (U) An update to the parametric WO3 example for TOPAS v8+ using “stored values” – a parametric INP is as short as a standard INP.
Tutorial 41 – (U) Parametric or surface Rietveld refinement – how to refine sample temperature using the ZrP2O7 example.
Symmetry mode refinements
Tutorial 42 – (U) Structural transformations. Directly refine symmetry-mode amplitudes rather than traditional atomic xyz coordinates of a distorted superstructure. Example based on simulated lab x-ray diffraction data from low-temperature orthorhombic LaMnO3. The symmetry modes are obtained using the ISODISTORT software.
Tutorial 43 – (U) Structural transformations. Directly refine symmetry-mode amplitudes rather than traditional atomic xyz coordinates of a distorted superstructure. Example based on laboratory x-ray diffraction data from room-temperature monoclinic WO3. The symmetry modes are obtained using the ISODISTORT software.
Tutorial 44 – (U) Structural transformations. A more advanced symmetry-mode refinement example based on room-temperature WO3. Fit both neutron and X-ray data. Try to determine space-group symmetry at high temperature using ISODISTORT.
Tutorial 45 – By combining topas, ISODISTORT and some python scripts you can automatically search through different space group possibilities for samples which undergo symmetry-lowering phase transitions.
Tutorial 46 – This is an update of Tutorial 39 and shows how you can use a single TOPAS INP file to search through different space group possibilities for samples which undergo symmetry-lowering phase transitions – no external Python scripts are needed.
Tutorial 48 – This tutorial teaches you how to use a Genetic Algorithm with a P1 distortion mode model of a structure to decide which modes are actually important in fitting the data. This lets you simultaneously determine the space group and structure of a material. The tutorial uses WO3 as an example. See also the magnetic example below.
Magnetic refinements
Tutorial 49 – (U) TOPAS v5 onwards will perform magnetic Rietveld refinement. This tutorial takes you through three different ways of describing the low temperature magnetic structure of LaMnO3.
Tutorial 50 – This tutorial teaches you how to use a Genetic Algorithm in P1 1.1 symmetry to determine the magnetic structure and true magnetic symmetry of a material.
Stacking fault refinements
Tutorial 51 – (U) TOPAS v6+ lets you calculate the diffraction of materials with stacking faults. This tutorial takes you through this type of analysis using examples from the DIFFaX software package.
PDF refinement
Tutorial 52 – PDF small box fitting in Topas v6+. Tutorial fits dta on SnO2 and a 2-phase mixture of SnO2 and MoO3.