Skip to content

About

This project aims at providing support for MFront generic behaviours. This project can be embedded in open-source and propriary sofware

Resources

Contributing

Stars

42 stars

Watchers

9 watching

Forks

Repository files navigation

MFrontGenericInterfaceSupport

ci doxygen C++20 spack DOI

This project aims at providing tools (functions, classes, bindings, etc...) to handle behaviours written using the MFront generic interface.

Those tools are meant to be used by (FEM, FFT, etc.) solver developers. Permissive licences have been chosen to allow integration in open-source and proprietary codes: MGIS is distributed under either the LGPL v3 licence or the CeCILL-C licence.

By default, MGIS looks for the TFEL libraries and, if they are found, is linked to the TFELMath and TFELMFrontDatabase libraries, which provide the TFEL/Math objects of MGIS/Function and the MFront database (mgis::getDatabase and mgis::behaviour::loadFromDatabase). Those libraries are distributed under either the GPL licence with a linking exception or the CeCILL-A licence. Passing -Ddisable-tfel=ON to cmake builds a library independent of TFEL.

The goal and features of MGIS are described in its JOSS paper.

The official website can be found here: https://thelfer.github.io/mgis/web/index.html.

The MFrontGenericInterface C++ library

The project is built around the MFrontGenericInterface library. This library provides two main functions:

  • the mgis::behaviour::load function loads MFront behaviours from external shared libraries and retrieves all relevant meta data. This relevant information is stored in the mgis::behaviour::Behaviour class.
  • the mgis::behaviour::integrate function integrates the behaviour over one time step. The data associated with an integration point are handled by the mgis::behaviour::BehaviourData class which contains the state of the integration point at the beginning and at the end of the time step.

The library also supports handling a group of integration points through the mgis::behaviour::MaterialStateManager class.

Bindings

Existing

The following bindings are available:

  • c bindings.
  • python bindings.
  • fortran03 bindings.
  • fenics bindings (under current work in the master branch). Those bindings are strongly inspired by the fenics-solid-mechanics project. Those bindings are currently quite limited as they mostly serve as a proof of concept. Note that MGIS can also be used in FEniCS through the python interface. This is discussed here: https://thelfer.github.io/mgis/web/FEniCSBindings.html.
  • julia bindings (experimental).

Future bindings (contributors are welcome)

The following bindings are under consideration:

  • octave bindings

Versions, branches

  • Version 3.2 is meant to be built against TFEL 5.2
  • Version 3.1.1 is meant to be built against TFEL 5.1.1
  • Version 3.1 is meant to be built against TFEL 5.1
  • Version 3.0.2 is meant to be built against TFEL 5.0.2
  • Version 3.0.1 is meant to be built against TFEL 5.0.1
  • Version 3.0 is meant to be built against TFEL 5.0
  • Version 2.2.1 is meant to be built against TFEL 4.2.3
  • Version 2.2 is meant to be built against TFEL 4.2
  • Version 2.1 is meant to be built against TFEL 4.1
  • Version 2.0 is meant to be built against TFEL 4.0
  • Version 1.2.2 is meant to be built against TFEL 3.4.3
  • Version 1.2.1 is meant to be built against TFEL 3.4.1
  • Version 1.2 is meant to be built against TFEL 3.4.0
  • Version 1.1 is meant to be built against TFEL 3.3.0
  • Version 1.0.1 is meant to be built against TFEL 3.2.1
  • Version 1.0 is meant to be built against TFEL 3.2.0

The following branches are available:

  • The master branch follows the evolution of the master branch of the TFEL project
  • The rliv-3.1 branch follows the evolution of the 5.1.x series of the TFEL project.
  • The rliv-3.0 branch follows the evolution of the 5.0.x series of the TFEL project.
  • The rliv-2.2 branch follows the evolution of the 4.2.x series of the TFEL project.
  • The rliv-2.1 branch follows the evolution of the 4.1.x series of the TFEL project.
  • The rliv-2.0 branch follows the evolution of the 4.0.x series of the TFEL project.
  • The rliv-1.2 branch follows the evolution of the 3.4.x series of the TFEL project.
  • The rliv-1.1 branch follows the evolution of the 3.3.x series of the TFEL project.
  • The rliv-1.0 branch follows the evolution of the 3.2.x series of the TFEL project. Note that this branch is not compatible with TFEL-3.2.0.

Acknowledgement

This project uses code extracted from the following projects:

About

This project aims at providing support for MFront generic behaviours. This project can be embedded in open-source and propriary sofware

Resources

Contributing

Stars

42 stars

Watchers

9 watching

Forks

Releases

Packages

Used by

Contributors

Languages