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.