The generic behaviour interface has been introduced to provide an interface suitable for most needs. Whereas other interfaces target a specific solver and thus are restricted by choices made by this specific solver, this interface has been created for developers of homebrew solvers who are able to modify their code to take full advantage of MFront behaviours.

This interface is tightly linked with the MFrontGenericInterfaceSupport project which is available on github: https://github.com/thelfer/MFrontGenericInterfaceSupport. This project has a more liberal licence which allows it to be included in both commercial and open-source solvers/library. This licensing choice explains why this project is not part of the TFEL.

Features

Supported behaviours

The generic behaviour interface supports:

Supported modelling hypotheses

Finite strain behaviours

The finite strain behaviours are a special case. For greater flexibility, the generic behaviour interface allows choosing at runtime the stress measure and the tangent operator to be returned.

The following stress measures are available:

The following tangent operators are available:

Support of orthotropic behaviours

Orthotropic behaviours requires to:

By design, the generic behaviour interface does not automatically perform those rotations as part of the behaviour integration but generates additional functions to do it. This choice allows the calling solver to use their own internal routines to handle the rotations between the global and material frames.

However, the generic interface also generates helper functions which can perform those rotations. Those functions are named as follows:

They all take three arguments:

In place rotations is explicitly allowed, i.e. the first and second arguments can be a pointer to the same location.

The three previous functions works for an integration point. Three other functions are also generated:

Those functions takes an additional arguments which is the number of integration points to be treated.

Finite strain behaviours

As devised in Section 1.3, finite strain behaviours are a special case, because the returned stress measure and the returned tangent operator can be chosen at runtime time. A specific rotation function is generated for each supported stress measure and each supported tangent operator.

Here is the list of the generated functions: