This project is used for reflection high energy electron diffraction (RHEED) data analysis and theoretical simulation. RHEED is an electron diffraction technique using a relatively high energy (5~30 keV) beam of electrons with a grazing incident angle. It is very surface sensitive, with a penetration depth of only a few nanometers. Since the scattering factor of electrons is about four orders magnetude higher than that of X-ray, RHEED is especially suitable to characterize 2D materials such as graphene which can hardly be detected using XRD. Another merit of RHEED is that the spot size is very large (~1 cm), which enables it to measure the wafer-scale average of the material’s properties including the lattice constants, grain orientation distribution and even defect density.

It is written and tested with Python 3.6.6 (64 bit). The GUI is created using PyQt5. The simulate_RHEED module utilized the pymatgen library to read CIF files and create structures. Major features include:

  • RHEED raw image process using rawpy and intensity profile extraction which is accelerated by numpy vecterization. Construction of 2D reciprocal space map and pole figure is automated. The 3D data could be saved as *.vtp format, which could be processed by paraview.
  • Batch fit RHEED line profiles with pre-defined peak functions (including Gaussian function and Voigt function) and save the formatted results.
  • Visualize the fit results and generate a report.
  • Simulate the statistical factor from a Markov process, assuming a certain distribution of step density on a hexagonal surface. More details are disscussed in the paper by Spadacini et al. (DOI: 10.1016/0039-6028(83)90492-2).
  • Read the crystal structure from a CIF file and create a customized structure by stacking different crystalline materials together. Calculate the diffraction pattern from this structure based on the kinematic diffraction theory.
  • Simulate the reciprocal 3D structure from a given structure. The atomic model can be created within this program. It is especially designed to simulate the diffraction from a 2D translational antiphase domain model, see details in the paper by Lu et al. (DOI: 10.1016/0039-6028(81)90541-0).


  • broadening: batch automatic fit of the RHEED line profiles
  • browser: browse files inside the working directory
  • canvas: display images, draw shapes and take user input
  • configuration: change default configurations
  • cursor: display cursor-related information
  • generate_report: generate a report that visualize the fitting results
  • graph_3D_surface: visualize the 3D surface in reciprocal space
  • kikuchi: simulate the Kikuchi pattern from a non-reconstructed crystal surface
  • main: the main module
  • manual_fit: manually fit the RHEED line profile to initialize the fitting parameters
  • my_widgets: customized widgets
  • plot_chart: a customized widget based on QChart, for visualization of the fitting results
  • preference: modify default settings
  • process: the backend processes
  • process_monitor: monitor the consumption of memory (not complete)
  • profile_chart: a customized widget based on QChart, for visualization of the line scan profiles
  • properties: control the dynamic parameters of the program
  • reciprocal_space_mapping: construct the 2D/3D reciprocal space map and the pole figure
  • scenario: select or customize a scenario, then run the scenario
  • simulate_RHEED: simulate the diffraction pattern from a given atomic structure. This module is also capable of generating structures containing translational antiphase domain (APD) model and calculating the corresponding diffraction pattern.
  • statistical_factor: calculate the statistical factor assuming a Markov process
  • test: the test module
  • translational_antiphase_domain: calculate the 1D and 2D profile from a translational APD model
  • window: the main window of the application
  • write_scenario: write the default scenario


  1. Extract line profiles:


  1. Extract features on a sphere:


  1. Construct azimuthal RHEED:


  1. Vertical scan:


  1. 3D surface view:


  1. Regression analysis:


  1. Interactive data visualization:


  1. Kikuchi line simulation:


  1. Domain boundary statistics:


Yu Xiang
Yu Xiang
Applied Scientist

PhD in Physics, Applied Scientist.