Download steinb.dgibi

Back to the list

* fichier :  steinb.dgibi
**************************************************
*                                                *  
*  TEST DE VALIDATION D'UNE LOI DE COMPORTEMENT  *  
*  --------------------------------------------  * 
*              DE MATERIAU                       * 
*              -----------                       *   
*                                                *  
*  LOI DE COMPORTEMENT DE:                       * 
*   STEINBERG-COCHRAN-GUINAN                     * 
*                                                *  
*  MAILLAGE:                                     *  
*   UNE BARRE DE SECTION CARREE                  * 
*   LONGUEUR L=.5 M                              *  
*   LARGEUR  l=.01 M                             * 
*                                                *  
*  CHARGEMENT:                                   * 
*   ESSAI DE TRACTION                            * 
*   DEPLACEMENTS IMPOSES                         * 
*                                                * 
**************************************************  
* 
* 
*  
opti echo 0 dime 3 elem cub8 ;
* ajout de option epsilon lineaire pour la precision des test!
OPTION epsilon lineaire; 
*  
*  
*  Maillage 
*  
l1 = .5 ; 
l2 = .01 ; 
l3 = .01 ;  
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 
* 
INCO_GT = 'EVOL' 'MANU' 'T' ( 'PROG' -273. 27. 1027. ) 
          'GT' ( 'PROG' 5133.E6 0. -17110.E6 ) ;   
mod1 = 'MODE' vol1 'MECANIQUE' 'ELASTIQUE' 'ISOTROPE' 
       'PLASTIQUE' 'STEINBERG' ; 
mat1 = 'MATE' mod1 'YOUN' 2.1E11 'NU' 0.3 
       'RHO' 7.8E3 'ALPHA' 0. 'SIGY' 410.E6  
       'BETA' 125 'N' .1 'EPSI' 0.  
       'GP' 1.79 'GT' INCO_GT 'YMAX' 680.E6 'TMO' 1220. 
       'MU' 1.95 ;
*  
*  Modele thermique  
*  
mod2 = 'MODE' vol1 'THERMIQUE' 'ISOTROPE' ; 
mat2 = 'MATE' mod2 'K' 50. 'C' 140. 'RHO' 7.8E3 ;  
*  
mod3 = 'MODE' ( 'ENVE' vol1 ) thermique 'CONVECTION' 
        ; 
mat3 = 'MATE' mod3 'H' 750. ; 
*  
*  Modele total 
*  
mod0 = mod1 'ET' mod2 'ET' mod3 ; 
mat0 = mat1 'ET' mat2 'ET' mat3 ;  
*
*    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 ; 
tex0 = 'MANU' 'CHPO' ( 'ENVE' vol1 ) 1 'T' 500. ;  
ev0 = 'EVOL' 'MANU' temps ( 'PROG' 0. 1000. ) y ( 'PROG' 0. 1. ) ; 
cha1 = 'CHAR' 'DIMP' dep1 ev0 ;  
cha2 = 'CHAR' 'TECO' tex0 ev0 ; 
cha0 = cha1 'ET' cha2 ;  
* 
*  Temps du calcul  
*  
dt0 = 10. ; 
tfin0 = 100. ;  
*   
*   
*  Resolution par PASAPAS  
*---------------------------------------
*    
ta1 = 'TABLE' ; 
ta1 .'MODELE' = mod0 ; 
ta1 .'CARACTERISTIQUES' = mat0 ; 
ta1 .'BLOCAGES_MECANIQUES' = cl0 ; 
ta1 .'CHARGEMENT' = cha0 ; 
ta1 .'PROCEDURE_THERMIQUE' = LINEAIRE ; 
ta1 .'TEMPS_CALCULES' = 'PROG' 0. 'PAS' dt0 tfin0 ; 
*  
TMASAU=table;
ta1 . 'MES_SAUVEGARDES'=TMASAU;
TMASAU .'DEFTO'=VRAI;
TMASAU .'DEFIN'=VRAI;
PASAPAS ta1 ; 
*  
*  
*  Post-traitement 
*-----------------------------------------
* 
*  Quelques donnees du calcul 
*  
youn1 = 'EXTR' ( 'EXCO' mat0 'YOUN' 'SCAL' ) 'SCAL' 1 1 1 ; 
xnu0 = 'EXTR' ( 'EXCO' mat0 'NU' 'SCAL' ) 'SCAL' 1 1 1 ;
sig0 = 'EXTR' ( 'EXCO' mat0 'SIGY' 'SCAL' ) 'SCAL' 1 1 1 ; 
m0 = 'EXTR' ( 'EXCO' mat0 'N' 'SCAL' ) 'SCAL' 1 1 1 ; 
beta0 = 'EXTR' ( 'EXCO' mat0 'BETA' 'SCAL' ) 'SCAL' 1 1 1 ; 
G0 = youn1 / ( 2. * ( 1. + xnu0 ) ) ; 
GP0 = 'EXTR' ( 'EXCO' mat0 'GP' 'SCAL' ) 'SCAL' 1 1 1 ;  
eps_el0 = sig0 / youn1 ;
*  
*  Post-traitement 
*-----------------------------------------
* 
sigx1 = 'PROG' 0. ; 
sigx2 = 'PROG' 0. ; 
depx1 = 'PROG' 0. ;  
depx2 = 'PROG' 0. ; 
sig_1 = 'PROG' 0. ; 
def_1 = 'PROG' 0. ;   
eps_th1 = 'PROG' 0. ; 
con_th1 = 'PROG' 0. ; 
err_e1 = 'PROG' 0. ; 
err_s1 = 'PROG' 0. ; 
tp_max1 = 'PROG' 0. ; 
tp_min1 = 'PROG' 0. ;  
A1 = 2. * ( 1. + xnu0 ) ; 
B1 = A1 / ( 3. * ( 1. - ( 2. * xnu0 ) ) ) ; 
dim0 = 'DIME' ta1 .'TEMPS' - 1 ; 
mod0 = ta1 .'MODELE' ; 
'REPETER' bloc1 dim0 ; 
  i1 = &bloc1 ; 
  mat0 = ta1 .'CARACTERISTIQUES' ;
  depl0 = ta1 .'DEPLACEMENTS'.i1 ; 
  sigm0 = ta1 .'CONTRAINTES'.i1 ; 
  depeq0 = ta1 .'VARIABLES_INTERNES'.i1 ;  
  def0 = ta1 .'DEFORMATIONS_INELASTIQUES'.i1 ;  
  cht0 = ta1 .'TEMPERATURES'.i1 ; 
  GT0 = 'EXCO' ( 'VARI' 'NUAG' mod1 mat1 cht0 ) 'GT' 'SCAL' ;  
  GT0 = 'EXTR' GT0 'SCAL' 1 1 1 ;  
  t1 = 'EXTR' cht0 'T' ( 'NOEUD' 1 ) ; 
*  'MESS' ' Temperature au temps ' i1 ' = ' t1 ; 
  tp_max0 = 'MAXI' cht0 ; 
  tp_min0 = 'MINI' cht0 ;  
  tp_max1 = tp_max1 'ET' ( 'PROG' tp_max0 ) ; 
  tp_min1 = tp_min1 'ET' ( 'PROG' tp_min0 ) ;   
  sigx0 = 'MAXI' ( 'VMIS' mod1 sigm0 ) ;     
  sigx00 = 'MINI' ( 'VMIS' mod1 sigm0 ) ; 
  depx0 = 'MAXI' ( 'EXCO' depeq0 'EPSE' 'SCAL' ) ;   
  depx00 = 'MINI'( 'EXCO' depeq0 'EPSE' 'SCAL' ) ;  
  sig_00 = 'EXCO' sigm0 'SMXX' 'SCAL' ; 
  sig_0 = 'EXTR' sig_00 'SCAL' 1 1 1 ;    
  def_00 = 'EXCO' def0 'EIXX' 'SCAL' ; 
  def_0 = 'EXTR' def_00 'SCAL' 1 1 1 ; 
  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 ) ;  
*  
*  Eta  
*  
  eps00 = 'EPSI' mod1 depl0 ; 
  epsx = 'EXTR' ( 'EXCO' eps00 'EPXX' 'SCAL' ) 'SCAL' 1 1 1 ; 
  epsy = 'EXTR' ( 'EXCO' eps00 'EPYY' 'SCAL' ) 'SCAL' 1 1 1 ; 
  epsz = 'EXTR' ( 'EXCO' eps00 'EPZZ' 'SCAL' ) 'SCAL' 1 1 1 ; 
  treps0 = epsx + epsy + epsz ; 
  eta = 1. / ( 1. + treps0 ) ; 
* 
*  Courbe theorique 
* 
eps0 = epsx ;  
sig1 = sig0 * ( 1. + ( ( GP0 / G0 ) * ( -1. * sig_0 / 3. ) ) + 
( GT0 / G0 ) ) ; 
pente0 = GP0 / ( 3. * ( eta ** ( 1. / 3. ) ) ) ;  
pente1 = G0 + GT0 ; 
*
'SI' ( sigx0 > sig1 ) ; 
x0 = 0. ; 
x2 = x0 ; 
tr1 = treps0 - ( A1 * ( eps0 - x2 ) / ( 3. * B1 ) ) ;
tr1 = tr1 / 3. ;
y2 = ( sig0 * ( ( 1 + ( beta0 * ( x2 - tr1 ) ) ) ** m0 ) ) ; 
y2 = y2 + ( A1 * G0 * x2 ) ;  
y2 = y2 - ( A1 * G0 * eps0 )  ; 
*
x1 = eps0 ; 
x2 = x1 ;   
tr1 = treps0 - ( A1 * ( eps0 - x2 ) / ( 3. * B1 ) ) ;
tr1 = tr1 / 3. ;
y2 = ( sig0 * ( ( 1 + ( beta0 * ( x2 - tr1 ) ) ) ** m0 ) ) ; 
y2 = y2 + ( A1 * G0 * x2 ) ; 
y2 = y2 - ( A1 * G0 * eps0 ) ; 
*  
'REPETER' bloc2 ; 
*  
x2 = ( x0 + x1 ) / 2. ; 
tr1 = treps0 - ( A1 * ( eps0 - x2 ) / ( 3. * B1 ) ) ;
tr1 = tr1 / 3. ;
y2 = ( sig0 * ( ( 1 + ( beta0 * ( x2 - tr1 ) ) ) ** m0 ) ) ; 
y2 = y2 + ( A1 * G0 * x2 ) ; 
y2 = y2 - ( A1 * G0 * eps0 ) ;  
*  
'SI' ( y2 > 1.E-4 ) ; 
  x1 = x2 ; 
'SINON' ; 
  'SI' ( y2 <  -1.E-4 ) ; 
     x0 = x2 ; 
  'SINON' ; 
     eps_th0 = x2 ; 
     con_th0 = ( A1 * pente1 * ( eps0 - x2 ) ) ; 
     con_th0 = con_th0 / ( 1. + ( A1 * pente0 * ( eps0 - x2 ) ) ) ;  
    'QUITTER' bloc2 ;  
  'FINSI' ; 
'FINSI' ; 
*  
'FIN' bloc2 ;
*  
'SINON' ; 
eps_th0 = 0. ; 
con_th0 = ( A1 * pente1 * eps0 ) ;
con_th0 = con_th0 / ( 1. + ( A1 * pente0 * eps0 ) ) ;  
'FINSI' ; 
*    
*  'MESS' ' Fin du calcul de restitution pour le pas' ta1 .'TEMPS'.i1 ;  
  eps_th1 = eps_th1 'ET' ( 'PROG' eps_th0 ) ; 
  con_th1 = con_th1 'ET' ( 'PROG' con_th0 ) ;   
  max0 = ( 'ABS' ( con_th0 - sig_0 ) + con_th0 + sig_0 ) ; 
  max0 = 0.5 * max0 ; 
  max1 = ( 'ABS' ( eps_th0 - def_0 ) + eps_th0 + def_0 ) ; 
  max1 = 0.5 * max1 ;  
  'SI' ( ( 'ABS' max0 ) > 1.E-6 ) ; 
     err_s0 = ( 'ABS' ( con_th0 - sig_0 ) ) / max0 ;  
     err_s0 = err_s0 * 100. ;  
  'SINON' ;  
     err_s0 = 0. ; 
  'FINSI' ; 
  'SI' ( ( 'ABS' max1 ) > ( 1.E-1 * eps_el0 ) ) ; 
     err_e0 = ( 'ABS' ( eps_th0 - def_0 ) ) / max1 ;  
     err_e0 = err_e0 * 100. ;  
  'SINON' ;  
     err_e0 = 0. ; 
  'FINSI' ; 
  'SI' ( ( err_e0 '>' 2.E-2 ) 'OU' ( err_s0 '>' 2.E-2 ) ) ; 
      'ERRE' 5 ; 
  'FINSI' ; 
  err_s1 = err_s1 'ET' ( 'PROG' err_s0 ) ; 
  err_e1 = err_e1 'ET' ( 'PROG' err_e0 ) ;  
*  
*'MESS' ' Deformation plastique theorique =' eps_th0 ; 
*'MESS' ' Deformation plastique calculee  =' def_0 ;  
* 
*   
'FIN' bloc1 ; 
*  
*  Trace  
*  
trac1 = 'EVOL' 'ROUG' 'MANU' 'epsp' depx1 'sigm' sigx1 ; 
*'DESSIN' trac1 'TITR' 'Contraintes - Deformation plastique' ; 
trac2 = 'EVOL' 'ROUG' 'MANU' 'epsp' depx2 'sigm' sigx2 ;  
TAB = 'TABLE' ; 
TAB.1 = 'MARQ CROI ' ;
TAB.2 = 'MARQ PLUS ' ;
TAB.'TITRE' = 'TABLE' ;
TAB.'TITRE'. 1 = MOT 'MAXI' ;
TAB.'TITRE'. 2 = MOT 'MINI' ;
*'DESSIN' ( trac1 'ET' trac2 )
*'TITR' 'Comparaison mini - maxi de la contrainte equivalente '
*'LEGE' TAB ;
trac3 = 'EVOL' 'ROUG' 'MANU' 'def_pl_xx' def_1 'tp_max' tp_max1 ; 
trac31 = 'EVOL' 'ROUG' 'MANU' 'def_pl_xx' def_1 'tp_max' tp_min1 ;  
TAB = 'TABLE' ;
TAB.1 = 'MARQ CROI ' ;
TAB.2 = 'MARQ PLUS ' ;
TAB.'TITRE' = 'TABLE' ;
TAB.'TITRE'. 1 = MOT 'MAXI' ;
TAB.'TITRE'. 2 = MOT 'MINI' ;
*'DESSIN' ( trac3 'ET' trac31 )
*'TITR' 'Comparaison mini - maxi de la temperature '
*'LEGE' TAB ;
trac4 = 'EVOL' 'ROUG' 'MANU' 'def_pl_xx' def_1 'Sig_xx' sig_1 ;  
trac5 = 'EVOL' 'ROUG' 'MANU' 'eps_pl' eps_th1 'Sig_xx' con_th1 ; 
TAB= 'TABLE' ; 
TAB.1 = 'MARQ CROI ' ;
TAB.2 = 'MARQ PLUS ' ;
TAB.'TITRE' = 'TABLE' ;
TAB.'TITRE'. 1 = MOT 'Calcul' ;
TAB.'TITRE'. 2 = MOT 'Theorie' ;
*'DESSIN' ( trac4 'ET' trac5 )
*'TITR' ' Courbe theorique et calculee'
*'LEGE' TAB ;
trac6 = 'EVOL' 'ROUG' 'MANU' 'epsp' def_1 'erreur %' err_s1 ; 
trac7 = 'EVOL' 'ROUG' 'MANU' 'epsp' def_1 'erreur %' err_e1 ; 
TAB = 'TABLE' ; 
TAB.1 = 'MARQ PLUS ' ;
TAB.2 = 'MARQ CROI ' ;
TAB.'TITRE' = 'TABLE' ;
TAB.'TITRE'. 1 = MOT 'CONTRAINTES' ;
TAB.'TITRE'. 2 = MOT 'DEFORMATIONS' ;
*'DESSIN' ( trac6 'ET' trac7 )
*'TITR' 'Erreur sur les contraintes et la déformation plastiques '
*'LEGE' TAB ;
*  
*'MESS' ' deformation plastique theorique ' eps_th0 ; 
*'MESS' ' deformation plastique calculee  ' def_0 ; 
*'MESS' ' contrainte theorique            ' con_th0 ; 
*'MESS' ' contrainte calculee             ' sig_0 ;  
*'MESS' ' deformation totale finale       ' eps0 ; 
*  
*    
'FIN' ;   
 

 

 

 

 

 

 

 

 

© Cast3M 2003 - All rights reserved.
Disclaimer