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