computer programs\(\def\hfill{\hskip 5em}\def\hfil{\hskip 3em}\def\eqno#1{\hfil {#1}}\)

Journal logoJOURNAL OF
APPLIED
CRYSTALLOGRAPHY
ISSN: 1600-5767

InteractiveXRDFit: a new tool to simulate and fit X-ray diffractograms of oxide thin films and heterostructures

CROSSMARK_Color_square_no_text.svg

aDQMP, University of Geneva, 24 Quai Ernest Ansermet, Geneva 4, 1211, Switzerland
*Correspondence e-mail: celine.lichtensteiger@unige.ch

Edited by V. Holý, Charles University, Prague, Czech Republic (Received 8 May 2018; accepted 11 September 2018; online 18 October 2018)

InteractiveXRDFit is a custom-made MATLAB program that calculates the X-ray diffracted intensity for oxide thin films and heterostructures based on a library of inorganic materials.

1. Introduction

With recent advances in deposition techniques, artificial materials can be produced with atomic scale control, creating new functional materials with tailored electronic properties. These fascinating materials can be studied with a plethora of advanced techniques. Independent of their properties, their characterization usually starts with conventional X-ray diffraction (XRD) to attest their crystalline quality. Indeed, most crystal-growth laboratories are equipped with X-ray diffractometers, standard instruments that are relatively inexpensive, fast and non-invasive.

Based on these observations, the program InteractiveXRDFit was developed to allow the user to simulate the (00L) diffractogram of heterostructures combining different materials grown on different substrates (L is defined in Fig. 2). The user can choose the substrate and the different materials composing a heterostructure from a long list of compounds (mainly perovskite oxides), choose between (001) or (111) substrate orientation, and play with the different structural parameters (unit-cell size and number of layers). It is possible to build a superlattice composed of up to three different materials, and to add a top and/or bottom layer (to simulate electrodes, spacers or capping layers). The simulation is quick and allows the user to compare it directly with experimental measurements, so as to give a rapid determination of the crystalline parameters of the sample.

This paper describes the program, how to use it and how it is constructed, with an example for illustration.

2. Technical details

InteractiveXRDFit was written using MATLAB R2015b (The MathWorks Inc., Natick, MA, USA) for Mac. It is compatible with Linux, Unix, Mac OS and Windows. The version available at the date of publication of this paper can be found in the supporting information. However, this program is constantly being adapted to suit users' needs, and anyone interested in using the latest release can obtain it from GitHub. If the user does not already have an account, he/she should start by creating a personal GitHub account (for free): https://github.com. The user should then request access to InteractiveXRDFit.

The user can then download every file for the latest version of the program, open MATLAB on his/her computer and run InteractiveXRDFit.m.

3. Program use

Once the user runs InteractiveXRDFit.m, three windows will appear:

(i) the XRD fitting parameters window (Fig. 1[link]a),

[Figure 1]
Figure 1
The different program panels. (a) The XRD fitting parameters window, (b) the fit display and (c) the c display. The calculated structure is represented on the right-hand side, drawn using VESTA (Momma & Izumi, 2011[Momma, K. & Izumi, F. (2011). J. Appl. Cryst. 44, 1272-1276.]). It is composed of an SrTiO3 substrate (N = 2 × 104 unit cells, c = 3.905 Å), an SrRuO3 bottom layer (N = 10 unit cells, c = 3.96 Å), and a superlattice comprising 3 unit cells of PbTiO3 (c = 4.145 Å) and 3 unit cells of SrTiO3 (c = 3.905 Å) repeated ten times.

(ii) the c display (Fig. 1[link]c), and

(iii) the fit display (Fig. 1[link]b).

3.1. The XRD fitting parameters window

From the XRD fitting parameters panel (Fig. 1[link]a), the user has the following options:

(i) Quit the program.

(ii) Load data to be fitted (has to be a .csv file). When loading data for comparison, two vertical green lines are displayed together with the data (in red) and the simulation (in blue). They delimit the region over which the r.m.s. values are evaluated [see equations (12[link]) and (13[link])].

(iii) Export the fit (as a .csv file).

(iv) Choose the parameters describing the heterostructure.

The heterostructure can be composed of

(a) a substrate,

(b) a bottom layer,

(c) a superlattice composed of up to three different materials, and

(d) a top layer.

Substrates can be chosen from DyScO3, GdScO3, KTaO3, LaAlO3, LaSrAlO4, LSAT [(LaAlO3)0.3(Sr2AlTaO6)0.7], NdAlO3, NdGaO3, Si, SrTiO3, TbScO3 and YAlO3.

Layer materials can be chosen from AlO2, BaO, BaTiO3, BiFeO3, CaCuO2, LaAlO3, La2CuO4, LaFeO3, LaMnO3, LaNiO3, La2NiMnO6, LaO, LSMO (La0.67Sr0.33MnO3), MnO, MnO2, MnTiO3, NiO2, NdNiO3, Nd2NiMnO6, NdO, PbO, PbTiO3, (PbxSr1−x)TiO3, Pb(ZrxTi1−x)O3, PrBa2Cu3O7, RuO2, SmNiO3, SrO, SrO2, SrRuO3, SrTiO3, SrVO3, TiO2, VO2, YBa2Cu3O7 and ZrO2.

For each layer, the user can define the number of unit cells and the c-axis value. The c-axis value either can be a constant (in most cases) or can vary as a function of depth within a layer (as will be discussed in the example in §7[link]).

3.2. The c display

The c-axis value is then displayed on a separate graph (Fig. 1[link]c) to help visualize the evolution of the c axis throughout the heterostructure.

3.3. The fit display

The XRD intensity is calculated and displayed in the fit display window (Fig. 1[link]b) after each modification of a parameter, to follow rapidly any changes in intensity as a function of the different parameters and compare the simulations with the measurement. In this window, one can display the data as a function of either 2θ (as defined in Fig. 2[link]) or reciprocal L, change the limits for the graph, and change the scaling of the calculated intensity for better comparison with the measurement.

[Figure 2]
Figure 2
Representation of Bragg's law in a standard XRD setup in (a) direct space and (b) reciprocal space.

4. Calculations

4.1. XRD measurement geometry

The calculations use Bragg's law of reflection, represented schematically in Fig. 2[link]. A parallel incoming beam is reflected by the atomic planes. Two such beams are represented in blue in Fig. 2[link](a), the lower one having to cover a longer distance (in red) equal to 2dsinθ. The beams are characterized by their wavelength λ and their wavevectors k = [2\pi {\hat {n}}/ \lambda]. If the path difference corresponds to a multiple of the X-ray wavelength λ, the different beams will interfere constructively, resulting in a peak in the X-ray reflection. This is the famous Bragg diffraction law,

[2d\sin\theta = n\lambda . \eqno (1)]

In reciprocal space, this condition is equivalent to k′ − k = Q, where Q is a Bravais vector of the reciprocal lattice, as shown in Fig. 2[link](b). Further details can be found in the work of Ashcroft & Mermin (1976[Ashcroft, N. W. & Mermin, N. D. (1976). Solid State Physics. Philadelphia: Saunders College Publishing.]).

Bragg's law tells us whether or not the conditions are met for diffraction to be observed. The intensity of this diffraction is calculated below using a bottom-up approach, starting with the contribution from individual atoms, then looking at the contribution from a group of atoms organized into a unit cell, and finally building the whole heterostructure to get the total response of the whole sample.

4.2. Atomic scattering factors

The atomic scattering factors f are calculated using the formula

[f = \sum _{i=1}^{4} \alpha _{i} \exp \left [ -\beta _{i} \left ( {{\sin\theta} \over {\lambda}} \right )^{2} \right ] + \gamma , \eqno (2)]

where the values for the parameters αi, βi and γ are found in International Tables for Crystallography, Vol. C (Brown et al., 2006[Brown, P., Fox, A., Maslen, E., O'Keefe, M. & Willis, B. (2006). International Tables for Crystallography, Vol. C, ch. 6.1, 1st online ed. Chester: International Union of Crystallography.]). (Note that the values used are for neutral atoms. The scattering factor values change if one uses ions, but this change will be small and will only affect the relative intensities and not the peak positions.) θ is the diffraction angle and λ the wavelength of the diffracted beam (here λ = 0.15406 nm), as described in Fig. 2[link]. This is done for a number of atoms: Al, Ba, Bi, Ca, Cu, Dy, Fe, Ga, Gd, K, La, Mn, Nd, Ni, O, Pb, Pr, Ru, Sc, Si, Sm, Sr, Ta, Tb, Ti, V, Y and Zr. Others will be added on request. In the case of alloying on an atomic site, an effective atomic scattering factor is created by taking the weighted average of the atomic scattering factors for the respective individual atoms.

4.3. Structure factors

The structure factor is then obtained for each unit cell using the Wyckoff positions within this cell:

[F = \textstyle\sum\limits _{j=1}^{N} f_{j} \exp \left ( i {\bf Q} \cdot {\boldomega}_{j} \right ) , \eqno (3)]

where N is the number of atoms in the unit cell and Q is a Bravais vector of the reciprocal lattice, also known as the momentum transfer [||Q|| = 4πsin(θ)/λ]. Since this program evaluates the Bragg diffraction along the Q direction as shown in Fig. 2[link](b), only the z value for the different atoms and the distance d between equivalent planes of the corresponding material are needed:

[F = \textstyle\sum\limits _{j=1}^{N} f_{j} \exp \left ( iQz_{j} d \right ) . \eqno (4)]

A few examples are described below.

4.3.1. Perovskite structure

Most of the materials used in this program have a perovskite structure ABO3, as shown in Fig. 3[link]. For simplification, we will consider a simple cubic perovskite structure with unit cell c. In the (001) orientation (Fig. 3[link], top), the atoms are in the positions shown in Table 1[link] (in lattice parameter units c).

Table 1
Relative positions (in lattice parameter units) of the atoms in the (001)-oriented cubic perovskite structure

  x y z
A 0 0 0
B 1/2 1/2 1/2
O1 1/2 1/2 0
O2 0 1/2 1/2
O3 1/2 0 1/2
[Figure 3]
Figure 3
The cubic perovskite structure, (top) in the (001) orientation and (bottom) in the (111) orientation. Drawn using VESTA (Momma & Izumi, 2011[Momma, K. & Izumi, F. (2011). J. Appl. Cryst. 44, 1272-1276.]).

The structure factor F is then

[\eqalignno { F_{(001) \ {\rm cubic} \ {\rm perovskite}} = & \, f_{A} \exp \left ( iQz_{A} c \right ) + f_{B} \exp \left ( iQz_{B} c \right ) \cr & \, + f_{\rm O} \exp \left ( iQz_{{\rm O}1} c \right ) + f_{\rm O} \exp \left ( iQz_{{\rm O}2} c \right ) \cr & \, + f_{\rm O} \exp \left ( iQz_{{\rm O}3} c \right ) , & (5) \cr = & \, f_{A} + f_{\rm O} + \left (\, f_{B} + 2f_{\rm O} \right ) \exp \left ( iQ {{c} \over {2}} \right ) . & (6)}]

In the (111) orientation (Fig. 3[link], bottom), one has to consider not one but three unit cells with the atoms in the positions shown in Table 2[link] (in lattice parameter units). In the x, y and z directions, the lattice parameter units are equal to c(2)1/2, c(2)1/2 and c/(3)1/2, respectively, where c is the lattice parameter of the unit cell.

Table 2
Relative positions (in lattice parameter units) of the atoms in the (111)-oriented cubic perovskite structure

  x y z
A1 0 0 0
O1 1/2 0 0
O2 1/4 (3)1/2/4 0
O3 −1/4 (3)1/2/4 0
B1 1/2 (3)1/2/6 1/2
       
A2 0 (3)1/2/3 1
O4 1/4 (3)1/2/12 1
O5 3/4 (3)1/2/12 1
O6 1/2 (3)1/2/3 1
B2 0 0 3/2
       
A3 1/2 (3)1/2/6 2
O7 1/4 5(3)1/2/12 2
O8 −1/4 5(3)1/2/12 2
O9 0 (3)1/2/6 2
B3 0 (3)1/2/3 5/2

One can easily see that the positions along z of the groups of atoms (A2 O4 O5 O6 B2) and (A3 O7 O8 O9 B3) are equivalent to (A1O1 O2 O3 B1). We therefore use the first set of five atoms as our unit cell to calculate the structure factor F:

[\eqalignno { & F_{(111) \ {\rm cubic} \ {\rm perovskite}} \cr & \quad \quad \quad = f_{A} \exp \left [ iQz_{A1} {{c} \over {(3)^{1/2}}} \right ] + f_{B} \exp \left [ iQz_{B1} {{c} \over {2(3)^{1/2}}} \right ] \cr & \quad \quad \quad\quad + f_{\rm O} \exp \left [ iQ z_{{\rm O}1} {{c} \over {(3)^{1/2}}} \right ] + f_{\rm O} \exp \left [ iQ z_{{\rm O}2} {{c} \over {(3)^{1/2}}} \right ] \cr & \quad \quad \quad\quad + f_{\rm O} \exp \left [ iQ z_{{\rm O}3} {{c} \over {(3)^{1/2}}} \right ] & (7) \cr & \quad \quad \quad= f_{A} + 3f_{\rm O} + f_{B} \exp \left [ iQ {{c} \over {2 (3)^{1/2}}} \right ] . & (8)}]

4.3.2. LaSrAlO4 substrate

LaSrAlO4 is a tetragonal mater­ial used as a substrate, with a = b = 3.75576 Å and c = 12.6377 Å, as shown in Fig. 4[link]. In the (001) orientation, the atoms are at the positions shown in Table 3[link] (in lattice parameter units).

Table 3
Relative positions (in lattice parameter units) of the atoms in the (001)-oriented LaSrAlO4 substrate

  x y z
Al1 0 0 0
O1 0 1/2 0
O2 1/2 0 0
0.5La/0.5Sr1 1/2 1/2 0.1411
O3 0 0 0.1627
O4 1/2 1/2 0.3373
0.5La/0.5Sr2 0 0 0.3589
Al2 1/2 1/2 1/2
O5 0 1/2 1/2
O6 1/2 0 1/2
0.5La/0.5Sr3 0 0 0.6411
O7 1/2 1/2 0.6627
O8 0 0 0.8373
0.5La/0.5Sr4 1/2 1/2 0.8589
[Figure 4]
Figure 4
LaSrAlO4 is a tetragonal material used as a substrate with a = b = 3.75576 Å and c = 12.6377 Å. Drawn using VESTA (Momma & Izumi, 2011[Momma, K. & Izumi, F. (2011). J. Appl. Cryst. 44, 1272-1276.]).

The structure factor F is then

[\eqalignno { & F_{(001)\ {\rm LaSrAlO}_{4}} \cr & = f_{\rm Al} \exp \left ( iQz_{{\rm Al}1} c \right ) + f_{\rm O} \exp \left ( iQz_{{\rm O}1} c \right ) + f_{\rm O} \exp \left ( iQz_{{\rm O}2} c \right ) \cr & \quad + \left ( 0.5 f_{\rm La} + 0.5 f_{\rm Sr} \right ) \exp \left ( iQz_{0.5{\rm La}/0.5{\rm Sr}1} c \right ) + f_{\rm O} \exp \left ( iQz_{{\rm O}3} c \right ) \cr & \quad + f_{\rm O} \exp \left ( iQz_{{\rm O}4} c \right ) + \left ( 0.5 f_{\rm La} + 0.5 f_{\rm Sr} \right ) \exp \left ( iQz_{0.5{\rm La}/0.5{\rm Sr}2} c \right ) \cr & \quad + f_{\rm Al} \exp \left ( iQz_{{\rm Al}2} c \right ) + f_{\rm O} \exp \left ( iQz_{{\rm O}5} c \right ) \cr & \quad + f_{\rm O} \exp \left ( iQz_{{\rm O}6} c \right ) + \left ( 0.5 f_{\rm La} + 0.5 f_{\rm Sr} \right ) \exp \left ( iQz_{0.5{\rm La}/0.5{\rm Sr}3} c \right ) \cr & \quad + f_{\rm O} \exp \left ( iQz_{{\rm O}7} c \right ) + f_{\rm O} \exp \left ( iQz_{{\rm O}8} c \right ) \cr & \quad + \left ( 0.5 f_{\rm La} + 0.5 f_{\rm Sr} \right ) \exp \left ( iQz_{0.5{\rm La}/0.5{\rm Sr}4} c \right ) & (9) \cr & = f_{\rm Al} + 2f_{\rm O} + \left ( 0.5f_{\rm La} + 0.5f_{\rm Sr} \right ) \exp \left ( iQ \times 0.1411 \, c \right ) \cr & \quad + f_{\rm O} \exp \left ( iQ \times 0.1627 \, c \right ) + f_{\rm O} \exp \left ( iQ \times 0.3373 \, c \right ) \cr & \quad + \left ( 0.5f_{\rm La} + 0.5f_{\rm Sr} \right ) \exp \left ( iQ \times 0.3589 \, c \right ) \cr & \quad + \left ( f_{\rm Al} + 2f_{\rm O} \right ) \exp \left ( iQ {{c} \over {2}} \right ) + \left ( 0.5f_{\rm La} + 0.5f_{\rm Sr} \right ) \exp \left ( iQ \times 0.6411 \, c \right ) \cr & \quad + f_{\rm O} \exp \left ( iQ \times 0.6627 \, c \right ) + f_{\rm O} \exp \left ( iQ \times 0.8373 \, c \right ) \cr & \quad + \left ( 0.5f_{\rm La} + 0.5f_{\rm Sr} \right ) \exp \left ( iQ \times 0.8589 \, c \right ) . & (10)}]

4.4. Scattering amplitude and scattered intensity

In the kinematic theory of diffraction, the scattering amplitude g for the whole heterostructure is then obtained by adding the contributions from each layer. However, this neglects the effects associated with the absorption of the beam as it passes through the sample, or the reduction in intensity due to scattering and diffraction. The dynamic theory of diffraction takes these effects into account, but involves a degree of complexity that is beyond the scope of this program (Zachariasen, 1945[Zachariasen, W. H. (1945). Theory of X-ray Diffraction in Crystals. Chichester: Wiley.]). Here, we chose an intermediate approach consisting of modifying the kinematic approach by adding an attenuation factor to take absorption effects into account. The scattering amplitude is then

[g = \sum _{{\rm all\ layers}\ j} F \exp \left ( iQZ_{j} \right ) \exp \left ( -{{T-Z_{j}} \over {\mu}} \right ) , \eqno (11)]

where Zj is the position of the jth layer in the z direction, T is the total sample thickness and μ is the penetration depth. The first exponential term takes into account the correct phase depending on the position of the considered layer in the structure. The second exponential term takes into account the penetration depth reducing the intensity of the contribution of the deeper layers. A penetration factor μ = 1.5 × 104 Å is used, as it was found to give a better representation for the substrate intensities.

The scattered intensity is then just I = gg*, and it is renorm­alized to a maximum intensity equal to 1, allowing comparison with the measurements that are also renormalized.

5. Program organization

An important part of the program is dedicated to the graphical user interface (GUI) providing point-and-click control of the program, so that the user can run the application with no need to learn the MATLAB language or type commands.

Other parts of the program calculate the atomic scattering factors, structure factors, scattering amplitude and scattered intensity of the heterostructure built by the user. In order to save time, the substrate scattering amplitudes have all been calculated beforehand and are uploaded by the program.

The program is composed of the following MATLAB scripts and functions:

(i) InteractiveXRDFit.m. This is the heart of the program. It initializes all the variables and creates the GUI.

(ii) Substrate.m. This script loads the correct substrate data and intensity (from Substrates.mat) depending on the user's choice.

(iii) GenerateSubstrates.m. This script generates the XRD intensities for different substrates. It is never called from the other scripts. This is the script that was used to calculate the substrate scattering amplitudes beforehand in order to save time (saved in Substrates.mat). It is made available only for the sake of completeness.

(iv) PlotFitAndData.m. This script plots the calculated XRD intensities on the fit display panel. If the user has loaded a measurement for comparison, this script also displays the measured XRD intensities, together with the lines delimiting the region over which the RMS (root mean square) is evaluated. On the c display panel, it plots the x-axis profile of the simulated heterostructure.

(v) ProgcNSimu.m. This script calculates the XRD intensity and c-axis profile of the heterostructure defined by the user. It is used every time the user modifies a parameter in the XRD fitting parameters panel.

(vi) expzm.m. This function calculates the contribution from each layer material to the diffracted intensity.

(vii) FLayer.m. This function calculates the form factors of the different materials depending on their crystallographic structures. `z' are the out-of-place atomic positions in the different unit cells, expressed in relative unit cells.

(viii) StructureFactor.m. This function calculates the structure factor for materials with a perovskite structure (other structures are calculated directly within FLayer.m).

(ix) AtomicScatteringFactor.m. This function calculates the different atomic scattering factors used in this program, based on International Tables for Crystallography, Vol. C.

(x) RMS.m. This script is used to calculate the RMS of the pairwise differences of the fit and measurement,

[{\rm RMS} = {{\sum _{x = x_{\min}}^{x_{\max}} \left [ {\rm measured \ intensity}(x) - {\rm simulation}(x) \right ]^2} \over {{\rm size}(x)}} , \eqno (12)]

and RMS(log), the RMS of the pairwise differences of the log of the fit and the log of the measurement,

[\eqalignno{ & {\rm RMS}(\log) = \cr & {{\sum _{x = x_{\min}}^{x_{\max}} \left \{ \log \left [ {\rm measured \ intensity}(x) \right ] - \log \left [ {\rm simulation}(x) \right ] \right \}^2} \over {{\rm size}(x)}} . \cr && (13)}]

The user can change the region delimited by xmin and xmax over which the RMS and RMS(log) values are calculated (shown by vertical green lines on the fit display panel). This is done only if the user loads measured data, to compare them with the fit.

6. Program limitations and future developments

As discussed in §4.4[link], we chose an intermediate approach between the two limits of the kinematic and dynamic X-ray diffraction theories. Additionally, there are many factors that affect the diffracted intensity which are not taken into account here, such as beam size, sample alignment, surface and interface roughness, relaxation and rumpling, mosaicity, off-stoichiometry, vacancies, vicinality, and defects. Some of these factors will be added to future versions of the program. These simplifications were implemented in order to obtain a practical program that reproduces the main features of an XRD pattern, allowing the user to simulate quickly complex heterostructures with a limited number of adjustable parameters describing in the most convenient way the structure of the desired materials.

7. Example: constant versus depth-varying c-axis value

An interesting example is shown in Fig. 5[link]. In a series of PbTiO3 samples grown on SrTiO3 substrates, standard simulations (i.e. with a constant c-axis value) were not giving satisfactory results. This is shown in Fig. 5[link] (top), where a simulation for PbTiO3 with N = 127 unit cells and c = 4.139 Å (in blue) is compared with the measurement (in red). The value of c is determined by the PbTiO3 peak position and the number of unit cells is optimized to fit the finite size oscillations. However, the width of the simulated film peak is narrower than the measured one, and the oscillations to the right of the film peak are less intense than the measured ones.

[Figure 5]
Figure 5
Comparison between two fits for a PbTiO3 thin film on a (001)-oriented SrTiO3 substrate. The measurement is in red and the simulation in blue. The simulation in the top part is with a constant lattice parameter, while the bottom part corresponds to a depth-varying c-axis value described with an exponential function. The respective film lattice parameters are shown as insets. This clearly demonstrates a better agreement between the measurement and the simulation when the depth-varying c-axis value is chosen. From Weymann et al. (2018[Weymann, C., Lichtensteiger, C., Fernandez-Peña, S., Triscone, J.-M. & Paruch, P. (2018). In preparation.]).

The option to fit the diffractogram using a depth-varying c-axis value described with an exponential function was added to the program. The result obtained for N = 125 and cz = −0.079exp(−z/20) + 4.146 Å (corresponding to an average value of c = 4.134 Å) is shown in Fig. 5[link] (bottom), demonstrating the better agreement between the simulation and the measurement. In addition to the good match with the finite size oscillations and the peak position, the shape of the peak and the intensity of the oscillations on the right of the film peak are also now perfectly matching.

8. Conclusions

The program InteractiveXRDFit was developed to answer the need for users to simulate rapidly the (00L) diffractogram of heterostructures combining different materials grown on different substrates.

Other fitting programs are already available and they are efficient, but they may lack some flexibility with some of the parameters that this program allows to be modified. For example, Epitaxy (https://www.malvernpanalytical.com/en/products/category/software/X-ray-diffraction-software/epitaxy) from Malvern Panalytical allows thorough analysis of X-ray diffraction data with efficient fitting procedures, taking the instrumental details (background, divergence and intensity) into account and allowing the user to determine the sample structure properties (layer density, thickness and roughness), but the materials data remain fixed as they are in the materials database. SUPREX  (Fullerton et al., 1992[Fullerton, E. E., Schuller, I. K., Vanderstraeten, H. & Bruynseraede, Y. (1992). Phys. Rev. B, 45, 9292-9310.]) and CADEM  (Komar & Jakob, 2017[Komar, P. & Jakob, G. (2017). J. Appl. Cryst. 50, 288-292.]) are other examples of programs calculating X-ray diffraction from epitaxial layers, with SUPREX very useful for high-Tc superconductor superlattices, and CADEM focusing on half-Heusler superlattices such as HfNiSn/TiNiSn. While SUPREX was written in Fortran and in Turbo Pascal, CADEM was written using MATLAB and can be adapted to other materials as well. The interested user might also want to try COBRA (Yacoby et al., 2002[Yacoby, Y., Sowwan, M., Stern, E., Cross, J. O., Brewe, D., Pindak, R., Pitney, J., Dufresne, E. M. & Clarke, R. (2002). Nat. Mater. 1, 99-101.]), a phase-retrieval algorithm that has proved to be useful in the study of buried interfaces in epitaxial heterostructures; GenX (https://genx.sourceforge.net), a versatile program using the differential evolution algorithm for fitting X-ray and neutron reflectivity data as well as surface X-ray diffraction data (Björck & Andersson, 2007[Björck, M. & Andersson, G. (2007). J. Appl. Cryst. 40, 1174-1178.]); or the xrayutilities (https://xrayutilities.sourceforge.io/index.html) Python scripts for assisting X-ray diffraction experiments.

InteractiveXRDFit is simple to use and has the advantage of allowing the user to carry out rapid simulations of different heterostructures and see how changing the parameters modifies the diffractogram for a better understanding of the measurements.

Additionally, it can be easily adapted to the user's needs, with more materials and functionalities added on demand. Requests for any new requirements are most welcome.

Supporting information


Acknowledgements

The author would like to thank all the members of the groups of Professor Jean-Marc Triscone and Professor Patrycja Paruch for their useful remarks and motivating requests when using this program from its early infancy up to this current stage. Thanks also go to Arnoud Everhardt and Jorrit Hortensius for their support and enthusiasm.

Funding information

This work was supported by the Swiss National Science Foundation through Division II. The research leading to these results received funding from the European Research Council under the European Union's Seventh Framework Programme (FP7/2007–2013)/ERC grant agreement No. 319286 (Q-MAC).

References

First citationAshcroft, N. W. & Mermin, N. D. (1976). Solid State Physics. Philadelphia: Saunders College Publishing.  Google Scholar
First citationBjörck, M. & Andersson, G. (2007). J. Appl. Cryst. 40, 1174–1178.  Web of Science CrossRef IUCr Journals Google Scholar
First citationBrown, P., Fox, A., Maslen, E., O'Keefe, M. & Willis, B. (2006). International Tables for Crystallography, Vol. C, ch. 6.1, 1st online ed. Chester: International Union of Crystallography.  Google Scholar
First citationFullerton, E. E., Schuller, I. K., Vanderstraeten, H. & Bruynseraede, Y. (1992). Phys. Rev. B, 45, 9292–9310.  CrossRef CAS Web of Science Google Scholar
First citationKomar, P. & Jakob, G. (2017). J. Appl. Cryst. 50, 288–292.  Web of Science CrossRef IUCr Journals Google Scholar
First citationMomma, K. & Izumi, F. (2011). J. Appl. Cryst. 44, 1272–1276.  Web of Science CrossRef CAS IUCr Journals Google Scholar
First citationWeymann, C., Lichtensteiger, C., Fernandez-Peña, S., Triscone, J.-M. & Paruch, P. (2018). In preparation.  Google Scholar
First citationYacoby, Y., Sowwan, M., Stern, E., Cross, J. O., Brewe, D., Pindak, R., Pitney, J., Dufresne, E. M. & Clarke, R. (2002). Nat. Mater. 1, 99–101.  Web of Science CrossRef PubMed CAS Google Scholar
First citationZachariasen, W. H. (1945). Theory of X-ray Diffraction in Crystals. Chichester: Wiley.  Google Scholar

This is an open-access article distributed under the terms of the Creative Commons Attribution (CC-BY) Licence, which permits unrestricted use, distribution, and reproduction in any medium, provided the original authors and source are cited.

Journal logoJOURNAL OF
APPLIED
CRYSTALLOGRAPHY
ISSN: 1600-5767
Follow J. Appl. Cryst.
Sign up for e-alerts
Follow J. Appl. Cryst. on Twitter
Follow us on facebook
Sign up for RSS feeds