MFront
MFront
worksStandardElastoViscoPlasticity
brickMFront
galleryThis 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:
MFront
tests base.. It highly recommended to
have some basic understanding of the algorithms used to integrate a
constitutive equation (see [2, 4, 5]).MTest
has been made for.The final advice is the more important: as every open-source project,
MFront
has its community of users. Do not hesitate
to ask questions:
The installation of MFront
is described in depth here.
The main points are the followings:
MFront
is mostly distributed as C++
sources that must be compiled. Official releases are available on github.git
to do this.C++
compiler is
required. Under Unix
systems, this is always the case, each
system having some official compiler suite (gcc
under
Linux
, clang
under Mac Os
and
FreeBSD
). This is not the case under Windows
where you have to install a compiler beforehand.Windows
platform: on
LinuX
, most compilers strives to be binary compatible with
gcc
. For example, if you use Cast3M
under
windows, you may want to use the compiler which is packaged with the
Cast3M
distribution (see here for details). For
Abaqus
, you may need to have the Intel compilers (or at
least the Intel fortran compiler).cmake
installed to build
MFront
under Windows
. It is strongly
recommended under the other platform.MFront
worksMFront
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
DSLFor 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
DSL
s 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
StandardElastoViscoPlasticity
brickThe 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:
StandardElastoViscoPlasticity
brick can be straightforward.
Even if you do not want to use the
StandardElastoViscoPlasticity
brick, it is worth to have a
reference implementation to which one can compare its own implementation
in terms of performance, robustness, etc.StandardElastoViscoPlasticity
brick and validate this part.MFront
galleryThe 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.
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.
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.