From my understanding, programs like CCDC Mercury and VESTA are able to extract some information from imported .CIF files of molecules but then complete calculations to output a simulated X-ray diffraction pattern. Does anyone know the steps that CCDC Mercury takes to calculate the peak positions and the intensities? (From what I've read, some programs seem to use the molecule's structure factor or the Debye scattering formula.)
Program's website has this question in FAQ, but it doesn't provide an answer, only refers to a standard textbook.
The program doesn't use Debye's formula. This formula uses whole crystal (thousands or millions of atoms) as an input, it's computationally intensive and tends to produce wide peaks without Miller indices. See an example in ASE docs.
CCDC Mercury calculates a pattern similarly to programs in this question. In general:
- Bragg's Law determines peak positions,
- intensity is calculated as |Fhkl|2 (squared structure factor) with additional corrections commonly used in powder diffraction,
- the width and shape of peaks is somewhat arbitrary -- in the experiment peak broadening depends on the crystallites size and strain, but such characteristics are not known when simulating the pattern.
Mercury User Guide (Mercury_UserGuide.pdf) provides more details. Below I copied part of the relevant section.
16.3 Technical Details of the Powder Pattern Simulation
- The Lorentz-polarisation correction assumes a laboratory X-ray source. No absorption is simulated. Fixed slit widths are assumed. No background is included.
- All non-hydrogen atoms are assumed to have isotropic atomic displacement parameters (Uiso) of 0.05 Å2. […]
- The powder pattern simulator takes site occupation factors into account. […]
- All reflections have a symmetric pseudo-Voight peak shape with a full width half maximum of 0.1 degree 2θ, corresponding to medium resolution laboratory data.
- Experimental displacement parameters, either isotropic or anisotropic, are taken into account in the calculation if available […]