Dr Patrick Farrell


Patrick Farrell

In the following table, contact information relevant to the page. The first column is for visual reference only. Data is in the right column.

Job title: Associate Professorship
Division: Mathematical Institute
Organisation: University of Oxford
Tags: Fellowship: Early Career, Researcher, University of Oxford
Related theme: Energy Engineering Healthcare technologies ICT Manufacturing the future Mathematical sciences Physical Sciences


I am the lead-author of the dolfin-adjoint software for automatically deriving and solving adjoint equations of finite element discretisations. In a prize-winning PhD, I solved a problem of computational geometry that had been open in the literature for 20 years. I am the 2015 winner of the Wilkinson Prize for numerical software.

My Fellowship

Optimisation problems constrained by partial differential equations are ubiquitous in engineering. In this project, I am developing new software package for the solution of such optimisation problems. The software will be designed from the ground up to exploit powerful high-performance computers.

I have consulted widely for industry, including on the optimisation of tidal turbine arrays in turbulent flows off the north coast of Scotland for MeyGen Ltd., and for Babcock & Wilcox Nuclear Energy, Inc. on designing nuclear reactors to produce medical isotopes. My research has been adopted by OpenFOAM, a major CFD package, and WIMS, a commercial reactor physics code.

An important class of optimisation problems is where the constraint is given by the laws of physics, such as the physical laws for fluids (in the wing case) and structures (in the bridge case). These problems can be very hard, and usually require massive supercomputers to solve them. A significant amount of mathematical research has gone into investigating techniques for solving them.

Engineers currently face a major practical difficulty when trying to solve new kinds of such optimisation problems. The software required to solve these is very intricate, and often takes months or years to develop. This poses a very formidable barrier. This matters a lot, because these problems appear everywhere in engineering, and if we could solve them then we could design many things in a better way.

I propose to do this by developing a software framework to generate optimisation codes, rather than have engineers develop them by hand. While the optimisation software is very complex, it has a compact mathematical structure: I propose to generate the optimisation software from a simple high-level description of this mathematical structure. By generating the necessary software, engineers can spend their time on using it to solve real problems. This framework will provide engineers with the necessary optimisaton software in days or weeks instead of months or years.