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 {
dx = -A * x; }
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.