Section: Research Program
Reliability by a posteriori error control and safe and correct programming
The last part of our theoretical efforts goes towards the certification of the results obtained at the end of the numerical simulation. Here a key ingredient is the development of rigorous a posteriori error estimates that enable to estimate in a guaranteed way the error between the unknown exact solution and its numerical approximation. Our estimates also allow to distinguish the different components of the overall error, namely that coming from the modeling, from the discretization scheme, from the nonlinear (Newton) solver, and from the linear algebraic (Krylov, domain decomposition, multigrid) solver. A novel concept here is that of local stopping criteria, where all the error components are balanced locally within each computational mesh element. This naturally interconnects all parts of the numerical simulation process and gives rise to novel fully adaptive algorithms. We in particular aim to address the question of convergence of the new algorithms and justify their optimality, proving in particular guaranteed error reduction.
We also concentrate on the issue of computer implementation of scientific computing programs. The increasing complexity of algorithms for modern scientific computing makes it a major challenge to implement them in the traditional imperative languages popular in the community. As an alternative, the computer science community provides theoretically sound tools for safe and correct programming. In our project, we explore the use of these tools to design generic solutions for the implementation of the considered class of scientific computing software. Our focus ranges from high-level programming via functional programming with OCaml, and safe and easy parallelism via skeleton parallel programming with Sklml, to proof of correctness of numerical algorithms and programs via mechanical proofs with Coq.