Simulating Atomic Force Microscope Imagery

Summer 2020 (ongoing). Using Python, MATLAB, COMSOL Multiphysics, FEMM, and private finite-element modelling software

In the Grutter lab at McGill University, we focus on single-electron charging of quantum dots (QD), which are nano-structures engineered to have discrete energy levels. These are super interesting because their behaviour, while atomic-like, is much easier to study since they are so much bigger than an atom. Namely, we use an atomic force microscope to study the charging rings of the QD, caused by single electron tunnelling.

InAs quantum dot's discrete charging rings (Cockins, 2010).
Rudimentary sketch of the atomic force microscope.

Unfortunately, AFM imagery is notoriously finicky and tough to interpret due to its sensitivity to ambient electrostatic noise. Often times, a human eye is required to distinguish interesting sample activity from the noise. To solve this problem, I am going to train a neural network (NN) in image recognition to pick out the interesting behaviour itself. Not only could this help us catch details in the imagery we would otherwise miss, but if successfully incorporated into the AFM software, it could reduce the need for large, expensive images. To train the NN, I have designed and tested a variety of different finite-element models of the AFM tip-sample interaction.

The tip-sample model specifications that, after, many methodical iterations, I concluded was a reasonable approximation to the real thing.
Excerpt of the COMSOL model validation process. Investigating the dependence of the QD's voltage on the geometric set-up (distance to tip and tip width). This graph respects theoretical expectations.
2D model (FEMM) of tip-sample interaction, displaying potential distribution.
3D model (COMSOL Multiphysics) of tip-sample interaction, with potential distribution.

I am currently building a Python code to use these models' results in order to simulate AFM imagery of a quantum dot's charging rings, which I will use as training data. This code relies on 3 main modules: determining ring radius with model's results, determining ring width with the physics of the AFM tip, and determining the amplitude of frequency shift in the tip by calculating electromotive forces.

Comparing my simulated ring radii with experimental data.