Package: ambit-fe
READMEAmbit 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 FEniCS and
linear algebra library PETSc.https://github.com/marchirschvogel/ambit/assets/52761273/a438ff55-9b37-4572-a1c5-499dd3cfba73Heart 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-cefb642f44b7FSI simulation (Turek benchmark, FSI2 case) of an elastic flag in incompressible channel flow.The following is supported:Solid mechanicsFinite strain elastodynamics, implementing a range of hyperelastic isotropic and anisotropic as well as viscous constitutive lawsActive stress for modeling of cardiac contraction mechanicsQuasi-static, generalized-alpha, or one-step theta time integrationNearly incompressible as well as fully incompressible formulations (latter using pressure dofs)Prestressing using MULF method in displacement formulationVolumetric growth & remodelingFluid dynamicsIncompressible Navier-Stokes/Stokes equations, either in nonconservative or conservative formulationNavier-Stokes/Stokes flow in an Arbitrary Lagrangian Eulerian (ALE) reference frameOne-step theta, or generalized-alpha time integrationSUPG/PSPG stabilization for equal-order approximations of velocity and pressureLumped (0D) modelsSystemic and pulmonary circulation flow models2-element as well as 4-element Windkessel modelsSignalling network modelCoupling of different physics:Fluid-solid interaction (FSI): Monolithic FSI in ALE formulation using Lagrange multiplierMonolithic coupling of 3D solid/fluid/ALE-fluid with lumped 0D flow modelsMultiscale-in-time analysis of growth & remodeling (staggered solution of 3D-0D coupled solid-flow0d and G&R solid problem)Fluid-reduced-solid interaction (FrSI)Boundary subspace-projected physics-reduced solid model (incl. hyperelastic, viscous, and active parts) in an ALE fluid reference framePOD-based model order reduction (MOR)Projection-based model order reduction applicable to main fluid or solid field (also in a coupled problem), by either projecting
the full problem or a boundary to a lower dimensional subspace spanned by POD modesauthor: Dr.-Ing. Marc Hirschvogel,marc.hirschvogel@deepambit.comStill experimental / to-do:Finite strain plasticityElectrophysiology/scalar transport... whatever might be wanted in some future ...DocumentationDocumentation can be viewed athttps://ambit.readthedocs.ioInstallationIn order to use Ambit, you need toinstall FEniCSxLatest Ambit-compatible dolfinx release version: v0.6.0Latest tested Ambit-compatible dolfinx development version dating to 19 Aug 2023Ambit can then be installed using pip, either the current releasepython3 -m pip install ambit-feor latest development version:python3 -m pip install git+https://github.com/marchirschvogel/ambit.gitAlternatively, you can pull a pre-built Docker image with FEniCSx and Ambit installed:docker pull ghcr.io/marchirschvogel/ambit:latestIf 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:devenvUsageCheck 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.pyBuild your input file and run it with the commandmpiexec -n <NUMBER_OF_CORES> python3 your_file.py