Skip to main content

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

Project description

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

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

akantu-5.0.7.post1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (6.6 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ x86-64

akantu-5.0.7.post1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (6.6 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ x86-64

akantu-5.0.7.post1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (6.6 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ x86-64

akantu-5.0.7.post1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (6.6 MB view details)

Uploaded CPython 3.9manylinux: glibc 2.17+ x86-64

akantu-5.0.7.post1-cp39-cp39-macosx_14_0_arm64.whl (6.3 MB view details)

Uploaded CPython 3.9macOS 14.0+ ARM64

akantu-5.0.7.post1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (6.6 MB view details)

Uploaded CPython 3.8manylinux: glibc 2.17+ x86-64

akantu-5.0.7.post1-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (6.6 MB view details)

Uploaded CPython 3.7mmanylinux: glibc 2.17+ x86-64

akantu-5.0.7.post1-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (6.6 MB view details)

Uploaded CPython 3.6mmanylinux: glibc 2.17+ x86-64

File details

Details for the file akantu-5.0.7.post1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for akantu-5.0.7.post1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 f618c31bb4cdf23d86e74a10f7e94dac3dae7b0ae2cfd057d352c1b156c0654b
MD5 1182010df6a495a847b2f02ec166c824
BLAKE2b-256 bc0edb432ea714b088d957c2c6275b3a55da60ec0973d9a3552343cdda1b8172

See more details on using hashes here.

File details

Details for the file akantu-5.0.7.post1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for akantu-5.0.7.post1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 17ea52106d64a637abdb0476c7635daa349c97710cc7f4d661691e897b35a492
MD5 110a999693f68f957c48d43a93d6b8d0
BLAKE2b-256 06492e45ab4e2693227bb444a116cc062e57ae42e1c033360c85ba5654527833

See more details on using hashes here.

File details

Details for the file akantu-5.0.7.post1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for akantu-5.0.7.post1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 d28a8ef98c2c895d4d28178c07e3309a44fcb5331b9c9d9d562be6525a58382a
MD5 e7f7c0c324d837ca777545d2024299ac
BLAKE2b-256 a56dfdffb7d256978c860878bb9f6e3cece8412bdd0b6131dc6ef658b916173c

See more details on using hashes here.

File details

Details for the file akantu-5.0.7.post1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for akantu-5.0.7.post1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 16f94a55e487317245d56f994d8b61cb878e31a33ef05c34b5beb6dd6087507b
MD5 d86d4537bf14e31020d2533c7fec9efe
BLAKE2b-256 6f444d488feeb0eb401414c3e8c4c4eb4ceb5b65dc6c89282c72f5b4805feb76

See more details on using hashes here.

File details

Details for the file akantu-5.0.7.post1-cp39-cp39-macosx_14_0_arm64.whl.

File metadata

File hashes

Hashes for akantu-5.0.7.post1-cp39-cp39-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 211a83b1cfc19834d14d0687d37949d2418ff5b0f225f93898e99f1355a3fe99
MD5 a24fdd78109305c2c6e7a9abc0e92246
BLAKE2b-256 2003967d2fa6614e299793400bf9ffff747b991e1a1fd57cfbc110597a46ece0

See more details on using hashes here.

File details

Details for the file akantu-5.0.7.post1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for akantu-5.0.7.post1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 847a56a90ec60fa30a3e49a16998686f2ab019bc19b4b7a6195a8fd8ebab84da
MD5 c36c1106f0275cab38d6947ca4231aca
BLAKE2b-256 3c9d5e850c1ad4aafc1241bb0f4cac66402b74848f6d0d3d4e4459db4910a9d9

See more details on using hashes here.

File details

Details for the file akantu-5.0.7.post1-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for akantu-5.0.7.post1-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 3aeec305d73559c3f981648a809522d423e453f96c027ecf4206cb1251dcf639
MD5 56d0ac562ac0faa5a0fc77d7d2c32c51
BLAKE2b-256 9460edd9881ee6a025c1528596ab966d46559442cdd09267d3dfdd70375a25c4

See more details on using hashes here.

File details

Details for the file akantu-5.0.7.post1-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for akantu-5.0.7.post1-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 2aa57d3ccaf140c1436109c966cbd4d31aa3ccfab4d2a5320a08d8a2ccb306ed
MD5 a1d7b33b53434c3ada7ddc749ef98cd9
BLAKE2b-256 4c2245a899475415f3c3b22bd22468f9a3bd072ed350df4e7c305ada34509891

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page