Author: Jørgen S. Dokken
This library contains an add-on to FEniCSx enabling the possibilities of enforce multi-point constraints, such as
where
This can be used to for instance enforce slip conditions strongly.
Consider a linear system of the form
We then solve the system
If we include boundary conditions on the form
The library performs custom matrix and vector assembly adding the extra constraints to the set of linear equations. All assemblies are local to the process, and no MPI communication except when setting up the multi point constraints.
These assemblers are written in C++, but have equivalent Python assemblers in the optional dolfinx_mpc.numba
module.
Experimental documentation at https://jorgensd.github.io/dolfinx_mpc
A Docker image can be found in the Packages tab.
To install the latest version (main branch), you need to install the latest release of dolfinx. Easiest way to install dolfinx is to use docker. The dolfinx docker images goes under the name dolfinx/dolfinx
To install the dolfinx_mpc
-library run the following code from this directory:
cmake -G Ninja -DCMAKE_BUILD_TYPE=Release -B build-dir cpp/
ninja -j3 install -C build-dir
pip3 install python/. --upgrade
Version 0.5.0 is available as an docker image at DockerHub and can be ran using
docker run -ti -v $(pwd):/root/shared -w /root/shared dokken92/dolfinx_mpc:v0.5.0