1% MTest: unit mechanical behaviour testing
2% Helfer Thomas; Jean-Michel Proix
3% August 19, 2014
4
5# Overview
6
7`MFront` comes with an handy easy-to-use tool called `MTest`. This
8tool handles two types of computations:
9
10- The description of a single material point.
11- The description of a pipe, submitted to variaous kinds of loadings.
12
13From various benchmarcks, this tool has been found much faster (from
14ten to several hundred times depending on the test case) than using a
15full-fledged finite element solver such as `Cast3M` or `Code_Aster`.
16
17The `mtest` python module, described [here](mtest-python.html), allows
18much finer control of the computations.
19
20# Usage
21
22MTest can be used from the command line as follows:
23
24~~~~{.bash}
25$ mtest [options] inputfile
26~~~~
27
28If the input file has the `ptest` extension, `MTest` will assume that
29the input files describes a test on a pipe. Otherwise, a test on a
30material point is assumed.
31
32This can be changed by using the `--scheme` option that currently
33accept two values:
34
35- `--scheme=mtest` to specify that the simulation of a single material
36  point is intended.
37- `--scheme=ptest` to specify that the simulation of a pipe is
38  intended.
39
40## Getting help
41
42### The `--help-keywords-list` command line option
43
44The list of available keywords are available thanks to the
45`--help-keywords-list` option. By default, this command describes the
46list of keywords associated with the simulation of a single material
47point.  To see the keywords associated with the simulation of a pipe,
48use `--scheme=ptest` option *before* the `--help-keywords-list`
49option.
50
51### The `--help-keyword` option
52
53The `--help-keyword` displays the help associated with a keyword. If
54this keyword is specific to the simulation of a pipe, use
55`--scheme=ptest` option *before* the `--help-keyword` option.
56
57# Material point
58
59`MTest` can test the local behaviour of a material, by imposing
60independent constraints on each component of the driving variables (or
61deformation gradient or or the stress. It equivalent to the
62`SIMU_POINT_MAT` operator available within the `Code-Aster` finite
63element solver [@edf_macro-commande_2013] or to the `SiDoLo` software
64[@pilvin_sidolo_2003].
65
66`MTest` can be used to model various experiments, as far as a stage
67implying strain localisation is not reached: tensile, compressive or
68shear tests driven by stresses or deformations, pipe loaded by
69internal or external pressure, \nom{Satoh} test, etc.
70
71`MTest` generates a text file containing the evolution of the strains
72(for small strains behaviours), the stresses an the state variables
73during the loading history. Other `MTest` functionalities include:
74
75- the ability to test all the behaviours handled by `MFront` (small
76  strain and finite strain behaviours, cohesive zone models);
77-  the ability to test isotropic and orthotropic behaviours;
78-  the support of various modelling hypotheses, notably the plane
79  stress and axisymmetric generalised imposed plane stress
80  hypotheses;
81-  many features to evaluate the numerical performances of
82  mechanical behaviours. For example, user can compare the computed
83  tangent consistent operator to a numerical approximation;
84- a C++ library and a Python interface
85  [@von_rossum_python_2007]. `MTest` can be embedded in general purpose
86  scientific environment to fit behaviour parameters against
87  experimental data. In particular, `MTest` can be used in ADAO
88  [@salome_adao_2014], a module for Data Assimilation and Optimization
89  of the Salome platform [@salome_open_2014];
90- comparison of the results (strains, stresses, internal state
91  variables) to reference or analytical results. `MTest` automatically
92  generates XML file using the [JUnit](http://junit.org) format. Those
93  files can be used for reporting using the
94  [Jenkins continuous integration application](http://jenkins-ci.org/)
95  This functionality is central in the assurance quality procedure of
96  `MFront`.
97
98Through an appropriate option, a behaviour implementation generated
99through `MFront` may create an `MTest` file in case of integration
100failure: this `MTest` file only describe the failed time step with
101the appropriate initial conditions. This feature is particularly
102useful to analyse the failure of large simulations which may happen
103after several hours of computations.
104
105## Example
106
107~~~~ {#MTestPlasticity .cpp .numberLines}
108@Behaviour<aster> 'src/libAsterBehaviour.so' 'asterplasticity';
109@MaterialProperty<constant> 'YoungModulus'     150.e9;
110@MaterialProperty<constant> 'PoissonRatio'       0.3;
111@MaterialProperty<constant> 'H'                100.e9;
112@MaterialProperty<constant> 's0'               100.e6;
113@ExternalStateVariable 'Temperature' {0:293.15,3600.:800};
114@ImposedStrain<function> 'EXX' '1.e-3*t';
115@Times {0.,1 in 20};
116~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
117
118# Simulation of a pipe
119
120`MTest`
121
122# References
123
124<!-- Local IspellDict: english -->
125