Recent Commits
Commit | Author | Details | Committed | ||||
---|---|---|---|---|---|---|---|
72947bfdea65 | Nicolas Richart | Correcting missing implementation of computePotentialEnergyByElement | Jul 12 2023 | ||||
49b0acf153d9 | anciaux | missing an include | Jul 11 2023 | ||||
ad3fb0506067 | anciaux | remove a useless check | Jun 19 2023 | ||||
a4b191e5a7fb | anciaux | remove a warning when compiling in debug with phasefield | Jun 16 2023 | ||||
3aee00226fa8 | anciaux | bug fix in PBC pack/unpack | Jun 12 2023 | ||||
1728a47b61ab | richart | Missing file in core.cmake | Apr 4 2023 | ||||
cac88ce5b30e | richart/voisinleprince | Correcting eigen for akantu begin a library in a project already using eigen | Apr 4 2023 | ||||
4fd15fdf6bc2 | richart | Merge branch 'releases/5.0.0' into 'master' | Mar 31 2023 | ||||
782eefab8ea8 | richart | Releasing version 5.0.0 | Mar 31 2023 | ||||
bf56e4e80b56 | richart | Merge branch 'features/38-damage-energy-computation-missing-in-phasefield… | Mar 21 2023 | ||||
1eba87747331 | saduruss | fixes for code quality | Mar 20 2023 | ||||
ccb07ef1e422 | saduruss | fixes for compatibility with Eigen | Mar 16 2023 | ||||
5bb957e9b427 | saduruss | solve conflicts with master | Mar 15 2023 | ||||
73c5b59569fb | saduruss | fix in damage energy density | Mar 13 2023 | ||||
e46872a2555d | saduruss | delete dead code, move unwanted getters to private, put element filter in src | Mar 13 2023 |
README.md
Akantu: Swiss-Made Open-Source Finite-Element Library
![joss](https://joss.theoj.org/papers/3abf3c7945cc9a016a946ce9e02e357f) ![license](https://www.gnu.org/licenses/lgpl-3.0.en.html) ![readthedoc](https://akantu.readthedocs.io/en/latest/?badge=master)
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 (preprocessor and Spirit)
- zlib
- 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
sh > sudo apt install cmake libboost-dev zlib1g-dev gmsh libeigen3-dev # For parallel > sudo apt install mpi-default-dev libmumps-dev libscotch-dev # For sequential > sudo apt install libmumps-seq-dev
Configuring and compilation
Akantu is a CMake project, so to configure it, you can follow the usual way:
sh > cd akantu > mkdir build > cd build > ccmake .. [ Set the options that you need ] > make > make install
Using the python interface
You can install `Akantu` using pip, this will install a pre-compiled version:
sh > pip install akantu
You can then import the package in a python script as:
python 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.
Tutorials with the python interface
To help getting started, multiple tutorials using the python interface are available as notebooks with pre-installed version of Akantu on Binder. The following tutorials are currently available: