Students interested in any of the following projects are encouraged to contact me.

# Modeling of 3D Printing

# Scalable Graph Partitioning (Chris Golinski)

By using a randomized geometric scheme, which produces provably good partitions, combined with a multilevel method, it is possible to produce a graph partitioner which matches the quality of the best libraries today (ParMetis, PT-Scotch), but is much more scalable. This work principally applies to graphs of bounded degree, as we find in meshing for simulation algorithms such as algebraic multigrid. A proof of concept has been shown, but no software exists for this. An efficient implementation would make a large impact in the scientific computing community.

# A more accuracte Polarizable Continuum Model (PCM)

The Psi4 quantum chemistry code is supported by the recently funded Molecular Sciences Software Institute, the only NSF Software Institute. It has an interface to the PCMSolver code for the Polarizable Continuum Model (PCM). We would like to create another interface, analogous to that for PCMSolver, which uses the PetBEM code which is capable of simulating PCM. Such as interface would allow Psi4 to experiment with the more accurate SLIC formulation of PCM.

# Automating Performance Modeling in PETSc

The Roofline Model for bandwidth-constrained algorithms could be automatically applied given a measurement of
memory bandwidth to go along with the flop measurements already present. This project would augment the PETSc
logging system with a `PetscLogBytes` to estimate bytes transferred, and thus allow an estimate of the
arithmetic intensity of an operation. This
paper shows an application of arithmetic intensity to performance modeling for complex PDE solvers.

A related project would be to use performance counters, rather than user specified numbers, to count flops and bytes transferred. However, chip manufacturers are making this strategy harder rather than easier, so it does not seem like the best avenure at present.

# Accurate Performance Measures for Mechanics Simulation

Traditional performance measures, such as flop rates or runtime, are not wholly appropriate for understanding the performance of approximations of continuum mechanics problems since they ignore the accuracy of the solution. This can become a major issue when trying to understand and plan for the cost of simulations in the aerospace, chemical, and construction industries. We have recently develop a new approach to performance modeling. The student would apply this approach to complex multiphysics problems, in the GRINS code and geophysical codes.

# Adding Discretizations to PETSc

- Incorporate code from Logan for RT
- Incorporate code from Chris for modal DG
- Incorporate code from Jonas for Morley
- Implement CR
- Implement Nedelec
- Implement BDM and BDFM
- Hook up to FInAT

# Rewrite of Discretization Support in PETSc

- Fully incorporate DMField
- Allow DS to map multiple Neumann forms for BC instead of just one, and link them to the BC
- Fix handling of topological dimension vs spatial dimension
- Check that quadrature coordinate dim is same as FE topological dim
- Enable auxiliary DM to be a different dimension for all operations. In fact, we could imagine having a set of DMs, of different dimension, contributing to the problem. This would allow us to do problem lik Paul's parachute.
- Index tabulations by topological dimension, just like height subspaces

# One Week Projects

- Make PetscQuadratureSetData() handle PetscCopyMode