Section: Software and Platforms


Participants : Dragan Amenga-Mbengoué [Bacchus] , Simon Delmas [Cagire] , Damien Genet [Bacchus] , Maxime Mogé [Cagire] , Yann Moguen [Cagire] , Francois Pellegrini [Bacchus] , Vincent Perrier [Cagire, correspondant] , Francois Rué [Bacchus] , Mario Ricchiuto [Bacchus] .

The software AeroSol is jointly developed in the team Bacchus and the team Cagire. It is a high order finite element library written in C++. The code design has been carried for being able to perform efficient computations, with continuous and discontinuous finite elements methods on hybrid and possibly curvilinear meshes.

The work of the team Bacchus is focused on continuous finite elements methods, while the team Cagire is focused on discontinuous Galerkin methods. However, everything is done for sharing the largest part of code we can. More precisely, classes concerning IO, finite elements, quadrature, geometry, time iteration, linear solver, models and interface with PaMPAare used by both of the teams. This modularity is achieved by mean of template abstraction for keeping good performances.

The distribution of the unknowns is made with the software PaMPA, developed within the team Bacchus and the team Castor.

This year, Simon Delmas and Yann Moguen were recruited within the team Cagire. Their respective development, low Mach solver for compressible flows and turbulence injection boundary conditions are performed in the library Aerosol. At the end of 2012, Aerosol had the following features

  • development environment use of CMake for compilation, CTest for automatic tests and memory checking, lcov and gcov for code coverage reports. Development of a CDash server for collecting the unitary tests and the memory checking. Beginning of the development of an interface for functional tests.

  • In/Out link with the XML library for handling with parameter files. Reader for GMSH, and writer on the VTK-ASCII legacy format (cell and point centered). Parallel GMSH reader, XML paraview files on unstructured meshes (vtu) and parallel XML based files (pvtu).

  • Quadrature formula up to 11th order for Lines, Quadrangles, Hexaedra, Pyramids, Prisms, up to 14th order for tetrahedron, up to 21st order for triangles. Gauss-Lobatto type quadrature formula for lines, triangles, quadrangles and hexaedra.

  • Finite elements up to fourth degree for Lagrange finite elements and hierarchical orthogonal finite element basis (with Dubiner transform on simplices) on lines, triangles, quadrangles, tetrahedra, prisms and hexaedra. Finite element basis that are interpolation basis on Gauss-Legendre points for lines, quadrangles, and hexaedra.

  • Geometry elementary geometrical functions for first order lines, triangles, quadrangles, prisms, tetrahedra and hexaedra.

  • Time iteration explicit Runge-Kutta up to fourth order, explicit Strong Stability Preserving schemes up to third order. Optimized CFL time schemes: SSP(2,3) and SSP(3,4). CFL time stepping.

  • Linear Solvers link with the external linear solver UMFPack, PETSc and MUMPS. Internal solver for diagonal matrices.

  • Memory handling discontinuous and continuous, sequential and parallel discretizations based on PaMPA for generic meshes.

  • Models Perfect gas Euler system, real gas Euler system (template based abstraction for a generic equation of state), scalar advection, Waves equation in first order formulation, generic interface for defining space-time models from space models.

  • Numerical schemes continuous Galerkin method for the Laplace problem (up to fifth order) with non consistent time iteration or with direct matrix inversion. Discontinuous Galerkin methods for hyperbolic systems. SUPG and Residual disribution schemes.

  • Numerical fluxes centered fluxes, exact Godunov' flux for linear hyperbolic systems, and Lax-Friedrich flux.

  • Parallel computing Mesh redistribution, computation of Overlap with PaMPA. collective asynchronous communications (PaMPA based). Tests on the cluster Avakas from MCIA, and on Mésocentre de Marseille, and PlaFRIM.

  • C++/Fortran interface Tests for binding fortran with C++.

This year, the following features were added

  • development environment Definition of CMake options for optimization and for using different compilers. Currently, the following compilers have been tested: GNU gcc, Intel icc, and IBM xlc. Aerosol can now be linked with HDF5, PAPI, and can use different BLAS implementations like eigen or MKL.

  • In/Out Point centered visualization for discontinuous approximations. XML binary output for Paraview was added. The link with HDF5 was added for parallel IO for defining XDMF format. A geometrical pre-partitioning was developped for reducing the size ofthe parallel graph in the parallel mesh reading.

  • Pyramids Mesh reader, Lagrange and hierarchical orthogonal finite element basis were added for pyramids. Geometrical functions for linear pyramids were also added.

  • Finite element Gauss Lagrange finite element basis (order 1 and 2) for triangles.

  • Time iteration the following implicit integration schemes were added: backward Euler, Crank-Nicolson, and BDF from 2nd to 6th order.

  • Linear Solvers Interface with PETSc was tested on a parallel environment. An in house block diagonal solver was developped.

  • Memory handling Aerosol can now work on hybrid meshes.

  • Models the generic model interface supports now diffusive models. Anisotropic diffusion and (compressible) Navier-Stokes models were added.

  • Instrumentation Aerosol can give some traces on memory consumption/problems with an interfacing with the PAPI library. Tests have also been performed with VTUNE and TAU.

  • Parallel computing Tests were performed on the clusters Pyrene (Université de Pau), poincaré (Maison de la Simulation), and on the Tier-1 cluster Turing (IDRIS).

  • Numerical schemes The DG discretization of advection problems was optimized by stocking most of the geometrical functions and finite elements computations , and by using BLAS implementations for linear computations. Implicit versions of the DG discretization of advection problems. Development of explicit and implicit version of the DG discretization of diffusion problems. Time dependent boundary conditions, periodic boundary conditions, non reflecting boundary conditions. Development of low Mach numerical fluxes, and development of stationary and unstationary tests for this kind of problem.