This year at SIAM CSE, along with a co-worker at the lab, I submitted a proposal for a mini-symposium titled: Partitioned and Adaptive Methods for Initial Value Problems.

The abstract for the mini-symposium reads:

Numerical methods for initial value problems often adapt or partition the method to suit the problem. For differential equations that have a separation into stiff and nonstiff terms, methods such as implicit-explicit methods and integrating factor methods exploit this structure by partitioning the method based on the structure of the differential equation. These methods allow larger stable time-steps than standard explicit methods at a smaller computational cost than traditional fully implicit methods. The analysis and efficient implementation of these methods requires careful treatment of the adaptivity or partitioning along with accuracy and stability. This minisymposium brings together speakers working on the application and analysis of and partitioned methods for initial value problems.

The two part successful sessions were filled with really awesome talks and research going on. We were hoping to have a well balanced session on theory and applications of novel works going on. I was not disappointed!

I presented my work on adaptive embedded pairs for optimal explicit SSP RK methods. This work was driving by need for time step adaptivity for the optimal SSP methods. I learned a lot!

What I learned from other talks

Need for Flexible Time Integration Libraries

Multiphysics time integration needs

  • stability/accuracy for each components, as well as inter-physics couplings
  • Custom/flexible step sizes for distinct components
  • Robust temporal error estimation & adaptivity of step size(s)
  • Built-in support for spatial adaptivity
  • Ability to apply optimal solver algorithms for individual components

Legacy software frameworks enforce overly-rigid standards on application

  • Fully implicit or fully explicit, without ImEx flexibility
  • Inflexible data structures for vectors, matrices, (non)linear solvers
  • Hard-coded parameters - good for most problems, but rarely optimal

Software

  • Version control: git
  • Continuous integration and automated testing: Jenkins
    • Serial and parallel tests
    • Short and long test suites
  • Every new function has an associated unit test
  • Thorough documentation
  • Build for flexibility and portability
  • Limited external libraries
  • Intuitive interaction with software
  • Different kernels