CWIPI (Coupling With Interpolation Parallel Interface) is a parallel coupling library under LGPL, with interfaces in C, Fortran and Python.
User documentation is deployed on the Gitlab pages server: https://numerics.gitlab-pages.onera.net/coupling/cwipi/cwipi-1.1.0/index.html
General dependencies for building CWIPI are:
- a C++ compiler
- CMake (version 3.16 or higher)
- an MPI distribution
Follow these steps to build CWIPI from the sources:
git clone [email protected]:numerics/coupling/cwipi.git
(for ONERA users only)cd cwipi
git submodule update --init
(needed for dependencies)mkdir build
cd build
cmake ..
make
make install
./cwp_run
(if you want to run the test cases)
cmake -D<option1_name>=<option1_value> ... -D<option2_name>=<option2_value>
CMAKE_INSTALL_PREFIX=<prefix>
CWP_ENABLE_Fortran=<ON | OFF> (default : OFF)
CWP_ENABLE_Fortran_MPI_MODULE=<ON | OFF> (default : OFF)
CWP_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.
CWP_ENABLE_SHARED=<ON | OFF> (default : ON)
CWP_ENABLE_STATIC=<ON | OFF> (default : OFF)
CWP_ENABLE_MPI_CHECK=<ON | OFF> (default : ON)
CWP_ENABLE_HIDE_PDM_SYMBOLS=<ON | OFF> (default : ON)
If CWP_ENABLE_STATIC=ON
then CWP_ENABLE_HIDE_PDM_SYMBOLS=OFF
is forced
CWP_ENABLE_EXTERNAL_PDM=<ON | OFF> (default : OFF)
If CWP_ENABLE_EXTERNAL_PDM=ON
, you must define this variable to find ParaDiGM :
PDM_SOURCE_DIR=<path> Where to find the base directory of ParaDiGM
If CWP_ENABLE_HIDE_PDM_SYMBOLS=ON
then CWP_ENABLE_EXTERNAL_PDM=OFF
if forced
Enable the use of BLAS (linear algebra)
CWP_ENABLE_BLASLAPACK=<ON | OFF> (default : OFF)
If a simple autodetection fails, you can use these options to find BLAS :
BLAS_DIR=<path> Where to find the base directory of BLAS
BLAS_INCDIR=<path> Where to find the header files
BLAS_LIBDIR=<path> Where to find the library files
To force the use of a list of libraries, use :
DBLAS_LIBRARIES="<lib_1> ... <lib_n>"
CWP_ENABLE_CLIENT_SERVER=<ON | OFF> (default : OFF)
CWP_ENABLE_TESTS=<ON | OFF> (default : ON)
CWP_ENABLE_DOCUMENTATION=<ON | OFF> (default : OFF)
CWP_ENABLE_TRAINING=<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.
CWIPI is available under the LGPL3 license (https://www.gnu.org/licenses/lgpl-3.0.fr.html).
Copyright 2023, ONERA The French Aerospace Lab