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