The ComPASS code

Brief history of the code ComPASS

The first version was developed during the Cemracs summer school in 2012 by C. Guichard, C. Yang, R. Masson, P. Havé. (cf. the publication Compass: a tool for distributed parallel finite volume discretizations on general unstructured polyhedral meshes)

Version 2.0 was adapted to integrate an immiscible two phase Darcy flow model by C. Guichard, R. Eymard and R. Masson (cf. publication High Performance Computing linear algorithms for two-phase flow in porous media)

Version 3.0 was developed during the inter Carnot postdoctoral fellowship of Feng Xing in collaboration between BRGM and LJAD-INRIA. It currently serves as the basis for developments in the Charms project.


The documentation (work in progress !) is now served on gitlab pages at:

Technical specifications

The current version of ComPASS (4.0) has the following features.

Computer science

  • Version management of the code using Inria Gitlab
  • SPMD Paradigm
  • Fortran 2003 + C/C++ + MPI
  • Parallelism based on a partitioning of the mesh with Metis
  • One layer of ghost cells
  • Connected to the solver libraries Petsc + Hypre + Trilinos
  • High level python API

Numerical methods

  • 3D conforming polyhedral meshes
  • Parallel Vertex Approximate Gradient (VAG) scheme accounting for the flow in the 3D matrix and the 2D fault network.
  • Fully implicit Coat's type formulation of multiphase compositional thermal models.
  • Newton Raphson algorithm with phase appearance and disappearance.
  • GMRES or BiCGStab linear solver with CPR-AMG preconditioner.


  • Multiphase compositional thermal Darcy flow model
  • 2D discrete fracture or fault network coupled with the surrounding 3D matrix

Get involved!

ComPASS is developped and distributed under a dual GPL v.3 / CeCILL v2.1 licence, the latter being an adpatation of the first one in terms of French law.

If you want to test the code or be involved in code development you're welcomed!

  1. Create a user account on Inria Gitlab (it's free).
  2. Contact us, specifying your username on the GitLab platform, to be added to the development team and you will be able to access freely the code from the Gitlab Inria server.
  3. If you want to contribute to code development or use the issues tracker to make comments or suggestions just ask us to change your rights.

Please remember that the code is still in a development phase, so do not hesitate to use the gitlab/wiki to communicate :

  • submitting issues
  • commenting or correcting documentation/wiki/code : even correcting a slight typo is a real help (it’s a small steps strategy...).

Once logged in on the gitlab platform, you may find a little information on the wiki pages :




Dernière mise à jour le 08.01.2020