Projects
I have more ideas than time, and am happy to share! If you are interested in these projects, email me and we'll talk about it. If you have a project idea of your own, we can talk about that, too.
Continuation Methods for Optimization on Surrogates
rbf tools
Surrogate methods for global optimization of expensive functions alternately sample the expensive function, update a model (a surrogate to the expensive function), and use the model to determine where to sample next. This last step frequently involves an inner global optimization problem that may be somewhat expensive in its own right. In this project, we propose to use a parameter continuation approach to solve this global optimization on the surrogate through a sequence of optimizations on smoother and simpler surrogates.
You should ideally have a course in numerical computing to take on this project.
Preconditioning Radial Basis Functions with Clustered Centers
rbf
Radial basis function interpolation is a standard method of interpolating data in more than one space dimension. It has many attractive features, but the problem can become unstable when posed in the normal basis, particularly for very smooth basis functions or when the basis function centers are clustered. Recently-developed methods address the former case, but the latter is more of a concern when RBF interpolants are used for optimization, as is the case in some of my projects. I have an idea for a formally equivalent method that gets around this stability issue by a preconditioning strategy, and would like help implementing it.
You should have a course in numerical computing and some mathematical maturity to take on this project.
Pre-corrected FFT Kernel Evaluations
rbf tools
In low-dimensional spaces, matrix-vector multiplications can be efficiently carried out with the aid of a grid of inducing points and some fast Fourier transforms. In the Gaussian process literature, the structured kernel interpolation approach (SKI) uses a simple interpolation mapping to go back and forth between a regular grid of inducing points and a scattered set of data points. However, in the older integral equations literature there is a more accurate method called the pre-corrected FFT approach that combines something like SKI with a sparse correction matrix. In this project, we would implement the pre-corrected FFT method and compare it to SKI for data problems. If time permits, we might try an extension to higher-dimensional spaces that I have been thinking about!
You should ideally have a course in numerical computing (a machine learning course is probably fine) and some mathematical maturity to take on this project.
Evans Functions and Nonlinear Eigenvalue Problems
physics eigen
The Evans function is a Wronskian-type construction that plays a role similar to the characteristic polynomial in the unbounded-domain spectral problems that arise in the analysis of 1D solitary wave stability. This construction has been used computationally to good effect for some problems; however, some preliminary results (and analogy to more conventional eigenvalue problems) suggests that this should be less numerically stable than an alternate method based on a nonlinear eigenvalue computation. I have coded variants of this before, and now have some nice theory to back up my favored algorithm. But I would love to have help in doing a systematic comparison between my favored algorithm and methods based on the Evans function. Ideally, I would also love to have a numerical error analysis of both methods, too.
You should have a course in differential equations and a course in linear algebra to tackle this project, and ideally a course in analysis and a course in numerics.
Mesh-free Solvers for Anisotropic Diffusion
phyics tools
Transport of charged particles that constitute a plasma is sometimes modeled using a simple diffusion equation (a Laplace-Poisson problem) with highly variable and anisotropic coefficients. The strong anisotropy provides some unique challenges for numerical solvers. In this project, we will explore so-called mesh-free solvers for diffusion problems, and try out an idea that we have been playing with for adapting the methods to the highly anisotropic case.
For this project, you should probably have seen a diffusion equation somewhere (in a PDEs course, a physics course, an engineering course, etc). You should ideally also have a course in numerical methods or computational physics.
Julia Metaprogramming for Small Sparse Matrix
tools
I have worked on several little tools for optimizing the evaluation of matrix expressions using a simple MATLAB-like language. These include a source-to-source translator called Matexpr that compiles C/C++ programs augmented with simple fixed-size expressions into ordinary C++, and a system embedded in one of my finite element code that applies common transformations appropriate for sparse matrices and identifies common subexpressions that can be memoized. These days, I program in Julia more than in C++; but I still have some of the same challenges! I would like to write Julia macro versions of these tools and extend them with annotations of structural features that can be used for optimized code generation.
To work on this project, you should have some knowledge of compilers or of metaprogramming (in Julia or in a Lisp-family language) and some familiarity with linear algebra.