1/*!
2 * \file   implicitnorton-planestress2.mtest
3 * \brief
4 * \author Helfer Thomas
5 * \brief  14 oct. 2013
6 */
7
8@Description{
9  "Test the generic plane stress"
10  "algorithm of the umat interface."
11  "This is much less efficient than"
12  "directly supporting plane stress"
13  "within the behaviour."
14 };
15
16@ModellingHypothesis 'PlaneStress';
17@Behaviour<umat> '@MFrontCastemBehavioursBuildPath@' 'umatimplicitnorton2';
18
19@MaximumNumberOfSubSteps   1;
20@AccelerationAlgorithm 'AlternateSecant';
21@StressEpsilon 1.;
22
23@MaterialProperty<constant> 'YoungModulus'     150.e9;
24@MaterialProperty<constant> 'PoissonRatio'       0.3;
25
26@Real 'srr' 20.e6;
27@ImposedStress 'SXX' 'srr';
28// Initial value of the elastic strain
29@Real 'EELXX0' 0.00013333333333333333;
30@Real 'EELZZ0' -0.00004;
31@InternalStateVariable 'ElasticStrain' {'EELXX0','EELZZ0','EELZZ0',0.};
32@InternalStateVariable 'AxialStrain'   'EELZZ0';
33// Initial value of the total strain
34@Strain {'EELXX0','EELZZ0',0.,0.};
35// Initial value of the stresses
36@Stress {'srr',0.,0.,0.};
37
38@ExternalStateVariable 'Temperature' 293.15;
39
40@Times {0.,3600 in 20};
41
42// tests on strains
43// note: EquivalentViscoplasticStrain is known at 1.e-12 (defaut value
44// for @StrainEpsilon), thus we may expect the strain to be known at
45// '3.6*1.e-9'. If pratice, things are a bit better but not much
46// better.
47@Real 'A' 8.e-67;
48@Real 'E' 8.2;
49@Test<function> 'EXX' 'EELXX0+A*SXX**E*t'     1.e-9;
50@Test<function> 'EYY' 'EELZZ0-0.5*A*SXX**E*t' 1.e-10;
51@Test<function> 'EZZ' '0.'                            1.e-10;
52@Test<function> 'AxialStrain' 'EELZZ0-0.5*A*SXX**E*t' 1.e-10;
53@Test<function> 'EXY' '0.'                            1.e-10;
54// tests on internal state variables
55@Test<function> 'ElasticStrainXX' 'EELXX0'                  1.e-12;
56@Test<function> 'ElasticStrainYY' 'EELZZ0'                  1.e-12;
57@Test<function> 'ElasticStrainZZ' 'EELZZ0'                  1.e-12;
58@Test<function> 'ElasticStrainXY' '0.'                      1.e-12;
59@Test<function> 'EquivalentViscoplasticStrain[0]' 'A*SXX**E*t/2' 1.e-10;
60@Test<function> 'EquivalentViscoplasticStrain[1]' 'A*SXX**E*t/2' 1.e-10;
61// check that the mechanical equilibrium is satisfied
62@Test<function> 'SZZ' '0.'      1.;
63@Test<function> 'SYY' '0.'      1.;
64@Test<function> 'SXY' '0.'      1.;
65