Crystallography

XRD Peak Fitting: Profile Models, Bragg's Law, and Crystallite Size

ENGPublished July 22, 2026 · 8 min read

X-Ray Diffraction (XRD) is the gold standard for analyzing crystalline structures. However, extracting physical parameters like phase purity, lattice strain, and crystallite size from a diffractogram requires fitting individual diffraction peaks.

Bragg's Law and Diffraction Peaks

Every diffraction peak corresponds to a specific lattice plane spacing (d) satisfying Bragg's Law:

nλ = 2d sin θ

Where λ is the X-ray wavelength and θ is the diffraction angle. Fitting the peak position allows high-precision calculations of lattice constants and micro-strain properties.

Estimating Crystallite Size (The Scherrer Equation)

The width of a diffraction peak is inversely proportional to the crystallite size. Finite crystallite domain size limits coherent X-ray scattering, causing diffraction peak broadening. We calculate crystallite size (τ) using the Scherrer Equation:

$$\tau = \frac{K \cdot \lambda}{\beta \cdot \cos\theta}$$

Where:

  • K is the dimensionless shape factor (typically 0.9).
  • λ is the X-ray wavelength (e.g., 0.15406 nm for Cu K-alpha).
  • β is the line broadening at half the maximum intensity (FWHM) in radians, after subtracting instrumental line broadening.
  • θ is the Bragg angle.

Profile Shapes: Gaussian, Lorentzian, and Pseudo-Voigt

Choosing the right mathematical model for peak shape is vital:

  • Gaussian Profile: Represents instrumental broadening (slits, optics) and microstrain (lattice strain) broadening.
  • Lorentzian Profile: Represents finite crystallite domain size broadening.
  • Pseudo-Voigt Profile: A linear combination of both. It is the most realistic model for actual XRD peaks:
$$PV(x) = \eta \cdot L(x) + (1 - \eta) \cdot G(x)$$

Where η (between 0 and 1) is the Lorentzian fraction. If η = 1, the peak is pure Lorentzian; if η = 0, it is pure Gaussian.


The AltaiPlot Advantage: Instant Crystallite Size

Calculating crystallite size traditionally involves exporting peak parameters to spreadsheets and manually typing the Scherrer formula. AltaiPlot streamlines XRD analysis with workflow guidance:

XRD Multi-Peak Fit in AltaiPlotInteractive XRD Peak Fitting and Baseline Correction in AltaiPlot (Click to enlarge)
  • XRD Data Type Detection: AltaiPlot recognizes XRD datasets and suggests appropriate processing chains — baseline correction, smoothing, then peak detection.
  • Multi-Peak Fitting with Profile Selection: Fit overlapping peaks using Gaussian, Lorentzian, or Pseudo-Voigt profiles. The solver optimizes center, FWHM (β), and shape factor (η) simultaneously.
  • Scherrer Analysis via Script Console: After fitting, use the built-in Scherrer formula in the Python console to calculate crystallite size from your fitted FWHM values — the console includes pre-built snippets for common crystallography calculations.