3DSCalculator Documentation
Open the calculator

Diffuse Scattering Theory

The equations behind the calculator: the intensities it computes, how the average structure is subtracted, magnetic scattering, and the conventions of the views.

Scope

This page summarizes the theory needed to use and interpret the diffuse-scattering calculator. It covers the forward calculation and visualization of I(h,k,l). It does not cover the MOSAIC inverse reconstruction, decoder training, or site-resolved inversion workflow.

Kinematic Approximation

The calculator uses the kinematic scattering approximation to evaluate reciprocal-space intensity from atomic positions in an .rmc6f configuration. This page keeps the theory deliberately compact and focuses on interpreting the displayed intensity rather than on implementation internals.

Total And Diffuse Intensity

Without subtraction (Subtract avg = OFF)

The raw displayed intensity is

Itotal(Q) = |Atot(Q)|²

This contains both coherent/Bragg-like intensity and diffuse intensity.

With subtraction (Subtract avg = ON)

The calculator subtracts the average-structure contribution:

Idiffuse(Q) = |ΔA(Q)|² = |Atot(Q) − L(Q) F̄(Q)|²

The average-structure amplitude is the lattice sum over the supercell cells times the mean cell:

L(Q) = Σcells eiQ·Rc = ∏d eiπhd(Nd−1) sin(πNdhd) / sin(πhd),   F̄(Q) = (1/Ncell) Σj bj(Q) eiQ·δj

where Nd is the supercell size along each axis, Ncell = N1N2N3, and δj is the position of atom j relative to the origin of its unit cell. L(Q) is evaluated analytically; on a grid with steps of 1/Nd it is non-zero only at integer h, k, l, so the subtraction removes exactly the Bragg peaks of the average structure. The expression stays exact when cells hold different numbers of atoms (vacancies) and when the element filter selects a subset of atoms; this is the same average used by RMCProfile's 3D diffuse module.

Subtraction needs the unit cell of every atom (the cell references of an .rmc6f file, or atom_unit_cell in a unified structure file). It is switched off for LAMMPS data and for unified files without cell references.

Lattice centring

When the conventional cell is centred (I, F, A, B, C or R), the average structure has Bragg peaks only at the reflections the centring allows. At forbidden lattice points, such as (1 0 0) of a face-centred cell, all the scattering is diffuse. Short-range-order maxima can sit there, for example {1 0 0} in fcc alloys. The mean cell of a finite supercell is not exactly centred, so subtracting L(Q)F̄(Q) at those points would wrongly remove that intensity. The calculator therefore multiplies the average amplitude by the centring factor:

C(h) = (1/n) Σt e2πi h·t

The sum runs over the n centring translations t. C = 1 at allowed reflections and 0 at forbidden ones, and it varies smoothly in between, so non-commensurate grids work too. This matches Scatty's REMOVE_BRAGG with a centring letter: for a disordered rocksalt (Mn,Fe)O the two codes agree to 10−14 at every point (tests/fixtures/scatty_nuclear).

By default the centring is detected from the supercell. The mean cell of each element must be invariant under the centring translations to within its finite-size noise, at all low-order reflections the centring forbids. The magnetic mean cell is tested separately, because magnetic order can break the nuclear centring (type-I order on an fcc lattice has its magnetic Bragg peaks at nuclear-forbidden positions). The Lattice centring control shows the detected value and can override it.

Magnetic Scattering

For neutrons, magnetic moments add an amplitude for each Cartesian component α:

Mα(Q) = Σj p fj(Q) μj,α eiQ·rj,   p = γre/2 = 0.26954×10−12 cm per μB

Only the part of the moment perpendicular to Q scatters:

IM(Q) = |ΔM⊥|² = |ΔM|² − |Q̂·ΔM|²

ΔM subtracts the same lattice-sum average as the nuclear amplitude when Subtract avg is on. Unpolarized neutrons measure I = IN + IM, with no nuclear–magnetic cross term.

The magnetic form factor is taken in the dipole approximation, f(Q) = ⟨j0⟩ + C2⟨j2⟩ with s = Q/4π:

  • C2 = (2 − gJ)/gJ for rare-earth J multiplets, and about 0 for spin-only 3d ions.
  • ⟨j0⟩ and ⟨j2⟩ for 155 ions come from P. J. Brown's tables, and from Kobayashi, Nagao and Ito for 5d ions.
ControlMeaning
MagneticNuclear only, magnetic only, or nuclear + magnetic. It is enabled when a spin configuration is loaded and the radiation is neutron.
Value at Q = 0The perpendicular projection is undefined at Q = 0, and Q = 0 is the unscattered beam, which is never measured; any value there is a convention. The default is (2/3)|ΔM|², as in Scatty; choose 0 to match RMCProfile point by point. (2/3)|ΔM|² is the orientational average of the limit Q → 0, since ⟨δαβ − Q̂αQ̂β⟩ = (2/3)δαβ. For a paramagnet it continues the neighbouring points, whereas 0 leaves a single hole that stretches a logarithmic color scale. With average subtraction on, ΔM(0) = 0, as at every reciprocal-lattice point, so both choices give 0.
ParamagnetOptionally subtracts the ideal paramagnet (2/3) Σj p²|μj|² fj², the scattering of uncorrelated spins (Scatty's TEMP_SUBTRACT). What remains is the spin-correlation signal.

Averaging over nuclear cells removes only the ferromagnetic (k = 0) part of the average moment. Antiferromagnetic Bragg peaks, such as (½ ½ ½) of MnO, stay in the magnetic intensity.

With per-atom normalization and moments in μB, IM is in barn sr−1 per atom. The results reproduce J. A. M. Paddison's Scatty to 10−7 of the peak for MnO and spin-ice configurations (tests/fixtures/magnetic).

RMCProfile uses the same CODATA 2018 constants (γ = 1.91304273, re = 2.8179403262 fm), so p agrees exactly. The FORM_FACTOR records of its .dat files hold only ⟨j0⟩ (7 coefficients, or 9 with MAG_5D), so C2 = 0 for them.

The ⟨j0⟩ and ⟨j2⟩ fits are used to s = sinθ/λ ≤ 2 Å−1 (|Q| ≤ 25.1 Å−1); a grid that reaches beyond computes with the extrapolated fit and a warning, because some fits grow there instead of decaying (the Mn2+ fit holds 0.0043 exp(+0.609 s²), which is 1.0 at s = 3). Within the range the fits cross zero near s ≈ 0.8–1 Å−1 for 3d ions and stay within a few 10−2 of zero up to s = 2.

Normalization

The Normalize control sets the divisor applied to the final intensity:

SettingResult
per atom (default)Iout(Q) = I(Q) / Natoms, where Natoms counts every atom in the configuration, also when the element filter selects a subset. This is the convention of RMCProfile and Scatty. With neutron scattering lengths in 10−12 cm the result is in barn sr−1 per atom; X-ray results are in electron units per atom.
per Q point (legacy)Iout(Q) = I(Q) / NQ with NQ = Nh × Nk × Nl, the former default. The value at a given Q then depends on how many grid points were computed (a 201³ grid reads about 8× lower than a 101³ grid), so use it only to reproduce earlier results.
noneThe raw |ΔA(Q)|².

Display Scale

The calculator exposes log10 and linear viewer scales.

On the log10 scale the color range starts at the 1st percentile of the positive intensities, and no lower than 9 decades below the maximum. Exact zeros, such as reciprocal-lattice points after average subtraction, and rounding noise are drawn in the bottom color rather than stretching the scale. Drag the color-bar handles to narrow the range further.

  • linear: preserves direct intensity contrast and is the clearest choice when you care about relative magnitude in a narrow range.
  • log10: compresses the dynamic range so weak diffuse features remain visible next to stronger intensity.

For broad diffuse problems, log10 is usually the more informative visualization setting.

Laue Symmetrization

A finite configuration breaks the crystal's symmetry through its speckle and finite size. For a Laue class G, a group of |G| operations on (h, k, l) that includes the inversion, the symmetrized intensity is

Isym(h) = (1/n) Σg I(gh),

the sum running over the n ≤ |G| operations whose gh falls on the grid, with masked points left out. The classes and their operations are those of Scatty; the trigonal and hexagonal ones act on hexagonal axes with i = −h − k. An operation keeps |Q| only when the reciprocal metric G* satisfies MTG*M = G*, which the calculator checks. Scattering from real scattering lengths and moments is already centrosymmetric, I(−h) = I(h), so the class −1 changes little.

Comparison With Data

A calculation Ic is compared with measured or reference intensities I on the grid points the two share. The model

Im = s Ic + b + c |Q|

is fitted by weighted linear least squares, with w = 1/σ2 from the data, or w = 1 when they give none. Each of s, b and c is either refined or held at s = 1, b = c = 0. This is the single-crystal fit of Spinteract (Paddison, 2022; see the bibliography). Points are left out when the data are masked, σ is not positive, the calculation is not finite, or Q = 0. With n points and p refined parameters:

  • χ2 = Σ w (I − Im)2, and χ2/(n − p) per degree of freedom;
  • Rwp = 100 √(χ2 / Σ w I2), Spinteract's weighted profile R-factor;
  • R = 100 Σ|I − Im| / Σ|I|.

The normal equations are solved on the equilibrated 3×3 system. A calculation that does not vary over the data points cannot separate s from b, and is reported instead of fitted. The fit only rescales and offsets: it cannot remove a difference in shape, which is what the difference map shows.

Reciprocal-Space Conventions

  • h, k, l are reciprocal-lattice coordinates in reciprocal-lattice units.
  • Q is the reciprocal-space vector in Cartesian reciprocal units: Q = 2π B* (h, k, l)T.
  • The tool computes and displays diffuse intensity as a function of reciprocal-space position, exposed in the UI as I(h,k,l).

Slice Modes

Axis mode

Inspect conventional crystallographic sections with one reciprocal coordinate fixed.

Normal plane mode

Define a custom plane normal and translate the plane through reciprocal space. This is the most flexible mode for studying diffuse manifolds and anisotropic features.

Volume average mode

Average the diffuse intensity over a finite slab centered on the current plane. The slab is divided into N parallel sample planes evenly spaced within the slab thickness:

Islab(u,v) = (1/N) Σi=1N I(u, v, ti)

where ti are the sample positions along the plane normal within [center − Slab±, center + Slab±] and (u, v) are in-plane coordinates.

ControlMeaning
Slab ±Half-thickness of the averaging volume in HKL units (default 0.5).
Slab NNumber of sample planes within the slab (default 10, range 3–200).

This helps when the diffuse feature is broad or noisy, or when you want to integrate through a volume rather than sample a single infinitely thin plane.

Further Reading

Technical provenance, scattering-table families, and reproducibility notes are collected in Diffuse Scattering Supplementary. Formal references for the software and coefficient families are collected in Diffuse Scattering Bibliography. Scientific context for the benchmark samples is in the Examples page.