Skip to content

MAteRialMOdelingToolbox/Marmot

Repository files navigation

build clang-format documentation license DOI

Marmot

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

Truss in compression using a micropolar von Mises plasticity model.

Quick start

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 autodiff

To activate the environment use

conda activate marmot-env

Fastor 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 install

To 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 install

Within this build directory, the tests can be executed by running

ctest --output-on-failure

How to use Marmot with EdelweissFE

The 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 testfiles

How to use Marmot with Abaqus

The Abaqus-MarmotInterface allows to use Marmot in Abaqus simulations.

How to use Marmot with MOOSE

The chamois App allows to use Marmot directly in MOOSE. A singularity container recipe is available.

Documentation

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.py

How to cite

If 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}
}

License

This library is freely available under the LGPLV2 license. Please find the details in the LICENSE.md file.

Contributing

Contributions are very welcome! Please see the contributing guidelines for more information.

Packages

 
 
 

Contributors

Languages