Ambit is an open-source multi-physics finite element solver written in Python, supporting solid and fluid mechanics, fluid-structure interaction (FSI), and lumped-parameter models. It is tailored towards solving problems in cardiac mechanics, but may also be used for more general nonlinear finite element analysis. It uses the finite element backend FEniCSx and linear algebra library PETSc.
https://github.com/marchirschvogel/ambit/assets/52761273/a438ff55-9b37-4572-a1c5-499dd3cfba73
Heart cycle simulation of a generic bi-ventricular heart model coupled to a closed-loop circulation model.
https://github.com/marchirschvogel/ambit/assets/52761273/8e681cb6-7a4f-4d1f-b34a-cefb642f44b7
FSI simulation (Turek benchmark, FSI2 case) of an elastic flag in incompressible channel flow.
The following is supported:
Solid mechanics
Fluid dynamics
Lumped (0D) models
Coupling of different physics:
Fluid-reduced-solid interaction (FrSI)
POD-based model order reduction (MOR)
author: Dr.-Ing. Marc Hirschvogel, marc.hirschvogel@ambit.net
Still experimental / to-do:
Documentation can be viewed at https://ambit.readthedocs.io
In order to use Ambit, you need to install FEniCSx
Latest Ambit-compatible dolfinx release version: v0.8.0\ Latest tested Ambit-compatible dolfinx development version dating to 28 Aug 2024
Ambit can then be installed using pip, either the current release
python3 -m pip install ambit-fe
or latest development version:
python3 -m pip install git+https://github.com/marchirschvogel/ambit.git
Alternatively, you can pull a pre-built Docker image with FEniCSx and Ambit installed:
docker pull ghcr.io/marchirschvogel/ambit:latest
If a Docker image for development is desired, the following image contains all dependencies needed to install and run Ambit (including the dolfinx mixed branch):
docker pull ghcr.io/marchirschvogel/ambit:devenv
Check out the examples for the basic problem types in demos to quickly get started running solid, fluid, or 0D model problems. Further, you can have a look at input files in ambit/tests and the file ambit_template.py in the main folder as example of all available input options.
Best, check if all testcases run and pass, by navigating to ambit/tests and executing
./runtests.py
Build your input file and run it with the command
mpiexec -n <NUMBER_OF_CORES> python3 your_file.py