ParaDiGM (Parallel Distributed General Mesh) is a library for managing meshes in a massively parallel distributed environment, with interfaces in C, Python and Fortran.
The user documentation is available either on the GitHub page or on ONERA's internal Gitlab.
General dependencies for building ParaDiGM are:
- a C compiler
- CMake (version 3.16 or higher)
- an MPI distribution
Follow these steps to build ParaDiGM from the sources:
First, clone the repository
- either from GitHub:
git clone git@github.com:onera/paradigm.git - or from GitLab (for ONERA users only):
git clone git@gitlab.onera.net:numerics/mesh/paradigm.git
Then, use the following commands:
cd paradigmgit submodule update --init extensions/paradigma(if you want to enable ParaDiGMA)mkdir buildcd buildcmake ..makemake install./pdm_run(if you want to run the test cases)
Configuration with CMake
cmake -D<option1_name>=<option1_value> ... -D<option2_name>=<option2_value>
CMAKE_INSTALL_PREFIX=<prefix>
PDM_ENABLE_Fortran=<ON | OFF> (default : OFF)
PDM_ENABLE_PYTHON_BINDINGS=<ON | OFF> (default : OFF)
If a simple autodetection fails, you can use these options to find Python :
PYTHON_LIBRARY=<path>
PYTHON_INCLUDE_DIR=<path>
Refer to FindPython in the CMake documentation for more information.
PDM_ENABLE_SHARED=ON
PDM_ENABLE_SHARED=<ON | OFF> (default : ON)
PDM_ENABLE_STATIC=<ON | OFF> (default : ON)
PDM_ENABLE_TESTS=<ON | OFF> (default : ON)
Enable the use of ParMETIS (parallel graph partitioning)
PDM_ENABLE_PARMETIS=<ON | OFF> (default : ON)
If a simple autodetection fails, you can use these options to find ParMETIS :
PARMETIS_DIR=<path>
To link shared libraries, ParMETIS must be compiled with the -fPIC flag.
CMake looks for
parmetis.handmetis.hincludesparmetisandmetislibraries
Enable the use of PT-Scotch (parallel graph partitioning)
PDM_ENABLE_PTSCOTCH=<ON | OFF> (default : ON)
If a simple autodetection fails, you can use these options to find PT-Scotch :
PTSCOTCH_DIR=<path>
To link shared libraries, PT-Scotch must be compiled with the -fPIC flag.
CMake looks for
ptscotch.hinclude filescotch,scotcherr,ptscotch,ptscotcherrlibraries
PDM_ENABLE_BLASLAPACK=<ON | OFF> (default : OFF)
PDM_ENABLE_LONG_G_NUM=<ON | OFF> (default : ON)
ON:PDM_g_num_ttype islong intOFF:PDM_g_num_ttype isint
PDM_ENABLE_DOC=<ON | OFF> (default : OFF)
Once built (using the make doc command), the documentation home page can be found in build/doc/sphinx/html/index.html
CC=<C compiler> CXX=<CXX compiler> FC=<Fortran compiler> cmake ...
or use the following CMake options
CMAKE_C_COMPILER=<C compiler>
CMAKE_CXX_COMPILER=<CXX compiler>
CMAKE_Fortran_COMPILER=<Fortran compiler>
MPI_C_COMPILER=<C MPI wrapper>
MPI_CXX_COMPILER=<CXX MPI wrapper>
MPI_Fortran_COMPILER=<Fortran MPI wrapper>
If a simple autodetection fails, you can use these options to find MPI :
MPI_<language>_LIBRARIES
MPI_<language>_INCLUDE_PATH
Refer to FindMPI in the CMake documentation for more information.
Examples of use can be found in the test and training directories and in the documentation.
If you have a question or encounter a problem, please follow the rules of our community.
If you would like to contribute to ParaDiGM, make sure you follow these instructions.
ParaDiGM is available under the LGPL3 license.
Copyright 2026, ONERA The French Aerospace Lab