Firedrake

Firedrake is a Python-based finite element package which automatically generates C kernels and uses PETSc to solve linear and nonlinear systems.

Whilst a PhD student and then postdoc at Imperial College London, I make several contributions to Firedrake and regularly attended the development meetings.

Major contributions

  • Enhancements to the automatic differentiation and adjoint modelling functionality.

  • Jupyter notebook on solving adjoint problems in Firedrake.

  • Documentation section on accessing the PETSc mesh representation underlying the one used in Firedrake.

Projects