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