Skip to content
/ cwipi Public

Library for coupling parallel scientific codes via MPI communications to perform multi-physics simulations

License

Notifications You must be signed in to change notification settings

onera/cwipi

Repository files navigation

CWIPI

CWIPI (Coupling With Interpolation Parallel Interface) is a parallel coupling library under LGPL, with interfaces in C, Fortran and Python.

Documentation

User documentation is deployed on the Gitlab pages server: https://numerics.gitlab-pages.onera.net/coupling/cwipi/cwipi-1.1.0/index.html

Build and install

Dependencies

General dependencies for building CWIPI are:

  • a C++ compiler
  • CMake (version 3.16 or higher)
  • an MPI distribution

Basic Installation

Follow these steps to build CWIPI from the sources:

  1. git clone [email protected]:numerics/coupling/cwipi.git (for ONERA users only)
  2. cd cwipi
  3. git submodule update --init (needed for dependencies)
  4. mkdir build
  5. cd build
  6. cmake ..
  7. make
  8. make install
  9. ./cwp_run (if you want to run the test cases)

CMake general options

cmake -D<option1_name>=<option1_value> ... -D<option2_name>=<option2_value>

Installation prefix

CMAKE_INSTALL_PREFIX=<prefix>

Enable Fortran interface

CWP_ENABLE_Fortran=<ON | OFF> (default : OFF)
CWP_ENABLE_Fortran_MPI_MODULE=<ON | OFF> (default : OFF)

Enable Python interface

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.

Build shared library

CWP_ENABLE_SHARED=<ON | OFF> (default : ON)

Build static library

CWP_ENABLE_STATIC=<ON | OFF> (default : OFF)

Enable MPI wrapper check

CWP_ENABLE_MPI_CHECK=<ON | OFF> (default : ON)

Hide symbols of internal ParaDiGM library

CWP_ENABLE_HIDE_PDM_SYMBOLS=<ON | OFF> (default : ON)

Enable the use of external ParaDiGM library

CWP_ENABLE_EXTERNAL_PDM=<ON | OFF> (default : OFF)

You must define this variable to find ParaDiGM :

PDM_DIR=<path> Where to find the base directory of ParaDiGM

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>"

Enable client-server mode

CWP_ENABLE_CLIENT_SERVER=<ON | OFF> (default : OFF)

Enable tests

CWP_ENABLE_TESTS=<ON | OFF> (default : ON)

Enable documentation mode

CWP_ENABLE_DOCUMENTATION=<ON | OFF> (default : OFF)

Enable training mode

CWP_ENABLE_TRAINING=<ON | OFF> (default : OFF)

Once built, the documentation can be found in build/doc/sphinx/html and launch index.html file

Compiler choice

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>

CMake MPI options

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

Issues can be reported directly in the Issues section.

License

CWIPI is available under the LGPL3 license (https://www.gnu.org/licenses/lgpl-3.0.fr.html).

Copyright

Copyright 2023, ONERA The French Aerospace Lab

About

Library for coupling parallel scientific codes via MPI communications to perform multi-physics simulations

Resources

License

Stars

Watchers

Forks

Packages

No packages published