TwoDG.jl: A Parallel Finite Element (Discontinuous Galerkin) PDE Solver

Compressible flow through a channel with a bump computed with 2D Euler equations. Mach number is shown. Computed using TwoDG.jl

TwoDG.jl is a high-performance Julia framework for solving complex 2D partial differential equations using advanced finite element methods (Continuous Galerkin, Discontinuous Galerkin, and Hybridizable Discontinuous Galerkin). I wrote TwoDG.jl from scratch as part of the MIT 16.930: Advanced Topics in Numerical Methods for Partial Differential Equations class with tremendous help from Professor Jaime Peraire. It enables simulation of diverse physical phenomena from wave propagation and shock waves in compressible flows to convection-diffusion transport problems, all with arbitrary polynomial order accuracy and sophisticated mesh support including NACA airfoils and custom geometries. The Hybridizable Discontinuous Galerkin (HDG) solver is also parallelized, allowing for huge problems to be solved easily using this package.

View Github

Quantum Poker

Quantum Poker Gameplay
Quantum poker gameplay running on IonQ's quantum computer!

This was created during iQuHACK 2021, MIT’s quantum computing hackathon. Scientists said quantum computing would revolutionize optimization, machine learning, and cryptography. We went a different route and built quantum poker instead. Leveraging IonQ’s quantum computers, we designed a casino game where the cards are the quantum gates themselves. Some call it a waste of quantum resources; we call it the only logical application where superposition actually improves the experience. You’re welcome, humanity.

View Github

2D Brownian Motion

Brownian Motion Many Particles
Many-particle, event-based simulation
Brownian Motion Single Particle
Brownian motion

I built a 2D Brownian Motion simulator by modeling the individual particle collision within a volume during my undergraduate days as a part of a computing project. In the spirit of trying to make the simulation more efficient, a binary heap is implemented. Turns out it might not have been as fast as np.array after all.

View Github

Imperial Visualisations

Interactive physics visualization demo

I built a couple of interactive visualization webpages during my undergraduate times at Imperial College London. These visualizations were created as part of the StudentShapers Teaching and Learning Strategy. This meant that the visualizations were used by lecturers in undergraduate lectures to enhance pedagogy and clarify potentially confusing concepts related to physics and mathematics.

View Site