Multi-Physics Analysis Program (MPAP) for Fluid-Structure Interaction (FSI) using the CutFEM approach on hierarchical b-spline grids.
The finite element formulation is published in 3 papers in CMAME journal. Paper 1 Paper 2 Paper 3
Animations of some of the simulations performed using this code are available on my YouTube channel.
- Programming languages: C++ and Fortran
- C++ standard: C++14 (or above)
- Required third-party libraries:
- Clone the repository or download the zip file and extract its contents.
- Go to the directory of the repository in a terminal.
- Create build and bin directories.
mkdir build
mkdir bin
- Modify the CMake file accordingly.
- Copy
CMakeLists-chennalaptop.txt
to a new file for your machine, sayCMakeLists-local.txt
. - Change the paths to the compilers, Eigen, CGAL, PETSc and VTK libraries.
- Change the path in the
install
function. - Create a symbolic link to the local CMake file.
ln -sf CMakeLists-local.txt CMakeLists.txt
- Copy
- Enter the
build
directory.cd build
- Configure using the CMake file
cmake ..
- Compile, build and install the executable
mpap
. This step will also copy the exe to thebin
folder.make install
- Simulations are usually run from the
bin
folder. - Copy
petsc_options.dat
file from theproject/sampleinputs
folder to thebin
folder. - For serial run:
./mpap <pathtodirectory> <inpfilename>
(White space between each entry) - For parallel run:
mpirun -n <nprocs>./mpap <pathtodirectory> <inpfilename>
- Example:
./mpap ../project/sampleinputs IsquareFixed
mpirun -n 4 ./mpap ../project/sampleinputs IsquareFixed
For each simulation the output contains two items:
-
Files for visualisation in ParaView. Generated in the
bin
folder.- One .pvtu file for each time step. Contains velocity, pressure and vorticity for the flow field. This file is an amalgamation of .vtu files for individual subdomains. You need to open the .pvtu files in ParaView for visualising the whole fluid domain.
- One .vtu file for each solid, if the solids are allowed to move. Only done for flexible solids.
-
A file with the letter prefixed
T
to the name of the input file containing the data for forces and displacements. (This will be created in the same directory as the input file.)
If you use MPAP in your research, please cite it as:
@misc{mpap,
author = {Chennakesava Kadapa},
title = {{MPAP}: A Fluid-Structure Interaction simulation framework based on CutFEM},
year = {2024},
publisher = {GitHub},
journal = {GitHub repository},
howpublished = {\url{https://github.com/chennachaos/mpap}},
}