Skip to content

Building

David Schneider edited this page Jul 10, 2020 · 23 revisions

To build the adapter, follow the steps below:

  1. Download and compile deal.II (version 9.1 is known to work). A detailed installation instruction is given in the installation section of the deal.II webpage. If you are familiar with CMake and want to stay in sync with the recent development version, you can clone directly the git repository and follow the steps in the README there. For the direct solvers in this examples UMFPACK is required. Also, the nonlinear-solver utilizes a shared-memory parallelization. Depending on your version, you can build deal.II with the following command:
git clone https://github.com/dealii/dealii.git
mkdir build
cd build/

cmake \
    -D CMAKE_BUILD_TYPE="DebugRelease" \
    -D CMAKE_CXX_FLAGS="-march=native \
    -D DEAL_II_CXX_FLAGS_RELEASE="-O3" \
    -D DEAL_II_WITH_UMFPACK="ON" \
    -D DEAL_II_WITH_THREADS="ON" \
    ../dealii

make -j 10
  1. Download and compile preCICE. A detailed installation instruction is given in the building section of the preCICE wiki. On debian-like systems, you could directly download and install debian packages.

  2. Build the dealii-adapter: First, clone the git repository

    git clone --branch=master https://github.com/precice/dealii-adapter.git .
    

    Omit the --branch=master if you selected the develop version in step2.
    Each solver in this repository can be built independently. Therefore, select a directory and build it with cmake:

    cmake -DDEAL_II_DIR=/path/to/deal.II .

    for configuration, where DEAL_II_DIR points to your installation (not source) directory. This should be the same as the CMAKE_INSTALL_PREFIX you used when installing deal.II. If you have set the variable DEAL_II_DIR globally, you could skip it in the command above. Afterwards, run make to build the adapter. By default, the adapter is built with a 2D example in debug mode. If you want to build a release version, use make release. If you want to run a 3D example (quasi 2D, meaning the out-of-plane direction is clamped, but we use real cells for the calculation), you can define this using cmake:

    cmake -DDEAL_II_DIR=/path/to/deal.II -DDIM=3 .

Note that you need to run make distclean if you switch from one to another dimension in order to overwrite the dimension value.

To run the deal.II adapter, copy the executable and parameter file (solver.prm) in your target directory, e.g. Solid. Afterwards, run the executable e.g. by:

./nonlinear_elasticity path/to/nonlinear_elasticity.prm

Example cases can be found in the tutorial cases for deal.II coupled with OpenFOAM.

Clone this wiki locally