Table of Contents
Fetching ...

GenL: An extensible fitting program for Laue oscillations and whole pattern fitting

Anna L. Ravensburg, Johan Bylin, Vassilios Kapaklis, Gunnar K. Pálsson

Abstract

GenL is a flexible program that can be used to simulate and/or fit X-ray reflectivity and X-ray diffraction data from epitaxial thin films exhibiting, for example, Laue oscillations. It utilizes a differential evolution within a genetic algorithm for fitting data and uses a modular approach based on either the kinematic theory of diffraction or the dynamic theory. Effects of polarization, absorption, the Lorentz factor, as well as instrumental resolution and lattice vibrations are taken into account. Useful parameters that can be extracted after fitting include atomic interplanar spacings, number of coherently scattering atomic planes, strain profiles along the film thickness, and crystal roughness. The program has been developed in MATLAB and employs a graphical user interface. The deployment strategy is twofold, whereby the software can either be obtained in source code form and executed within the MATLAB environment, or as a pre-compiled binary for those who prefer not to run it within MATLAB. Finally, GenL can be easily extended to simulate multilayered film systems, superlattices, and films with atomic steps. The program is released under the GNU General Public License.

GenL: An extensible fitting program for Laue oscillations and whole pattern fitting

Abstract

GenL is a flexible program that can be used to simulate and/or fit X-ray reflectivity and X-ray diffraction data from epitaxial thin films exhibiting, for example, Laue oscillations. It utilizes a differential evolution within a genetic algorithm for fitting data and uses a modular approach based on either the kinematic theory of diffraction or the dynamic theory. Effects of polarization, absorption, the Lorentz factor, as well as instrumental resolution and lattice vibrations are taken into account. Useful parameters that can be extracted after fitting include atomic interplanar spacings, number of coherently scattering atomic planes, strain profiles along the film thickness, and crystal roughness. The program has been developed in MATLAB and employs a graphical user interface. The deployment strategy is twofold, whereby the software can either be obtained in source code form and executed within the MATLAB environment, or as a pre-compiled binary for those who prefer not to run it within MATLAB. Finally, GenL can be easily extended to simulate multilayered film systems, superlattices, and films with atomic steps. The program is released under the GNU General Public License.
Paper Structure (16 sections, 15 equations, 9 figures)

This paper contains 16 sections, 15 equations, 9 figures.

Figures (9)

  • Figure 1: Simulated X-ray diffraction pattern of a GaAs crystal using the dynamic formalism, assuming Cu K$\alpha_1$ radiation. Curves are shown for both the s and p polarizations, along with a comparison to the output of GenX for the same structure. The inset depicts a detailed view of the strongest diffraction peak for s polarization and the characteristic Darwin shape.
  • Figure 2: Comparison of simulated reflectivity curves for a GaAs substrate, assuming Cu K$\alpha_1$ radiation. The curves have been calculated using the dynamical approach and are compared with the Parratt formalism as implemented in GenX. The inset provides a detailed comparison for angles below the total reflection.
  • Figure 3: X-ray diffraction pattern of a 105 Å thick V layer on a MgO ($001$) substrate. The pattern was previously published in Komar2017 with a simulation of the diffraction pattern created with CADEM. This simulation is displayed in blue. A fit of the data with GenL is shown in red. The corresponding strain profile, i.e., the out-of-plane lattice parameter $c$ as a function of the number of unit cells counting from the substrate interface, is displayed as an inset.
  • Figure 4: Flow chart of the different modules of the program. Corresponding functions/folders in GenL are displayed in the bottom of the respective boxes.
  • Figure 5: Flow chart of the GenL GUI. Blue boxes correspond to different tabs, white boxes represent processes in the tabs. There are two possible paths using the program: either first uploading data, simulating a diffraction pattern, and fitting the data (yellow path), or only simulating a diffraction pattern based on the choice of input parameters (pink path).
  • ...and 4 more figures