My Projects

My Projects

Below here I will list a number of projects that I have undertaken over the last few years. Firstly I will list the number of academic projects I have undertaken during my undergraduate degree and now in my masters. This ranges from predicting modeling of an Earth-Jupiter-Sun system to lattice simulation to find an optimal lattice constant. Then after that I will list a few personal projects that I have completed, and maybe a few that are still a work in progress.

Gravitational Interactions in the Earth-Jupiter-Sun System

Description: This project investigated how the gravitational influence of Jupiter affects Earth's orbit around the Sun. Using Python and numerical integration methods (Runge-Kutta and SciPy's odeint), we modeled two separate two-body systems before combining them into a full three-body simulation. By varying initial velocities and mass parameters, we examined how Jupiter's gravitational pull perturbs Earth's orbital shape, eccentricity, and semi-major axis over long timescales. The resulting plots and animations visualize orbital precession and instability, demonstrating the challenges of modeling non-linear celestial systems where no analytic solution exists.

Find here the required links to the report, the brief, and the code.

EJS Model GIF
Black_Hole_Populations_VS_Accretion_Regions

Mapping JWST Black Hole Data To Predicted Optimal Growth Conditions

Description: This project explores how the first supermassive black holes observed by the James Webb Space Telescope could have formed so early in the universe. Using analytical models and Python simulations, we studied how black hole seeds grow under different physical conditions, focusing on factors like gas density, seed mass, and angular momentum. By combining these effects, we identified regions in parameter space where growth becomes highly efficient and compared them with current JWST detections.

The simulations, created with NumPy, SciPy, and Matplotlib, reproduced the theoretical conditions for optimal accretion and tracked black hole growth over time. We then mapped real JWST black hole data onto these models, showing which observations fit within the predicted high-efficiency growth zone and which appear to exceed current theoretical limits.

Find here the required links to the report, and the code.

Optimizing Lattice Constants for FCC Metals using Lennard-Jones Potentials

Description: In this project I reproduced results from Kanhaiya et al. (2021), which derived Lennard-Jones parameters capable of describing elastic and structural properties for a range of face-centred cubic metals. Using Python, I simulated ten FCC metals and iron to determine their equilibrium lattice constants by minimizing the total potential energy per atom.

I first verified the model on Argon using the standard 12-6 Lennard-Jones potential, confirming that the minimization correctly predicts the equilibrium spacing of a simple system. The main part of the project then extended this to the 9-6 potential, which better approximates metallic bonding. I generated periodic FCC supercells, calculated pairwise atomic interactions within a cutoff radius, and applied the Nelder-Mead optimization algorithm to locate the minimum-energy lattice constant for each element.

The calculated values were compared to experimental lattice parameters, showing good agreement and validating the ability of the Lennard-Jones potential to capture key trends in metallic bonding despite its simplicity. This work provided practical insight into how interatomic potentials can be used to model and understand bulk metallic systems at the atomistic level.

Find the full code and results here in my GitHub Repository.

Predicting Potential Energies for Water Molecules using Neural Networks

Description: This project explores how a neural network can learn to predict the potential energy of water molecules directly from their atomic coordinates. Using TensorFlow and Keras, the model was trained to map molecular geometry to total energy, bridging quantum chemistry and modern machine learning techniques.

The dataset included rotated and unrotated configurations of H₂O, with total energies provided in .ENER files. After preprocessing and feature scaling, a feed-forward neural network with two hidden layers of 64 neurons (ReLU activation) was trained using the Adam optimizer and mean squared error loss. Early stopping was implemented to ensure stable convergence and prevent overfitting.

The trained model achieved low prediction error and smooth validation performance, demonstrating how data-driven methods can replicate potential energy surfaces without explicit quantum mechanical computation. This work highlights the intersection between computational physics and machine learning in molecular modeling.

Find the full report here, and the code is available in this GitHub Repository.

Machine Learning Energy Graph