The project team Pomdapi is concerned with the construction and analysis of simulation tools for the modeling of environmental and energy problems. These tools include numerical approximation schemes for partial differential equations, nonlinear solvers, and numerical techniques in optimization and complementarity problems. We are equally interested in reliable and correct programming methods for the implementation of these tools.
Our research activities are structured as follows. The axis on numerical environmental modeling encompasses the study of (i) coupled problems, including coupling transport with chemistry, coupling of fracture flow with matrix flow with various choices of flow in the fracture and in the matrix, and the modeling of drainage in an agricultural parcel; (ii) problems of flow and transport in porous media for hydrogeology or oil reservoir simulation; and (iii) approximation schemes for Partial Differential Equations, including the use of hexahedral grids, and the problem of two-phase flow in a porous medium with a change of rock type.
The activities on continuous optimization deal with the development of sequential quadratic programming (SQP) solvers, interior point methods, decomposition methods for the optimization of the electricity production, algebraic optimization, and derivative free optimization. The activities on complementarity problems deal with numerical techniques for solving nonlinear problems in which the active equations at the solution is part of the unknowns, while inactive equations must satisfy a sign condition. In particular, we address such problems that play a major part in the modeling of geophysical systems and of chemical processes.
The research on programming models splits into (i) high-performance computing, with the development of new algorithms as space-time domain decomposition, and reflections on parallel implementation for large scale computations; and (ii) reliable and correct programming for scientific computing, including skeleton-based programming for safe parallelization, the development of two generic platforms for the implementation of the coupling of numerical codes, and for solving inverse problems, and formal proofs of correctness for numerical programs.