Chemical engineering Ph.D., PPG Fellow, polymer physicist, and computational modeler.
Projects
CV | Resume
Using gradient-boosted decision trees and SHAP values to determine the effect of monomer sequence on the phase behavior of sequence-defined charged polymers.
Developed theory to investigate the effects of a dynamic pH environment on the phase stability of polyzwitterion-polyelectrolyte complex coacervates. Validated earlier hypothesis on the switching between charge-dipole and dipole-dipole electrostatic interactions as the determining factor for coacervate stability.
Applied convolutional neural networks on volumetric data to predict adsorption properties in nanoporous materials. Published in Journal of Materials Chemistry A. I developed the pipelines and learning framework. I also found that simple geometric descriptors cannot reliably predict adsorption properties and that more rich data is needed.
The Monte Carlo method is a straightforward and useful technique when analytical solutions are nonexistent or difficult to compute. Below are two particularly important cases for the physical sciences. You can find more examples, implemented in Rust, in this repository. I find implementing these examples to be helpful when learning a new language or numerical computing beginners as they cover the basics of arithmetic, looping, (pseudo)random number generators, slicing/indexing, etc.
4 million element 2D array, 1 billion steps, 6 seconds, in Rust. Employed integer calculation and numerical tricks for improved computational efficiency. The Ising model is important to a variety of scientific fields, namely for the study of spin glasses in statistical mechanics.
Initial lattice | Final lattice |
---|---|
There is no solution for determining the exact percolation threshold limit, the fraction of open sites to closed sites that are required for one cluster to be connected to opposite ends (top to bottom, left to right) of a lattice. One can use the Monte Carlo method to randomly open lattice sites until percolation occurs. Running many trials and with a large enough lattice should warrant an estimated percolation threshold limit of around 0.593.
Below, black squares represent closed sites, blue for open sites, and green for the percolated cluster.
Simple Python script for solving the Cahn-Hilliard equation using the Forward Euler method. Spinodal decomposition occurs in thermodynamically unstable mixtures, with the mixture spontaneously decomposing into two phases. In the case of unequal mixtures (e.g. 70/30 mixture on the right), Ostwald ripening occurs where droplets of the lesser phase coalesce into progressively larger droplets. Eventually, both scenarios (50/50 and 70/30 mixtures) should undergo macrophase separation into two bulk phases.
50/50 mixture | 70/30 mixture |
---|---|
Molecular dynamics simulations of protein-ligand binding, biomolecules, heterogeneous systems, and polymer systems.
(Nearly) Pure Python script to automate some of the tedious work of a Teaching Assistant for ChE Senior Lab at UMass Amherst. Automatically handles the peer feedback forms: anonymizing, aggregating based on presenter, and then distributing via email. Saved 8 hours over the course of the semester and allowed me to focus on the important things. Only requires pandas and openpyxl.