next up previous contents
Next: DAMAGE ELASTOPLASTIC MODELS Up: BEHAVIOUR LAWS Previous: Test zeril1 Description

Test preston1 Description sheet

Test name
preston1

Calculation type
ISOTROPIC ELASTOPLASTIC MECHANICS
Finite element type
CUB8

Topic
Preston Tonks Wallace model

The structure is a beam embedded at the lower and upper surface. It is subjected to tensile strength (imposed displacements) at the end. The beam follows an elastoplastic law according to the Preston-Tonks-Wallace model.

Goal
Test the Preston Tonks Wallace model for BCC 3 structure.

Version
97' customer release

Model description

*        Test Preston1.dgibi: Jeux de données         *
*        ------------------------------------         *
*                                                     *
complet = faux;
*
*************************************************
*  pour calcul complet mettre complet à : vrai;
*************************************************
**************************************************
*                                                *  
*  TEST DE VALIDATION D'UNE LOI DE COMPORTEMENT  *  
*  --------------------------------------------  * 
*              DE MATERIAU                       * 
*              -----------                       *   
*                                                *  
*  LOI DE COMPORTEMENT DE:                       * 
*   PRESTON TONKS WALLACE                        * 
*   CAS CUBIQUE CENTRE ( C.C. )                  *  
*                                                *  
*  MAILLAGE:                                     *  
*   UNE BARRE DE SECTION CARREE                  * 
*   LONGUEUR L=.5 M                              *  
*   LARGEUR  l=.001 M                            * 
*                                                *  
*  CHARGEMENT:                                   * 
*   ESSAI DE TRACTION                            * 
*   DEPLACEMENTS IMPOSES                         * 
*                                                * 
**************************************************  
* 
opti echo 0 dime 3 elem cub8 ; 
*  
*  
*  Maillage 
*  
l1 = .5 ; 
l2 = .001 ; 
l3 = .001 ;  
n1 = 50 ; 
n2 = 1 ; 
n3 = 1 ; 
p1 = 0. 0. 0. ; 
p2 = l1 0. 0. ; 
p3 = l1 l2 0. ; 
p4 = 0. l2 0. ; 
p5 = 0. 0. l3 ; 
p6 = l1 0. l3 ; 
p7 = l1 l2 l3 ; 
p8 = 0. l2 l3 ; 
d1 = d p1 n3 p5 ; 
d2 = d p5 n2 p8 ; 
d3 = d p8 n3 p4 ; 
d4 = d p4 n2 p1 ; 
sur1 = 'DALL' d1 d2 d3 d4 ; 
d5 = d p2 n3 p6 ; 
d6 = d p6 n2 p7 ;  
d7 = d p7 n3 p3 ; 
d8 = d p3 n2 p2 ; 
sur2 = 'DALL' d5 d6 d7 d8 ; 
vol1 = sur1 'VOLU' n1 sur2 ;    
*  
*    Modele de calcul 
* 
mod0 = 'MODE' vol1 'MECANIQUE' 'ELASTIQUE' 'ISOTROPE' 
       'PLASTIQUE' 'PRESTON' ; 
mat0 = 'MATE' mod0 'YOUN' 2.1E11 'NU' 0.3  
       'RHO' 7.8E3 'TAU' 0.025 
       'P' 0. 'S0' 0.0085 'SINF' 0.00055  
       'K' 0. 'G' 0.00001   
       'Y0' 0.0001 'YINF' 0.0001 'Y1' 0.094 'Y2' 0.575   
       'BETA' 0.25 'GP' 3.00 'GT' 0. 'MU' 1.97 
       'TMO' 1220. ;
*  
*    Conditions aux limites 
*  
cl1 = 'BLOQ' sur1 'UX' ; 
cl2 = 'BLOQ' sur2 'UX' ; 
cl3 = 'BLOQ' p1 'UX' 'UY' 'UZ' ;  
cl4 = 'BLOQ' p5 'UX' 'UY' ; 
cl0 = cl1 'ET' cl2 'ET' cl3 'ET' cl4 ;  
*  
*    Chargement 
*  
dep1 = 'DEPI' cl2 .1 ; 
ev0 = 'EVOL' 'MANU' temps ( 'PROG' 0. 5.E-4 ) y 
      ( 'PROG' 0. 1. ) ; 
cha0 = 'CHAR' 'DIMP' dep1 ev0 ; 
*  
*  Temps du calcul  
*  
dt0 = 1.E-5 ; 
si complet;
tfin0 = 5.E-4 ;
sinon; 
tfin0 = 4.e-5;
finsi;  
*   
*   
*  Resolution par PASAPAS  
*---------------------------------------
*    
ta1 = 'TABLE' ; 
ta1 .'MODELE' = mod0 ; 
ta1 .'CARACTERISTIQUES' = mat0 ; 
ta1 .'BLOCAGES_MECANIQUES' = cl0 ; 
ta1 .'CHARGEMENT' = cha0 ; 
*ta1 .'PRECISION' = 1.E-8 ; 
ta1 .'TEMPS_CALCULES' = 'PROG' 0. 'PAS' dt0 tfin0 ; 
*  
PASAPAS ta1 ; 
*  
*  
*  Post-traitement 
*-----------------------------------------
* 
sig_3dy = 'PROG' 0. ; 
sig_3dz = 'PROG' 0. ; 
sigx1 = 'PROG' 0. ; 
sigx2 = 'PROG' 0. ; 
depx1 = 'PROG' 0. ;  
depx2 = 'PROG' 0. ; 
sig_1 = 'PROG' 0. ; 
def_1 = 'PROG' 0. ;   
epsp1 = 'PROG' 0. ; 
err1 = 'PROG' 0. ;  
err2 = 'PROG' 0. ; 
sig1 = 'PROG' 0. ; 
temp1 = 'PROG' 0. ; 
epst1 = 'PROG' 0. ;  
dim0 = 'DIME' ta1 .'TEMPS' - 1 ; 
mod0 = ta1 .'MODELE' ;  
YOUNG0 = 'EXCO' mat0 'YOUNG' 'SCAL' ;
YOUNG1 = 'MAXI' YOUNG0 ;
XNU0 = 'EXCO' mat0 'NU' 'SCAL' ; 
XNU1 = 'MAXI' XNU0 ; 
RHO0 = 'MAXI' ( 'EXCO' mat0 'RHO' 'SCAL' ) ; 
TAU0 = 'EXCO' mat0 'TAU' 'SCAL' ; 
TAU1 = 'MAXI' TAU0 ; 
P1 = 'EXCO' mat0 'P' 'SCAL' ; 
P11 = 'MAXI' P1 ;   
S0 = 'EXCO' mat0 'S0' 'SCAL' ; 
S01 = 'MAXI' S0 ; 
SINF0 = 'EXCO' mat0 'SINF' 'SCAL' ; 
SINF1 = 'MAXI' SINF0 ; 
K0 = 'EXCO' mat0 'K' 'SCAL' ; 
K1 = 'MAXI' K0 ; 
G0 = 'EXCO' mat0 'G' 'SCAL' ; 
G1 = 'MAXI' G0 ; 
Y00 = 'EXCO' mat0 'Y0' 'SCAL' ; 
Y01 = 'MAXI' Y00 ; 
YINF0 = 'EXCO' mat0 'YINF' 'SCAL' ; 
YINF1 = 'MAXI' YINF0 ; 
Y10 = 'EXCO' mat0 'Y1' 'SCAL' ; 
Y11 = 'MAXI' Y10 ; 
Y20 = 'EXCO' mat0 'Y2' 'SCAL' ; 
Y21 = 'MAXI' Y20 ;  
BETA0 = 'EXCO' mat0 'BETA' 'SCAL' ; 
BETA1 = 'MAXI' BETA0 ; 
GP0 = 'EXTR' ( 'EXCO' mat0 'GP' 'SCAL' ) 'SCAL' 1 1 1 ;
GT0 = 'EXTR' ( 'EXCO' mat0 'GT' 'SCAL' ) 'SCAL' 1 1 1 ;
A1 = 2. * ( 1. + XNU1 ) ;
B1 = A1 / ( 3. * ( 1. - ( 2. * XNU1 ) ) ) ; 
'REPETER' bloc1 dim0 ; 
  i1 = &bloc1 ; 
  depl0 = ta1 .'DEPLACEMENTS'.i1 ; 
  temp0 = ta1 .'TEMPS'.i1 ; 
  temp1 = temp1 'ET' ( 'PROG' temp0 ) ; 
  dex1 = 'EXCO' depl0 'UX' 'SCAL' ; 
  dex0 = 'EXCO' ta1 .'DEPLACEMENTS'.( i1 - 1 ) 
         'UX' 'SCAL' ;  
  reac0 = ta1 .'REACTIONS'.i1 ; 
  reac1 = 'MAXI' ( 'EXCO' reac0 'FX' 'SCAL' ) ; 
  dep0 = 'MAXI' dex0 ; 
  dep1 = 'MAXI' dex1 ; 
  eps1 = 'EPSI' mod0 depl0 ; 
  epsx1 = 'EXCO' eps1 'EPXX' 'SCAL' ; 
  epsy1 = 'EXCO' eps1 'EPYY' 'SCAL' ; 
  epsz1 = 'EXCO' eps1 'EPZZ' 'SCAL' ;  
  treps0 = 'MAXI' ( epsx1 + epsy1 + epsz1 ) ; 
  epsx10 = 'MAXI' epsx1 ; 
  sigm0 = ta1 .'CONTRAINTES'.i1 ; 
  depeq0 = ta1 .'VARIABLES_INTERNES'.i1 ;  
  def0 = ta1 .'DEFORMATIONS_INELASTIQUES'.i1 ;  
  t1 = ta1 .'TEMPS'.i1 ; 
  t0 = ta1 .'TEMPS'.(i1 - 1) ; 
  dt0 = t1 - t0 ;  
  dt0 = 0. ;  
  'SI' ( ( 'ABS' dt0 ) < 1.E-10 ) ;  
     deps0 = 0. ; 
  'SINON' ;  
     deps0 = ( dep1 - dep0 ) / ( dt0 * l1 ) ;  
  'FINSI' ; 
*
  sigx0 = 'MAXI' ( 'VMIS' mod0 sigm0 ) ;     
  sigx00 = 'MINI' ( 'VMIS' mod0 sigm0 ) ; 
  depx0 = 'MAXI' ( 'EXCO' depeq0 'EPSE' 'SCAL' ) ;   
  depx00 = 'MINI' ( 'EXCO' depeq0 'EPSE' 'SCAL' ) ;  
  sig_00 = 'EXCO' sigm0 'SMXX' 'SCAL' ; 
  sig_0 = 'MAXI' sig_00 ;    
  eps_el0 = sig_0 / YOUNG1 ; 
  sig_y = 'MAXI' ( 'EXCO' sigm0 'SMYY' 'SCAL' ) ; 
  sig_z = 'MAXI' ( 'EXCO' sigm0 'SMZZ' 'SCAL' ) ;  
  def_00 = 'EXCO' def0 'EIXX' ; 
  def_0 = 'MAXI' def_00 ; 
  def1 = 'MAXI' ( 'EXCO' def0 'EIXX' ) ; 
  def2 = 'MAXI' ( 'EXCO' def0 'EIYY' ) ; 
  def3 = 'MAXI' ( 'EXCO' def0 'EIZZ' ) ; 
  def4 = 'MAXI' ( 'EXCO' def0 'GIXY' ) ; 
  def5 = 'MAXI' ( 'EXCO' def0 'GIXZ' ) ; 
  def6 = 'MAXI' ( 'EXCO' def0 'GIYZ' ) ; 
  defp1 = ( def1 * def1 ) + ( def2 * def2 ) + 
          ( def3 * def3 ) ; 
  defp1 = defp1 - ( def1 * def2 ) - ( def2 * def3 ) - 
          ( def1 * def3 ) ; 
  defp2 = ( def4 * def4 ) + ( def5 * def5 ) + 
          ( def6 * def6 ) ; 
  defp0 = defp1 + ( 3. * defp2 ) ; 
  defp0 = ( defp0 ** .5 ) * 2. / 3. ;  
  sigx1 = sigx1 'ET' ( 'PROG' sigx0 ) ; 
  sigx2 = sigx2 'ET' ( 'PROG' sigx00 ) ;  
  depx1 = depx1 'ET' ( 'PROG' depx0 ) ;  
  depx2 = depx2 'ET' ( 'PROG' depx00 ) ; 
  sig_1 = sig_1 'ET' ( 'PROG' sig_0 ) ; 
  def_1 = def_1 'ET' ( 'PROG' def_0 ) ;    
  sig_3dy = sig_3dy 'ET' ( 'PROG' ( sig_y / sig_0 ) ) ;  
  sig_3dz = sig_3dz 'ET' ( 'PROG' ( sig_y / sig_0 ) ) ;  
  epst1 = epst1 'ET' ( 'PROG' epsx10 ) ; 
*  
*  Densite RHO1 
* 
  RHO1 = RHO0 / ( 1. + treps0 ) ; 
  eta = RHO1 / RHO0 ; 
* 
*  Module de cisaillement G00 
* 
  G00 = YOUNG1 / ( 2. * ( 1. + XNU1 ) ) ; 
*  
*  Pulsation de Debye W0 
*  
  W0 = ( G00 / RHO1 ) ** ( .5 ) ; 
  DTETA0 = ( 4. / 3.1416 ) ** ( .5 ) ; 
  DTETA0 = DTETA0 * W0 / 6. ; 
  DTETA0 = deps0 / DTETA0 ; 
*  
*  Contrainte de saturation  
*  
  'SI' ( ( 'ABS' dt0 ) < 1.E-10 ) ;
     YS1 = SINF1 ;
  'SINON' ;
     YS1 = 'ERF' ( K1 * ( 'LOG' ( G1 / DTETA0 ) ) ) ;  
     YS1 = S01 - ( ( S01 - SINF1 ) * YS1 ) ;
  'FINSI' ; 
  YS2 = S01 * ( ( DTETA0 / G1 ) ** ( BETA1 ) ) ; 
  YS0 = ( 'ABS' ( YS1 - YS2 ) ) + YS1 + YS2 ; 
  YS0 = YS0 / 2. ; 
*  
*  Limite d'élasticité  
*  
  'SI' ( ( 'ABS' dt0 ) < 1.E-10 ) ;
     YL1 = YINF1 ;
  'SINON' ;
     YL1 = 'ERF' ( K1 * ( 'LOG' ( G1 / DTETA0 ) ) ) ;
     YL1 = Y01 - ( ( Y01 - YINF1 ) * YL1 ) ;
  'FINSI' ; 
  YL2 = Y11 * ( ( DTETA0 / G1 ) ** ( Y21 ) ) ;  
  YL3 = ( 'ABS' ( YL2 - YS2 ) ) - YL2 - YS2 ; 
  YL3 = -1. * YL3 / 2. ; 
  YL0 = ( 'ABS' ( YL1 - YL3 ) ) + YL1 + YL3 ; 
  YL0 = YL0 / 2. ; 
*  
  'SI' ( sig_0 '>' ( YL0 * G00 ) ) ; 
* 
*  Materiau C.C.  
*  
  'SI' ( P11 'EGA' 0. ) ;  
*  
        x0 = 0. ; 
        x2 = x0 ; 
        tr1 = treps0 - ( A1 * ( epsx10 - x2 ) / 
              ( 3. * B1 ) ) ;
        tr1 = tr1 / 3. ;
        y2 = 'EXP' ( -1. * TAU1 * ( x2 - tr1 ) / 
             ( YS0 - YL0 ) ) ; 
        y2 = YS0 - ( ( YS0 - YL0 ) * y2 ) ;  
        y2 = y2 * G00 ; 
        y2 = y2 + ( YOUNG1 * x2 ) ; 
        y2 = y2 - ( YOUNG1 * epsx10 ) ; 
*  
        x1 = epsx10 ;
        x2 = x1 ;
        tr1 = treps0 - ( A1 * ( epsx10 - x2 ) / 
              ( 3. * B1 ) ) ;
        tr1 = tr1 / 3. ;
        y2 = 'EXP' ( -1. * TAU1 * ( x2 - tr1 ) / 
             ( YS0 - YL0 ) ) ; 
        y2 = YS0 - ( ( YS0 - YL0 ) * y2 ) ;  
        y2 = y2 * G00 ; 
        y2 = y2 + ( YOUNG1 * x2 ) ;
        y2 = y2 - ( YOUNG1 * epsx10 ) ;
*  
        'REPETER' bloc2 ; 
        x2 = ( x1 + x0 ) / 2. ; 
        tr1 = treps0 - ( A1 * ( epsx10 - x2 ) / 
              ( 3. * B1 ) ) ;
        tr1 = tr1 / 3. ;
        y2 = 'EXP' ( -1. * TAU1 * ( x2 - tr1 ) / 
             ( YS0 - YL0 ) ) ; 
        y2 = YS0 - ( ( YS0 - YL0 ) * y2 ) ;
        y2 = y2 * G00 ; 
        y2 = y2 + ( YOUNG1 * x2 ) ;
        y2 = y2 - ( YOUNG1 * epsx10 ) ; 
* 
          'SI' ( y2 > 1.E-5 ) ;
              x1 = x2 ;
          'SINON' ;
            'SI' ( y2 <  -1.E-5 ) ;
              x0 = x2 ;
            'SINON' ;
              epsp0 = x2 ;
              epsp1 = epsp1 'ET' ( 'PROG' epsp0 ) ;
              den0 = A1 * GP0 * ( epsx10 - x2 ) / 3. ;
              den0 = den0 / ( eta ** ( 1. / 3. ) ) ;
              sup0 = A1 * ( G00 + GT0 ) * 
                     ( epsx10 - x2 ) ;
              sig0 = sup0 / ( 1. + den0 ) ; 
              sig1 = sig1 'ET' ( 'PROG' sig0 ) ;
              'QUITTER' bloc2 ;
            'FINSI' ;
          'FINSI' ; 
       'FIN' bloc2 ; 
*  
  'SINON' ;  
*
*  autres materiaux   
*  
       x0 = 0. ; 
       x2 = x0 ; 
       ex0 = P11 * ( YS0 - YL0 ) / ( S01 - YL0 ) ; 
       ex1 = ( S01 - YL0 ) * ( ( 'EXP' ex0 ) - 1. ) ; 
       tr1 = treps0 - ( A1 * ( epsx10 - x2 ) / 
             ( 3. * B1 ) ) ;
       tr1 = tr1 / 3. ;
       y2 = 'EXP' ( -1. * P11 * TAU1 * 
            ( x2 - tr1 ) / ex1 ) ; 
       y2 = ( 1. -  ( 'EXP' ( -1. * ex0 ) ) ) * y2 ; 
       y2 = 'LOG' ( 1. - y2 ) ; 
       y2 = ( ( S01 - YL0 ) * y2 / P11 ) + YS0 ;  
       y2 = y2 * G00 ; 
       y2 = y2 + ( YOUNG1 * x2 ) ; 
       y2 = y2 - ( YOUNG1 * epsx10 ) ; 
       y0 = y2 ; 
*  
       x1 = epsx10 ; 
       x2 = x1 ; 
       tr1 = treps0 - ( A1 * ( epsx10 - x2 ) / 
             ( 3. * B1 ) ) ;
       tr1 = tr1 / 3. ;
       y2 = 'EXP' ( -1. * P11 * TAU1 * 
            ( x2 - tr1 ) / ex1 ) ; 
       y2 = ( 1. -  ( 'EXP' ( -1. * ex0 ) ) ) * y2 ; 
       y2 = 'LOG' ( 1. - y2 ) ; 
       y2 = ( ( S01 - YL0 ) * y2 / P11 ) + YS0 ; 
       y2 = y2 * G00 ; 
       y2 = y2 + ( YOUNG1 * x2 ) ; 
       y2 = y2 - ( YOUNG1 * epsx10 ) ; 
       y1 = y2 ; 
*  
       'REPETER' bloc2 ; 
       x2 = ( x0 + x1 ) / 2. ; 
       tr1 = treps0 - ( A1 * ( epsx10 - x2 ) / 
             ( 3. * B1 ) ) ;
       tr1 = tr1 / 3. ;
       y2 = 'EXP' ( -1. * P11 * TAU1 * 
            ( x2 - tr1 ) / ex1 ) ; 
       y2 = ( 1. -  ( 'EXP' ( -1. *  ex0 ) ) ) * y2 ; 
       y2 = 'LOG' ( 1. - y2 ) ; 
       y2 = ( ( S01 - YL0 ) * y2 / P11 ) + YS0 ; 
       y2 = y2 * G00 ;  
       y2 = y2 + ( YOUNG1 * x2 ) ; 
       y2 = y2 - ( YOUNG1 * epsx10 ) ; 
* 
          'SI' ( y2 > ( 1.E-8 * ( 'ABS' ( y1 - y0 ))));
              x1 = x2 ;
          'SINON' ;
            'SI' (y2 < ( -1.E-8 * ('ABS'( y0 - y1 ))));
              x0 = x2 ;
            'SINON' ;
              epsp0 = x2 ;
              epsp1 = epsp1 'ET' ( 'PROG' epsp0 ) ;
              den0 = A1 * GP0 * ( epsx10 - x2 ) / 3. ;
              den0 = den0 / ( eta ** ( 1. / 3. ) ) ;
              sup0 = A1 * ( G00 + GT0 ) * 
                     ( epsx10 - x2 ) ;
              sig0 = sup0 / ( 1. + den0 ) ;  
              sig1 = sig1 'ET' ( 'PROG' sig0 ) ;
              'QUITTER' bloc2 ;
            'FINSI' ;
          'FINSI' ;
       'FIN' bloc2 ;
  'FINSI' ; 
*
  'SINON' ;  
        epsp0 = 0. ; 
        epsp1 = epsp1 'ET' ( 'PROG' epsp0 ) ; 
        sig0 = sig_0 ; 
        sig1 = sig1 'ET' ( 'PROG' sig0 ) ;    
  'FINSI' ;  
* 
  err_s0 = 'ABS' ( sig0 - sig_0 ) ;  
  err_s0 = err_s0 / sig0 ;  
  err_s0 = err_s0 * 100. ;   
  err1 = err1 'ET' ( 'PROG' err_s0 ) ; 
  err_e0 = 'ABS' ( epsp0 -  def_0 ) ; 
  'SI' (def_0 '>' ( 1.E-1 * eps_el0 ) ) ; 
     err_e0 = err_e0 / def_0 ;  
  'SINON' ; 
     err_e0 = 0. ;
  'FINSI' ;  
  err_e0 = err_e0 * 100. ;  
  'SI' ( err_e0 '>' 5.E-2 ) ; 
       'ERRE' 5 ; 
  'FINSI' ; 
  'SI' ( err_s0 '>' 5.E-2 ) ;  
       'ERRE' 5 ; 
  'FINSI' ;  
  err2 = err2 'ET' ( 'PROG' err_e0 ) ;  
*   
'FIN' bloc1 ; 
*  
*
'FIN' ;

Test preston1 Comments

with:
EP: equivalent plastic strain
EP = sqrt(2/3.EPS:EPS)
EPS: palstic strain

The shear modulus G is expressed that way:
STRESS = HOOK.STRAIN i.e. D_STRESS = HOOK.D_STRAIN + D_HOOK.STRAIN



next up previous contents
Next: DAMAGE ELASTOPLASTIC MODELS Up: BEHAVIOUR LAWS Previous: Test zeril1 Description



ven 3 nov 04:14:58 NFT 2000