Skip to main content

Akantu: Swiss-Made Open-Source Finite-Element Library

joss license readthedoc

Akantu means a little element in Kinyarwanda, a Bantu language. From now on it is also an open-source object-oriented library which has the ambition to be generic and efficient. Even though the code is written to be generic, Akantu strength are in solid mechanics models for fracture and contact simulations.

The full documentation can be found on ReadTheDocs

Building Akantu

Dependencies

In order to compile Akantu any compiler supporting fully C++14 should work. In addition some libraries are required:

  • CMake (>= 3.5.1)
  • Boost (pre-processor and Spirit)
  • Eigen3 (if not present the build system will try to download it)

For the python interface:

  • Python (>=3 is recommended)
  • pybind11 (if not present the build system will try to download it)

To run parallel simulations:

  • MPI
  • Scotch

To use the static or implicit dynamic solvers at least one of the following libraries is needed:

  • MUMPS (since this is usually compiled in static you also need MUMPS dependencies)
  • PETSc

To compile the tests and examples:

  • Gmsh
  • google-test (if not present the build system will try to download it)

On .deb based systems

 > sudo apt install cmake libboost-dev gmsh libeigen3-dev
 # For parallel
 > sudo apt install mpi-default-dev libmumps-dev libscotch-dev
 # For sequential
 > sudo apt install libmumps-seq-dev 

Using conda

This works only for sequential computation since mumps from conda-forge is compiled without MPI support

 > conda create -n akantu
 > conda activate akantu
 > conda install boost cmake
 > conda install -c conda-forge mumps

Using homebrew

 > brew install gcc
 > brew install boost@1.76
 > brew tap brewsci/num
 > brew install brewsci-mumps --without-brewsci-parmetis

If it does not work you can edit url to http://graal.ens-lyon.fr/MUMPS/MUMPS_5.3.5.tar.gz using the command:

  > brew edit brewsci/num

Configuring and compilation

Akantu is a CMake project, so to configure it, you can follow the usual way:

  > cd akantu
  > mkdir build
  > cd build
  > ccmake ..
  [ Set the options that you need ]
  > make
  > make install

On Mac OS X with homebrew

You will need to specify the compiler explicitly:

 > CC=gcc-12 CXX=g++-12 FC=gfortran-12 cmake ..

Considering the homebrew is installed in /opt/homebrew Define the location of the Scotch library path:

 > cmake .. -DSCOTCH_LIBRARY="/opt/homebrew/lib/libscotch.dylib;/opt/homebrew/lib/libscotcherr.dylib;/opt/homebrew/lib/libscotcherrexit.dylib"

Specify path to all MUMPS libraries:

 > cmake .. -DMUMPS_DIR=/opt/homebrew/opt/brewsci-mumps

In case the above does not work, specify the MUMPS path manually using (e.g.):

 > cmake .. -DMUMPS_LIBRARY_COMMON=/opt/homebrew/opt/brewsci-mumps/lib/libmumps_common.dylib 

If compilation does not work change the path of the failing libraries to brew downloads in /opt/homebrew/.

Using the python interface

You can install Akantu using pip, this will install a pre-compiled version, this works only on Linux machines for now:

  > pip install akantu

You can then import the package in a python script as:

  import akantu

The python API is similar to the C++ one. If you encounter any problem with the python interface, you are welcome to do a merge request or post an issue on GitLab.

Contributing

Contributing new features, bug fixes

Any contribution is welcome, we are trying to follow a gitflow workflow, so the project developers can create branches named features/<name of my feature> or bugfixes/<name of the fix> directly in the main akantu repository. External fellows can Fork the project. In both cases the modifications have to be submitted in the form of a Merge Request.

Asking for help, reporting issues

If you want to ask for help concerning Akantu's compilation, usage or problem with the code do not hesitate to open an Issue on gitlab. If you want to contribute and don't know where to start, you are also invited to open an issue.

Examples and Tutorials with the python interface

To help getting started, you can find examples with the source code in the examples sub-folder. If you just want to test the python examples without having to compile the whole project you can use the following tarball akantu-python-examples.tgz.

In addition to the examples, multiple tutorials using the python interface are available as notebooks with pre-installed version of Akantu on Renku. The tutorials can be tested here:

renku

Release files for akantu 5.0.7.post1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Built distributions (wheels)

Table of built distributions (wheels) for akantu 5.0.7.post1
File
akantu-5.0.7.post1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.12 CPython 3.12 Linux glibc 2.17+ x86-64 Details
akantu-5.0.7.post1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.11 CPython 3.11 Linux glibc 2.17+ x86-64 Details
akantu-5.0.7.post1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.10 CPython 3.10 Linux glibc 2.17+ x86-64 Details
akantu-5.0.7.post1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.9 CPython 3.9 Linux glibc 2.17+ x86-64 Details
akantu-5.0.7.post1-cp39-cp39-macosx_14_0_arm64.whl CPython 3.9 CPython 3.9 macOS 14.0+ ARM64 Details
akantu-5.0.7.post1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.8 CPython 3.8 Linux glibc 2.17+ x86-64 Details
akantu-5.0.7.post1-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.7 CPython 3.7 pymalloc Linux glibc 2.17+ x86-64 Details
akantu-5.0.7.post1-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.6 CPython 3.6 pymalloc Linux glibc 2.17+ x86-64 Details

Total release size: 52.5 MB

Release files / akantu-5.0.7.post1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL akantu-5.0.7.post1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 6.6 MB
Tags CPython 3.12 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
f618c31bb4cdf23d86e74a10f7e94dac3dae7b0ae2cfd057d352c1b156c0654b
BLAKE2b-256 checksum
How to use checksums
bc0edb432ea714b088d957c2c6275b3a55da60ec0973d9a3552343cdda1b8172
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.1.1 CPython/3.12.6

Release files / akantu-5.0.7.post1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL akantu-5.0.7.post1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 6.6 MB
Tags CPython 3.11 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
17ea52106d64a637abdb0476c7635daa349c97710cc7f4d661691e897b35a492
BLAKE2b-256 checksum
How to use checksums
06492e45ab4e2693227bb444a116cc062e57ae42e1c033360c85ba5654527833
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.1.1 CPython/3.12.6

Release files / akantu-5.0.7.post1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL akantu-5.0.7.post1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 6.6 MB
Tags CPython 3.10 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
d28a8ef98c2c895d4d28178c07e3309a44fcb5331b9c9d9d562be6525a58382a
BLAKE2b-256 checksum
How to use checksums
a56dfdffb7d256978c860878bb9f6e3cece8412bdd0b6131dc6ef658b916173c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.1.1 CPython/3.12.6

Release files / akantu-5.0.7.post1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL akantu-5.0.7.post1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 6.6 MB
Tags CPython 3.9 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
16f94a55e487317245d56f994d8b61cb878e31a33ef05c34b5beb6dd6087507b
BLAKE2b-256 checksum
How to use checksums
6f444d488feeb0eb401414c3e8c4c4eb4ceb5b65dc6c89282c72f5b4805feb76
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.1.1 CPython/3.12.6

Release files / akantu-5.0.7.post1-cp39-cp39-macosx_14_0_arm64.whl

Download URL akantu-5.0.7.post1-cp39-cp39-macosx_14_0_arm64.whl
Size 6.3 MB
Tags CPython 3.9 macOS 14.0+ ARM64
SHA-256 checksum
How to use checksums
211a83b1cfc19834d14d0687d37949d2418ff5b0f225f93898e99f1355a3fe99
BLAKE2b-256 checksum
How to use checksums
2003967d2fa6614e299793400bf9ffff747b991e1a1fd57cfbc110597a46ece0
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.1.1 CPython/3.12.6

Release files / akantu-5.0.7.post1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL akantu-5.0.7.post1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 6.6 MB
Tags CPython 3.8 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
847a56a90ec60fa30a3e49a16998686f2ab019bc19b4b7a6195a8fd8ebab84da
BLAKE2b-256 checksum
How to use checksums
3c9d5e850c1ad4aafc1241bb0f4cac66402b74848f6d0d3d4e4459db4910a9d9
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.1.1 CPython/3.12.6

Release files / akantu-5.0.7.post1-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL akantu-5.0.7.post1-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 6.6 MB
Tags CPython 3.7 CPython 3.7 pymalloc Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
3aeec305d73559c3f981648a809522d423e453f96c027ecf4206cb1251dcf639
BLAKE2b-256 checksum
How to use checksums
9460edd9881ee6a025c1528596ab966d46559442cdd09267d3dfdd70375a25c4
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.1.1 CPython/3.12.6

Release files / akantu-5.0.7.post1-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL akantu-5.0.7.post1-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 6.6 MB
Tags CPython 3.6 CPython 3.6 pymalloc Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
2aa57d3ccaf140c1436109c966cbd4d31aa3ccfab4d2a5320a08d8a2ccb306ed
BLAKE2b-256 checksum
How to use checksums
4c2245a899475415f3c3b22bd22468f9a3bd072ed350df4e7c305ada34509891
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.1.1 CPython/3.12.6
Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page