This project aims at providing tools (functions, classes, bindings,
etc...) to handle behaviours written using MFront generic interface.
For information about MFront, see http://tfel.sourceforge.net.
Those tools are meant to be used by (FEM, FFT, etc.) solver
developers. This tools are not linked to the TFEL libraries.
Permissive licences have been chosen to allow integration in open-source
and proprietary codes.
This project is described in this paper:
The official website can be found here: https://thelfer.github.io/mgis/web/index.html.
The project is build around the MFrontGenericInterface library. This
library provides two main functions:
- the
mgis::behaviour::loadfunctions loadsMFrontbehaviours from external shared libraries and retrieve all relevant meta data function. Those relevant information are stored in themgis::behaviour::Behaviourclass. - the
mgis::behaviour::integrateintegrates the behaviour over one time step. The data associated with an integration point are handled by themgis::behaviour::BehaviourDataclass 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 though
the mgis::behaviour::MaterialStateManager class.
The following bindings are available:
cbindings.pythonbindings .fortran03bindings.fenicsbindings (under current work in themasterbranch). Those bindings are strongly inspired by thefenics-solid-mechanicsproject. Those bindings are currently quite limited as mostly serve as a proof of concept. Note thatMGIScan also be used inFEniCSthrough thepythoninterface. This is discussed here: https://thelfer.github.io/mgis/web/FEniCSBindings.html.juliabindings (experimental)
The following bindings are under consideration:
octavebinding
- Version
MFrontGenericInterfaceSupport-2.0is meant to be build againstTFEL4.0 - Version
MFrontGenericInterfaceSupport-1.2.2is meant to be build againstTFEL3.4.3 - Version
MFrontGenericInterfaceSupport-1.2.1is meant to be build againstTFEL3.4.1 - Version
MFrontGenericInterfaceSupport-1.2is meant to be build againstTFEL3.4.0 - Version
MFrontGenericInterfaceSupport-1.1is meant to be build againstTFEL3.3.0 - Version
MFrontGenericInterfaceSupport-1.0is meant to be build againstTFEL3.2.0 - Version
MFrontGenericInterfaceSupport-1.0.1is meant to be build againstTFEL3.2.1
The following branches are available:
- The
masterbranch follows the evolution of themasterbranch of theTFELproject - The
rliv-2.0follows the evolution of the 4.0.x series of theTFELproject. - The
rliv-1.2follows the evolution of the 3.4.x series of theTFELproject. - The
rliv-1.1follows the evolution of the 3.3.x series of theTFELproject. - The
rliv-1.0follows the evolution of the 3.2.x series of theTFELproject. Note that this branch is not compatible withTFEL-3.2.0.
This project uses code extracted from the following projects:
- https://github.com/bitwizeshift/string_view-standalone by Matthew Rodusek
- https://github.com/mpark/variant: by Michael Park
- https://github.com/progschj/ThreadPool by Jakob Progsch and Václav Zeman
- https://github.com/martinmoene/span-lite by Martin Moene
- https://bitbucket.org/fenics-apps/fenics-solid-mechanics/ by Kristian B. Ølgaard and Garth N. Wells.