Development of scientific software involves tradeoffs between ease of use,
generality, and performance. We describe the design of a general hyperbolic PDE
solver that can be operated with the convenience of MATLAB yet achieves
efficiency near that of hand-coded Fortran and scales to the largest
supercomputers. This is achieved by using Python for most of the code while
employing automatically-wrapped Fortran kernels for computationally intensive
routines, and using Python bindings to interface with a parallel computing
library and other numerical packages.
The use of multigrid and related preconditioners with the finite element
method is often limited by the difficulty of applying the algorithm effectively
to a problem, especially when the domain has a complex shape or adaptive
refinement. We introduce a simplification of a general topologically-motivated
mesh coarsening algorithm for use in creating hierarchies of meshes for
geometric unstructured multigrid methods. The connections between the
guarantees of this technique and the quality criteria necessary for multigrid
methods for non-quasi-uniform problems are noted.
The Fast Multipole Method (FMM) is well known to possess a bottleneck arising
from decreasing workload on higher levels of the FMM tree [Greengard and Gropp,
Comp. Math. Appl., 20(7), 1990]. We show that this potential bottleneck can be
eliminated by overlapping multipole and local expansion computations with
direct kernel evaluations on the finest level grid.
We present simulations of biomolecular electrostatics at a scale not reached
before, thanks to both algorithmic and hardware acceleration. The algorithmic
acceleration is achieved with the fast multipole method (FMM) in conjunction
with a boundary element method (BEM) formulation of the continuum electrostatic
model.
We have developed a parallel algorithm for radial basis function (RBF)
interpolation that exhibits O(N) complexity,requires O(N) storage, and scales
excellently up to a thousand processes. The algorithm uses a GMRES iterative
solver with a restricted additive Schwarz method (RASM) as a preconditioner and
a fast matrix-vector algorithm. Previous fast RBF methods, --,achieving at most
O(NlogN) complexity,--, were developed using multiquadric and polyharmonic
basis functions.
We have developed a new programming framework, called Sieve, to support
parallel numerical PDE algorithms operating over distributed meshes. We have
also developed a reference implementation of Sieve in C++ as a library of
generic algorithms operating on distributed containers conforming to the Sieve
interface. Sieve makes instances of the incidence relation, or \emph{arrows},
the conceptual first-class objects represented in the containers.