Software

One of the main objectives of our project is to develop a software framework that will provide a
middle-layer between users from several numerical applications and massively parallel machines.

Currently the following software are developed in our group:

  • FreeFEM

    FreeFEM is a partial differential equation solver based on a flexible language that allows a large number of problems to be expressed (elasticity, fluids, etc) with different finite element approximations on different meshes.

  • HPDDM

    HPDDM is an efficient implementation of various domain decomposition methods (DDM) such as one- and two-level Restricted Additive Schwarz methods, the Finite Element Tearing and Interconnecting (FETI) method, and the Balancing Domain Decomposition (BDD) method. These methods can be enhanced with deflation vectors computed automatically by the framework using Generalized Eigenvalue problems on the Overlap (GenEO), an approach first introduced in a paper by Spillane et al., or local Dirichlet-to-Neumann operators, an approach first introduced in a paper by Nataf et al. and recently revisited by Conen et al. This library written in C++11 with MPI and OpenMP for parallelism while its interface relies on plain old data objects. It is mainly developed by P. Jolivet and F. Nataf. It can be embedded inside C++, C, Python, or Fortran codes.

  • Midapack

    With our collaborators from Paris 7, we develop the algorithms and associated software aiming at the crucial stages down the CMB data analysis pipeline.  The ultimate goal of this project is to empower the CMB data analysis work by providing new techniques together with their implementation in a form of handy, powerful and efficient software library crafted to the specific needs of the CMB community. These tools will enable a full exploitation of the scientific information contained in the future data sets as anticipated from the next generation of the CMB observations.  In particular, the library provides tools for computing spherical harmonic transforms, finding the solution to a generalized least squares problem, and performing Toeplitz algebra.  The last two functionalities are implemented in C and MPI for distributed memory machines.

  • PreAlps

    PreAlps is a library that integrates the parallel iterative methods and the algebraic preconditioning techniques that we design in our group. This library integrates the main algebraic preconditioners that we develop, as well as a toolbox containing the basic matrix operations required by our preconditioners. It will be available through FreeFEM and also as a standalone library.

  • BemTool

    The main purpose of BemTool is the assembly of classic boundary element matrices for Laplace, Helmholtz, Yukawa (purely dissipative Helmholtz) and Maxwell matrices in 2D and 3D. The available discretisation spaces are P0, continuous P1, continuous P2 and lowest order Raviart-Thomas elements. One of the motivations for the development of this library was the numerical investigation of the performance of the multi-trace formalism. BemTool is a C++ header library.

  • defmm

    defmm is a C++ library implementing a variant of black-box Fast Multipole Methods based on a directional partionning and relying on polynomial interpolation on equispaced grids and Fast Fourier Transform for M2L and M2M/L2L operators. The library is designed for the treatement of matrices stemming from the discretization of boundary integral formulations of Helmholtz equation.

  • Htool

    Htool is an implementation of hierarchical matrices and it is written to test Domain Decomposition Methods (DDM) applied to Boundary Element Method (BEM). Htool is a header-only library written in C++11, with MPI and OpenMP.