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

Folders and files

NameName
Last commit message
Last commit date

Latest commit

1a9ff49 · Dec 16, 2024
Dec 13, 2024
Dec 11, 2024
Dec 13, 2024
Mar 28, 2024
Dec 16, 2024
Jul 17, 2023
May 28, 2024
Dec 13, 2024
Dec 13, 2024
Oct 10, 2024
Jan 12, 2024
Dec 11, 2024
Dec 7, 2022
May 28, 2024
Dec 13, 2024
Feb 11, 2011
Dec 13, 2024
Dec 13, 2024
Mar 30, 2017
Mar 28, 2024
Dec 13, 2024
May 2, 2024
Apr 30, 2024
Apr 12, 2017
Mar 30, 2017

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 git@gitlab.onera.net: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)

If CWP_ENABLE_STATIC=ON then CWP_ENABLE_HIDE_PDM_SYMBOLS=OFF is forced

Enable the use of external ParaDiGM library

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

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