## research papers

## Extracting contrast in an X-ray speckle visibility spectroscopy experiment under imperfect conditions

**Nelson Hua,**

^{a}^{*}Ivan A. Zaluzhnyy,^{a}Stjepan B. Hrkac,^{a}Anatoly G. Shabalin^{a}and Oleg G. Shpyrko^{a}^{a}Department of Physics, University of California, San Diego, La Jolla, CA 92093, USA^{*}Correspondence e-mail: nehua@ucsd.edu

Pump–probe experiments at synchrotrons and free-electron lasers to study ultrafast dynamics in materials far from equilibrium have been well established, but techniques to investigate equilibrium dynamics on the nano- and pico-second timescales remain underdeveloped and experimentally challenging. A promising approach relies on a double-probe X-ray speckle visibility spectroscopy setup at split-and-delay beamlines of X-ray free-electron lasers. However, the logistics in consistently producing two collinear, perfectly overlapping pulses necessary to conduct a faithful experiment is difficult to achieve. In this paper, a method is introduced to extract contrast in the case where an angular misalignment and imperfect overlap exists between the two pulses. Numerical simulations of a dynamical system show that contrast can still be extracted for significant angular misalignments accompanied by partial overlap between the two pulses.

### 1. Introduction

#### 1.1. X-ray photon correlation spectroscopy

X-ray photon correlation spectroscopy (XPCS) is a powerful coherent X-ray technique capable of probing nanoscale dynamics for a wide range of material systems (Sutton *et al.*, 1991; Shpyrko *et al.*, 2007; Evenson *et al.*, 2015; Fluerasu *et al.*, 2005; Chen *et al.*, 2013). When a coherent beam interacts with a sample, the interference creates a speckle pattern in the far-field that is a signature of the nanoscale heterogeneities present in the system. By measuring how fast or slow the speckle pattern evolves, it is possible to resolve and quantify the fluctuation timescale of the of interest. This can be achieved by measuring the time-averaged intensity–intensity autocorrelation function between detector images that are separated by a delay time, τ, as defined in equation (1),

Here *g*_{2}(**q**,*t*) is a correlation function, **q** is the X-ray scattering vector, *t* and τ are time variables, and the angular brackets denote averaging over the time τ. The decay rate of the correlation function *g*_{2}(**q**,*t*) gives one the characteristic timescale of dynamics present in the system (Shpyrko, 2014; Sinha *et al.*, 2014). However, this approach based on the evaluation of the *g*_{2}-function has an inherent limitation in the temporal resolution that is defined by the frame rate of the detector, which is presently on the order of milli- to micro-seconds for the fastest CCD and photon-counting area detectors (Madden *et al.*, 2016; Ponchut *et al.*, 2011).

#### 1.2. X-ray speckle visibility spectroscopy

With the advent of split-and-delay lines at X-ray free-electron lasers (XFELs) (Hirano *et al.*, 2018; Roseker *et al.*, 2018, 2020; Rysov *et al.*, 2019), it is now possible to circumvent this limitation with a modified technique known as X-ray speckle visibility spectroscopy (XSVS) that is capable of probing ultrafast dynamics such as atomic diffusion and skyrmion lattice phases (Hruszkewycz *et al.*, 2012; Seaberg *et al.*, 2017). Instead of relying on several detector images, XSVS exploits a single speckle pattern on the detector generated by either one or several X-ray pulses. XSVS has already been successfully employed using a single X-ray pulse with variable duration, in other words a single coherent XFEL pulse (Hruszkewycz *et al.*, 2012). If the system is static or the dynamical timescale is longer than the then the speckle pattern on the detector will have a relatively high contrast value defined by the temporal and spatial coherence of the beam. However, if the system exhibits dynamics within the the speckle pattern on the detector smears out, resulting in a lower contrast value than its corresponding static case (Wingert *et al.*, 2015). This decay of the speckle contrast, defined as β(*t*) in an XSVS experiment, provides a timescale for the dynamics in the system. Therefore, by varying the it is possible to probe dynamics by examining the change in contrast. For example, a coherent pulse varied between 10 fs and 120 fs was used to measure caging effects of ultrafast water dynamics (Perakis *et al.*, 2018). The disadvantage with the single pulse method is the limitation of the largest time delay that is defined by the sub-picosecond pulse duration.

A second method of XSVS that is capable of probing a wider range of timescales uses two identical coherent pulses that are separated by a delay time as shown in Fig. 1(*a*). The experimental setup in this case uses optics in a split-and-delay line to separate a coherent pulse into two identical probes, delaying one of the probes in time, and recombining them into two collinear signals (Yabashi *et al.*, 2017). In practice, this is extremely difficult to achieve consistently (Sun *et al.*, 2020), and there will often be an angular misalignment between the two pulses and a nonperfect overlap on the sample as illustrated in Fig. 1(*b*). In both cases, the speckle contrast is affected in a double probe XSVS experiment where the detector records the sum of two speckle patterns. Using numerical simulations, we show how the angular misalignment and nonperfect overlap affects the speckle contrast, and how it is possible to recover the contrast lost through selective binning of the detector data.

### 2. Extracting contrast

The contrast β for a speckle pattern on an area detector is defined in equation (2) as

where is the average photon count per pixel corresponding to the scattering vector **q**, and σ^{2} is the normalized variance of the photon count (Li *et al.*, 2014). In the high photon count regime where is large, it is possible to measure the decay of contrast by simply tracking the variance of the speckle pattern since the last term in equation (2) is small compared with β. In the low photon count regime where is small, the last term becomes significant and the variance can no longer accurately capture the contrast. This is demonstrated in Figs. 1(*d*) and 1(*e*) where the decay of contrast using the variance is evident in the system where = 6 photons per pixel but fails for the case of = 0.015 photons per pixel. This becomes problematic for a XSVS experiment since the typical signal produced from the interaction of a single or double pulse with a system, especially at large *q* values, is quite low (Sun *et al.*, 2020). To overcome this impediment, we have to resort to statistics and measure the contrast in terms of coherent modes, *M*, where β = 1/*M*. The value of *M* represents the number of independent speckle patterns recorded by the detector.

Here we consider a speckle pattern with *M* coherent modes where the intensity distribution is well approximated by a gamma density function, and where the discretized photon counts on the detector follows a The signal on the detector follows the compound distribution of these two independent probability distributions, which is the negative-binomial distribution, *P*(*K*), as given in equation (3),

where *M* is the speckle degree of freedom, *P*(*K*) is the probability of finding *K* photon hits, and is the average photon per pixel of the entire detector. In a real experiment, a proper droplet algorithm must be applied to convert the area detector signal into localized and discretized photon counts. In our simulations, this is achieved by feeding the final speckle pattern on the detector, characterized by the gamma distribution of the speckle intensity, through a Poisson filter. By counting the double *K* = 2 and triple *K* = 3 photon hits on the detector, it is possible to extract the contrast by fitting *M* to the *P*(*K* = 2) and *P*(*K* = 3) cases of the negative binomial distribution in equation (3).

### 3. Simulation

Speckle patterns are simulated following the example presented by Goodman (2007). A random phase field ϕ(*q*_{x},*q*_{y}) is created on a 1024 × 1024 grid, and a Gaussian beam *G*_{1}(*x*,*y*) = with a full width at half-maximum (FWHM) profile of 235 pixels is centered on the middle of the grid at (*x*_{1},*y*_{1}) = (512,512). The intensity of the speckle pattern produced on a 1024 × 1024 pixel area detector in the far-field can be calculated using discrete Fourier transforms described in equation (4),

Here and denote the direct and inverse Fourier transforms, respectively. A dynamic system can then be created using a predefined correlation timescale (Federico *et al.*, 2006). In this approach, the random phase field ϕ(*q*_{x},*q*_{y}, *t*) is iteratively evolving in time as described by

where *D*(*q*_{x}, *q*_{y}, *t*) is a Gaussian distribution with zero mean and unitary standard deviation to confine the magnitude of change to the phase field, and *dt* is the time step between two consecutively generated speckle patterns. Federico *et al.* (2006) showed that the standard deviation between successive phase fields, ϕ(*q*_{x},*q*_{y},*t*) and ϕ(*q*_{x},*q*_{y},*t* + *dt*), is related to the correlation function by {ln[*c*(*t*)]-ln[*c*(*t*+*d**t*)]}^{1/2}. The dynamics of the system is thus encoded in the time-dependent correlation function, *c*(*t*), which describes how fast the correlation between speckle patterns decay with time. A monotonic function, *c*(*t*) = exp[-(*t*/*t*_{c})^{2}], was chosen to simulate a dynamical system where *t* is an arbitrary unit of time and *t*_{c} is a time constant set to 200 to describe the temporal evolution. The final speckle pattern of a dynamic system in a double-probe XSVS experiment with collinear pulses is therefore

where *t* is the time delay between the two pulses and *G*_{1}(*x*,*y*) = *G*_{2}(*x*,*y*) for overlapping, collinear pulses. To simulate a partial overlap between the two pulses, the center of the second pulse is simply shifted to a different point (*x*_{2},*y*_{2}). An example of detector images for a high and low value at *t* = 0 for this case is shown in Fig. 1(*c*).

To simulate an angular mismatch Δθ along the *x*-direction to the second pulse, we introduce a phase shift to the second Gaussian beam so that the illumination function *G*_{2}(*x*, *y*) can be written as

Here Δ*q*_{x} = *q*Δθ for a small angular mismatch Δθ between the propagation directions of the two pulses where *q* = 2π/λ is the wavevector of photons with wavelength λ, *x* is the index of the pixels, and *s* is the size of the pixel in real space. We chose an energy of 10 keV and set the size of a pixel to *s* = 6.38 nm per pixel to give a realistic FWHM of the Gaussian beam to be 1.5 µm (235 pixels). The parameters for our simulation produced an average speckle size on the detector of approximately 2 pixels as calculated from fitting a Gaussian to the normalized 2D autocorrelation of a detector image at time zero. In any real experiment, the speckle size is determined by the wavelength, the spot size of the coherent pulse, and the sample-to-detector distance and should be calibrated so that the average speckle size is at least 1 pixel size. Typically this is achieved by changing the sample-to-detector distance, but this parameter is fixed in our system due to the use of discrete Fourier transforms to simulate the speckle pattern on the detector instead of using a continuous Fourier transform. To model a low photon count regime, the amplitude of the Gaussian pulses, *A*, was defined so that the final detector images have an average photon count between = 0.014–0.015 photons per pixel within approximately two standard deviations. To account for the statistical nature of the photon detecting process, 50 independent phase fields ϕ(*q*_{x},*q*_{y}) were simulated and advanced for a total of 30 time steps.

### 4. Results

#### 4.1. Angular misalignment

A perfectly overlapping, but slightly misaligned, second pulse effectively shifts the second signal along the detector to create a smeared speckle pattern as demonstrated in Fig. 1(*c*) (left column) for the high photon regime where the second pulse is misaligned by 60 µrad. Note that such smearing is not visually evident for low photon counts where the Poisson fluctuations are on the order of the signal itself, as shown in Fig. 1(*c*) (right column). To compare the difference in contrast between the collinear and misaligned cases, we first calculate the number of *K* = 2 photoevents relative to the average intensity at time zero where the system is static, and compare the results to the probability distribution for full contrast *P*(*K* = 2, *M* = 1) and zero contrast *P*(*K* = 2, *M* → ∞). In Fig. 2(*a*), we can immediately see the probability *P*(*K* = 2) for the misaligned case is lower than for the collinear one, which means the decrease of the contrast is caused by the angular misalignment. The two probes are fully coherent in our simulation and therefore the theoretical maximum contrast is 1 for a completely static system where there is only a single speckle degree of freedom (*M* = 1), and 1/2 for a completed decorrelated system with two speckle (*M* = 2) coming from the interaction of two pulses with different phase fields. At each time delay, the speckle contrast was evaluated as β = 1/*M*, where *M* was determined by fitting equation (3) for *P*(*K* = 2) photon hits over the 50 independent diffraction patterns. The error bars are defined to be one standard deviation from the best fit. After evaluating the contrast β at all time delays in Fig. 2(*b*), we see the contrast drop from approximately 1 to 1/2 for the collinear case but is approximately 1/2 at all time delays for the misaligned case. In other words, a 60 µrad angular mismatch is sufficient to completely destroy the contrast in a double-probe XSVS experiment.

In principle, since an angular misalignment shifts the speckle pattern along the detector, the original speckles with two or three photon hits produced from the two pulses effectively split between neighboring pixels along the detector. Therefore, it should be possible to partially recover the contrast lost by binning the detector images along the direction of misalignment, *i.e.* summing together the photon counts of *N* neighboring pixels along the *x*-direction. By binning, some information about the speckle pattern is lost because now we consider only the total signal within a bin, which might include a few speckles. At first glance, this contradicts the well established rule stating the optimal setup for an XPCS experiment corresponds to one speckle per pixel. However, for extremely low the probability that several photons belonging to different speckles fall in the same bin is negligible. Moreover, our simulations show that the increased photon count per bin outweights the loss of some resolution on the detector, which is already spoiled by the angular mismatch.

In Fig. 3(*a*), we directly show that by binning the data the contrast can be partially recovered to the point where the decay is significant above the error bars. Since our speckle size is approximately 2 pixels, we see that a bin size of 2 pixels does not drastically change the contrast trend, but the decay is evident starting at *N* = 4 pixel bin sizes. The contrast trend for the misaligned case also approaches the one for the collinear case with increasing bin size. Since the collinear pulses accurately describe the underlying dynamics, we can consider the bin size of 10 pixels to be the optimal binning as the contrast decay of the misaligned case most resembles the collinear one. However, by binning the data, we are also adding more speckle within a bin, *i.e.* effectively increasing *M*, and thus inherently lowering the range of the theoretical maximum and minimum contrast. Therefore, while the contrast trends of the two cases do approach each other monotonically with bin size, the absolute change in contrast between time zero and long-time delays grows smaller as well. In Fig. 3(*b*), the characteristic timescale extracted from fitting the contrast decay with a stretched exponential function is shown for various bin sizes for both the collinear and misaligned cases. It is evident that the error bars grow smaller with bin size, and the fits to the misaligned case approach that of the collinear case after *N* = 2 bin size.

In Figs. 4(*a*) and 4(*b*), the absolute change in contrast between time zero and long-time delays for various angular misalignments from 0 to 90 µrad and for various bin sizes up to *N* = 10 pixels calculated from *P*(*K* = 2) and *P*(*K* = 3) fits are shown. These values were calculated after averaging the first and last three time delays (*t* = 0, 1, 2 and *t* = 27, 28, 29) as the starting and ending contrast values. At low angular mismatches, the offset in the second probe is not large enough to split the speckles across the detector and thus binning does not improve the resolution in the contrast difference. However, at higher values of angular mismatch, it is clear that the maximum drop of contrast during the time-series is achieved for a bin size exceeding the speckle size. In Fig. 4(*c*), we show that the optimal bin size in terms of contrast difference varies depending on the angular mismatch angle. For all cases where binning recovers the decay of contrast outside the error bars, the dynamic timescale can be accurately extracted from an exponential fit.

The effects of binning can also be achieved by using a detector with larger pixel sizes. However, bins have a rectangular shape elongated in the direction of angular mismatch. Binning in the orthogonal direction would only decrease the contrast value and not correct for the angular mismatch. Moreover, the optimal binning *N* is determined by the speckle size and the value of angular mismatch Δθ, which can change from one experiment to another even at the same beamline. Therefore, collecting the data using existing detectors with small pixels and performing the binning at the data analysis stage can be advantageous at current split-and-delay setups.

#### 4.2. Imperfect overlap

The effect on contrast for imperfectly overlapping Gaussian probes was also investigated without taking into account the angular misalignment. The two probes with a FWHM of 235 pixels originally centered on the 1024 × 1024 phase field were displaced so that the centers of the Gaussian probes were separated in increments of 20 pixels along the *x*-direction. We define a fractional offset as the ratio of the probes' displacement to the FWHM of the probes. Since the pulses have a Gaussian profile, a more accurate representation is a weighted overlap between the two that can be calculated from a 2D autocorrelation of the Gaussian pulses centered at (*x*_{1},*y*_{1}) and (*x*_{2},*y*_{2}), as defined in equation (8),

where *G*_{1}(*x*,*y*) and *G*_{2}(*x*,*y*) are intensity profiles of the two X-ray pulses.

The overlap percentages as a function of fractional offset for Gaussian profiles are shown in Fig. 5(*a*) along with the change in contrast. We see that, even at a fractional offset of 50%, there is still a contrast difference of 0.2 that is sufficient to extract dynamic timescales in a system. This is not surprising since the distribution in intensity for a fully coherent Gaussian beam allows for a large offset as seen by the weighted overlap. In Fig. 5(*b*), we show that binning the detector along the direction of displacement decreases the contrast difference for all offsets, as expected. Therefore, binning of the data cannot improve the contrast value, suppressed by the partial overlap. However, the decrease in contrast is not dramatic, especially for Gaussian beams.

To demonstrate the possibility of binning the data where both the angular mismatch and imperfect spatial overlap are present, we performed simulations with both effects. The results shown in Fig. 6 indicate that a sufficient decay of contrast can be obtained for a wide range of parameters, namely for Δθ < 90 µrad and the fractional offset less than 0.4.

### 5. Conclusion

The parameters of our simulation are set to mimic a realistic double-probe XSVS experiment, but in general the experiment should be set up so the speckle size is at least one pixel on the detector. This can be achieved by varying the sample-to-detector distance or the beam spot size, with the latter being a variable in our simulation. A larger beam (5–10 µm) will produce speckles smaller than the detector pixels. Indeed this will make the system more robust to the angular mismatch, but will also reduce the initial contrast and open the possibility of making different speckles indistinguishable within a pixel. Using a larger beam is not equivalent to binning, since we propose to bin along the direction of angular mismatch (for example *q*_{x}), and changing the beam size will influence the speckle size in both directions (*q*_{x} and *q*_{y}). Our simulations show that binning in the direction perpendicular to the angular mismatch does not help to eliminate the effect of the angular mismatch on the speckle contrast. Therefore, using a smaller beam together with binning along one direction is more efficient than using larger beam (which is equivalent to binning along two directions).

Our simulations of a 2D phase field is also representative of surface scattering from a sample in reflection geometry or a thin sample in transmission geometry that is typical for systems of interest in an XSVS experiment (Sinha *et al.*, 2014). Through numerical simulations, we show that a double-probe XSVS experiment can endure a large offset in the overlap between the two pulses, but a small angular misalignment can completely destroy the contrast difference necessary to measure dynamics. Depending on the magnitude of the overlap and angular misalignment, a proper binning of the detector along the direction of angular misalignment can partially recover the contrast. Recently, Sun *et al.* (2020) proposed another approach to compensate for the shift of the speckle pattern by evaluating the autocorrelation function. In principle, both techniques yield similar results in partially recovering the original contrast, and should act as complementary tools to verify the results in a double-probe XSVS experiment. In our case, in addition to the angular mismatch, we simulated a dynamic speckle pattern with a predefined correlation function in the low photon count regime. By successfully extracting the time constant from fitting a stretched exponential to the decay of contrast in the binned data, we show that this analysis tool is effective in addressing a double-probe XSVS experiment where an angular misalignment and partial overlap exists.

### Acknowledgements

The authors declare no competing interests, and we acknowledge many helpful discussions with Andrej Singer (Cornell) and Oleg Gorobtsov (Cornell).

### Funding information

Funding for this research was provided by: US Department of Energy (grant No. DE-SC0001805).

### References

Chen, S. W., Guo, H., Seu, K. A., Dumesnil, K., Roy, S. & Sinha, S. K. (2013). *Phys. Rev. Lett.* **110**, 217201. Web of Science CrossRef PubMed Google Scholar

Evenson, Z., Ruta, B., Hechler, S., Stolpe, M., Pineda, E., Gallino, I. & Busch, R. (2015). *Phys. Rev. Lett.* **115**, 175701. Web of Science CrossRef PubMed Google Scholar

Federico, A., Kaufmann, G. H., Galizzi, G. E., Rabal, H., Trivi, M. & Arizaga, R. (2006). *Opt. Commun.* **260**, 493–499. CrossRef CAS Google Scholar

Fluerasu, A., Sutton, M. & Dufresne, E. M. (2005). *Phys. Rev. Lett.* **94**, 055501. Web of Science CrossRef PubMed Google Scholar

Goodman, J. W. (2007). *Speckle Phenomena in Optics: Theory and Applications.* Englewood: Roberts and Co. Google Scholar

Hirano, T., Osaka, T., Morioka, Y., Sano, Y., Inubushi, Y., Togashi, T., Inoue, I., Matsuyama, S., Tono, K., Robert, A., Hastings, J. B., Yamauchi, K. & Yabashi, M. (2018). *J. Synchrotron Rad.* **25**, 20–25. Web of Science CrossRef IUCr Journals Google Scholar

Hruszkewycz, S. O., Sutton, M., Fuoss, P. H., Adams, B., Rosenkranz, S., Ludwig, K. F., Roseker, W., Fritz, D., Cammarata, M., Zhu, D., Lee, S., Lemke, H., Gutt, C., Robert, A., Grübel, G. & Stephenson, G. B. (2012). *Phys. Rev. Lett.* **109**, 185502. Web of Science CrossRef PubMed Google Scholar

Li, L., Kwaśniewski, P., Orsi, D., Wiegart, L., Cristofolini, L., Caronna, C. & Fluerasu, A. (2014). *J. Synchrotron Rad.* **21**, 1288–1295. Web of Science CrossRef CAS IUCr Journals Google Scholar

Madden, T., Niu, S., Narayanan, S., Sandy, A., Weizeorick, J., Denes, P., Joseph, J., Moeller-Chan, V., Doering, D. & McVittie, P. (2016). *2014 IEEE Nuclear Science Symposium and Medical Imaging Conference (NSS/MIC)*, pp. 1–5. Google Scholar

Perakis, F., Camisasca, G., Lane, T. J., *sp*äh, A., Wikfeldt, K. T., Sellberg, J. A., Lehmkühler, F., Pathak, H., Kim, K. H., Amann-Winkel, K., Schreck, S., Song, S., Sato, T., Sikorski, M., Eilert, A., McQueen, T., Ogasawara, H., Nordlund, D., Roseker, W., Koralek, J., Nelson, S., Hart, P., Alonso-Mori, R., Feng, Y., Zhu, D., Robert, A., Grübel, G., Pettersson, L. G. M. & Nilsson, A. (2018). *Nat. Commun.* **9**, 1917. Web of Science CrossRef PubMed Google Scholar

Ponchut, C., Rigal, J. M., Clément, J., Papillon, E., Homs, A. & Petitdemange, S. (2011). *J. Instrum.* **1**, C01069. Google Scholar

Roseker, W., Hruszkewycz, S. O., Lehmkühler, F., Walther, M., Schulte-Schrepping, H., Lee, S., Osaka, T., Strüder, L., Hartmann, R., Sikorski, M., Song, S., Robert, A., Fuoss, P. H., Sutton, M., Stephenson, G. B. & Grübel, G. (2018). *Nat. Commun.* **9**, 1704. Web of Science CrossRef PubMed Google Scholar

Roseker, W., Lee, S., Walther, M., Lehmkühler, F., Hankiewicz, B., Rysov, R., Hruszkewycz, S. O., Stephenson, G. B., Sutton, M., Fuoss, P. H., Sikorski, M., Robert, A., Song, S. & Grübel, G. (2020). *Sci. Rep.* **10**, 5054. CrossRef PubMed Google Scholar

Rysov, R., Roseker, W., Walther, M. & Grübel, G. (2019). *J. Synchrotron Rad.* **26**, 1052–1057. CrossRef CAS IUCr Journals Google Scholar

Seaberg, M. H., Holladay, B., Lee, J. C. T., Sikorski, M., Reid, A. H., Montoya, S. A., Dakovski, G. L., Koralek, J. D., Coslovich, G., Moeller, S., Schlotter, W. F., Streubel, R., Kevan, S. D., Fischer, P., Fullerton, E. E., Turner, J. L., Decker, F.-J., Sinha, S. K., Roy, S. & Turner, J. J. (2017). *Phys. Rev. Lett.* **119**, 067403. Web of Science CrossRef PubMed Google Scholar

Shpyrko, O. G. (2014). *J. Synchrotron Rad.* **21**, 1057–1064. Web of Science CrossRef CAS IUCr Journals Google Scholar

Shpyrko, O. G., Isaacs, E., Logan, J., Feng, Y., Aeppli, G., Jaramillo, R., Kim, H., Rosenbaum, T., Zschack, P., Sprung, M., Narayanan, S. & Sandy, A. R. (2007). *Nature*, **447**, 68–71. CrossRef PubMed CAS Google Scholar

Sinha, S. K., Jiang, Z. & Lurio, L. B. (2014). *Adv. Mater.* **26**, 7764–7785. Web of Science CrossRef CAS PubMed Google Scholar

Sun, Y., Dunne, M., Fuoss, P., Robert, A., Zhu, D., Osaka, T., Yabashi, M. & Sutton, M. (2020). *Phys. Rev. Res.* **2**, 023099. CrossRef Google Scholar

Sutton, M., Mochrie, S. G. J., Greytak, T., Nagler, S. E., Berman, L. E., Held, G. A. & Stephenson, G. B. (1991). *Nature*, **352**, 608–610. CrossRef Web of Science Google Scholar

Wingert, J., Singer, A. & Shpyrko, O. G. (2015). *J. Synchrotron Rad.* **22**, 1141–1146. Web of Science CrossRef IUCr Journals Google Scholar

Yabashi, M., Tanaka, H., Tono, K. & Ishikawa, T. (2017). *Appl. Sci.* **7**, 604. Web of Science CrossRef Google Scholar

© International Union of Crystallography. Prior permission is not required to reproduce short quotations, tables and figures from this article, provided the original authors and source are cited. For more information, click here.