TFEL
, MFront
and MTest
MFront
MTest
amitex
interface in MTest
The page describes the new functionalities of Version 3.4.3 of the
TFEL
project.
This version was released on October 26, 2021 along with
TFEL-3.0.10
, TFEL-3.1.10
,
TFEL-3.2.7
and TFEL-3.3.3
and inherits from
the issues fixed in those releases.
MFront
Point-wise models computes the evolution of a set of state variables as a function of the evolution of some external state variables. Examples of point-wise models of current usage are phase transitions, swelling models due to irradiations products, etc…
In previous versions, point-wise models were only handled by a
dedicated domain specific language called Model
. This DSLs
has its own convention, which makes it inhomogeneous with the other
DSLs, and is acknowledgly much less powerful than DSLs associated with
behaviours.
Point-wise models mostly differs from behaviours du to the fact that
they don’t have no gradients and associated thermodynamic forces and do
not compute any consistent tangent operator. This difference was very
important in early versions of MFront
which only supported
small and finite strain behaviours.
With the support of generic behaviours introduced in version 3.3 and extended in Version 3.4,this difference appears less important and point-wise models can be seen as a particular case of generic beahviours without gradient (and no conjugated thermodynamic force) and tangent operator blocks.
Version 3.4.3 introduces three new domains specific languages called
respectively DefaultModel
, RungeKuttaModel
and
ImplicitModel
based on this idea. Those DSLs mostly differ
from their counterparts dedicated to generic behaviour by:
@Model
keyword and not @Behaviour
.Let us consider the following ordinary differential equation:
\[ \dot{x}=-A\,x \qquad{(1)}\]
where \(A\) is a positive constant. The solution of this ordinary differential equation is an exponential decay of \(x\):
\[ x\left(t\right)=x_{0}\exp\left(-A\,x\right) \]
A numerical resolution of this equation using the
RungeKuttaModel
can be implemented as follows:
@DSL RungeKuttaModelDSL;
@Model ode_rk54;
@Author Thomas Helfer;
@Date 21 / 09 / 2021;
@Epsilon 1.e-11;
@StateVariable real x;
@Parameter frequency A = 1.2;
@Derivative {
= -A * x;
dx }
Three examples are available in the
mfront/tests/behaviours
directory:
ode_rk54
, which contains the previous
implementation.ode_implicit
, which shows how to solve the Ordinary
Differential Equation (1) using an implicit scheme.ode_default
, which shows how to solve the Ordinary
Differential Equation (1) using the Default DSL.MTest
Following Section 1.1, MTest
now supports point-wise
models, i.e. generic behaviours without gradient, thermodynamic force
nor tangent operator block.
The @Model
can be used in place of
@Behaviour
to declare the point-wise model. This only
difference with @Behaviour
is that MTest
checks that no gradient, thermodynamic force nor tangent operator block
is declared.
The following example can be used to integrate the odinary differential equation presented in Section 1.1.1:
@Author Thomas Helfer;
@Date 21/09/2021;
@ModellingHypothesis "Tridimensional";
@Model<generic> "src/libBehaviour.so" "ode_rk54";
// internal state variable initialisations
@InternalStateVariable "x" 1;
// external state variable
@ExternalStateVariable "Temperature" 293.15;
@Times {0, 1 in 10};
The Figure 1 compares the results obtained with the implementation of the model presented in Section 1.1.1 with all the DSLs dedicated to piont-wise models.
amitex
interfaceBehaviours created using the amitex
interface can now be
tested with MTest
. See Issue #13.
amitex
interface in MTest
For more details, see https://github.com/thelfer/tfel/issues/13.
The developments associated with this Issue are documented in Section 2.1.
For more details, see https://github.com/thelfer/tfel/issues/12.
The developments associated with this Issue are documented in Section 1.1.
For more details, see https://github.com/thelfer/tfel/issues/11.