Analyzing the Quantum Hall Effect in Apollonian Gaskets
Advisor: Dr. Noble
Internship Location: Remote - Imperial College London
Onsite Mentor: Mr. Adam Almakroudi, Imperial College London - Faculty of Natural Sciences
In this project, we use both theoretical and computational methods to explore how electrons move in a fractal structure called an Apollonian gasket when a magnetic field is applied. The Schrödinger equation, which describes quantum mechanics at small scales, is used to understand how the electron behaves in this unique environment. Unlike normal materials, fractals have a repeating pattern at different scales, which leads to unusual energy levels and electron motion. By studying this system, we examine how the quantum Hall effect—an important phenomenon in condensed matter physics—appears in fractal materials. Using a mathematical model and numerical simulations, we analyze how the structure influences the electron’s energy states and conductivity. This research helps us understand quantum mechanics in new and complex geometries and could have applications in future electronic and quantum computing technologies.
Project Blog
Week 0: Introduction
Welcome to my blog!
In this blog, I will be explaining each step of my senior project about electron behavior in fractal structures. My first few posts will focus on background concepts of quantum mechanics and fractal geometry, as well as the quantum Hall effect. After establishing these foundations, I will then explain the mathematical models I will be using and how they help us understand the behavior of electrons in fractal materials. After creating a theoretical model, I will move onto using numerical tools that will help me solve my mathematical model. Finally, I will analyze the significance of my findings and their potential applications in quantum technologies.
For now, I will explain some basic terms that will be used throughout the rest of my blog posts. The Schrödinger equation is a fundamental equation in quantum mechanics that describes how quantum states evolve over time. Fractals are self-similar geometric structures, meaning their patterns repeat at different scales. The Apollonian gasket is the specific fractal I will be analyzing, and it is obtained by repeatedly inscribing circles within the gaps created by the previous circles. The quantum Hall effect is a phenomenon where the electrical resistance in a material takes on only certain values rather than a continuous range, when subjected to a magnetic field.
Now I'll talk some of the intuition behind how an electron would move through an Apollonian gasket, but most of this will be covered later. Electrons are quantum particles, and therefore have both particle-like and wave-like behavior. This means that rather being at a definite point, an electron has a probability of being somewhere in space at a given time. When applying this to the gasket, we can define "sites" as places where the electron can be. For example, this can be at the center of each circle, though this is not a very nuanced representation. In this model, an electron doesn't just move smoothly through space, it hops from one site to another, and each hop represents a discrete shift in the state of the electron. This will be explained further in upcoming posts.
What is the significance of this project? While it is a stretch at this point, understanding electron behavior in fractal environments could lead to methods in designing new materials. Studying quantum mechanics in unusual settings could lead to a deeper understanding within the field. I hope that continuing this project will give me better insights into what applications my findings might have in the future.
Through this project, I aim to develop a deeper understanding of quantum mechanics in complex types of geometry. My next blog post will start going into detail about how problems similar to my research question are generally solved, including mathematical models like tight-binding approximations and their physical interpretations, and how I will be adjusting this to my own project.
Thanks for reading!
Week 1: Literature Review
Hello again! In this post, I will be doing some literature review, and I'll explain a few concepts relevant to fractals and quantum mechanics.
While many research papers I have found cover somewhat related topics, the field of applying quantum mechanics to fractals is not widely explored. I have however found one paper that is very similar to what I am working on, specifically analyzing the Apollonian network (Cardoso et al. 2008).
The Apollonian Network
The Apollonian network is defined as the graph formed by connecting the centers of touching circles in a two-dimensional Apollonian gasket. This graph has been analyzed quite frequently in mathematical contexts.
So what's going on in the paper I referenced above? The study investigates how electrons behave in the Apollonian network. It does this using the tight-binding model, which I mentioned at the end of my first blog post. This model assumes that electrons are located at specific sites and can simply hop between neighboring sites with certain probabilities. We can see that the definition of the Apollonian network is very convenient for the application of this model, as we just define the sites to be the nodes of the graph.
Tight-binding model
To apply the model, we need to define what is called a Hamiltonian. This is a mathematical operator that represents the total energy of the system. The general formula for the Hamiltonian explicitly contains the kinetic energy and potential energy, which makes this interpretation clear. However, the Hamiltonian for the tight-binding model is instead a matrix that represents electron hopping between nodes.
If there are N nodes in the Apollonian network, the Hamiltonian will be an NxN matrix, where element (i,j) represents the hop from node i to node j. In the case where i = j, the element is the on-site energy of node i. On-site energy represents the potential energy of an electron if it remains at a node without hopping to another one. It corresponds to the energy required to keep the electron at that site. The non-diagonal elements in the matrix are the hopping amplitudes, which represent the strength of interaction between two sites, but it is not exactly equal to the probability of hopping. An example of the matrix can be found in the paper linked below.
Next, we make assumptions about the values of on-site energies and hopping amplitudes. For the uniform model, all self-energies are equal to 0 and all hopping amplitudes are equal to 1.
Localization vs. Extended States
The study characterized electron states as either localized or extended using the participation ratio. This expression again can be found in the paper. This quantity measures how spread out an electron's wavefunction is. Localized states are confined to a small region of the network, meaning an electron remains trapped near a few specific nodes, and are characterized by high probability densities at certain locations. Extended states means that there is a significant probability of an electron being found at many different nodes.
How is this similar to my project?
I have just described the essential parts of the study for the Apollonian network, defined by the centers of the circles in an Apollonian gasket. My project will analyze the graph formed instead by the tangency points of neighboring circles. My next blog post will detail each step I am planning to go through and the parts I have already done, and will also be more specific about the geometry.
References
[1] A. L. Cardoso, R. F. S. Andrade, A. M. C. Souza, Localization properties of a tight-binding electronic model on the Apollonian network, arXiv:0809.4087 https://arxiv.org/pdf/0809.4087
[2] https://mathworld.wolfram.com/ApollonianNetwork.html
Week 2: Tight-binding model pt. 1
In this post, I will begin describing the theoretical details of my project, specifically using the tight-binding model combined with some geometry. For this post, I will only be talking about the geometry.
Converting the fractal into a graph
As I have explained in a previous post, the tight-binding model assumes that electrons jump from one point to another. Essentially, to use the tight-binding model, we need a mathematical framework that assumes that the electron is localized, or confined, at a specific site and that it can hop to neighboring sites. A good framework would be to define a graph, where the nodes of the graph represent the sites that the electron can occupy, and the edges represent possible hops between those sites. Here, the nodes will be defined as the tangency points of the fractal, and the edges will be the arcs between them.
We would also like to know how many nodes and edges the graph has, to get a sense of how many transitions can occur. For the purpose of this project, we will define the 0th iteration of the gasket to consist of 3 tangent circles. The 1st iteration involves inscribing one circle between them, and each subsequent iteration adds another layer of circles. If you search up a diagram of the Apollonian gasket, you will see an outer circle that encompasses everything. We are ignoring this outer circle and any circle between it and the 3 tangent circles. Now by inspection and some calculation, we find that the total number of nodes at iteration n is given by N(n) = (3+3^(n+1))/2. It also turns out that every single node has 4 edges connected to it, except for the 3 tangency points between the first 3 tangent circles. This uniformity will be very convenient later on.
In the next blog post, I will be introducing the Hamiltonian, which essentially will tell us the probability distribution of electron states throughout the graph, and exactly how likely an electron is able to move between two nodes. For now however, you might have noticed that I just said "probability distribution of electron states" rather than "electrons". For the next blog posts to be clear, I should clarify what this means. Electrons are fundamentally quantum particles, meaning their position and momentum cannot be known for certain. Instead, they are both described by a probability distribution. An electron state refers to the complete description of an electron, including its position, energy, and momentum. In later blogs, we will talk about localization, which is a measure of how likely an electron is to be found at a particular node or site, and the idea of probability distributions will be important.
Week 3: Tight-binding model pt. 2
Continuing from the previous post, I will be explaining the second part of the theoretical framework for my project. The key mathematical part of this framework is the Hamiltonian.
Tight-binding Hamiltonian
What is the Hamiltonian? In quantum mechanics, the Hamiltonian H is the operator that describes the total energy of a system. When applied to a wavefunction, it tells us how the state of a system evolves and its allowed energy levels. To define the Hamiltonian, we need to define basis states for our system. In the tight-binding model, the natural choice of basis states is the set of localized states at each node of the graph. Think of it like the basis vectors of a vector space. Each basis state i represents an electron completely confined to node i, with zero probability of being elsewhere. For our Apollonian system, we define the tight-binding Hamiltonian as a combination of onsite energy terms and hopping terms. To make it easier to understand, it turns out that we can write the Hamiltonian as a matrix. The dimensions of this matrix will be N x N, where N is the number of nodes, as stated in the previous post. The diagonal terms of this matrix we denote as E_i, which describes the energy of an electron when it is at site i. For simplicity, we often assume this is uniform across all sites. Every other element of the matrix is denoted by V_{ij}, which represents, but is not equal to, the probability of an electron to move from site i to site j. If two sites i and j are not immediately adjacent, then V_{ij} = 0. Notice that if we set E_i = 0 for all i and V_{ij} = 1 for all (i,j), then we simply get the adjacency matrix, which indicates whether pairs of vertices are adjacent or not.
Once we have the Hamiltonian matrix, we can find its eigenvalues and eigenvectors. According to Schrodinger's equation, H*\psi_n = E_n * \psi_n, where E_n are the energy eigenvalues, and \psi_n are the eigenstates, which describe how the electron's wavefunction is distributed across the graph. The eigenvectors of H will tell us how the electron is spread over the Apollonian network, and the eigenvalues describe the energy spectrum of the system.
Localization and Participation Ratio
How exactly do we get from the eigenvalues/eigenvectors of a matrix to finding how spread out an electron's wavefunction is? Formally, this is known as finding whether electrons are localized or delocalized. This is where we introduce the participation ratio. There are two formulas, one is normalized and one is not, but the difference is not too important. I will be using the normalized participation ratio, which can be found in the referenced paper. A low participation ratio means the electron is highly localized at a small number of sites, meaning it is more confined. A high participation ratio means the electron is delocalized over many sites, meaning it moves freely across the graph. We expect there to be a mix of localized and delocalized states depending on the energy level. In future blog posts, it will become more apparent with computer simulations how these distributions work.
In the next post, I'll talk about the algorithms used to create and then solve the Hamiltonian matrix in Python, and potentially some results from following calculations.
References
[1] A. L. Cardoso, R. F. S. Andrade, A. M. C. Souza, Localization properties of a tight-binding electronic model on the Apollonian network, arXiv:0809.4087 https://arxiv.org/pdf/0809.4087
Week 4: Implementing the tight-binding model
Welcome back to my blog! In the previous two posts, I explained the theoretical framework for finding the Hamiltonian of the Apollonian system, and ultimately how to find its localization properties. In this post, I will be talking about how the creation of the Hamiltonian matrix is implemented, as well as the algorithms behind solving the matrix for its eigenvalues and eigenvectors.
Another thing to note is that from here on out, I will be using the Sierpinski triangle instead of the Apollonian gasket, since the graph of the system I have described is very similar to the Sierpinski graph, and the geometry of the Apollonian circles would make things extremely difficult.
Implementing the Hamiltonian
So as a recap, we have an NxN matrix, where N is the number of nodes in our graph. To make our matrix, we just set the diagonal terms to some onsite energies that we decide. For the other elements, we just see whether two nodes are adjacent, and if they are, we decide some hopping amplitude formula between them. If they are not, we set the element to 0. For now, we will assume the uniform model, meaning that the onsite energies are all zero, and all hopping amplitudes are equal to 1. This just gives us the adjacency matrix. Sounds simple enough to do, so why do we need to write a computer program?
Well, we found before that N(n) = (3+3^(n+1))/2, making the matrix exponentially increase in size. At just n=5, we have a 123x123 matrix, and at n=7 we have a 1095x1095 matrix. Clearly, manually filling out these matrices would be tedious. Instead, I used two separate methods to implement the Hamiltonian and made sure they returned the same set of eigenvalues. This ensures that the matrices represent the system correctly in both cases.
The first method I borrowed from paper [1] (converting the MATLAB code to Python), and it is a recursive algorithm that creates the adjacency matrix for the Sierpinski triangle, but I will leave the details out of this post. The algorithm is difficult to explain without mathematical notation, and is difficult to understand with said notation. The main point is that this method is not flexible at all when it comes to varying the hopping parameters between any pair of nodes (it can only set elements of the matrix to 0 or 1).
Therefore, I made a second algorithm using the help of Networkx, a Python library for studying graphs and networks. Using this library, I was able to write a function that stored both the indices and the coordinates of each node. I was then able to set each element of the Hamiltonian to whatever I wanted.
Finally, I needed to make sure my algorithm was accurate. I set my program to use the uniform model (1 for adjacent nodes, 0 everywhere else), and calculated the eigenvalues for the matrix resulting from the paper's algorithm as well as mine. Naturally, the matrices themselves are different from each other due to different labeling, but since they returned the same set of eigenvalues, I concluded that my algorithm was accurate.
References
[1] Rajan, Bharati & Rajasingh, Indra & Stephen, Sudeep & Grigorious, Cyriac. (2011). Spectrum of Sierpiński Triangles Using MATLAB.
Week 5: Solving the tight-binding model
Welcome back to my blog! In the previous post I introduced an algorithm to create a Hamiltonian matrix in a clean and flexible way. In this post, I will be solving the Hamiltonian for the uniform model and visualizing the results.
np.linalg.eigh
In quantum mechanics, observables are generally assumed to be Hermitian, meaning that the matrix is the transpose of its complex conjugate. This is very clearly true in our case, and therefore we can use numpy's dedicated linalg.eigh function to compute the eigenvalues and eigenvectors of our Hamiltonian. This function is faster than linalg.eig since it takes advantage of the symmetry of the matrix.
Our Hamiltonian is an NxN matrix, where N = (3+3^(n+1))/2 and n is the iteration of the Sierpinski triangle, starting from n=0. I found that setting n=8 already takes far too long, so I did not analyze any iterations above 7.
Localization visualization
I have not actually given any sort of visualization in my blog yet, so here is where I will explain localization a little bet better.
From solving the Hamiltonian matrix (here I show the n=4 iteration), I got a set of eigenvalues, each of which corresponds to an eigenstate. Now, each eigenstate corresponds to a probability distribution for an electron within the entire graph. Such an eigenstate might look like this (brighter = higher probability of being at that node):
As it turns out, this eigenstate right here is the most localized, and it means what you might think it means (most focused):
And this is the least localized eigenstate (most spread out):
How did I figure out which states were most and least localized? I calculated the participation ratio for each eigenvalue (equation 3 in the referenced paper). A higher participation ratio indicates lower localization.
Finally, how do we determine the current state of the system overall? The general state is what is called a superposition of all the eigenstates. We simply add together a linear combination of all the eigenstates, and they will "overlap" with each other, creating the final probability distribution. How do we know what combination of eigenstates to use? Since I am not in a lab and we are not literally looking at anything, we can just choose arbitrary constant coefficients.
I will provide actual deeper analysis of my results in a later post. For the next two posts though, I will explain how we apply a magnetic field to the system and visualize the localization effects for that as well.
References
[1] Cardoso, A.L., Andrade, R.F.S., Souza, A.M.C. (2008). Localization properties of a tight-binding electronic model on the Apollonian network.
Week 6: Adding a magnetic field to the model
Welcome back to my blog! In the previous post I provided some visualizations for what the uniform model looks like physically. In this post, I will be adjusting the Hamiltonian to account for a newly added magnetic field.
Peierls Phase
A magnetic field produces a force on charged particles that are moving around. This force is always perpendicular to the direction of motion, and therefore does not change the speed of the particle. In classical mechanics, we can therefore consider this force to rotate the momentum vector by some angle \theta over some interval. Quantum mechanics adds more nuance to this logic, but we can then consider the magnetic force to twist the phase of the wavefunction by some angle \theta. Mathematically, this is described using a factor of e^{i*\theta}. To apply it to our Hamiltonian, we simply take each of our previous hopping parameters t, and multiply it by this factor. We also assume the magnetic field is uniform everywhere.
Now, we need to find \theta. It is given by this formula [1]:
, where q and hbar are known constants. Here, A is the vector potential, and it can be chosen freely such that the curl of A is equal to the magnetic field vector, though I will not be going into the details on why this works. Basically however, this formula gives a simple relation between the magnetic field and the path that the particle travels along.
I found that \theta was a very clean function of the coordinates of a given start node and a given end node. This was very convenient since my Python program saved the coordinates of each node in the graph. I was able to quickly adjust my code and solve for the eigenvalues of the Hamiltonian once again.
Visualization
Like in the last post, I will show the n=4 iteration of the graph. Here is the most localized eigenstate:
and here is the least localized eigenstate:
Once again, I do not have much formal analysis. However, one can see some clear differences between the probability distribution of this new system compared to the uniform model in the previous post. In the upcoming posts, I will most likely be examining some specific characteristics of both systems, and potentially more into localization effects.
References
[1] https://en.wikipedia.org/wiki/Peierls_substitution
Week 7: Analyzing Results pt. 1
Welcome back to my blog! So far, everything I've done has led up to finding the energy spectrum (the eigenvalues) of my system. Now, I will be using the energy spectrum to extract as much insight from my models as possible. In this post, I will be talking about the partition function.
Partition Function
One of the most powerful tools for connecting quantum energy levels to thermodynamics is the partition function. It allows us to calculate quantities like average energy, heat capacity, and more. In statistical mechanics, the partition function is defined as:
, where E_i are the energy eigenvalues, T is the temperature, and kB is Boltzmann's constant. This formula weighs each energy level according to how "thermally accessible" it is; low-energy states contribute more at low temperatures. In my model, I've scaled the temperature so that kB*T is expressed in units of hopping energy t. Recall that the elements of the Hamiltonian matrix are also in units of t, so I had to ensure the units matched. The probability of being in a particular microstate i is simply
Analysis
Once we have Z(T), we can compute the average energy, as well as the heat capacity. I will, however, be talking about these in the next blog post. For now, I will investigate the variation of Z(T) with respect to the iteration of the Sierpinski triangle, setting my temperature as a constant value.
In this graph, we see that the presence of a magnetic field gives the partition function slightly larger values than in the uniform model. Generally, this indicates that the nonuniform system has more thermally accessible states than the uniform model (essentially, more freedom). Now, an interesting result occurs when I consider how Z varies with magnetic field B in the nonuniform case. It turns out that the variation is extremely sensitive, so much so that it is difficult to determine a genuine relationship between the two. Essentially, depending on the number of data points you choose to graph, you might include some important information, but lose a lot of other details. Unfortunately, due to shortage of time, I have not determined the proper method of analyzing this data. In the meantime, here is a graph that may or may not have any meaning at all:
In the next post, I will be applying the partition function to calculate more practical quantities.