Skip to content

ScyPyna/NPG_representation_learning

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

15 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Angle recognition

Master's thesis project - Condensed matter physics problems and deep learning solutions

Description

The main idea lies in leveraging deep learning techniques to recognize the shift angles between layers of Van der Waals heterostructures. In our specific case, the material in question is Nanoporous Graphene (NPG). Scanning Tunneling Microscopy (STM) is employed for imaging the graphene layers, thus, enabling the detection of twisted bilayer and multilayer domains. On the simulation side, an analytic model is adopted to shed light on the number of misoriented layers, and their weak interaction: for each layer we can write an accurate analytical form that can describe the in-plane density.

Getting Started

Step 1: Physical Model and Image Simulation

The first step directly concerns the physics of the problem: the analytical model suggests that the in-plane electronic density of a graphene layer is given by

In plane density equation

while the full three-dimensional electronic density is modeled as

Tridimensional density equation

The first notebook, npg_stm_images.ipynb, is used to simulate STM-like images for a tuple of randomly generated twist angles, which depend on the number of layer: one acquired in Constant Current Mode (CCM-direct lattice), its corresponding image in reciprocal space (CCM-reciprocal), and one acquired in Constant Height Mode (CHM-direct).

Step 2: Dataset Generation

Now that we have all the functions needed to generate a set of images for a single tuple of angles, we need to create a sufficient number of such tuples to build a dataset suitable for training a neural network.

The generate_dataset.py script is designed to be adaptive, with all key variables defined via argument parsing to accommodate different generation environments. In my case, I had access to a CPU-based SLURM cluster, which allowed me to parallelize the generation process according to the number of jobs I could submit.

In parallel with the image generation, a metadata file is created to associate each image set with its corresponding angle tuple and identifier. Everything is then packaged into a single .HDF5 file.

Second step: CNN classifier

  • How/where to download your program
  • Any modifications needed to be made to files/folders

Authors

Contributors names and contact info

MSc Giuseppina Pia Varano @GiusyVarano

Version History

License

This project is licensed under the [NAME HERE] License - see the LICENSE.md file for details

Acknowledgments

Inspiration, code snippets, etc.