top of page

Some research codes

Here are some recent codes I've worked on.

Multiscale coastal ocean mesh generation

I developed OceanMesh2D, a software to automatically build unstructured meshes for regional and global coastal ocean domains. Our primary focus is to enable users to quickly build highly multiscale meshes that are used with FEM models like ADCIRC, SCHISM, and TELEMAC to predict wind- and wave- driven coastal flooding. The meshing software supports end-to-end workflows (e.g., from DEMS and unsimplified ESRI Shapefiles to production-ready meshes). Workflows to build these meshes are embedded in short scripts within the MATLAB programming language.

You can find more information and download my mesh generation codes here

A Python version of this code is being developed here oceanmesh

Full waveform inversion with finite elements

In this research, we solve the forward scalar wave equation with finite element methods on unstructured, variably resolved meshes. We use the discrete adjoint method to invert for material properties such as S- and P-wavespeeds.  The development of these codes and the entire inversion process use the  Firedrake automated finite element package. 

spyro: Acoustic wave modeling in Firedrake

Mesh generation for seismology

SeismicMesh is a Python package for simplex mesh generation in two or three dimensions. As an implementation of DistMesh, it produces high-geometric quality meshes at the expense of speed. For increased efficiency, the core package is written in C++, works in parallel, and uses the Computational Geometry Algorithms Library. SeismicMesh can also produce mesh-density functions from seismological data to be used in the mesh generator.

SeismicMesh

bottom of page