This document is meant to help new users to find their ways in the existing documentation of MFront and summarize the most important points.

Material properties and models

As most users are focused on mechanical behaviours, this document will not discuss material properties and models.

MFront has been designed to help the user writing complex mechanical behaviours using a domain specific language that are:

Before writing your own behaviours, a few advices are helpful:

The final advice is the more important: as every open-source project, MFront has its community of users. Do not hesitate to ask questions:

First step: installation

The installation of MFront is described in depth here.

The main points are the followings:

Second step: understanding how MFront works

MFront translate a set of input files into C++ sources and compile them. A basic knowledge of the C and C++ syntax is then advisable. MFront specific keywords begins with the @ letter.

MFront first introduces the notion of Domain Specific Language (DSL), which gives a context about what the input file describes, mainly the type of the material knowledge treated (material property, model, finite strain behaviour, strain based behaviour, cohesive zone moel) and/or the algorithm used to integrate the state variables’ evolution. One highly used DSL is called Implicit and described a strain based behaviour whose integration is based on a generalised mid-point rule (see [2, 4, 5]).

Each DSL has its own conventions, keywords and automatically declared variables.

The Implicit DSL

For most mechanical behaviours, the Implicit DSL is recommended: the behaviour integration is performed using a generalised mid-point rule and allow the consistent tangent operator, which is required by most finite element sovler to have decent numerical performances, to be computed.

Once the appropriate DSL choosen, the list of available keywords can be retrieved from the command line:

$ mfront --help-keywords-list=Implicit

where Implicit is the name of the DSL.

The help of for a specific keyword can be retrieved as follows:

$ mfront --help-keywords-list=Implicit:@Author

where Implicit is the name of the DSL and @Author the name of the keyword.

A good way to get familiar with a specific DSL is to look in the MFront gallery if some examples describe its usage.

Otherwise, one may want to look at the tests distributed with MFront in the mfront/tests/behaviours directory (online access on github here).

About the tests cases

Beware that the tests may not reflect the best way to implement a specific behaviour (MFront evolves a lot and each version introduces new features): they can be kept outdated to ensure backward compatibility.

Detailed documentation

This page references most of the available documentations.

For example, the complete description of the DSLs available can be found here and here, in French.

However, such detailed documentation is not required for most users. We even consider that beginning with MFront from these documents can be overwhelmingly difficult. Reading the detailed example of the gallery is much easier: Longum iter est per praecepta, breve et efficax per exempla (It’s a long way by the rules, but short and efficient with examples).

For French users, a detailed tutorial can be found here

Third step: before starting to write your first behaviour

Look if your behaviour can be implemented using the StandardElastoViscoPlasticity brick

The StandardElastoViscoPlasticity brick can be used to implement a large class of strain based elasto-visco-plastic behaviours implementations.

It is worth to look if your behaviour falls in that category, or a least if part of your behaviour falls in that category:

The MFront gallery is meant to document how to describe in depth and step by step the implementation of some behaviours. If one of the described behaviour is close to the one you plan to implement, it is highly recommend to carefully read the associated page and start by modifying the one described in the gallery.

Write your constitutive equations as a system of ordinary differential equations using tensorial notations

Constitutive equations can be expressed as a system of ordinary differential equations which allows to determine the evolution of the state variables of the material.

Select your integration algorithm

Write your discretized equations by hand using tensorial notations

Look at the documentation of the tensor operations

Second and fourth orders tensors are the basic mathematical tools used to describe mechanical behaviours. MFront is based on the TFEL/Math library which provides many standards operations and functions to handle them. See here for an introduction.

Fourth step: your first implementation

References

1.
Doghri, Issam. Mechanics of deformable solids: Linear, nonlinear, analytical, and computational aspects. Berlin; New York : Springer, 2000. ISBN 3540669604 9783540669609 3642086292 9783642086298.
2.
Besson, Jacques, Cailletaud, Georges, Chaboche, Jean-Louis, Forest, Samuel and Bletry, Marc. Non-linear mechanics of materials. 2010 ed. Dordrecht : Springer, 2009. ISBN 978-90-481-3355-0.
3.
Forest, Samuel, Amestoy, Michel, Damamme, Gilles, Kruch, Serge, Maurel, Vincent and Mazière, Matthieu. Mécanique des milieux continus. 2013. École des Mines de Paris. Available from: http://mms2.ensmp.fr/mmc_paris/mmc_paris.php
4.
Besson, J. and Desmorat, D. Numerical implementation of constitutive models. In : BESSON, J. [ed.], Local approach to fracture. École des Mines de Paris - les presses, 2004.
5.
Lemaître, J and Desmorat, Rodrigue. Engineering damage mechanics: Ductile, creep, fatigue and brittle failures. Berlin; New York : Springer, 2005. ISBN 3540215034 9783540215035 3642059988 9783642059988.