Skip to content

yux1991/PyRHEED

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

PyRHEED

Maintenance GitHub license Ask Me Anything !

Table of Content

  1. Description
  2. Requirements
  3. Usage
  4. Modules
  5. Contact

Description

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.7.4 (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:

  1. 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.
  2. Batch fit RHEED line profiles with pre-defined peak functions (including Gaussian function and Voigt function) and save the formatted results.
  3. Visualize the fit results and generate a report.
  4. 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..
  5. 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.
  6. 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..

Usage

  1. Prerequisite

    Make sure you have the Python 3.7.4 (64 bit) installed and added to the system PATH.

  2. Installation

    git clone https://github.com/yux1991/PyRHEED.git
    cd PyRHEED
    python setup.py install
    
  3. Usage

    cd src
    python main.py
    
  4. Load data

    The RHEED data are often images. Both raw image and compressed image files could be directly opened through the open file dialog. The image is automatically converted to a gray scale image. Note that JPEG only supports up to 8-bit RGB data. Please use other image formats if a higher dynamic range is desiered.

  5. Analysis

    Depending on the purpose, several kinds of data analysis can be done with this application. The RHEED pattern simulation, structure factor simulation are modules that does not depend on the experimental data.

  6. Run Scenario

    Load the predefined scenario or create a customized one, then run the scenario to automatically generate the results

Modules

  • 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

Demonstrations

  1. Extract line profiles:

line

  1. Extract features on a sphere:

tilt

  1. Construct azimuthal RHEED:

Azimuth

  1. Vertical scan:

Vertical

  1. 3D surface view:

surface

  1. Regression analysis:

fit

  1. Interactive data visualization:

report

  1. Kikuchi line simulation:

kikuchi

  1. Domain boundary statistics:

simulation

Contact

Please contact Yu Xiang at yux1991@gmail.com if you have any questions or suggestions.

About

RHEED analysis and simulation

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages