Marmot (MAteRialMOdellingToolbox) is a C++-library aiming to provide robust and efficient implementations of finite elements
and state-of-the-art constitutive models for different materials.
In particular for quasi-brittle materials such as (sprayed) concrete, rock and soils.
It uses modern, object-oriented programming techniques and provides a generic interface that can be easily wrapped into different numerical solvers.
It can be seamlessly used with the EdelweissFE finite element code, but also with commercial and open source finite element codes.
Standard interfaces for commercial finite element codes, such as Abaqus, Plaxis and open source codes like MOOSE or OpenSees, are ready-to-use available.
Truss in compression using a micropolar von Mises plasticity model.
Marmot requires the
Eigen (>3.3.8),
autodiff (>0.6.0)
and Fastor (>6.4.0) libraries to be installed.
Detailed instructions on how to install these dependencies can be found here.
For anaconda users both autodiff and Eigen can be installed via conda-forge.
For a quick start we recommend to use anaconda. A conda environment including all needed dependencies (excluding Fastor) can be created by running
conda create -n marmot-env -c conda-forge cmake compilers eigen autodiffTo activate the environment use
conda activate marmot-envFastor needs to be installed manually by executing
git clone https://github.com/romeric/Fastor.git
cd Fastor
mkdir build
cd build
cmake -DCMAKE_INSTALL_PREFIX=$CONDA_PREFIX ..
make installTo finally build and install Marmot execute
git clone https:\\github.com/MAteRialMOdelingToolbox/Marmot.git
cd Marmot
mkdir build
cd build
cmake -DCMAKE_INSTALL_PREFIX=$CONDA_PREFIX ..
make installWithin this build directory, the tests can be executed by running
ctest --output-on-failureThe EdelweissFE finite element code is designed to work seamlessly with Marmot.
After the installation of Marmot, EdelweissFE can be built with Marmot support by executing
git clone https://github.com/Edelweiss-FE/EdelweissFE.git
cd EdelweissFE
conda install --file requirements.txt
pip install .The build can be tested by running
run_tests_edelweissfe testfilesThe Abaqus-MarmotInterface allows to use Marmot in Abaqus simulations.
The chamois App allows to use Marmot directly in MOOSE.
A singularity container recipe is available.
The documentation can be found under https://materialmodelingtoolbox.github.io/Marmot/.
You can also built the documentation locally using Doxygen and Sphinx/Breathe following the instructions below.
# install the requirements
conda install --file doc/requirements.txt
# build the documentation
python scripts/buildDocumentation.pyIf you use Marmot in your research, please cite it as
@software{neuner_marmot_2025,
author = {Neuner, Matthias and Dummer, Alexander and Schreter-Fleischhacker, Magdalena and Hofer, Paul and Alkmim, Nasser and Basche, Konstantin and Mader, Thomas},
title = {Marmot: MAteRialMOdellingToolbox},
version = {v25.11},
month = nov,
year = 2025,
publisher = {Zenodo},
doi = {10.5281/zenodo.17509328},
url = {https://doi.org/10.5281/zenodo.17509328}
}This library is freely available under the LGPLV2 license. Please find the details in the LICENSE.md file.
Contributions are very welcome! Please see the contributing guidelines for more information.
