# SciPhon: a data analysis software for nuclear resonant inelastic X-ray scattering with applications to Fe, Kr, Sn, Eu and Dy

Nicolas Dauphas, Michael y Hu, Erik M Baker, Justin Hu, François L.H. Tissot, E. Ercan Alp, Mathieu Roskosz, Jiyong Zhao, Wenli Bi, Jin Liu, et al.

## ► To cite this version:

Nicolas Dauphas, Michael y Hu, Erik M Baker, Justin Hu, François L.H. Tissot, et al.. SciPhon: a data analysis software for nuclear resonant inelastic X-ray scattering with applications to Fe, Kr, Sn, Eu and Dy. Journal of Synchrotron Radiation, 2018, 25, pp.1581 - 1599. 10.1107/S1600577518009487 . hal-01879978

HAL Id: hal-01879978

https://hal.sorbonne-universite.fr/hal-01879978

Submitted on 24 Sep 2018

HAL is a multi-disciplinary open access
archive for the deposit and dissemination of sci-
entific research documents, whether they are pub-
lished or not. The documents may come from
teaching and research institutions in France or
abroad, or from public or private research centers.

L'archive ouverte pluridisciplinaire HAL, est
destinée au dépôt et à la diffusion de documents
scientifiques de niveau recherche, publiés ou non,
émanant des établissements d'enseignement et de
recherche français ou étrangers, des laboratoires
publics ou privés.

<figure><img src="image_1.png" /></figure>

Distributed under a Creative Commons Attribution 4.0 International License
<figure><img src="image_2.png" /></figure>

<figure><img src="image_3.png" /></figure>

JOURNAL OF
SYNCHROTRON
RADIATION

ISSN 1600-5775

Received 15 February 2018

Accepted 2 July 2018

Edited by V. Favre-Nicolin, CEA and
Université Joseph Fourier, France

**Keywords:** NRIXS; GUI software; data reduction; Mossbauer; lattice dynamics.

**Supporting information:** this article has
supporting information at journals.iucr.org/s

# SciPhon: a data analysis software for nuclear resonant inelastic X-ray scattering with applications to Fe, Kr, Sn, Eu and Dy

Nicolas Dauphas,\* Michael Y. Hu,\* Erik M. Baker,\*c Justin Hu,\*

François L. H. Tissot,\* E. Ercan Alp,\* Mathieu Roskosz,\* d Jiyong Zhao,\*

Wenli Bi,\* Jin Liu,\* e Jung-Fu Lin,\*f Nicole X. Nie\*a and Andrew Heard\*a

The synchrotron radiation technique of nuclear resonant inelastic X-ray scattering (NRIXS), also known as nuclear resonance vibrational spectroscopy or nuclear inelastic scattering, provides a wealth of information on the vibrational properties of solids. It has found applications in studies of lattice dynamics and elasticity, superconductivity, heme biochemistry, seismology, isotope geochemistry and many other fields. It involves probing the vibrational modes of solids by using the nuclear resonance of Mössbauer isotopes such as ⁵⁷Fe, ⁸³Kr, ¹¹⁹Sn, ¹⁵¹Eu and ¹⁶¹Dy. After data reduction, it provides the partial phonon density of states of the Mössbauer isotope that is investigated, as well as many other derived quantities such as the mean force constant of the chemical bonds and the Debye velocity. The data reduction is, however, not straightforward and involves removal of the elastic peak, normalization and Fourier-Log transformation. Furthermore, some of the quantities derived are highly sensitive to details in the baseline correction. A software package and several novel procedures to streamline and hopefully improve the reduction of the NRIXS data generated at sector 3ID of the Advanced Photon Source have been developed. The graphical user interface software is named *SciPhon* and runs as a *Mathematica* package. It is easily portable to other platforms and can be easily adapted for reducing data generated at other beamlines. Several tests and comparisons are presented that demonstrate the usefulness of this software, whose results have already been used in several publications. Here, the *SciPhon* software is used to reduce Kr, Sn, Eu and Dy NRIXS data, and potential implications for interpreting natural isotopic variations in those systems are discussed.

## 1. Introduction

The method of nuclear resonant inelastic X-ray scattering [NRIXS; also known as nuclear resonance vibrational spectroscopy (NRVS) or nuclear inelastic scattering (NIS)] is a synchrotron radiation technique that allows one to probe the vibrational properties of a solid (Singwi & Sjölander, 1960; Visscher, 1960; Sturhahn et al., 1995; Alp et al., 2002; Sturhahn, 2004; Chumakov & Sturhahn, 1999; Kohn et al., 1998). Despite its relative recent development, it has already found important applications in a variety of scientific fields. In geophysics, it is used to derive acoustic wave velocities, which are critical to interpret seismograms from which the internal structure and composition of the Earth can be inferred (Mao et al., 2001; Hu

<figure><img src="image_4.png" /></figure>

OPEN

<figure><img src="image_5.png" /></figure>

ACCESS

<footnote>\*Department of the Geophysical Sciences and Enrico Fermi Institute, The University of Chicago, 5734 South Ellis Avenue, Chicago, IL 60615, USA, \*bAdvanced Photon Source, Argonne National Laboratory, 9700 South Cass Avenue, Argonne, IL 60439, USA, \*cDepartment of Earth and Planetary Sciences, Northwestern University, 2145 Sheridan Road, Evanston, IL 60208, USA, \*dIMPMC-UMR CNRS 7590, Sorbonne Universités, UPMC, IRD, MNHN, Muséum National d'Histoire Naturelle, 61 Rue Buffon, 75005 Paris, France, \*eDepartment of Geological Sciences, Stanford University, Stanford, CA, USA, and \*fDepartment of Geological Sciences, Jackson School of Geosciences, University of Texas at Austin, Austin, TX 78712, USA. \*Correspondence e-mail: dauphas@uchicago.edu</footnote>
et al., 2003; Mao et al., 2006; Lin et al., 2003, 2013, 2014; Sturhahn & Jackson, 2007). In geochemistry, the mean force constants of chemical bonds can be measured, allowing one to predict how isotopes should partition between coexisting phases at equilibrium (Polyakov et al., 2005, 2007; Polyakov, 2009; Dauphas et al., 2012, 2014; Blanchard et al., 2015; Roskosz et al., 2015; Shahar et al., 2016). In condensed matter physics and material sciences, the partial phonon density of states of Mössbauer isotopes provide considerable insights into lattice dynamics and related properties of the materials (Röhlsberger, 2004). In biochemistry, the vibration modes provide clues on the arrangement of ligands around the heme group (Sage et al., 2001; Scheidt et al., 2005, 2017). A common feature of NRIXS usage across all these fields is that the measurements always take time and are technically challenging. Developing refined and rapid data reduction tools is thus critical to make the most efficient use of this technique and the limited beam time available for NRIXS measurements at synchrotrons.

The method of NRIXS uses the excitation of Mössbauer isotopes to probe the vibration properties of solids (Sturhahn et al., 1995; Seto et al., 1995; Alp et al., 2002; Sturhahn, 2004; Chumakov & Sturhahn, 1999; Kohn et al., 1998). In the following, we will take $^{57}$Fe as an example and describe the experimental setup used at sector 3ID of the Advanced Photon Source (APS) at Argonne National Laboratory. Other Mössbauer isotopes such as $^{83}$Kr, $^{119}$Sn, $^{151}$Eu and $^{161}$Dy are routinely measured by NRIXS at the APS and other beamlines around the world. The software introduced here is applicable to those systems as well. The Mössbauer isotope $^{57}$Fe has a low-lying nuclear excited state at 14.4125 keV. The approach used in NRIXS is to scan the energy around this transition and measure X-rays scattered by the de-excitation of the $^{57}$Fe nuclei. The incident X-rays are monochromated to 1 meV band-pass FWHM (full width at half-maximum). They consist of pulses of 70 ps duration separated by interpulses of 153 ns duration. All electronic X-ray scattering processes including elastic Thomson scattering, Compton scattering and possible fluorescence emissions are instantaneous and rapidly decay. The excited state of $^{57}$Fe has a lifetime of 141 ns so the X-rays scattered by nuclear excitation are emitted with a delay. By applying appropriate time discrimination, and only collecting the signal emitted during the inter-pulse period, it is possible to eliminate X-rays from electronic scattering and only consider those produced by nuclear resonant scattering. The energy of the incident X-ray beam is scanned around the nominal nuclear resonance energy of $^{57}$Fe (i.e. 14.4125 keV) and the scattered X-rays are collected (in the case of $^{57}$Fe, it is advantageous to record the 6.403 keV $K_{α1}$, 6.391 keV $K_{α2}$ and 7.057 keV $K_{β}$ iron fluorescence signal induced by internal conversion because the yield is higher and the efficiency of the detector is increased). The plot of delayed nuclear resonance signal versus energy (E) after proper normalization is called the phonon excitation probability density and is denoted $S(E)$. When the incident X-rays have lower energy than the nominal nuclear resonance energy, excitation of $^{57}$Fe can also occur if lattice vibrations (or their particle-like equivalents phonons)

provide the missing energy in a process known as phonon annihilation. Conversely, if the incident X-rays have higher energy than the nominal resonance energy, excitation of $^{57}$Fe can still occur if lattice vibrations can absorb the extra energy in a process known as phonon creation. The phonon excitation probability density function $S(E)$ thus contains considerable information on lattice vibrations, the macroscopic manifestations of which are the elastic properties of the material considered. In particular, appropriate data processing yields the phonon density of states (PDOS) (Sturhahn et al., 1995). The PDOS is partial in that iron (or any other resonant nuclide; Diakhate et al., 2011; Simon et al., 2014; Long et al., 2005) is the only nucleus that is probed by the technique, and it is projected in that the quantities derived are projected along the direction of the incident beam (Chumakov et al., 1997; Kohn et al., 1998). For isotropic materials such as cubic crystals, the PDOS has no directionality. For powder, the PDOS is averaged over all directions.

The first NRIXS measurements were reported in 1995 (Seto et al., 1995) and it was immediately recognized that the iron PDOS could be derived from such measurements (Sturhahn et al., 1995). The natural abundance of $^{57}$Fe is only 2.119% of total iron so the measurements are most often made on synthetic materials that have been enriched in $^{57}$Fe. This cuts on acquisition time but NRIXS remains a time-intensive technique, as it uses a very high resolution monochromator that also reduces the flux of X-rays. A good spectrum can be acquired in a time span of hours to days. Several synchrotron beamlines around the world can perform NRIXS measurements (sectors 3ID, 16-ID and 30-ID at APS, USA; ID-18 at ESRF, France; P01 at PETRA-III, Germany; and BL09XU and BL11XU at SPring-8, Japan). The analysis of NRIXS data is quite involved. To make most efficient use of precious synchrotron beam time, it is important to develop data processing software such as PHOENIX (Sturhahn, 2000) or DOS (Kohn & Chumakov, 2000) that allow beamline users to analyze the results concurrently with data acquisition so that they can assess if sufficient counts have been acquired or if the measurements suffer from biases that can be rapidly addressed. The software of choice for reducing NRIXS data at sector 3ID of the APS is PHOENIX (Sturhahn, 2000), which is written in Fortran90 and is a command-line based program. To streamline data reduction (Blanchard et al., 2015; Dauphas et al., 2014), we have developed a new software for NRIXS analysis to meet the following requirements:

(i) It has a graphical user interface (GUI), which facilitates learning of the program and speeds up data processing for the most repetitive tasks.

(ii) It provides flexibility in the definition of the baseline.

(iii) It allows the user to define the energy range used in data reduction.

(iv) It propagates uncertainties not only from counting statistics but also from baseline subtraction and energy scaling.

(v) It outputs all the parameters already given by PHOENIX.

The program is named SciPhon (Science of Phonons) and is a package that can be run under Mathematica. The reason why
*Mathematica* was used is that it makes it easy to develop a GUI that is portable from one operating system to another and from one software generation to another. The software is available from the corresponding author upon request, from scientists at sector 3ID of the APS, and from the website http:// originslab.uchicago.edu/Software-and-Facilities.

## 2. SciPhon operation

Below, we provide a step-by-step explanation of the algorithm behind *SciPhon* (Fig. 1). The inputs are the measured phonon spectrum and the resolution function. The NRIXS signal is measured by one or several avalanche photodiode (APD) detectors that are positioned, on the incident beam side, as close as possible to the sample. The forward-scattering signal corresponds to a convolution of the natural linewidth of the 14.4125 keV transition of <sup>57</sup>Fe (4.66 neV) and the resolution function of the monochromator (~1.0 meV FWHM). Because the latter is so much larger than the former, the signal formed by nuclear forward-scattered X-rays is a proxy for the resolution function of the monochromator (Fig. 2). This signal is measured by one APD detector placed far away behind the sample in the direction of the beam. For samples that are too thick for X-rays to pass through, a resolution function measured during the same session as the samples should be

<figure><img src="image_6.png" /><figcaption>**Figure 1**
Flowchart of the *SciPhon Mathematica* package. Fig. 3 shows how these actions are implemented through GUI display panels. See text for details.</figcaption></figure>

<figure><img src="image_7.png" /><figcaption>**Figure 2**
Example of the resolution function measured in the nuclear forward-scattering channel. The FWMH is ~1 meV. The intensity decreases by four orders of magnitude in the first ±15 meV. Beyond that, the measured counts are below baseline level. Before further processing, the baseline counts (in red here) are subtracted from the signal and the spectrum is truncated to eliminate the low- and high-energy tails where the signal is below baseline (here beyond ~±15 meV).</figcaption></figure>

used. The data and resolution files can be obtained using the 'padd' module, which is part of *PHOENIX* (Sturhahn, 2000). Padd stacks the different scans that belong to a single sample and establishes the energy scale. A typical NRIXS scan would be from -130 to +150 meV in steps of 0.25 meV. To minimize bias introduced by unaccounted drift (increase or decrease) in the instrument response with time, we alternate between low to high (-130 to +150 meV) and high to low (+150 to -130 meV) energy scans. The expectation is that by measuring an even number of scans the systematic effects associated with such a change in the instrument response can be minimized.

### 2.1. Selection of a Mössbauer isotope

A picture of the GUI is shown in Fig. 3. The user starts by selecting the Mössbauer isotope that was measured by NRIXS. The options given in a drop-down menu are <sup>57</sup>Fe, <sup>119</sup>Sn, <sup>151</sup>Eu, <sup>161</sup>Dy and <sup>83</sup>Kr, with <sup>57</sup>Fe selected as the default option. The user is then guided through a sequence of buttons numbered 1 to 11 that all perform a task. The buttons appear as gray and cannot be clicked before all the tasks needed for that action are completed. Once a button is clicked and an action is performed, the button turns gray and cannot be clicked again. If a mistake is made, the user has the option of aborting the sequence and starting the data reduction anew.

### 2.2. Load data file

The data file contains a header where each line starts with the symbol # and which is discarded by *SciPhon*. The rest of the file contains three columns. The first column is the energy in meV. The second column is the total number of counts in each energy channel. The monochromator does not produce a perfectly flat intensity profile as a function of energy and the intensity provided by the synchrotron can fluctuate. These
<figure><img src="image_8.png" /><figcaption>**Figure 3**
Main GUI display panel of *SciPhon*. Fig. 1 shows the sequence of actions that call the opening of these windows. See text for details.</figcaption></figure>

variations are corrected for in padd (part of the PHOENIX software) by normalizing the counts to the flux measured in an ionizing chamber (IC1) located after the monochromator. The third column in the data file is the 1σ error from counting statistics (\sqrt{n}, where n is the number of counts in each channel). The user selects the data file by using a standard file browser interface. The directory where the data file is located is the default output directory for *SciPhon*, where the results of the calculation are exported.

## 2.3. Load resolution file

The resolution function file contains a header that is discarded. The first column records the energy in meV, the second column contains the counts, and the third column contains the uncertainty from counting statistics. The uncertainty column is not used in the calculation. By default, the software opens the file browser window starting in the directory where the data file is, but the user can then browse other directories to find the resolution function.

## 2.4. Deconvolution of the resolution function and spectrum

In samples that do not block X-rays, the resolution function $R(E)$ is measured in the forward channel at the same time as the NRIXS signal is being measured. It thus has the same energy range as the samples. In samples that are too thick to let X-rays pass through, it can be separately measured in the forward channel before or after the sample measurement. In

samples that do not block X-rays, $R(E)$ is measured over the same energy range as the data. The resolution function typically decreases to values that are below background outside of about -15 to +15 meV (Fig. 2). In *SciPhon*, the user is thus given the option to truncate the resolution function and only use the portion that is above background level. This is done using an interactive graphics interface where $R(E)$ is plotted as a function of $E$ on a log-linear scale. The user can use this plot to visually assess the energy values beyond which the signal is all background and to set those limits using vertical sliders. Once those energies have been set, *SciPhon* truncates $R(E)$ to this range and a baseline is subtracted by interpolating the background signal measured outside the truncation range. The resolution function thus defined (truncated and with a baseline subtracted) is denoted $\tilde{R}(E)$ hereafter.

The next step in the algorithm is the optional deconvolution of $\tilde{R}(E)$ from $S(E)$. One may wonder why this deconvolution is done before baseline subtraction on $S(E)$. Convolution has the property of distributivity, meaning that deconvolution of the signal and the baseline can be examined independently. The convolution of an even function whose integral is 1 ($\tilde{R}$ is normalized and is approximately symmetric around zero energy) with a linear function is the linear function itself. This means that it would make no difference if the baseline was subtracted before or after peak deconvolution. This being true, we prefer to carry out the peak deconvolution first because some peak deconvolution algorithms do not handle well negative numbers that can arise when a background/baseline is subtracted.

The measured NRIXS spectrum is a convolution of the 'true' spectrum and the resolution function, $S(E) = \tilde{S}(E) \otimes \tilde{R}(E)$. A mathematical deconvolution can be performed by dividing the discrete Fourier transform of $S(E)$ by the Fourier transform of $\tilde{R}(E)$, and then taking the inverse Fourier transform of that ratio. While mathematically rigorous, this procedure does not work for noisy data as the noise tends to be amplified. In many respects, the problem at hand is reminiscent of image deconvolution where images often suffer from noise and the point-spread function (the equivalent of the resolution function) is known. Several algorithms are routinely used in image processing. One is the Wiener deconvolution, where some filtering is carried out in the frequency domain on the Fourier transform to reduce issues of noise amplification. Others, like the steepest descent and Richardson-Lucy algorithms, do work in the time domain and use iterative approaches. We have tested several image deconvolution algorithms available in *Mathematica* (damped least-squares, Tikhonov regularization, truncated singular-value decomposition, Wiener deconvolution, Tikhonov-Golub-Kahan bidiagonalization regularization, Richardson-Lucy, modified residual norm steepest descent). The criteria for judgment were the degree to which the elastic peak approached a Dirac delta function, the lack of deconvolution artifacts near the elastic peak, the accuracy of derived PDOS, and minimal noise amplification. The Richardson-Lucy (Richardson, 1972; Lucy, 1974) and steepest descent (Nagy & Strakos, 2000) methods yielded the best results and the
steepest descent method was adopted for use in *SciPhon*. It is a simple and well established iterative optimization method whose principles are briefly explained below.

Deconvolution of discrete data without noise corresponds to the solution of a system of linear equations. Such a solution can be achieved using iterative methods whereby a starting solution vector is used, which is updated at each iteration using a restoration vector. The restoration vector is calculated so that the discrepancy between the measured spectrum and the solution vector is most rapidly minimized (hence the name steepest descent). The restoration vector can be modified so that no spurious negative counts can be present in the solution vector and noise amplification is limited. Furthermore, to limit noise amplification, the user can limit the number of iterations so that a partial solution is retained while keeping noise amplification within an acceptable range. The iterative solution is appealing because it stands between no deconvolution (no noise amplification but the presence of resolution artifacts) and full deconvolution (significant noise amplification but reduction in resolution artifacts).

To test the steepest descent deconvolution technique, we used a synthetic Debye DOS. The rationale for using such a DOS is that it presents a sharp decrease at the Debye energy so the strengths and virtues of the method should be exacerbated. To run the test, we computed a synthetic Debye DOS with a Debye energy cutoff of 30 meV (Fig. 4). A synthetic spectrum $S(E)$ was then calculated from this DOS. In NRIXS, the X-rays from nuclear resonant elastic scattering are suppressed relative to those from nuclear resonant inelastic scattering. The elastic peak in the synthetic spectrum was therefore arbitrarily reduced by a factor of ten compared with the rest of the spectrum while in reality the reduction is higher (Mooney *et al.*, 1992). The synthetic spectrum with suppressed elastic peak was convolved with a synthetic resolution function of Gaussian shape and FWHM of 2 meV. The overall spectrum was rescaled to yield 6000 total counts on the elastic peak. Noise was added to this spectrum using a Poisson distribution. The synthetic spectrum thus produced has many of the features of real NRIXS data (Fig. 4a). We then used this synthetic spectrum and associated resolution function as inputs in the *SciPhon* software to calculate the PDOS and all the atomic dynamics and thermodynamic properties that are derived from $g(E)$ and $S(E)$. We compared the results following (1) no deconvolution of the resolution function from the data, (2) deconvolution with 10 iterations, and (3) deconvolution with 100 iterations. Near the elastic peak, significant oscillations are present in the deconvoluted data, especially when 100 iterations are performed (Fig. 4b). As is expected, the calculated PDOS after 10 or 100 iterations define sharper drops at the Debye energy than when no deconvolution is performed (Fig. 4c). However, the deconvoluted data with either 10 or 100 iterations yield noisier PDOS. All the properties derived from the data (deconvoluted or not) are consistent within error bars. As an example, the expected true force constant for a Debye spectrum with a Debye energy of 30 meV is $117.8 \text{ N m}^{-1}$. The force constant without deconvolution is $120.2 \pm 6.3 \text{ N m}^{-1}$, the one after 10

<figure><img src="image_9.png" /><figcaption>Figure 4</figcaption></figure>

Effect of deconvolution of the resolution function on NRIXS spectra and phonon density of states. (a) Synthetic NRIXS spectrum calculated from a Debye PDOS with an energy cutoff of 30 meV (black curve) that was convoluted with a Gaussian-shaped resolution function (FWHM of 2 meV) and to which Poisson noise was added (blue curve). (b) Close-up of the NRIXS spectrum near the elastic peak after no deconvolution (blue curve) and deconvolution using the steepest descent with 10 (red curve) and 100 (orange curve) iterations. (c) Calculated PDOS from the synthetic NRIXS spectrum with or without deconvolution compared with the input Debye PDOS. A deconvolution using the steepest descent method and 10 iterations is a good trade off between accuracy (the peak in the PDOS at 30 meV is better reproduced) and noise amplification (see text for details).
iterations is 119.0 ± 5.5 N m⁻¹, and that after 100 iterations is 118.5 ± 5.6 N m⁻¹. To summarize, this analysis shows that deconvolution of the resolution function is largely innocuous but can slightly improve the accuracy and reveal subtle features in the PDOS. *SciPhon* leaves to the user the choice of using or not the deconvolution option and, if chosen, of deciding on the number of iterations to perform. Our experience dealing with hundreds of NRIXS spectra is that deconvolution using the steepest descent approach with 10 iterations yields acceptable results (this is the default option in *SciPhon*). Most importantly, it does not add any bias.

## 2.5. Input of background counts and experiment temperature

The background can be measured away from the resonance by setting the energy to -200 meV relative to the resonance energy, where no counts (even from multiple phonon annihilation) should be present and all the signal should come from the background. This background can be measured for a set duration and the resulting counts can be subtracted from the signal. As discussed below, another option is given to the user, which is to apply a baseline subtraction based on the counts measured in the low- and high-energy tails of the spectrum. In the following, we will refer to background for the counts measured at a single energy far from resonance, and baseline for the counts interpolated from the low- and high-energy tails of the spectrum.

The user is also asked to enter the experiment temperature, meaning the temperature of the sample as it is being measured. This is used when calculating the phonon annihilation part of the NRIXS spectrum from the phonon creation part. Indeed, an option is given in the software to either use the temperature from the detailed balance or that entered by the user. This is particularly useful for experiments carried out at high temperature, where the temperature given by the detailed balance is very imprecise. The input temperature is also used for elastic peak removal (see the section below).

## 2.6. Elastic peak removal

The procedure used by *PHOENIX* for removal of the elastic peak is to rescale the resolution function and to fit it to the undeconvoluted elastic peak. The procedure used in *SciPhon* is different. At two given energies -E and +E, the NRIXS signal must respect the detailed balance

$$S(E) = S(-E) \exp(E/2k_B T), \quad (1)$$

where $k_B$ is the Boltzmann constant and T is the temperature in K. This is the standard way of writing the detailed balance but it can also be written in the form

$$\frac{S(E)}{\exp(E/2k_B T)} = \frac{S(-E)}{\exp(-E/2k_B T)}. \quad (2)$$

The function $S(E)/\exp(E/2k_B T)$ is thus an even function, which can be expanded in a Taylor series as

$$\frac{S(E)}{\exp(E/2k_B T)} = \sum_{i=0}^{\infty} a_{2i} E^{2i}. \quad (3)$$

In *SciPhon*, the series is truncated at the second order and near the elastic peak we use the approximation

$$S(E) \approx (a_0 + a_2 E^2) \exp(E/2k_B T). \quad (4)$$

This function is used to extrapolate the NRIXS signal below the elastic peak (Fig. 5). To do this, the user can move two sliders (denoted $E_1$ and $E_2$ hereafter) that define an energy interval where the data will be used to define the interpolation. The $E_1$ marker is positioned by the user immediately to the right of the elastic peak while the second marker is positioned further away in a range where $S(E)$ is well fit by equation (4). The parameters $a_0$ and $a_2$ are calculated by fitting equation (4) to $S(E)$ in the interval $[-E_2, -E_1] \cup [E_1, E_2]$. The data $S(E)$ and the fit $\tilde{S}(E)$ are displayed on the screen in real time as the user adjusts the sliders so that one can directly assess the quality of the fit. In the range $[-E_1, E_1]$, which corresponds to the footprint of the elastic peak, the data points are replaced by the fit function.

## 2.7. Energy truncation and baseline definition

Removal of a constant background is sometimes not adequate in NRIXS. This issue is most clearly seen in measurements performed over a broad energy range. Beyond a certain energy that depends on the material analyzed, no signal should be detectable above background. In reality, significant counts often remain at low and high energies that cannot be accounted for by multiple phonons. Those counts often do not average to the same values on the low- and high-energy ends of the spectra. As a result, some of the quantities derived from $S(E)$ never converge, yielding unreproducible results (Dauphas et al., 2012, 2014; Blanchard et al., 2015; Shahar et al., 2016). This issue had not been identified before because most studies in NRIXS spectroscopy have focused on the part of the spectrum that is near the elastic peak, where this issue of non-constant baseline is largely inconsequential. However, parameters that depend on accurate measurement of the high- and low-energy ends of the spectrum, such as the mean force constant of iron bonds, are severely affected by this issue of baseline subtraction. To remediate this problem, Dauphas et al. (2014) used a routine for baseline subtraction that relies on acquisition of broad energy scans, the tails of which are used to define a baseline that is subtracted by linearly interpolating the signal between the low- and high-energy tails. The *SciPhon* software gives the option of doing this in an interactive manner using a GUI. A panel displays a zoomed view of the low-energy tail over the interval $[-E_{min}, -E_{lowcut}]$, while another panel displays a zoomed view of the high-energy tail between [$E_{highcut}, E_{max}$] (the total energy acquisition range is from $-E_{min}$ to $E_{max}$). The user can move two sliders to define the energy range beyond which no signal is present (i.e. beyond which the signal stops decreasing). The signal in the tails thus defined is cut out and a baseline defined by linear interpolation between the cut out sections is removed from the rest of the spectrum. The user has the option to bypass this truncation/baseline subtraction routine or to manually modify the baseline values to test the
<figure><img src="image_10.png" /><figcaption>Figure 5</figcaption></figure>

Examples of removal of the elastic peak from the phonon excitation probability density $S(E)$ by interpolation of the signal at the left and right of the elastic peak. (a) Olivine (Dauphas et al., 2014). (b) Fe³⁺-rich rhyolite glass (Dauphas et al., 2014). (c) Fe²⁺-rich basalt glass (Dauphas et al., 2014). (d) Goethite (Dauphas et al., 2012; Blanchard et al., 2014). The user moves the red sliders to define the energy range used for the interpolation (red and black vertical markers $E_1$, $E_2$, $-E_1$, $-E_2$). The blue curve shows the interpolated function using equation (4). In some cases (most minerals) the interpolation is straightforward but in others (e.g. glasses) the range available to define the interpolation is narrow. The spectrum between $-E_1$ and $E_1$ (elastic peak) is replaced by the interpolated function before further processing. The values of $S(E)$ near zero, at or near the elastic peak, are artifacts from the deconvolution algorithm (the black curve is the spectrum after deconvolution of the resolution function).

sensitivity of the results to baseline subtraction. This routine significantly improves the reproducibility of force constants measured on the same minerals analyzed in different sessions separated by several months or years.

## 2.8. Temperature calculation

The temperature of the sample can be calculated in NRIXS by using the detailed balance (Lin et al., 2004)

$$T(E) = \frac{E/k_B}{\ln[S(E)/S(-E)]} \quad (5)$$

Temperature values can be calculated for every pair of energies $-E$ and $E$. For example, for a scan from -120 to +130 meV measured in steps of 0.25 meV, a total of 480 (120/ 0.25) temperatures can be estimated. SciPhon calculates those temperatures and displays them on the screen, so that the user can get a sense of the reliability of the temperature estimate. Not all temperatures have the same error because the counts vary from one energy bin to another. Assuming Poisson statistics, the uncertainty on $T(E)$ is

$$\sigma_{T(E)} = \frac{k_B T(E)^2}{E \sqrt{S(E)}} \left[ 1 + \frac{1}{\exp(E/k_B T)} \right]^{1/2} \quad (6)$$

The temperature is calculated by forming the weighted average of the temperatures calculated in each energy bin,

$$\bar{T} = \frac{\sum_i T_i / \sigma_{T_i}^2}{\sum_i 1 / \sigma_{T_i}^2} \quad (7)$$

The temperature cannot be reliably estimated from the detailed balance for high-temperature experiments because the relative error increases with temperature: $\sigma_{T(E)}/T(E) \propto T(E)$. After calculating the temperature from the detailed balance, the user is given the choice to either use this temperature or the one entered (§2.5). The temperature thus chosen (either calculated from the detailed balance or provided as input from the user) is used subsequently in calculation of the DOS and other parameters.

## 2.9. Normalization of $S(E)$, calculation of the Lamb–Mössbauer factor, the DOS and extrapolation of $S(E)$ beyond the truncation range

Calculation of the PDOS from a NRIXS spectrum was first performed by Sturhahn et al. (1995) (also see Sturhahn, 2000, for details). The first step in the calculation of the phonon density of states $g(E)$ is the normalization of the nuclear resonant spectrum $I(E)$ using Lipkin's sum rule (Lipkin, 1962, 1995, 1999). It stipulates that the first moment of the excitation probability density must be equal to the recoil energy,

$$\int E S(E) dE = E_R \quad (8)$$
where $E_R = \hbar^2 k^2/(2M) = E^2/(2Mc^2) = 1.96$ meV for $E = 14.4125$ keV ($k$ is the wavenumber, $M$ is the mass of $^{57}$Fe, $c$ is the speed of light and $\hbar$ is the reduced Planck's constant). $S(E)$ comprises an inelastic term $S_{\text{inelastic}}(E)$ and an elastic term $f_{\text{LM}}\delta(E)$, where $\delta(E)$ is the Dirac delta function and $f_{\text{LM}}$ is the Lamb-Mössbauer factor. Because the Dirac delta function is even, it cancels out in the integral and $\int E S_{\text{inelastic}}(E) dE = E_R$. The procedure described in §2.6 provides a means of removing the elastic peak and retrieving the inelastic part of the phonon excitation probability density $I_{\text{inelastic}}(E)$, which is proportional to $S_{\text{inelastic}}(E)$,

$$I_{\text{inelastic}}(E) = AS_{\text{inelastic}}(E). \qquad (9)$$

Using equation (8), we can calculate the normalization factor,

$$A = \int_{E_{\min}}^{E_{\max}} I_{\text{inelastic}}(E) E \, dE / E_R. \qquad (10)$$

This factor is used to rescale the intensity spectrum, which has units of counts, into an excitation probability density $S_{\text{inelastic}}(E)$, which has units of inverse of the energy (1/eV). Note that the measured phonon excitation probability density is a convolution of the density $S(E)$ and the resolution function $R(E)$. As discussed in §2.4, the first step in the procedure is to deconvolve the resolution function from the spectrum. If this was not done and the resolution function had a non-zero first moment, a correction would need to be applied to the normalization factor: $A = \int I(E) E \, dE / E_R - \int R(E) E \, dE \int I(E) \, dE / E_R$ (Sturhahn et al., 1995). Similar corrections would also be needed for the higher-order moments (Hu et al., 2013). However, these are unnecessary in our data reduction procedure because the normalization and all subsequent data treatment is performed on a deconvolved spectrum.

One can then calculate the Lamb-Mössbauer factor $f_{\text{LM}}$ using the zeroth moment of $S_{\text{inelastic}}(E)$,

$$f_{\text{LM}} = 1 - \int_{E_{\min}}^{E_{\max}} S_{\text{inelastic}}(E) \, dE. \qquad (11)$$

The full excitation probability density, including the elastic peak, can be reconstructed by adding a Dirac delta function of integral $f_{\text{LM}}$,

$$S(E) = I_{\text{inelastic}}(E) E_R \int_{E_{\min}}^{E_{\max}} I_{\text{inelastic}}(E) E \, dE + \left[ 1 - E_R \int_{E_{\min}}^{E_{\max}} I_{\text{inelastic}}(E) \, dE \int_{E_{\min}}^{E_{\max}} I_{\text{inelastic}}(E) E \, dE \right] \delta(E). \qquad (12)$$

As explained below, the normalized function $S(E)$ is used to calculate the PDOS.

Assuming that the lattice is harmonic, meaning that the potentials vary as the square of the atomic displacements, it is possible to calculate the DOS $g(E)$ from $S(E)$. We have the following expressions,

$$S(E) = f_{\text{LM}} \delta(E) + \sum_{n=1} S_n(E), \qquad (13)$$

$$S_1(E) = \frac{E_R}{E[1 - \exp(-E/k_B T)]} g(E), \qquad (14)$$

$$S_n(E) = \frac{1}{n f_{\text{LM}}} \int S_{n-1}(x) S_1(E-x) \, dx, \quad i > 1, \qquad (15)$$

where $S_n(E)$ is the n-phonon contribution. The measured spectrum $S(E)$ after normalization is thus a combination of 1, 2, ..., $n$ contributions and each $n$ term is the convolution of the 1 phonon and $n-1$ phonon contributions. Kohn et al. (1998) and Sturhahn (2000) showed, using formulas previously derived in the context of electron scattering (Johnson & Spence, 1974), that the $S_1$ phonon contribution could be derived from $S$ using the Fourier-Log method. Because the Fourier transform of two convoluted functions is the product of their Fourier transforms, the Fourier transform of equation (15) yields

$$\frac{\tilde{S}_n}{f_{\text{LM}}} = \frac{1}{n!} \left( \frac{\tilde{S}_1}{f_{\text{LM}}} \right), \qquad (16)$$

where $\tilde{S}$ is the Fourier transform of $S$. The Fourier transform of equation (13) that gives the full excitation probability density is

$$\tilde{S} = f_{\text{LM}} + \sum_{n=1} \tilde{S}_n. \qquad (17)$$

Combining those two equations, we have

$$\tilde{S} = f_{\text{LM}} \exp(\tilde{S}_1 / f_{\text{LM}}). \qquad (18)$$

The single-phonon contribution can therefore be calculated from the excitation probability density using the formula

$$S_1 = \mathcal{F}^{-1}[f_{\text{LM}} \ln(\tilde{S}/f_{\text{LM}})], \qquad (19)$$

where $\mathcal{F}^{-1}$ is the inverse Fourier transform. Once $S_1$ is known, it is straightforward to calculate the partial (only reflecting iron excitation) projected (along the measurement direction) phonon density of states,

$$g(E) = \frac{E[1 - \exp(-E/k_B T)]}{E_R} S_1(E). \qquad (20)$$

The phonon annihilation and creation parts of the spectrum both convey some information on the PDOS as $S_1(E)$ is related to $S_1(-E)$ through the detailed balance. Let us denote $\tilde{S}_1(E)$ as the weighted average value calculated from $S_1(E)$ and $S_1(-E)$. We assume that the errors in $S_1(E)$ and $S_1(-E)$ scale as the square-root of those values. It follows that the average weighted by the inverse of the variance is

$$\bar{S}_1(E) = \frac{1 + \exp(-E/k_B T)}{1/S_1(E) + \exp(-2E/k_B T)/S_1(-E)}. \qquad (21)$$

We therefore have, for $g(E)$,
$$g(E) = \frac{E}{E_R} \left[ \frac{1 - \exp(-2E/k_B T)}{1/S_1(E) + \exp(-2E/k_B T)/S_1(-E)} \right], \quad E \ge 0, \\ g(E) = 0, \quad E < 0. \tag{22}$$

SciPhon calculates $S_1(E)$ using the fast Fourier transform routine implemented in Mathematica. Once the single-phonon contribution has been calculated, $g(E)$ is computed using equation (22).

A potential difficulty with NRIXS is that the signal at high energy can influence the calculated parameters even when the signal is near or below the baseline. To mitigate this issue, SciPhon recalculates $S(E)$ from $S_1(E)$ at energies that are beyond the energy acquisition or truncation ranges. This is equivalent to the 'refinement' method used in PHOENIX and it allows extrapolation of $S(E)$ outside the truncation/acquisition range in a physically sound manner. Once this extrapolation is done, the synthetic part of the spectrum is appended to the measured spectrum and this new 'augmented' spectrum is used to recalculate $S_1(E)$ and $g(E)$. This procedure is repeated twice, ensuring convergence and consistency of the parameters derived from $S(E)$ and $g(E)$.

## 2.10. Calculate sound velocities

An important use of NRIXS in geophysics and high-pressure mineral physics is the determination of seismic velocities at high pressure-temperature (Mao et al., 2001; Hu et al., 2003). The shear ($v_s$) and compressional ($v_p$) velocities are not measured directly in NRIXS. Instead, one can measure the Debye velocity ($v_D$). This velocity is calculated from the NRIXS spectrum near the elastic peak. While some quantities derived from NRIXS measurements depend dramatically on removal of the background/baseline, determination of the Debye velocity depends on achieving a good resolution so that the contribution from the elastic peak is small. For most solids, the spectrum near the elastic peak shows Debye-like behavior, meaning that the PDOS increases quadratically with the energy (glasses can show departure from this behavior in the form of a Boson peak; Chumakov et al., 2011),

$$g(E)/E^2 = \frac{M}{\rho 2\pi^2 \hbar^3 v_D^3}, \tag{23}$$

where $M$ is the mass of the nuclear resonant isotope and $\rho$ is the density. In SciPhon, the user is asked to enter the density $\rho$ and bulk modulus $K$ of the material being examined. The function $g(E)/E^2$ is plotted as a function of $E$. For a pure Debye behavior, it should be constant over some interval. In practice, this is not often achieved, partly because the low-energy range of the spectrum is below the elastic peak. To address this difficulty, the function $g(E)/E^2$ is fitted by a low-degree series expansion with a derivative that is zero at the origin,

$$g(E)/E^2 = y_0 + \alpha E^2, \tag{24}$$

where $y_0$ is the intercept at $E = 0$ and it has unit of 1/energy³. The user can move two vertical sliders that define the energy range over which the data are fitted by this function. A black

vertical marker indicates the energy that the user has previously defined to remove the elastic peak from the spectrum by extrapolation ($E_1$ in §2.5). The data points below this energy are not real data as they are derived from interpolated values during elastic peak removal, and the user is advised against using them in the fit. Nevertheless, they provide another test to assess the robustness of the fit and the Debye velocity estimate. Indeed, it is possible to compare the intercept (a) calculated by fitting the function $g(E)/E^2$ using equation (24) with the intercept given by processing the interpolated $S(E)$ through the whole procedure for deriving $g(E)$. Both interpolations are series expansions but they are performed in different spaces so agreement between the intercepts obtained using both approaches gives confidence that the Debye velocity estimate is reliable. Knowing $v_D$, $\rho$ and $K$, it is possible to calculate $v_p$ and $v_s$ by solving the following system (Mao et al., 2001),

$$\frac{K}{\rho} = v_{\theta}^{2} = v_{p}^{2} - \frac{4}{3} v_{s}^{2}, \tag{25}$$

$$\frac{3}{v_D^3} = \frac{1}{v_p^3} + \frac{2}{v_s^3}. \tag{26}$$

These formulae are strictly valid for isotropic media only, and are not valid for crystals, including cubic ones or powders (Bosak et al., 2016). To propagate the uncertainties from $v_D$, $K$ and $\rho$, we use approximate solutions to these equations,

$$v_s^3 \approx \frac{2}{3} v_D^3 \approx \frac{M}{3\rho\pi^2\hbar^3 y_0}, \tag{27}$$

$$v_p^2 \approx v_{\theta}^2 + v_D^2 \approx \frac{K}{\rho} + \left( \frac{M}{\rho 2\pi^2 \hbar^3 y_0} \right)^{2/3}, \tag{28}$$

with $v_{\theta} = (K/\rho)^{1/2}$. It follows that

$$\sigma_{v_s} \approx \left(\frac{2}{81}\right)^{1/3} v_D \left(\frac{\sigma_{\rho}^2}{\rho^2} + \frac{\sigma_{y_0}^2}{y_0^2}\right)^{1/2}, \tag{29}$$

$$\sigma_{v_p} \approx \frac{1}{(v_{\theta}^2 + v_D^2)^{1/2}} \left[ \frac{v_{\theta}^4 \sigma_K^2}{4K^2} + \left( \frac{3v_{\theta}^2}{2} + v_D^2 \right)^2 \frac{\sigma_{\rho}^2}{9\rho^2} + \frac{v_D^4 \sigma_{y_0}^2}{9y_0^2} \right]^{1/2}. \tag{30}$$

The Poisson ratio that relates transverse to axial strain can be calculated from $v_p$ and $v_s$ using the formula

$$\nu = \frac{(v_p/v_s)^2 - 2}{2[(v_p/v_s)^2 - 1]}. \tag{31}$$

SciPhon reports this value, which is expectedly always close to 0.3 for metals.

## 3. Derived parameters

In addition to temperature, many parameters can be derived from the excitation probability distribution $S(E)$ and from the PDOS $g(E)$ (Sturhahn, 2000; Kohn & Chumakov, 2000; Dauphas et al., 2012; Hu et al., 2013). Some parameters can be
derived from both functions, and one should always make sure that the parameters are in agreement. Below, we give the formulas used in *SciPhon* to calculate those parameters. Many of these formulas depend on the moments of *S* and *g*, so we use the following notations,

$$m_i^g = \int_0^{+\infty} E^i g(E) dE \qquad (32)$$

for the *i*th moment of the PDOS,

$$\tilde{m}_i^g = \int_0^{+\infty} \frac{1}{2} \coth\left(\frac{E}{2k_B T}\right) E^i g(E) dE \qquad (33)$$

for the *i*th thermalized moment of the PDOS,

$$R_i^S = \int_{-\infty}^{+\infty} (E - E_R)^i S(E) dE, \qquad (34)$$

for the *i*th central moment of the excitation density distribution.

### 3.1. Parameters from *S*

*Temperature T.* This has already been discussed at length in §2.8 and will not be repeated here. The detailed balance equation is used to calculate *T* through [equation (5)]

$$T(E) = \frac{E/k_B}{\ln[S(E)/S(-E)]} \qquad (35)$$

*Lamb–Mossbauer factor f<sub>LM</sub>.* The Lamb–Mössbauer factor is the ratio of recoil-free to total nuclear resonant absorption. It follows from the normalization of the phonon excitation probability function [equation (11)],

$$f_{\text{LM}} = 1 - \int_{E_{\text{min}}}^{E_{\text{max}}} S_{\text{inelastic}}(E) dE. \qquad (36)$$

*Mean-square displacement ⟨z<sup>2</sup>⟩.* The mean-square displacement of atoms in their potential is related to the Lamb–Mössbauer factor through

$$\langle z^2 \rangle = - \frac{\ln f_{\text{LM}}}{k^2}, \qquad (37)$$

where *k* is the wavenumber of the photons with 14.4125 keV energy [$k = 2\pi/\lambda = E/(\hbar c) = 7.30 \text{ Å}^{-1}$]. Note that the wavenumber *k* should not be mistaken for the Boltzmann constant *k*<sub>B</sub>.

*Kinetic energy per atom KE.* This is the energy associated with atomic motions along the direction of the X-ray beam,

$$\text{KE} = R_2^S/(4E_R). \qquad (38)$$

*Internal energy per atom U.* This is the total energy of the iron sublattice and it comprises kinetic energy from atomic motions and potential energy from chemical bonds. For a harmonic oscillator, the internal energy is equally partitioned between kinetic and potential energy, so we have

$$U = 2KE = R_2^S/(2E_R). \qquad (39)$$

*Mean force constant ⟨F⟩.* The third central moment of *S*(*E*) gives the second derivative of the potential, which for a harmonic oscillator is the force constant,

$$\left\langle \frac{\partial^2 V}{\partial z^2} \right\rangle = \langle F \rangle = \frac{M}{\hbar^2 E_R} R_3^S. \qquad (40)$$

Dauphas *et al.* (2012) compiled mean force constant determinations for iron-bearing compounds published until 2012.

*Isotopic fractionation factors β.* At equilibrium, the various isotopes of an element are not distributed randomly between coexisting phases. Instead, heavy isotopes tend to partition into phases that form stronger bonds (Bigeleisen & Mayer, 1947; Urey, 1947). This is quantified using reduced partition function ratios, or β-factors, which correspond to equilibrium isotopic fractionation factors between the phase of interest and monoatomic gas of the same element. If this β factor is known, then it is straightforward to calculate equilibrium fractionation between coexisting phases. We can write an isotope exchange reaction for <sup>54</sup>Fe and <sup>56</sup>Fe between solid-phase FeX and monoatomic gaseous Fe,

$$^{54}\text{FeX} + ^{56}\text{Fe}_{\text{gas}} \rightleftharpoons ^{56}\text{FeX} + ^{54}\text{Fe}_{\text{gas}}. \qquad (41)$$

The equilibrium constant for this reaction (substituting isotopes from near ideal solutions) is

$$K_{\text{eq}} = \frac{[^{56}\text{FeX}] P_{^{54}\text{Fe}}}{[^{54}\text{FeX}] P_{^{56}\text{Fe}}} = \frac{\frac{(^{56}\text{Fe}/^{54}\text{Fe})_{\text{FeX}}}{(^{56}\text{Fe}/^{54}\text{Fe})_{\text{Fe}_g}}}{(42)$$

This is the expression of the β-factor or reduced partition function ratio used in isotope geochemistry. Because isotopic variations are small, 1000 ln β is more often reported than the absolute value of β. Dauphas *et al.* (2012) and Hu *et al.* (2013) established relationships between the even moments of *g*(*E*) and the moments of *S*(*E*) to calculate the β-factors at any temperature as a function of the moments of *S*(*E*),

$$1000 \ln \beta = 1000 \left( \frac{M}{M^*} - 1 \right) \frac{1}{E_R} \left[ \frac{R_3^S}{8 k_B^2 T^2} - \frac{R_5^S - 10 R_2^S R_3^S}{480 k_B^4 T^4} + \frac{R_7^S + 210 (R_2^S)^2 R_3^S - 35 R_3^S R_4^S - 21 R_2^S R_5^S}{20160 k_B^6 T^6} \right], (43)$$

where *M* and *M*<sup>*</sup> are the masses of the two isotopes. This can be rewritten as 1000 ln β = *A*<sub>1</sub>/T<sup>2</sup> + *A*<sub>2</sub>/T<sup>4</sup> + *A*<sub>3</sub>/T<sup>6</sup>, where the coefficients *A*<sub>1</sub>, *A*<sub>2</sub> and *A*<sub>3</sub> can be readily identified with the terms in equation (43). *SciPhon* calculates and reports all these coefficients. Truncating the formula above, we obtain the approximate formula

$$1000 \ln \beta = \frac{B_1 \langle F \rangle}{T^2} - \frac{B_2 \langle F \rangle^2}{T^4}, \qquad (44)$$

where ⟨*F*⟩ is the mean force constant of the iron bonds [equation (40)]. *B*<sub>1</sub> is fixed for a given element (2904 for iron) while *B*<sub>2</sub> depends on the phase that is being considered. For a Debye PDOS and for iron, *B*<sub>2</sub> = 37538. Most phases have a
PDOS that corresponds to a $B_2$ value of ~52000 for iron. *SciPhon* reports the value of $B_2$ calculated based on equation (43).

## 3.2. Parameters from g

*Mean square displacement and Lamb-Mössbauer factor.* The atoms oscillate in their potential around an equilibrium position. The magnitude of these oscillations is quantified by the mean square displacement (i.e. the mean value of the square of the displacement). This can be calculated from a thermalized moment of the PDOS,

$$ \langle z^2 \rangle = \frac{\hbar^2}{M} \tilde{m}_{-1}^g, \qquad (45) $$

where *M* is the mass of the nuclear resonant isotope. The Lamb-Mössbauer factor is calculated from the mean square displacement through [equation (37)]

$$ f_{LM} = \exp(-k^2 \langle z^2 \rangle), \qquad (46) $$

where *k* is the wavenumber. The temperature-dependence of the mean square displacement is given by

$$ \frac{d\langle z^2 \rangle}{dT} = \frac{\hbar^2}{M k_B T^2} \int_0^{+\infty} \frac{\exp(E/k_B T)}{[\exp(E/k_B T) - 1]^2} g(E) dE. \qquad (47) $$

At high temperature when $k_B T \gg E$ over most of the phonon spectrum (the temperature corresponding to a Debye energy of 30 meV is 350 K), this can be approximated by

$$ \frac{d\langle z^2 \rangle}{dT} \approx \frac{\hbar^2 k_B}{M} \tilde{m}_{-2}^g. \qquad (48) $$

For energies close to zero, the integral is not well defined but we can use the fact that near zero we have

$$ g(E) \approx \frac{M}{\rho 2\pi^2 \hbar^3 v_D^3} E^2, \qquad (49) $$

$$ \lim_{E \to 0} \frac{\exp(E/k_B T)}{[\exp(E/k_B T) - 1]^2} g(E) = \frac{M(k_B T)^2}{\rho 2\pi^2 \hbar^3 v_D^3}. \qquad (50) $$

The *SciPhon* program calculates the Debye velocity [i.e. the proportionality constant between $g(E)$ and $E^2$]. The integral giving $d\langle z^2 \rangle/dT$ in equation (47) is thus split into two domains, one where the term under the integral is given by equation (50) (the limit in energy corresponds to the upper bound of the elastic peak as defined by the user) and another where the full formula [equation (47)] is used.

*Critical temperature.* The Lamb-Mössbauer factor decreases when the temperature increases. The temperature increment corresponding approximately to a factor of $exp(1) = 2.7$ decrease in $f_{LM}$ is called the critical temperature and is calculated as

$$ T_c = \frac{1}{k^2 \frac{d\langle z^2 \rangle}{dT}}. \qquad (51) $$

*Resilience.* Another quantity related to the mean square displacement is the resilience, introduced in the study of protein dynamics (Zaccai, 2000; Leu & Sage, 2016). It has the same unit as the force constant (N m⁻¹) and its expression is

$$ K' = \frac{k_B}{d\langle z^2 \rangle/dT}. \qquad (52) $$

*Internal and kinetic energy.* The partial and projected internal energy (kinetic and potential) is given by

$$ U = \tilde{m}_1^g. \qquad (53) $$

The Virial theorem says that the internal energy must be equally partitioned between potential and kinetic energy. The kinetic energy associated with vibrations along the measurement direction is thus given by

$$ KE = \frac{1}{2} U = \frac{1}{2} \tilde{m}_1^g. \qquad (54) $$

*Vibrational entropy.* Entropy can take two forms in solids: vibrational and configurational. The latter corresponds to atomic disordering when several non-identical atoms can occupy the same site as is the case for solid solutions. The former corresponds to the thermal agitation of atoms around their equilibrium positions. Its expression is

$$ S = k_B \int_0^{+\infty} \left\{ \frac{E}{2k_B T} \coth\left(\frac{E}{2k_B T}\right) - \ln\left[2 \sinh\left(\frac{E}{2k_B T}\right)\right] \right\} g(E) dE. \qquad (55) $$

*Helmoltz free energy.* The projected partial Helmholtz free energy is given by the expression

$$ F = k_B T \int_0^{+\infty} \ln \left[ 2 \sinh \left( \frac{E}{2k_B T} \right) \right] g(E) dE. \qquad (56) $$

*Lamb-Mössbauer factor and kinetic energy at T = 0 K.* At 0 K, solids still possess quantum mechanical zero-point energy. The kinetic energy at 0 K can be calculated from NRIXS spectra using the formula $KE = (1/2) \tilde{m}_1^g$, where a temperature of 0 K is used in the expression of $\tilde{m}_1^g$. Similarly, the Lamb-Mössbauer factor at 0 K can be calculated using $\langle z^2 \rangle = (\hbar^2/M) \tilde{m}_{-1}^g$ adopting $T = 0$ K in $\tilde{m}_{-1}^g$.

*Mean force constant.* The mean force constant of the bonds holding the resonant isotope in position is given by the second moment of the PDOS, which is mathematically related to the third moment of $S(E)$,

$$ \langle F \rangle = \frac{M}{\hbar^2} m_2^g. \qquad (57) $$

*Isotopic fractionation factors β.* The isotopic fractionation factors, or more specifically the coefficients in the temperature expansion of 1000 ln β, can be calculated from the kinetic
energy or the even moments of g(E). The relationship was established by Polyakov et al. (2005) using the kinetic energy and first-order perturbation theory while Dauphas et al. (2012) derived the formula using a Bernoulli expansion of the reduced partition function ratio. In the expression 1000 ln β = A₁/T² + A₂/T⁴ + A₃/T⁶, the coefficients can be identified with the formula below,

$$1000 \ln \beta = 1000 \left( \frac{M}{M^*} - 1 \right) \times \left( \frac{m_2^g}{8 k_B^2 T^2} - \frac{m_4^g}{480 k_B^4 T^4} + \frac{m_6^g}{20160 k_B^6 T^6} \right). \quad (58)$$

*Comparison of the isotopic fractionation factors β at the experiment temperature.* The value of 1000 ln β can be calculated from both S(E) and g(E) at any temperature, including the experiment temperature, using the polynomial's expansions in even powers of the inverse of the temperature [equations (43) and (58)]. Polyakov et al. (2005) also give a formula that gives 1000 ln β as a function of the partial kinetic energy, whose value can be calculated using both S(E) and g(E). The expression for 1000 ln β is

$$1000 \ln \beta = -1000 \left( \frac{M}{M^*} - 1 \right) \left( \frac{\text{KE}}{k_B T} - \frac{3}{2} \right). \quad (59)$$

SciPhon calculates and outputs the value of 1000 ln β at the experiment temperature using these four approaches (polynomial expansion or kinetic energy using S or g), which are mathematically equivalent. This allows the user to assess the consistency of those calculated values. In our experience, the values are always consistent to within a few percent.

### 3.3. Calculation of error bars on derived parameters

Calculating the errors on the parameters derived from g(E) is not straightforward because the errors of the PDOS at different energies are correlated. Indeed, the value of g at any given energy E depends on the values of S(E) at all energies due to the various normalizations and Fourier–Log transform involved. In the present implementation of SciPhon, the errors are not propagated in the parameters derived from g(E). We plan to implement this capability in a future version of SciPhon, presumably using a Monte Carlo approach.

The errors on the parameters derived from S(E) are more straightforward to compute. Details on the error propagation calculation are provided by Hu et al. (2013), Dauphas et al. (2014) and Hu (2016). The uncertainties that are propagated are presented below. Note that all sources of error are not well quantified and the default values adopted below are conservative. The user can easily change these uncertainties in SciPhon.

(1) Counting statistics that follow a Poisson distribution.

(2) Uncertainties in the baseline definition, which is given by the uncertainty in the interpolation between the truncated low- and high-energy ends.

(3) Offset in energy scaling. The resonance energy is found automatically by the padd routine of the PHOENIX package

by finding the maximum in S(E) corresponding to the elastic peak. The energy resolution of the scans is ~1 meV but the scans are made with energy steps much smaller than that (typically 0.25 meV). In a single scan, the maximum intensity in the spectrum, which sets zero in the energy scale, is not known to better than half of the energy step size (0.25/2 ≈ 0.1 meV). Several energy scans are stacked and the energy scale zero is known with a better precision than 0.1 meV. As a conservative approach, we adopt a default uncertainty of 0.1 meV in the possible offset in the energy scale relative to the resonance energy but the user can set it to a lower value if so desired.

(4) Overall energy scaling. If the energy scale is not perfectly calibrated, this could result in stretching or compression of the energy scale relative to the true value. The absolute energy scaling is checked at the beginning of each session by measuring an iron foil characterized by a sharp decrease in the PDOS at an energy of 35–40 meV. Therefore, the effect is probably minor. Nevertheless, we have adopted a default uncertainty of 1% of this energy scaling.

(5) Bin-to-bin energy jitter. The scans in energy are performed in increments by the motion of crystals in the high-resolution monochromator. This can induce some bin-to-bin jitter in energy. A default jitter value of 0.1 meV is used. The net effect of this source of uncertainty is small compared with others because this jitter largely cancels out for the large number of energy increments used during a scan.

All these sources of error are combined quadratically into an overall error for the derived parameters.

## 4. Discussion

The software most often used for reducing NRIXS data at sector 3ID of the APS is PHOENIX (Sturhahn, 2000). The SciPhon software presented here presents several distinguishing features. Most notably, (1) it is a GUI software with interactive sliders and fill spaces that streamlines some tasks associated with the data reduction (Fig. 3), (2) it outputs all the parameters needed to calculate reduced partition function ratios that are used to predict equilibrium isotopic fractionation between coexisting phases in geochemistry, (3) it uses a different approach to remove the elastic peak based on an interpolation of the signal near the elastic peak, (4) it offers the option of running an iterative peak deconvolution algorithm, (5) it offers the option of truncating the energy range used in the data analysis, and (6) it streamlines the definition and removal of a non-constant baseline across the energy range, which is important for the determination of the parameters derived from the higher moments of g(E) and S(E). Below, we highlight how some of these differences affect the results and assess the quality of the data reduction algorithm.

### 4.1. Deconvolution of the resolution function and spectrum

As discussed in §2.4, the deconvolution algorithm has little influence on the calculated results. This includes the estimation of the Debye velocity, which is close to the elastic peak
<figure><img src="image_11.png" /><figcaption>Figure 6</figcaption></figure>

Effect of the deconvolution algorithm on the PDOS of nitrosyl iron porphyrinate derivative (heme)[Fe(oep)NO] for NRIXS spectra measured out-of-plane [(a) OP; perpendicular to the porphyrin plane] and in-plane [(b) IP; parallel to the porphyrin plane] (Pavlik *et al.*, 2010). The blue curves are undeconvoluted data while the orange curves are the PDOS calculated from *S(E)* after deconvolution of the resolution function using the steepest descent method and 100 iterations. As shown in (b), peaks that would be unresolvable are clearly separated after deconvolution of the resolution function.

and could potentially benefit or suffer from the deconvolution algorithm. Where deconvolution provides the most benefit is in sharpening the peaks and improving the resolution of the spectrum. The downside of the deconvolution is that it amplifies the noise but this is not really an issue where signal is well above background. Where the deconvolution algorithm is most useful is in biochemistry, where the NRIXS technique (also known as NRVS) is used to study the vibrational properties of iron-bearing biomolecules (Sage *et al.*, 2001; Scheidt *et al.*, 2005; Rai *et al.*, 2002a,b, 2003; Leu *et al.*, 2007, 2008; Lehnert *et al.*, 2010). In those biomolecules, very specific vibration modes dominate and the PDOS often features well defined peaks. The peak positions in the PDOS can be compared with theoretical models to test hypotheses on molecular configurations. To assess the usefulness of the deconvolution algorithm, we have performed the data reduction on previously acquired NRVS spectra of nitrosyl iron porphyrinate derivatives (Pavlik *et al.*, 2010). These spectra are ideally suited to test the algorithm because the non-deconvoluted spectrum shows overlapping adjacent peaks that cannot be fully resolved. The result of the deconvolution is shown in Fig. 6. The peaks that could not be resolved prior to deconvolution can be clearly distinguished when the resolution function is deconvoluted from *S(E)*. The iterative steepest descent algorithm is thus appropriate for applications of NRVS to biochemistry.

## 4.2. Round-robin test

We routinely compare the results from *SciPhon* with those from *PHOENIX* and we have found excellent agreement

when the exact same procedure is used. For example, *PHOENIX* does not offer any built-in feature to remove a non-constant baseline but this can be done offline on the data file so that a truncated and baseline-corrected file can be used as input in *PHOENIX*.

Our previous results of force constant determinations have shown that the results could be affected by the presence of a non-constant baseline (Dauphas *et al.*, 2012, 2014; Roskosz *et al.*, 2015; Blanchard *et al.*, 2015). Despite an extensive investigation, we are still unsure as to why the baseline is sometimes not constant between the low- and high-energy tails of the spectrum. The issue is particularly important for the parameters derived from higher-order moments of *g(E)* or *S(E)* because the signal at high energy is low and close to the background but its contribution to higher-order moments is significant because it is multiplied by a large power of the energy. In *SciPhon*, the user decides visually what part of the spectrum will be used to define the baseline and will be truncated. Similarly, the user is involved in deciding, on the basis of a graph, what the bounds are for the resolution function, what part of *S(E)* is used to remove the elastic peak by interpolation, and what part of *g(E)* is used to calculate the Debye velocity. There is thus a certain level of subjectivity involved in reducing NRIXS data. A virtue of *SciPhon* is that the relevant graphs are provided to the users to help them make informed choices. In principle, there is no reason why those tasks could not be handled algorithmically but implementing these would be tedious while they can easily be performed by the user. In order to assess the degree to which those user decisions affect the model output, the lead author organized a round-robin test. The files corresponding to some NRIXS measurements of goethite powder ('Goethite 2' in Table 1 of Blanchard *et al.*, 2015) were distributed to several of the co-authors. The files containing the data and resolution were relabeled 'mystery.dat' and 'mystery.res', respectively, and the participants were never informed of the nature of the phase that they were analyzing. The result of this comparison between seven users is compiled in Fig. 7. The reasons why goethite was used as a test case are that (i) it is rich in <sup>57</sup>Fe and good quality data can be acquired in a short time span so we measure it regularly to assess the long-term reproducibility of the technique, and (ii) this particular data set was difficult to handle as the spectrum has tails at the low- and high-energy ends that are not identical and it is not completely clear whether some of the features in those tails belong to the signal or the baseline. As a result, the seven users decided to truncate the data over very different intervals. The data were acquired over an energy range of [-130; +170] (meV). The data ranges defined by the users varied from [-125; 165] (i.e. little truncation; user EA in Fig. 7) to [-90; 115] (i.e. extensive truncation of the tails; user NN in Fig. 7). Despite those disparate choices, the calculated force constant varies little; from 256 ± 11 N m<sup>-1</sup> to 268 ± 13 N m<sup>-1</sup> (the force constant is used for comparison purposes because it is highly sensitive to the baseline definition). All other parameters derived from the NRIXS data also agree well, including the Debye velocity. The range of Debye velocities is from 3839 ± 56 m s<sup>-1</sup> to 3960 ±
<table><thead><tr><th>User</th><th>ND</th><th>NN</th><th>AH</th><th>FT</th><th>JH</th><th>MH</th><th>MH (PHOENIX)</th><th>EA</th><th>EA (PHOENIX)</th><th>Published average of 3 measurements (Blanchard et al. 2015)</th></tr></thead><tbody><tr><td>Total acquisition range (meV)</td><td>-129.736 to 170.204</td><td>-129.736 to 170.204</td><td>-129.736 to 170.204</td><td>-129.736 to 170.204</td><td>-129.736 to 170.204</td><td>-129.736 to 170.204</td><td>-129.736 to 170.204</td><td></td><td></td><td></td></tr><tr><td>Energy cutoff (left and right in meV)</td><td>29.6 and 46.4</td><td>40 and 54.8</td><td>27.8 and 41.4</td><td>15.4 and 28.4</td><td>28 and 40.6</td><td>15 and 15</td><td>5 and 5</td><td></td><td></td><td></td></tr><tr><td>Input temperature (K)</td><td>300</td><td>300</td><td>300</td><td>300</td><td>300</td><td>300</td><td>300</td><td>300</td><td>300</td><td>300</td></tr><tr><td>Temperature from detailed balance (K):<br>Parameters from S</td><td>299</td><td>298</td><td>298</td><td>296</td><td>297</td><td>298</td><td>298</td><td>296.6685953</td><td></td><td>295</td></tr><tr><td>Lamb-Mössbauer factor from S</td><td>0.7619 ± 0.0020</td><td>0.7609 ± 0.0020</td><td>0.7633 ± 0.0020</td><td>0.7626 ± 0.0020</td><td>0.7620 ± 0.0020</td><td>0.7642 ± 0.0020</td><td>0.7498 ± 0.0020</td><td>0.7640 ± 0.0020</td><td>0.7501 ± 0.0020</td><td>0.7614 ± 0.0012</td></tr><tr><td>Mean square displacement c<sup>2</sup>s from S (Å<sup>2</sup>)</td><td>0.005104 ± 0.000035</td><td>0.005127 ± 0.000036</td><td>0.005069 ± 0.000035</td><td>0.005085 ± 0.000036</td><td>0.005012 ± 0.000035</td><td>0.005048 ± 0.000036</td><td>0.005052 ± 0.000039</td><td>0.005052 ± 0.000039</td><td>0.005114 ± 0.000028</td><td>0.005114 ± 0.000028</td></tr><tr><td>Internal energy/atom from S (meV)</td><td>29.52 ± 0.67</td><td>29.41 ± 0.66</td><td>29.54 ± 0.68</td><td>29.55 ± 0.71</td><td>29.54 ± 0.67</td><td>29.55 ± 0.76</td><td>29.45 ± 1.01</td><td>29.45 ± 1.01</td><td>29.04 ± 0.40</td><td>29.04 ± 0.40</td></tr><tr><td>Kinetic energy/atom from S (meV)</td><td>14.76 ± 0.34</td><td>14.71 ± 0.33</td><td>14.77 ± 0.34</td><td>14.77 ± 0.36</td><td>14.77 ± 0.34</td><td>14.78 ± 0.38</td><td>15.42 ± 0.11</td><td>14.73 ± 0.50</td><td>15.41 ± 0.11</td><td>14.52 ± 0.19924322</td></tr><tr><td>Force constant from S (N/m)</td><td>266 ± 13</td><td>256 ± 11</td><td>268 ± 13</td><td>268 ± 16</td><td>267 ± 13</td><td>268 ± 20</td><td>241 ± 10</td><td>259 ± 36</td><td>241 ± 10</td><td>268 ± 7.934718544</td></tr><tr><td>I-value coefficients from S</td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr><tr><td>1000 ln β<sup>2</sup>(Fe<sup>+</sup>/Fe<sup>+</sup>A<sup>+</sup>/T<sup>+</sup>A<sup>+</sup>/T<sup>+</sup>A<sup>+</sup>/T<sup>+</sup>) (T in K)</td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr><tr><td>A<sub>1</sub></td><td>758016 ± 35833</td><td>731362 ± 32782</td><td>764002 ± 37382</td><td>765563 ± 44316</td><td>763019 ± 37433</td><td>766132 ± 56532</td><td></td><td>737658 ± 102627</td><td></td><td>765877 ± 22641</td></tr><tr><td>A<sub>2</sub></td><td>-5441588849 ± 67378782</td><td>-463514041 ± 52949214</td><td>-543840701 ± 74562884</td><td>-5608490536 ± 1100150787</td><td>-5699955470 ± 760412552</td><td>-5573734462 ± 1810762263</td><td></td><td>-4189159837 ± 4069090179</td><td></td><td>-5301465341 ± 402363854</td></tr><tr><td>A<sub>3</sub></td><td>1.1070e+14 ± 2.4446e+13</td><td>7.610e+13 ± 1.649e+13</td><td>1.2066e+14 ± 2.931e+13</td><td>1.1576e+14 ± 5.075e+13</td><td>1.1916e+14 ± 2.972e+13</td><td>1.099e+14 ± 1.034e+14</td><td></td><td>9.879e+12 ± 2.686e+14</td><td></td><td>9.318e+13 ± 1.345e+13</td></tr><tr><td>1000 ln β<sup>2</sup>(Fe<sup>+</sup>/Fe<sup>+</sup>B<sup>+</sup>/T<sup>+</sup>B<sup>+</sup>/T<sup>+</sup>B<sup>+</sup>/T<sup>+</sup>) (T in K)</td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr><tr><td>B<sub>1</sub></td><td>2853</td><td>2853</td><td>2853</td><td>2853</td><td>2853</td><td>2853</td><td>2853</td><td>2853</td><td>2853</td><td>2853</td></tr><tr><td>B<sub>2</sub></td><td>60162</td><td>58045</td><td>60558</td><td>60556</td><td>60465</td><td>60896</td><td>60896</td><td>61088</td><td>58351</td><td>58351</td></tr><tr><td>Parameters from g</td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr><tr><td>Lamb-Mössbauer factor from g</td><td>0.7609</td><td>0.7583</td><td>0.7603</td><td>0.7589</td><td>0.7590</td><td>0.7630</td><td>0.7585 ± 0.0009</td><td>0.7619</td><td>0.7596 ± 0.0009</td><td>0.7629</td></tr><tr><td>Mean square displacement c<sup>2</sup>s from g (Å<sup>2</sup>)</td><td>0.005129 ± 0.005193</td><td>0.005193 ± 0.005193</td><td>0.005143 ± 0.005143</td><td>0.005177 ± 0.005177</td><td>0.005176 ± 0.005176</td><td>0.005076 ± 0.005076</td><td></td><td>0.005104</td><td></td><td>0.005079</td></tr><tr><td>dcs<sup>2</sup>/dt from g (Å<sup>2</sup>/K)</td><td>1.560E-05</td><td>1.583E-05</td><td>1.567E-05</td><td>1.579E-05</td><td>1.555E-05</td><td>1.543E-05</td><td></td><td>1.553E-05</td><td></td><td>1.538E-05</td></tr><tr><td>Critical temperature from g (K)</td><td>1203</td><td>1185</td><td>1198</td><td>1189</td><td>1207</td><td>1216</td><td></td><td>1216</td><td></td><td>1222</td></tr><tr><td>Resilience from g (N/m)</td><td>88.49</td><td>87.20</td><td>88.11</td><td>87.45</td><td>88.80</td><td>89.49</td><td>27.44 ± 0.12</td><td>88.93</td><td>27.47 ± 0.12</td><td>89.93</td></tr><tr><td>Internal energy/atom from g (meV)</td><td>29.53</td><td>29.42</td><td>29.55</td><td>29.57</td><td>29.55</td><td>29.57</td><td>14.85 ± 0.07</td><td>29.47</td><td>14.77 ± 0.07</td><td>29.80</td></tr><tr><td>Kinetic energy/atom from g (meV)</td><td>14.76</td><td>14.71</td><td>14.78</td><td>14.78</td><td>14.78</td><td>14.78</td><td>1.025</td><td>1.474</td><td>1.027</td><td>1.490</td></tr><tr><td>Vibrational entropy (kB/atom)</td><td>1.027</td><td>1.031</td><td>1.026</td><td>1.025</td><td>1.026</td><td>1.025</td><td>3.060 ± 0.008</td><td>3.044 ± 0.008</td><td>3.044 ± 0.008</td><td>3.029</td></tr><tr><td>Helmholtz free energy (meV)</td><td>2.974</td><td>2.764</td><td>3.035</td><td>3.076</td><td>3.030</td><td>3.073</td><td></td><td>2.925</td><td></td><td>3.118</td></tr><tr><td>Vibrational specific heat (kB/atom)</td><td>0.8751</td><td>0.8775</td><td>0.8746</td><td>0.8734</td><td>0.8740</td><td>0.8742</td><td>0.8704 ± 0.0025</td><td>0.8761</td><td>0.8704 ± 0.0025</td><td>0.8799</td></tr><tr><td>Lamb-Mössbauer factor at T=0 from g</td><td>0.9199</td><td>0.9197</td><td>0.9200</td><td>0.9199</td><td>0.9199</td><td>0.9201</td><td>0.9204 ± 0.0002</td><td>0.9198</td><td>0.9203 ± 0.0002</td><td>0.9202</td></tr><tr><td>Kinetic energy/atom at T=0 from g (meV)</td><td>7.669</td><td>7.590</td><td>7.688</td><td>7.688</td><td>7.686</td><td>7.699</td><td>7.810 ± 0.066</td><td>7.632</td><td>7.807 ± 0.066</td><td>7.759</td></tr><tr><td>Force constant from g (N/m)</td><td>266</td><td>256</td><td>268</td><td>268</td><td>267</td><td>269</td><td>280 ± 7</td><td>259</td><td>280 ± 7</td><td>268</td></tr><tr><td>I-value coefficients from g</td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr><tr><td>1000 ln β<sup>2</sup>(Fe<sup>+</sup>/Fe<sup>+</sup>A<sup>+</sup>/T<sup>+</sup>A<sup>+</sup>/T<sup>+</sup>A<sup>+</sup>/T<sup>+</sup>) (T in K)</td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr><tr><td>A<sub>1</sub></td><td>758342 ± 546200664</td><td>7317376 ± 4655003762</td><td>7642375 ± 5658316701</td><td>765756 ± 5614244212</td><td>7632901 ± 562360701</td><td>766278 ± 5575815880</td><td>737799 ± 4189004925</td><td></td><td></td><td>765155 ± 5278331192</td></tr><tr><td>A<sub>2</sub></td><td>1.1309e+14 ± 1.0006e+14</td><td>7.8277e+13 ± 1.2253e+14</td><td>1.1637e+14 ± 1.2091e+14</td><td>1.1637e+14 ± 1.0994e+14</td><td>1.0994e+14 ± 1.0994e+14</td><td>1.0994e+14 ± 1.0994e+14</td><td></td><td>9.4410e+12</td><td></td><td>1.0225e+14</td></tr><tr><td>Velocities from g</td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr><tr><td>Input density (g/cm<sup>3</sup>)</td><td>4.27</td><td>4.27</td><td>4.27</td><td>4.27 ± 0</td><td>4.27</td><td>4.27</td><td>4.27</td><td>4.27</td><td>4.27</td><td>4.27</td></tr><tr><td>Input bulk modulus (GPa)</td><td>108.5</td><td>108.5</td><td>108.7</td><td>100 ± 0</td><td>108.5</td><td>108.5</td><td>108.5</td><td>108.5</td><td>108.5</td><td>108.5</td></tr><tr><td>Debye velocity (m/s)</td><td>3886 ± 36</td><td>3839 ± 56</td><td>3907 ± 52</td><td>3851 ± 47</td><td>3841 ± 47</td><td>3960 ± 52</td><td></td><td>3903 ± 25</td><td></td><td>3874 ± 25</td></tr><tr><td>p-wave velocity (m/s)</td><td>6448 ± 24</td><td>6416 ± 37</td><td>6311 ± 36</td><td>6272 ± 32</td><td>6417 ± 31</td><td>6498 ± 36</td><td></td><td>6459</td><td></td><td>6439 ± 17</td></tr><tr><td>s-wave velocity (m/s)</td><td>3482 ± 35</td><td>3437 ± 53</td><td>3508 ± 49</td><td>3456 ± 44</td><td>3439 ± 45</td><td>3551 ± 50</td><td></td><td>3497</td><td></td><td>3470 ± 23</td></tr><tr><td>Poisson ratio</td><td>0.2942</td><td>0.2987</td><td>0.2764</td><td>0.2821</td><td>0.2985</td><td>0.2871</td><td></td><td>0.2926</td><td></td><td>0.2948</td></tr><tr><td>Comparison 1000(nB) for Fe<sup>+</sup>/Fe<sup>+</sup> at T=0</td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr><tr><td>from A1-A3 coefficients (%)<sup>a</sup></td><td>7.9025</td><td>7.6584</td><td>7.9576</td><td>7.9725</td><td>7.9488</td><td>7.9751</td><td>7.692568874</td><td></td><td></td><td></td></tr><tr><td>from A1-A3 g coefficients (%)<sup>a</sup></td><td>7.9071</td><td>7.6631</td><td>7.9615</td><td>7.9749</td><td>7.9526</td><td>7.9766</td><td>7.693554979</td><td></td><td></td><td></td></tr><tr><td>from kinetic energy from S (%)<sup>a</sup></td><td>7.8767</td><td>7.6483</td><td>7.9269</td><td>7.9452</td><td>7.9189</td><td>7.9521</td><td>7.737282675</td><td></td><td></td><td></td></tr><tr><td>from kinetic energy from g (%)<sup>a</sup></td><td>7.6704</td><td>7.6704</td><td>7.9097</td><td>7.9452</td><td>7.9097</td><td>7.9452</td><td>7.783281649</td><td></td><td></td><td></td></tr></tbody></table>

Because some aspects of the data reduction with SciPhon can appear to be subjective and user-dependent, a test was performed to compare the results between different users. The most important choice that the user must make is in the definition of the truncated tails that will be used to define the baseline ("Energy cutoff" in the Table). The data and resolution files were re-labeled "Mystery" and the users were asked to do the data reduction without knowledge of the mineral investigated.

ND+Nicolas Dauphas, NN+Nicole Nie, AH+Andrew Heard, FT+François Tissot, JH+Justin Hu, MH+Michael Hu, EA+Ercan Alp.

<caption>Figure 7</caption>

Comparison between users on the data reduction of goethite NRIXS data (i.e. 'Goethite 2' from Blanchard *et al.*, 2015).

52 m s⁻¹. All the parameters derived from the data also agree well with the mean goethite values published by Blanchard *et al.* (2015), which correspond to average values from three independent measurements performed in different sessions over several years. The conclusion of this test is that user choices do not dramatically influence the parameters calculated from NRIXS data and that the user-to-user dispersion is within the quoted errors for most parameters, even for data sets for which data reduction is not straightforward, such as the goethite data used as a test case. We expect the user-to-user dispersion to be smaller in most cases when the NRIXS spectra are better behaved.

This goethite spectrum also provides us with the opportunity to compare the model outputs from SciPhon and PHOENIX. Co-authors Michael Hu and Ercan Alp, who are well versed in the use of PHOENIX, carried out the data reduction on the same sample using PHOENIX (Fig. 7). The calculated force constant is slightly higher with PHOENIX [280 N m⁻¹ calculated from g(E) after refinement] than with SciPhon but still within error. The difference is most likely due to the fact that a constant background is subtracted with PHOENIX while a linearly interpolated baseline is subtracted from the data with SciPhon. The most obvious difference between the SciPhon and PHOENIX outputs are the values of the resilience. SciPhon gives a value of ~88 N m⁻¹, while PHOENIX gives a value of ~27 N m⁻¹. The critical temperatures in PHOENIX and SciPhon are very close (~1200 K). Resilience (K') and critical temperature (T_c) are related through T_c = K'(k²k_B). We found internal

consistency between these values in SciPhon but not in PHOENIX. Finally, PHOENIX reports errors that are significantly smaller than those reported by SciPhon. This is because PHOENIX only propagates counting errors, while SciPhon propagates those same errors as well as uncertainties associated with the subtraction of a baseline and error in the energy scaling (see §3.3). Our experience is that the counting errors alone cannot explain the session-to-session variability in some parameters, suggesting that the inclusion of other sources of uncertainty in the error propagation scheme is not only justified but necessary.

### 4.3. Application to Mössbauer isotopes other than iron

SciPhon has been used primarily to reduce NRIXS data for iron but it was designed to handle other Mössbauer isotopes. The isotopes provided by default are ⁵⁷Fe, ¹¹⁹Sn, ¹⁵¹Eu, ¹⁶¹Dy and ⁸³Kr, which have been measured at the APS. We can easily add other elements upon request by modifying a few lines in the code. The code was extensively tested for iron and several publications have already made use of it (Dauphas *et al.*, 2014; Roskosz *et al.*, 2015; Blanchard *et al.*, 2015; Shahar *et al.*, 2016; Liu *et al.*, 2017). Other Mössbauer isotopes may present other challenges to the data reduction algorithm. As a test of how the algorithm performs on non-iron isotopes, we have reduced NRIXS data for SnO (Giefers *et al.*, 2006), SnO₂ (Hu *et al.*, 1999), Kr at 2 GPa (Zhao *et al.*, 2001), EuO and Eu₂O₃ (see supporting information for the values of the PDOS for these compounds).
An important difference between iron and tin is that the Lamb–Mössbauer factor of tin compounds is usually small and multi-phonon contributions are significant (Hu et al., 1999). Fig. 8 compares the PDOS of SnO₂ and SnO calculated by PHOENIX and SciPhon. As shown, there is excellent agreement between the two. We also examined the parameters calculated by PHOENIX and SciPhon and there is again excellent agreement between the two. The only major disagreement concerns the resilience, which SciPhon calculates at 159 N m⁻¹ while PHOENIX gives a value of 51 N m⁻¹. As discussed above in the context of ⁵⁷Fe NRIXS measurements, the critical temperature estimates agree between SciPhon and PHOENIX but there is no internal consistency between the critical temperature and resilience calculated by PHOENIX. Another difference concerns the vibrational entropy and vibrational specific heat, which differ by a factor of three (the output values of PHOENIX are higher than those of SciPhon). The values calculated by SciPhon are directional, meaning that they would have to be multiplied by a factor of three to account for the bulk material if it was isotropic. This factor of three is not the cause for the discrepancy between the two softwares for the resilience.

<figure><img src="image_12.png" /><figcaption>Figure 8</figcaption></figure>

Comparison between the Sn partial phonon density of states of SnO₂ (cassiterite; Hu et al., 1999) and SnO (Giefers et al., 2006) at 300 K calculated using the PHOENIX (dashed black curve) and SciPhon (solid orange curve). There is excellent agreement between the two, demonstrating that SciPhon can handle data reduction of Mössbauer isotopes other than iron.

Polyakov et al. (2005) used previously published NRIXS data of SnO and SnO₂ to calculate the β fractionation factors for those compounds. These β-factors give the extent of tin isotopic fractionation between coexisting phases at equilibrium. To calculate those β-factors, they digitized published data. As discussed by Dauphas et al. (2014) and Blanchard et al. (2015), great care must be exercised in handling the low- and high-energy tails of NRIXS spectra for application to isotope geochemistry, so it is worth re-evaluating the fractionation factors for Sn (Fig. 9). The polynomial expansion to the β-factors for Sn are (the temperature T is in K), for SnO,

$$1000 \ln \beta_{\text{SnO}}^{\frac{122\text{Sn}}{116\text{Sn}}} = \frac{348483}{T^2} - \frac{1.005 \times 10^9}{T^4} + \frac{9.73 \times 10^{12}}{T^6}; \qquad (60)$$

for SnO₂,

$$1000 \ln \beta_{\text{SnO}_2}^{\frac{122\text{Sn}}{116\text{Sn}}} = \frac{948567}{T^2} - \frac{7.543 \times 10^9}{T^4} + \frac{1.748 \times 10^{14}}{T^6}; \qquad (61)$$

and the predicted equilibrium fractionation between Sn⁴⁺ (SnO₂) and Sn²⁺ (SnO) is

$$1000 \left( \ln \beta_{\text{SnO}_2}^{\frac{122\text{Sn}}{116\text{Sn}}} - \ln \beta_{\text{SnO}}^{\frac{122\text{Sn}}{116\text{Sn}}} \right) = \frac{600084}{T^2} - \frac{6.54 \times 10^9}{T^4} + \frac{1.65 \times 10^{14}}{T^6}. \qquad (62)$$

We have also reduced NRIXS data for EuO and Eu₂O₃. The polynomial expansion to the β-factors for Eu are (the temperature T is in K), for EuO,

$$1000 \ln \beta_{\text{EuO}}^{\frac{153\text{Eu}}{151\text{Eu}}} = \frac{43963}{T^2} - \frac{1.590 \times 10^7}{T^4} - \frac{5.32 \times 10^{10}}{T^6}; \qquad (63)$$

for Eu₂O₃,

$$1000 \ln \beta_{\text{Eu}_2\text{O}_3}^{\frac{153\text{Eu}}{151\text{Eu}}} = \frac{75471}{T^2} - \frac{1.037 \times 10^8}{T^4} + \frac{2.36 \times 10^{11}}{T^6}; \qquad (64)$$

and the predicted equilibrium fractionation between Eu³⁺ (Eu₂O₃) and Eu²⁺ (EuO) is

$$1000 \left( \ln \beta_{\text{Eu}_2\text{O}_3}^{\frac{153\text{Eu}}{151\text{Eu}}} - \beta_{\text{EuO}}^{\frac{153\text{Eu}}{151\text{Eu}}} \right) = \frac{31507}{T^2} - \frac{8.78 \times 10^7}{T^4} + \frac{2.89 \times 10^{11}}{T^6}. \qquad (65)$$

Previous NRIXS studies have investigated the force constants of iron bonds in FeO (wüstite) and Fe₂O₃ (haematite) (Dauphas et al., 2017). The equilibrium isotopic fractionation between Fe²⁺ and Fe³⁺ in oxides has important geologic implications (Dauphas & Rouxel, 2006; Dauphas et al., 2009a, 2017; Roskosz et al., 2015), and the redox pairs Sn⁴⁺/Sn²⁺ and Eu³⁺/Eu²⁺ could similarly provide insights into redox processes in the Earth and other planetary bodies. In Fig. 9 we plot the equilibrium fractionation factors for all three redox couples (Fig. 10). The system that shows the largest fractionation is Sn, followed by Fe and then Eu, which reflects in part
meaning that Sn²⁺ could represent a significant portion of Sn in magmas. We used the data published in that paper to calculate the Sn⁴⁺/Sn²⁺ ratio in those glasses, taken as proxies of silicate melts,

$$ \frac{XSn^{4+}}{XSn^{2+}} = \sqrt{fO_2} 10^{(18800/T)-9.35}. \quad (66) $$

where XSn⁴⁺ and XSn²⁺ are the mol fractions of the two oxidation states of Sn, fO₂ is the oxygen fugacity in bar, and T is the temperature in K. Most terrestrial rocks have oxygen fugacities within 2 log units of the FMQ oxygen buffer. As shown in Fig. 11, the rocks in that range are expected to display large variations in their Sn⁴⁺ and Sn²⁺ proportions. This, together with the fact that very large equilibrium isotopic fractionation is expected between these two oxidation states, means that the isotopic composition of Sn could be a useful tracer of redox processes in the Earth. Wang et al. (2018) speculated, for instance, that the heavy Sn isotopic composition of basalts relative to mantle peridotites could be due to the more incompatible behavior during mantle melting of isotopically heavy Sn⁴⁺ relative to light Sn²⁺. A similar idea had been proposed to explain the heavy Fe isotopic composition of basalts relative to peridotites (Dauphas et al., 2009a). More work is clearly needed to characterize the Sn⁴⁺/Sn²⁺ ratio of igneous rocks and evaluate how Sn isotopes are fractionated at equilibrium between these two oxidation states in silicate magmas.

We have also calculated the β-factor of solid Kr at 2 GPa, which gives

$$ 1000 \ln \beta_{Kr}^{\frac{86}{82}Kr} = \frac{105337}{T^2} - \frac{8.312 \times 10^7}{T^4} + \frac{1.07 \times 10^{11}}{T^6}. \quad (67) $$

Because the 1000 ln βₖr⁸⁶Kr/⁸²Kr factor of mono-atomic gaseous Kr is 0, the formula above gives the equilibrium fractionation factor for Kr between solid and gas. Assuming that solid Kr at

<figure><img src="image_13.png" /><figcaption>Figure 11 Proportions of Sn⁴⁺ and Sn²⁺ in Na₂O·2SiO₂ glass (Johnston, 1965) as a function of oxygen fugacity (fO₂) and temperature [equation (66)]. Several oxygen buffers are shown; NNO = Ni–NiO, FMQ = fayalite–magnetite–quartz, IW = iron–wüstite. Most terrestrial igneous rocks have oxygen fugacities within ±2 Log-units of the FMQ buffer, where Sn⁴⁺ and Sn²⁺ could co-exist.</figcaption></figure>

2 GPa can be taken as a proxy for Kr trapped in ice at low T, we can calculate the isotopic composition of Kr in cometary ice at equilibrium with solar gas. The temperature of condensation of Kr in cometary ice is uncertain but a temperature of 50 K may be reasonable (Dauphas, 2003; Owen et al., 1992; Mousis et al., 2016). At such a temperature, we would predict that Kr in ice should be isotopically fractionated relative to the gas by +35‰ (3.5%) in the ⁸⁶Kr/⁸²Kr ratio. This value should be taken with a grain of salt but it shows that significant equilibrium isotopic fractionation may be present during trapping of Kr and possibly other noble gasses in cometary ice. As of today, there are no Kr isotope measurements of comets or experimental determinations with which to compare the calculated value.

### 4.4. A one-parameter expression for the temperature dependence of β-factors

Dauphas et al. (2017) derived an approximate one-parameter formula to express the temperature-dependence of β-factors. This is useful in geochemistry to extrapolate equilibrium fractionation factors measured experimentally at one or a few temperatures to different temperatures (a 1/T² dependence is often assumed but the formulas given below yield more accurate extrapolations). If one assumes that the material has a Debye PDOS, the even moment of g(E) can be expressed as even powers of the Debye energy cutoff,

$$ m_2^g = \frac{3}{5} E_D^2, \quad m_4^g = \frac{3}{7} E_D^4, \quad m_6^g = \frac{1}{3} E_D^6. \quad (68) $$

One can therefore approximate equation (58) by a one-parameter (A₁) formula,

$$ 1000 \ln \beta \approx \frac{A_1}{T^2} - \frac{A_1^2}{6300[(M/M^*) - 1] T^4} + \frac{A_1^3}{25515000[(M/M^*) - 1]^2 T^6}. \quad (69) $$

For the ⁵⁶Fe/⁵⁴Fe ratio, this would give

$$ 1000 \ln \beta \approx \frac{A_1}{T^2} - 0.0043 \frac{A_1^2}{T^4} + 0.000029 \frac{A_1^3}{T^6}. \quad (70) $$

In practice, the PDOS of natural materials show large departures from a Debye behavior. Assuming a similar functional relationship as that derived for a Debye behavior in the more general case, one can write the β-factor as

$$ 1000 \ln \beta \approx \frac{A_1}{T^2} - a \frac{A_1^2}{T^4} + b \frac{A_1^3}{T^6}, \quad (71) $$

where a and b are fit parameters that can be calculated based on NRIXS measurements or ab initio studies that give the third-order polynomial expansion of the β-factor. For the ⁵⁶Fe/⁵⁴Fe ratio, Dauphas et al. (2017) obtained an approximate formula,

$$ 1000 \ln \beta \approx \frac{A_1}{T^2} - 0.0076 \frac{A_1^2}{T^4} + 0.000164 \frac{A_1^3}{T^6}. \quad (72) $$
For the $^{122}$Sn/$^{116}$Sn isotopic ratio, we use the three NRIXS data reported by Polyakov *et al.* (2005) to derive a one-parameter expression of the β-factor,

$$1000 \ln \beta \approx \frac{A_1}{T^2} - 0.0062 \frac{A_1^2}{T^4} + 0.000052 \frac{A_1^3}{T^6}. \quad (73)$$

This formula will be refined as the database of NRIXS measurements continues to expand for Sn.

## 5. Conclusion

The synchrotron radiation technique of nuclear resonant inelastic X-ray scattering is used across many fields, including material sciences, condensed matter physics, heme biochemistry, geophysics and isotopic geochemistry. Isotopic geochemistry requires accurate determination of the force constant of the chemical bonds, which depends on the third moment of the NRIXS spectrum and is prone to biases that had not been fully appreciated before. This prompted us to develop a new software called *SciPhon* to reduce NRIXS data for all applications. This software runs in *Mathematica* and is thus portable on Windows, MacOS, Linux and Raspbian platforms. It is also perennial as most *Mathematica* codes are portable in new versions of the software. A virtue of using the *Mathematica* platform is that a user-friendly GUI can be deployed on many operating systems. The program runs rapidly, with each step in the data processing not taking more than a few seconds. The total data reduction can be done in a minute or two. NRIXS data for all Mössbauer isotopes can be reduced with this software. The options offered to the user are those studied at the APS but this can easily be extended to include other Mössbauer isotopes. *SciPhon* presents several features that make it an asset when reducing NRIXS data:

(1) It has a GUI, which facilitates learning of the program and speeds up data processing for the most repetitive tasks.

(2) It provides flexibility in the definition of the baseline/ background.

(3) It allows the user to define the energy range used in data reduction.

(4) It propagates uncertainties from counting statistics, as well as baseline subtraction and energy scaling.

(5) It outputs all the parameters that can be extracted from the NRIXS spectrum and partial PDOS. This includes a built-in function to calculate the Debye velocity from the PDOS as well as all data needed to calculate reduced partition function ratios used in isotope geochemistry.

(6) It uses an original approach to remove the elastic peak using an interpolation that respects the detailed balance.

Extensive testing was performed to ensure that the software performs as expected. *SciPhon* yields values that are most often consistent with the values derived by *PHOENIX*. The baseline subtraction procedure used in *SciPhon* has been proven to yield reproducible data. *SciPhon* is routinely used by our group and others and data generated by it have already been published in top journals (Dauphas *et al.*, 2014; Blanchard *et al.*, 2015; Roskosz *et al.*, 2015; Shahar *et al.*, 2016; Liu *et al.*, 2017).

## Acknowledgements

We thank Wolfgang Sturhahn and Thomas Toellner for discussions. We also wish to thank an anonymous reviewer for his thoughtful comments. This research used resources of the Advanced Photon Source, a US Department of Energy (DOE) Office of Science User Facility operated for the DOE Office of Science by Argonne National Laboratory under Contract No. DE-AC02-06CH11357.

## Funding information

The following funding is acknowledged: National Science Foundation (grant No. EAR1444951 to ND; grant No. EAR1502591 to ND, JFL); National Aeronautics and Space Administration (grant No. NNX17AE86G to ND; grant No. NNX17AE87G to ND; grant No. NNX15AJ25G to ND).

## References

Alp, E., Sturhahn, W., Toellner, T., Zhao, J., Hu, M. & Brown, D. (2002). *Hyperfine Interact.* **144/145**, 3–20.

Bigeleisen, J. & Mayer, M. G. (1947). *J. Chem. Phys.* **15**, 261–267.

Blanchard, M., Dauphas, N., Hu, M. Y., Roskosz, M., Alp, E. E., Golden, D. C., Sio, C. K., Tissot, F. L. H., Zhao, J., Gao, L., Morris, R. V., Fornace, M., Floris, A., Lazzeri, M. & Balan, E. (2014). *Geochim. Cosmochim. Acta*, **151**, 19–33.

Blanchard, M., Dauphas, N., Hu, M., Roskosz, M., Alp, E., Golden, D., Sio, C., Tissot, F., Zhao, J., Gao, L., Morris, R. V., Fornace, M., Floris, A., Lazzeri, M. & Balan, E. (2015). *Geochim. Cosmochim. Acta*, **151**, 19–33.

Bosak, A., Krisch, M., Chumakov, A., Abrikosov, I. A. & Dubrovinsky, L. (2016). *Phys. Earth Planet. Inter.* **260**, 14–19.

Brügmann, G., Berger, D. & Pernicka, E. (2017). *Geostandards Geoanal. Res.* **41**, 437–448.

Chumakov, A. I., Monaco, G., Monaco, A., Crichton, W. A., Bosak, A., Rüffer, R., Meyer, A., Kargl, F., Comez, L., Fioretto, D., Giefers, H., Roitsch, S., Wortmann, G., Manghnani, M. H., Hushur, A., Williams, Q., Balogh, J., Parliński, K., Jochym, P. & Piekarz, P. (2011). *Phys. Rev. Lett.* **106**, 225501.

Chumakov, A. I., Rüffer, R., Baron, A. Q. R., Grünsteudel, H., Grünsteudel, H. F. & Kohn, V. G. (1997). *Phys. Rev. B*, **56**, 10758–10761.

Chumakov, A. & Sturhahn, W. (1999). *Hyperfine Interact.* **123/124**, 781–808.

Creech, J., Moynier, F. & Badullovich, N. (2017). *Chem. Geol.* **457**, 61–67.

Dauphas, N. (2003). *Icarus*, **165**, 326–339.

Dauphas, N., Craddock, P. R., Asimow, P. D., Bennett, V. C., Nutman, A. P. & Ohnenstetter, D. (2009a). *Earth Planet. Sci. Lett.* **288**, 255–267.

Dauphas, N., John, S. G. & Rouxel, O. (2017). *Rev. Mineral. Geochem.* **82**, 415–510.

Dauphas, N., Pourmand, A. & Teng, F.-Z. (2009). *Chem. Geol.* **267**, 175–184.

Dauphas, N., Roskosz, M., Alp, E., Golden, D., Sio, C., Tissot, F., Hu, M., Zhao, J., Gao, L. & Morris, R. (2012). *Geochim. Cosmochim. Acta*, **94**, 254–275.

Dauphas, N., Roskosz, M., Alp, E., Neuville, D., Hu, M., Sio, C., Tissot, F., Zhao, J., Tissandier, L., Médard, E. & Cordier, C. (2014). *Earth Planet. Sci. Lett.* **398**, 127–140.

Dauphas, N. & Rouxel, O. (2006). *Mass Spectrom. Rev.* **25**, 515–550.

Diakhate, M. S., Hermann, R. P., Möchel, A., Sergueev, I., Søndergaard, M., Christensen, M. & Verstraete, M. J. (2011). *Phys. Rev. B*, **84**, 125210.
Giefers, H., Koval, S., Wortmann, G., Sturhahn, W., Alp, E. & Hu, M. (2006). *Phys. Rev. B*, **74**, 094303.

Hu, M. Y. (2016). *Hyperfine Interact.* **237**, 64.

Hu, M. Y., Sturhahn, W., Toellner, T. S., Mannheim, P. D., Brown, D. E., Zhao, J. & Alp, E. E. (2003). *Phys. Rev. B*, **67**, 094304.

Hu, M. Y., Toellner, T. S., Dauphas, N., Alp, E. E. & Zhao, J. (2013). *Phys. Rev. B*, **87**, 064301.

Hu, M., Toellner, T., Sturhahn, W., Hession, P., Sutter, J. & Alp, E. (1999). *Nucl. Instrum. Methods Phys. Res. A*, **430**, 271–276.

Johnson, D. & Spence, J. C. H. (1974). *J. Phys. D Appl. Phys.* **7**, 771–780.

Johnston, W. (1965). *J. Am. Ceram. Soc.* **48**, 184–190.

Kabata-Pendias, A. & Pendias, H. (2001). *Trace Elements in Soils and Plants*, 3rd ed. Boca Raton: CRC Press.

Kohn, V. G. & Chumakov, A. I. (2000). *Hyperfine Interact.* **125**, 205–221.

Kohn, V., Chumakov, A. & Rüffer, R. (1998). *Phys. Rev. B*, **58**, 8437–8444.

Lehmann, B. (2006). *Metallogeny of Tin*. Berlin: Springer.

Lehnert, N., Sage, J. T., Silvernail, N., Scheidt, W. R., Alp, E. E., Sturhahn, W. & Zhao, J. (2010). *Inorg. Chem.* **49**, 7197–7215.

Leu, B. M. & Sage, J. T. (2016). *Hyperfine Interact.* **237**, 87.

Leu, B. M., Silvernail, N. J., Zgierski, M. Z., Wyllie, G. R. A., Ellison, M. K., Scheidt, W. R., Zhao, J., Sturhahn, W., Alp, E. E. & Sage, J. T. (2007). *Biophys. J.* **92**, 3764–3783.

Leu, B. M., Zhang, Y., Bu, L., Straub, J. E., Zhao, J., Sturhahn, W., Ercan Alp, E. & Timothy Sage, J. (2008). *Biophys. J.* **95**, 5874–5889.

Lin, J. F., Speziale, S., Mao, Z. & Marquardt, H. (2013). *Rev. Geophys.* **51**, 244–275.

Lin, J.-F., Struzhkin, V. V., Sturhahn, W., Huang, E., Zhao, J., Hu, M. Y., Alp, E. E., Mao, H., Boctor, N. & Hemley, R. J. (2003). *Geophys. Res. Lett.* **30**, 2112.

Lin, J.-F., Sturhahn, W., Zhao, J., Shen, G., Mao, H.-k. & Hemley, R. J. (2004). *Geophys. Res. Lett.* **31**, L14611.

Lin, J.-F., Wu, J., Zhu, J., Mao, Z., Said, A. H., Leu, B. M., Cheng, J., Uwatoko, Y., Jin, C. & Zhou, J. (2014). *Sci. Rep.* **4**, 6282.

Lipkin, H. J. (1962). *Ann. Phys.* **18**, 182–197.

Lipkin, H. J. (1995). *Phys. Rev. B*, **52**, 10073–10079.

Lipkin, H. J. (1999). *Hyperfine Interact.* **123/124**, 349–366.

Liu, J., Dauphas, N., Roskosz, M., Hu, M. Y., Yang, H., Bi, W., Zhao, J., Alp, E. E., Hu, J. Y. & Lin, J.-F. (2017). *Nat. Commun.* **8**, 14377.

Long, G. J., Hermann, R. P., Grandjean, F., Alp, E. E., Sturhahn, W., Johnson, C. E., Brown, D. E., Leupold, O. & Rüffer, R. (2005). *Phys. Rev. B*, **71**, 140302.

Lucy, L. B. (1974). *Astron. J.* **79**, 745.

Mao, H. K., Xu, J., Struzhkin, V. V., Shu, J., Hemley, R. J., Sturhahn, W., Hu, M. Y., Alp, E. E., Vocadlo, L., Alfè, D., Price, G. D., Gillan, M. J., Schwoerer-Böhning, M., Häusermann, D., Eng, P., Shen, G., Giefers, H., Lübers, R. & Wortmann, G. (2001). *Science*, **292**, 914–916.

Mao, W. L., Mao, H., Sturhahn, W., Zhao, J., Prakapenka, V. B., Meng, Y., Shu, J., Fei, Y. & Hemley, R. J. (2006). *Science*, **312**, 564–565.

Mooney, T., Alp, E. & Yun, W. (1992). *J. Appl. Phys.* **71**, 5709–5711.

Mousis, O., Lunine, J., Luspay-Kuti, A., Guillot, T., Marty, B., Ali-Dib, M., Wurz, P., Altwegg, K., Bieler, A., Hässig, M., Rubin, M., Vernazza, P. & Waite, J. H. (2016). *Astrophys. J.* **819**, L33.

Nagy, J. & Strakos, Z. (2000). *Math. Model. Estim. Imaging*, **4121**, 182–190.

Owen, T., Bar-Nun, A. & Kleinfeld, I. (1992). *Nature (London)*, **358**, 43–46.

Pavlik, J. W., Barabanschikov, A., Oliver, A. G., Alp, E. E., Sturhahn, W., Zhao, J., Sage, J. T. & Scheidt, W. R. (2010). *Angew. Chem. Int. Ed.* **49**, 4400–4404.

Polyakov, V. B. (2009). *Science*, **323**, 912–914.

Polyakov, V., Clayton, R., Horita, J. & Mineev, S. (2007). *Geochim. Cosmochim. Acta*, **71**, 3833–3846.

Polyakov, V. B., Mineev, S. D., Clayton, R. N., Hu, G. & Mineev, K. S. (2005). *Geochim. Cosmochim. Acta*, **69**, 5531–5536.

Rai, B. K., Durbin, S. M., Prohofsky, E. W., Sage, J. T., Ellison, M. K., Roth, A., Scheidt, W. R., Sturhahn, W. & Alp, E. E. (2003). *J. Am. Chem. Soc.* **125**, 6927–6936.

Rai, B. K., Durbin, S. M., Prohofsky, E. W., Sage, J. T., Wyllie, G. R. A., Scheidt, W. R., Sturhahn, W. & Alp, E. E. (2002a). *Biophys. J.* **82**, 2951–2963.

Rai, B. K., Durbin, S. M., Prohofsky, E. W., Timothy Sage, J., Ellison, M. K., Robert Scheidt, W., Sturhahn, W. & Ercan Alp, E. (2002b). *Phys. Rev. E*, **66**, 051904.

Richardson, W. H. (1972). *J. Opt. Soc. Am.* **62**, 55–59.

Röhlsberger, R. (2004). *Nuclear Condensed Matter Physics with Synchrotron Radiation*, Vol. 208 of Springer Tracts in Modern Physics. Heidelberg: Springer.

Roskosz, M., Sio, C. K., Dauphas, N., Bi, W., Tissot, F. L., Hu, M. Y., Zhao, J. & Alp, E. E. (2015). *Geochim. Cosmochim. Acta*, **169**, 184–199.

Sage, J. T., Durbin, S. M., Sturhahn, W., Wharton, D. C., Champion, P. M., Hession, P., Sutter, J. & Alp, E. E. (2001). *Phys. Rev. Lett.* **86**, 4966–4969.

Scheidt, W. R., Durbin, S. M. & Sage, J. T. (2005). *J. Inorg. Biochem.* **99**, 60–71.

Scheidt, W. R., Li, J. & Sage, J. T. (2017). *Chem. Rev.* **117**, 12532–12563.

Seto, M., Yoda, Y., Kikuta, S., Zhang, X. & Ando, M. (1995). *Phys. Rev. Lett.* **74**, 3828–3831.

Shahar, A., Schauble, E. A., Caracas, R., Gleason, A. E., Reagan, M. M., Xiao, Y., Shu, J. & Mao, W. (2016). *Science*, **352**, 580–582.

Simon, R. E., Sergueev, I., Kantor, I., Kantor, A., Persson, J. & Hermann, R. P. (2014). *Semicond. Sci. Technol.* **29**, 124001.

Singwi, K. S. & Sjölander, A. (1960). *Phys. Rev.* **120**, 1093–1102.

Sturhahn, W. (2000). *Hyperfine Interact.* **125**, 149–172.

Sturhahn, W. (2004). *J. Phys. Condens. Matter*, **16**, S497–S530.

Sturhahn, W. & Jackson, J. M. (2007). *Geol. Soc. Am. Spec. Pap.* **421**, 157–174.

Sturhahn, W., Toellner, T. S., Alp, E. E., Zhang, X., Ando, M., Yoda, Y., Kikuta, S., Seto, M., Kimball, C. W. & Dabrowski, B. (1995). *Phys. Rev. Lett.* **74**, 3832–3835.

Urey, H. C. (1947). *J. Chem. Soc.* pp. 562–581.

Visscher, W. M. (1960). *Ann. Phys.* **9**, 194–210.

Wang, X., Fitoussi, C., Bourdon, B. & Amet, Q. (2017). *J. Anal. At. Spectrom.* **32**, 1009–1019.

Wang, X., Fitoussi, C., Bourdon, B. & Amet, Q. (2018). *Geochim. Cosmochim. Acta*. In the press.

Zaccai, G. (2000). *Science*, **288**, 1604–1607.

Zhao, J., Alp, E., Hu, M., Toellner, T., Sturhahn, W., Shen, G., Shu, J. & Mao, H. (2001). *18th International Conference on High Pressure Science and Technology*. Abstract.