I am currently a Postdoctoral Research Associate at the University of Cambridge, working on the ASiMoV project, working with Garth Wells and Chris Richardson. I am also a College Postdoctoral Associate at Jesus College.
Prior to this, I was a PhD student at University College London (UCL) where I worked on boundary element methods under the supervision of Timo Betcke and Erik Burman.
Finite and boundary element methods
My mathematical research has focussed on finite element methods (FEM) and boundary element methods (BEM). My work has included both the theoretical analysis of these methods, and the implementation of these methods in open-source software projects.
Much of my work on boundary element methods is written up in my PhD thesis, Efficient computation and applications of the Calderón projector (2020). Much of my PhD work is written up in a more beginner-friendly way in this series of blog posts.
During my postdoc in Cambridge, I began working on FEniCSx, the new experimental version of the FEniCS finite element method library. FEniCS is a C++ finite element library with a Python user interface.
My contributions to FEniCSx include the implementation of a degree-of-freedom (DOF) permuter that ensures that the positions of DOFs of higher order spaces are consistent on edges and faces of elements. This permuter removes the need to re-order the data in the mesh that the user inputs, and allows for a consistent implementation on triangular, tetrahedral, quadrilateral and hexahedral cells.
I am one of the orgainsers of the FEniCS 2020 conference.
During my PhD, I became heavily involved in developing Bempp, an open-source boundary element method library.
Bempp was primarily written in Python with a fast C++ computational core, although in the latest version C++ has been replaced by opencl. Documentation can be found at bempp.com.
My contributions to the software include the implementation of dual function spaces necessary for the construction of operator preconditioners, and an implementation of the fast multiple method.
Maxwell wave scattering
During my PhD, I did much work on boundary element methods for Maxwell wave scattering problems. In Bempp, I implemented Buffa–Christiansen dual function spaces: these spaces are required when multiplying two operators together which is necessary when applying Calderón preconditioning to the electric field integral equation (EFIE).
These spaces are also useful when stably discretising the magnetic (MFIE) and combined (CFIE) field integral equations. This work is discussed in more detail in Software frameworks for integral equations in electromagnetic scattering based on Calderón identities (2017).
Weak imposition of boundary conditions
During my PhD, I worked on a method of weakly imposing boundary conditions when using the boundary element method. This method weakly imposes the boundary conditions by adding a penalty term to the full Calderón system, inspired by Nitsche's method for finite element methods.
Due to the approximate double of the number of unknowns, this method is not competitive for pure Dirichlet and Neumann problems, but for more complex boundary conditions—such as Robin boundary conditions and mixed boundary conditions—it provides a much simpler formulation that is easier to implement.
We analysed this method for Laplace Dirichlet, Neumann and Robin problems in Boundary element methods with weakly imposed boundary conditions (2019), and extended this to Signorini conditions in Weak imposition of Signorini boundary conditions on the boundary element method (2020) and Helmholtz problems in Boundary element methods for Helmholtz problems with weakly imposed boundary conditions (2020).
Early in my PhD, I worked on the coupling of the finite and boundary element methods. For transmission problems involving wave travelling through a large or infinite medium and through a small inhomogeneous object, the boundary element method is well suited to solving the problem outside the object while the finite element method is better suited for solving the problem inside the object. Using the two methods for the two parts of the problem gives rise to FEM-BEM coupling.
A full list of my papers, conference talks, awards and nominations can be found below.
Research Associate, Department of Engineering, Cambridge
PhD student, Department of Mathematics, UCL
Awards & nominations
Weakly imposing boundary conditions on the boundary element method using a penalty method (Mafelap 2019)
In 2018-19, I taught the Python part of taught MATH0011: Mathematical Methods 2. Notes for this course can be found at mscroggs.co.uk/0011.
Solving integral equations for electromagnetic scattering using Bempp (poster) (PDESoft 2018)
Weak imposition of boundary conditions using a penalty method (IABEM 2018)
Weak imposition of boundary conditions using a penalty method (Söllerhaus Workshop on Fast Boundary Element Methods in Industrial Applications)
Awards & nominations
Solving integral equations for electromagnetic scattering using BEM++ (Strathclyde 27th Biennial Numerical Analysis Conference)
Solving integral equations for electromagnetic scattering using BEM++ (Söllerhaus Workshop on Fast Boundary Element Methods in Industrial Applications)
Awards & nominations
Solving Maxwell problems with BEM++ (Joint DMV and GAMM Annual Meeting)
Coupling the finite and boundary element methods with FEniCS and BEM++ (BAMC 2016)
FEM-BEM coupling, Maxwell's equations, and BEM++ (FEniCS'16)
Coupling the finite and boundary element methods with FEniCS and BEM++ (PDESoft 2016)
In 2015-16 and 2016-17, I taught MATH6103: Differential and Integral Calculus at UCL. You can find my notes for this course at mscroggs.co.uk/6103.
Solving FEM/BEM coupled problems with FEniCS and BEM++ (Strathclyde 26th Biennial Numerical Analysis Conference)