Software
A large part of my work involves the creation of new software tools to continue the development of methods for inference, prediction and optimization of complex systems. I delineate some of these software projects that I am involved in below.
Tutorials
operator_learning_intro
operator_learning_intro is a tutorial repository introducing neural operators and operator learning for scientific machine learning. It collects approachable examples and teaching materials for learning the basic ideas behind data-driven approximation of maps between function spaces.
This tutorial is a bit of a stub now, I hope to expand it substantially soon
Research Software
hippylib
hIPPYlib is a Python library for large-scale deterministic and Bayesian inverse problems governed by partial differential equations. It provides scalable adjoint-based algorithms, Hessian-based methods, and uncertainty quantification tools built on finite element discretizations and parallel linear algebra.
hippyflow
hIPPYflow provides tools for constructing dimension-reduced neural network surrogates for parametric PDE maps. It automates model-based input and output dimension reduction, including active subspaces, Karhunen-Loeve expansions, and proper orthogonal decomposition, for use in efficient surrogate modeling.
soupy
SOUPy is a Python package for stochastic PDE-constrained optimization under high-dimensional uncertainty. It supports risk measures such as mean, variance, and superquantile/CVaR, along with chance constraints, state constraints, and parallel derivative-based optimization algorithms.
hessianaveraging
hessianaveraging implements Hessian-averaged Newton methods for stochastic and finite-sum optimization in JAX. The code accompanies our work on Hessian averaging and adaptive gradient sampling for efficient second-order optimization.
Hobby Projects
alphaflow
AlphaFlow is a computational art and PDE visualization project for word-shaped cutout domains. It builds letter-void meshes with Gmsh, solves flow, elasticity, and Helmholtz examples with FEniCSx, and renders high-resolution geometry-aware visualizations with PyVista.
MGPAncestry
MGPAncestry builds advisor-ancestry graphs from the Mathematics Genealogy Project. It scrapes and caches advisor lineages, exports reusable graph data, and renders DOT, PNG, PDF, or SVG ancestry diagrams with highlighted paths and shared ancestors.