ParaDiGM (Parallel Distributed General Mesh) is a parallel computational geometry library under LGPL, with interfaces in C, Fortran and Python.
User documentation is deployed on ONERA's internal GitLab pages server and can be found here.
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:
git clone [email protected]:numerics/mesh/paradigm.git
(for ONERA users only)cd paradigm
git submodule update --init extensions/paradigma
(if you want to enable ParaDiGMA)mkdir build
cd build
cmake ..
make
make install
./pdm_run
(if you want to run the test cases)
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.h
andmetis.h
includesparmetis
andmetis
libraries
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.h
include filescotch
,scotcherr
,ptscotch
,ptscotcherr
libraries
PDM_ENABLE_BLASLAPACK=<ON | OFF> (default : OFF)
PDM_ENABLE_LONG_G_NUM=<ON | OFF> (default : ON)
ON
:PDM_g_num_t
type islong int
OFF
:PDM_g_num_t
type 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.
Issues can be reported directly in the Issues section.
ParaDiGM is available under the LGPL3 license (https://www.gnu.org/licenses/lgpl-3.0.fr.html).
Copyright 2025, ONERA The French Aerospace Lab