top of page

Ongoing Work 

Multiscale Coastal Ocean Mesh Generation

I led the development of OceanMesh2D, a software library to semi-automatically build unstructured meshes for numerical simulation of regional and global coastal ocean domains. The primary focus is to enable users to quickly build highly multiscale meshes that are used with FEM models like ADCIRC, SCHISM, MIKE and TELEMAC to predict wind- and wave- driven coastal flooding. The meshing software supports end-to-end workflows (e.g., from DEMS and (un)simplified ESRI Shapefiles to numerical simulation-ready models). Workflows to build these models are embedded in short scripts within the MATLAB programming language and a number of MATLAB-based utilities are provided for developing ADCIRC models.

A Python version of this code is being developed here oceanmesh and as a plugin in community version of SMS.

Meshless Methods for Fluid Flows

Ongoing work with meshless methods for solving Fully Nonlinear Potential Flow (FNPF) problems focuses on leveraging semi-analytical solutions, including harmonic polynomials in Trefftz methods, to handle complex free-surface boundary conditions efficiently. By avoiding fixed spatial discretization and using scattered points, these approaches offer flexibility in domains with evolving geometries, such as breaking waves or moving bodies. Trefftz methods inherently satisfy the governing Laplace equation, enabling accurate representation of velocity potentials and their derivatives while reducing computational overhead. This combination enhances the modeling of free-surface evolution and wave-structure interactions, advancing applications in coastal and ocean engineering.

Past Work

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.
 

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​ 

bottom of page