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: https://numerics.gitlab-pages.onera.net/mesh/paradigm/dev/index.html
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, the documentation can be found in build/doc/sphinx/html
and launch index.html
file
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 2023, ONERA The French Aerospace Lab