General advice

When creating a material database based on MFrontGallery (see this page for details), do not mix generic and self-contained implementations (see this page for details).

When creating a material database of self-contained implementations, the unit system of all implementations must be consistent. See Section 2.1 for details.

MFront implementations

Consistent units

When creating a material database of self-contained implementations, we highly recommend providing a consistent unit system to make all implementations consistent.

We also highly recommend using the international system of units. Since Version 4.1, MFront provides the @UnitSystem keyword to specify the unit system used.

External names (glossary and entry names)

The setGlossaryName and setEntryName methods allows to set so-called external names to MFront’s variables. Those external names are the one seen from the calling solver.

For entry names, the name chosen must be explicit.

Bounds and physical bounds

Bounds and physical bounds can be assigned to most variables in MFront’s variables using the @Bounds and @PhysicalBounds keywords.

Since Version 4.1, physical bounds may be automatically declared for variables associated with a glossary name if the unit system is specified (see @UnitSystem keyword).

For example, if a variable has the glossary name Porosity, and the international system of units is used, then this variable is automically associated with the physical bounds \(0\) (lower bound) and \(1\) (upper bound).

Consistent tangent operator

Most finite element implicit solvers requires a tangent operator, generally the consistent tangent operator (see [1] for details). If your implementation does not provide one, you may have runtime errors.

Prediction operator

The prediction operator may be used by the code_aster solver for the first iteration of each time step.

The elastic prediction operator is used by the Abaqus/Explicit solver to determine the critical time step.

Stored and dissipated energies

Stored and dissipated energies are used by the Abaqus/Explicit solver to estimate energy lost by hourglassing.

File encoding

Encode your file in UTF-8 which is the de facto standard on most systems.

Note that this encoding is automatically used by the tfel-editor editor.

Unit testing

MFrontGallery provides several cmake functions to declare tests based on MTest.

Documentation

We highly recommend that every implementation has a detailled description as a markdown file. MFrontGallery provide a dedicated cmake function to create a convert such file in webpages thanks to pandoc. Various examples are available in the project:

References

1.
Simo, J. C. and Taylor, R. L. Consistent tangent operators for rate-independent elastoplasticity. Computer Methods in Applied Mechanics and Engineering. February 1985. Vol. 48, no. 1, p. 101–118. DOI 10.1016/0045-7825(85)90070-2. Available from: http://www.sciencedirect.com/science/article/pii/0045782585900702