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