1 Known incompatibilities

When compiling with option TFEL_APPEND_VERSION set to ON or when defining the string variable TFEL_VERSION_FLAVOUR, the python modules are now modified to reflect those information. This old behaviour can be restored by setting the unversioned-python-module-names option to ON.

2 New features in the TFEL libraries

2.1 Environment

This version now supports a new environment variable to specify the TFEL installation directory that always supersedes the TFELHOME environment variable. The name of this variable depends on the version of the project, the fact that a development version has been compiled and the flavour (optionally specified with the cmake variable TFEL_VERSION_FLAVOUR). The name of this variable can be retrieved with the --tfel-home option of tfel-config described below.

2.2 tfel-config

2.2.1 --registry-key option

On Windows, the --registry-key option returns the registry key which is used to determine the TFEL’s installation path.

2.2.2 --tfel-home option

The --tfel-home option returns the environment variable in which the TFEL’s installation path shall be defined.

2.2.2.1 Example of usage

$ tfel-config-5.2.0-dev-release --tfel-home
TFELHOME_5_2_0_dev_release

2.2.3 --python-module-suffix option

This option return the suffix of the python module. Such suffix is not empty only the following conditions are met:

The option --python-module-suffix is only available if the python bindings is available.

2.2.4 --config

This option requests flags associated with the TFELConfig library.

2.2.5 --mfront-log-stream

This option requests flags associated with the MFrontLogStream library.

2.2.6 --mfront

This option requests flags associated with the TFELMFront library.

2.2.7 --mtest

This option requests flags associated with the TFELMTest library.

2.2.7.1 Example of usage

$ tfel-config-5.1.0-release --python-module-suffix
5_1_0_release

2.3 Python bindings

Python bindings are now generated using the pybind11 library.

3 New features in MFront

This version introduces the following main features in MFront:

3.1 Warnings

Many warnings have been added to detect potential misuses of MFront or known bad practices.

3.1.1 Activating and desactivating warnings

Reporting warnings is activated by default and can be disabled by passing the command line argument --report-warnings=false to MFront.

Warnings are associated with keywords and code blocks. Warnings can be disabled by appending the safe option to them. For instance, in an implicit DSL, specifying a convergence threshold greater than \(10^{-10}\) is considered to loose in most cases and thus triggers a warning. This warning can be disabled as follows:

@Epsilon<safe> 1;

This safe option can be ignored by passing the --ignore-safe command line argument to MFront. This argument is useful when analysing an existing file (written by another person) to question implementation choices.

3.1.2 Warnings added to all DSLs

3.1.3 Warnings added to isotropic DSLs

A warning is reported if the implementation of the flow rule(s) contains:

3.1.4 Warnings added to implicit DSLs

3.2 Calling an external behaviour: the @BehaviourVariable keyword

@BehaviourVariable first_phase_plastic_behaviour {
  file: "Plasticity.mfront",
  variables_suffix: "1",
  external_names_prefix: "FirstPhase",
  store_gradients: true,
  store_thermodynamic_forces: true,
  shared_material_properties: {".+"},
  shared_external_state_variables: {".+"}
};

3.3 New command line arguments

The following command line arguments are now supported:

4 New features in mfront-query

4.1 New command line arguments

The following command line arguments are now supported:

4.2 New keywords

4.2.1 @TFELLibraries

The @TFELLibraries keyword let the user specify TFEL libraries to link with. This keyword must be followed by an array of strings.

The following libraries are available: Config, Exception, Glossary, Tests, UnicodeSupport, Utilities, System, Math, MathCubicSpline, MathKriging, MathParser, NUMODIS, Material, MFront, MTest.

4.2.1.1 Example of usage

@TFELLibraries {"MathParser"};

5 Issues fixed

5.1 Issue 685: [tfel-config] Add support for TFELConfig, TFELMFront and TFELMTest

This feature is described in Section 2.2.

For more details, see https://github.com/thelfer/tfel/issues/685

For more details, see https://github.com/thelfer/tfel/issues/684

5.3 Issue 683: Using TFEL librairies in material properties

For more details, see https://github.com/thelfer/tfel/issues/683

5.4 Issue 677:[tfel-config] add a python-module-suffix option

For more details, see https://github.com/thelfer/tfel/issues/677

5.5 Issue 676: Always prefer the versioned TFELHOME environment variable

For more details, see https://github.com/thelfer/tfel/issues/676

5.6 Issue 674: [python-bindings] Add option to disable the modication of the names of python modules by the TFEL_APPEND_VERSION and TFEL_VERSION_FLAVOUR

For more details, see https://github.com/thelfer/tfel/issues/674

5.7 Issue 673: [tfel-config] Add the ability to define an environment variable associated with the TFEL’s version and flavour

For more details, see https://github.com/thelfer/tfel/issues/673

5.8 Issue 672: python bindings fix python modules names when TFEL_APPEND_VERSION or TFEL_VERSION_FLAVOUR is defined

For more details, see https://github.com/thelfer/tfel/issues/672

5.9 Issue 667: Reduce the size of files paths in sources to fit in Windows’s MAX_PATH limit

For more details, see https://github.com/thelfer/tfel/issues/667

5.10 Issue 666: [doc] Add CONTRIBUTING file, remove devel.md

For more details, see https://github.com/thelfer/tfel/issues/666

5.11 Issue 654: Add PowerShell environment script

For more details, see https://github.com/thelfer/tfel/issues/654

5.12 Issue 294: [python-bindings] Evaluate port to pybind

For more details, see https://github.com/thelfer/tfel/issues/293