Download gurson2.dgibi

Back to the list

* fichier :  gurson2.dgibi
*****************************************************
*                                                   *
*        TEST DE VALIDATION DE LA LOI               *
*        D'ENDOMMAGEMENT DUCTILE DE                 *  
*             GURSON TVERGAARD                      *
*                                                   *
*  TEST:                                            *
*    UN BARREAU EST CHARGE EN TRACTION              *
*    LE CHARGEMENT EST DES DEPLACEMENTS IMPOSES     *
*    CALCUL EN MASSIF 3D                            *
*                                                   *
*  MAILLAGE:                                        *
*    UN BARREAU DE SECTION CARREE DE .5 M SUR .01 M *
*    50 ELEMENTS                                    *
*                                                   *
***************************************************** 
* 
opti echo 0 ; 
* ajout de option epsilon lineaire pour la precision des test!
 OPTION epsilon lineaire;
*  
'DEBPROC' PLGURS mat0*'MCHAML' mod0*'MMODEL' eps0*'MCHAML' 
                 sig0*'FLOTTANT' def0*'FLOTTANT' 
                 def00*'FLOTTANT'   
                 bet0*'FLOTTANT' beta0*'FLOTTANT' 
                 sig00*'FLOTTANT' xm0*'FLOTTANT' 
                 fc0*'FLOTTANT' trepp*'FLOTTANT' ;  
*  
youn1 = 'EXTR' ( 'EXCO' mat0 'YOUN' 'SCAL' ) 'SCAL' 1 1 1 ;
xnu0 = 'EXTR' ( 'EXCO' mat0 'NU' 'SCAL' ) 'SCAL' 1 1 1 ;
XG0 = youn1 / ( 2. * ( 1. + xnu0 ) ) ;
XK0 = youn1 / ( 3. * ( 1. - ( 2. * xnu0 ) ) ) ;  
XQ0 = 'EXTR' ( 'EXCO' mat0 'Q' 'SCAL' ) 'SCAL' 1 1 1 ;
XFC0 = 'EXTR' ( 'EXCO' mat0 'FC' 'SCAL' ) 'SCAL' 1 1 1 ;
XFU0 = 'EXTR' ( 'EXCO' mat0 'FU' 'SCAL' ) 'SCAL' 1 1 1 ;
XFF0 = 'EXTR' ( 'EXCO' mat0 'FF' 'SCAL' ) 'SCAL' 1 1 1 ;
XSNS0 = 'EXTR' ( 'EXCO' mat0 'SNS' 'SCAL' ) 'SCAL' 1 1 1 ;
XSNE0 = 'EXTR' ( 'EXCO' mat0 'SNE' 'SCAL' ) 'SCAL' 1 1 1 ;
XGIG0 = 'EXTR' ( 'EXCO' mat0 'SIGN' 'SCAL' ) 'SCAL' 1 1 1 ;
XEPS0 = 'EXTR' ( 'EXCO' mat0 'EPSN' 'SCAL' ) 'SCAL' 1 1 1 ; 
*  
* 
*  Résolution par dichotomie 
* 
eps_x = ( 'MAXI' ( 'EXCO' eps0 'EPXX' ) ) ; 
eps_y = ( 'MAXI' ( 'EXCO' eps0 'EPYY' ) ) ; 
eps_z = ( 'MAXI' ( 'EXCO' eps0 'EPZZ' ) ) ;  
treps0 = eps_x + eps_y + eps_z ; 
rho = 1. / ( 1. + treps0 ) ;  
* 
del0 = ( XFU0 - XFC0 ) / ( XFF0 - XFC0 ) ; 
*  
conv0 = 1. ; 
eps_x = eps_x - ( treps0 / 3. ) ; 
sigt0 = 2. * XG0 * eps_x ; 
sigt0 = sigt0 + ( ( 1. - fc0 ) * XK0 * treps0 ) ; 
*  
'SI' ( fc0 'EGA' 0. ) ; 
  nmax0 = 1 ; 
'SINON' ; 
  nmax0 = 100 ; 
'FINSI' ; 
*  
'SI' ( sigt0 '>' sig00 ) ; 
* 
*  On plastifie 
* 
x0 = treps0 ; 
x2 = x0 ; 
exp0 = ( ( 1. - fc0 ) * ( 'EXP' ( -1. * x2 ) ) ) ; 
sm0 = exp0 * XK0 * ( (( 'EXP' ( -1. * x2 ) ) / rho ) - 1. ) ; 
sx0 = 2. * sm0 ; 
f0 = 1. - ( ( 1. - fc0 ) * ( 'EXP' ( -1. * x2 ) ) ) ; 
'SI' ( f0 '<' XFC0 ) ; 
  f1 = f0 ; 
'SINON' ; 
  f1 = XFC0 + ( del0 * ( f0 - XFC0 ) ) ; 
'FINSI' ;   
x20 = def00 ; 
yl0 = sig00 * ( ( 1. + ( beta0 * x20 ) ) ** xm0 ) ; 
g0 = 2. * XQ0 * f1 * ( 'COSH' ( 3. * sx0 / ( 4. * yl0 ) ) ) ; 
g0 = 1. + ( XQ0 * XQ0 * f1 * f1 ) - g0 ;  
y2 = ( sx0 * sx0 * 9. / 4. ) ; 
y2 = y2 - ( yl0 * yl0 * g0 ) ;  
y0 = y2 ;
'SI' ( y0 '>' 0. ) ; 
* 
x0 = trepp ; 
x2 = x0 ; 
exp0 = ( ( 1. - fc0 ) * ( 'EXP' ( -1. * x2 ) ) ) ;
sm0 = exp0 * XK0 * ( (( 'EXP' ( -1. * x2 ) ) / rho ) - 1. ) ;
sx0 = 2. * sm0 ;
f0 = 1. - ( ( 1. - fc0 ) * ( 'EXP' ( -1. * x2 ) ) ) ;
'SI' ( f0 '<' XFC0 ) ;
  f1 = f0 ;
'SINON' ;
  f1 = XFC0 + ( del0 * ( f0 - XFC0 ) ) ;
'FINSI' ;
x20 = def00 ;
yl0 = sig00 * ( ( 1. + ( beta0 * x20 ) ) ** xm0 ) ;
g0 = 2. * XQ0 * f1 * ( 'COSH' ( 3. * sx0 / ( 4. * yl0 ) ) ) ;
g0 = 1. + ( XQ0 * XQ0 * f1 * f1 ) - g0 ;
y2 = ( sx0 * sx0 * 9. / 4. ) ;
y2 = y2 - ( yl0 * yl0 * g0 ) ;
y0 = y2 ;
* 
'SI' ( y0 '>' 0. ) ; 
 'REPETER' bloc01 ; 
   i01 = &bloc01 ;  
   x0 = x0 * ( 1. - 1.E-4 ) ; 
x2 = x0 ; 
exp0 = ( ( 1. - fc0 ) * ( 'EXP' ( -1. * x2 ) ) ) ;
sm0 = exp0 * XK0 * ( (( 'EXP' ( -1. * x2 ) ) / rho ) - 1. ) ;
sx0 = 2. * sm0 ;
f0 = 1. - ( ( 1. - fc0 ) * ( 'EXP' ( -1. * x2 ) ) ) ;
'SI' ( f0 '<' XFC0 ) ;
  f1 = f0 ;
'SINON' ;
  f1 = XFC0 + ( del0 * ( f0 - XFC0 ) ) ;
'FINSI' ;
x20 = def00 ;
yl0 = sig00 * ( ( 1. + ( beta0 * x20 ) ) ** xm0 ) ;
g0 = 2. * XQ0 * f1 * ( 'COSH' ( 3. * sx0 / ( 4. * yl0 ) ) ) ;
g0 = 1. + ( XQ0 * XQ0 * f1 * f1 ) - g0 ;
y2 = ( sx0 * sx0 * 9. / 4. ) ;
y2 = y2 - ( yl0 * yl0 * g0 ) ;
y0 = y2 ; 
* 
  'SI' ( y0 '<' 0. ) ;  
    'QUITTER' bloc01 ; 
  'FINSI' ;  
  'SI' ( i01 '>' 1000 ) ; 
     'MESS' ' Inversion necessaire non realisee ' ;  
     'QUITTER' bloc01 ; 
  'FINSI' ; 
*  
 'FIN' bloc01 ;  
'FINSI' ;  
* 
'MESS' ' Inversion d origine ' i01 ;  
*  
'FINSI' ; 
* 
x1 = 'LOG' ( ( 1. - fc0 ) / ( 1. - bet0 ) ) ; 
x1 = ( ( 'ABS' x1 ) + x1 ) / 2. ; 
x2 = x1 ;  
exp0 = ( ( 1. - fc0 ) * ( 'EXP' ( -1. * x2 ) ) ) ;
sm0 = exp0 * XK0 * ( (( 'EXP' ( -1. * x2 ) ) / rho ) - 1. ) ;
sx0 = 2. * sm0 ;
f0 = 1. - ( ( 1. - fc0 ) * ( 'EXP' ( -1. * x2 ) ) ) ;
'SI' ( f0 '<' XFC0 ) ;
  f1 = f0 ;
'SINON' ;
  f1 = XFC0 + ( del0 * ( f0 - XFC0 ) ) ;
'FINSI' ;  
x20 = def00 ;
yl0 = sig00 * ( ( 1. + ( beta0 * x20 ) ) ** xm0 ) ;
g0 = 2. * XQ0 * f1 * ( 'COSH' ( 3. * sx0 / ( 4. * yl0 ) ) ) ;
g0 = 1. + ( XQ0 * XQ0 * f1 * f1 ) - g0 ;  
y2 = ( sx0 * sx0 * 9. / 4. ) ; 
y2 = y2 - ( yl0 * yl0 * g0 ) ; 
y1 = y2 ; 
* 
*  
err0 = ( 'ABS' ( y1 - y0 ) ) * 1.E-10 ; 
*mess ' err0 y0 y1 = ' err0 y0 y1 ; 
*mess ' x0 x1 = ' x0 x1 ;  
iter0 = 0 ; 
* 
'REPETER' bloc00 ; 
* 
iter0 = iter0 + 1 ; 
x2 = ( x0 + x1 ) / 2. ; 
exp0 = ( ( 1. - fc0 ) * ( 'EXP' ( -1. * x2 ) ) ) ;
*exp0 = exp0 * XK0 / XG0 * ( treps0 - x2 ) ;
sm0 = exp0 * XK0 * ( (( 'EXP' ( -1. * x2 ) ) / rho ) - 1. ) ;
sx0 = 2. * sm0 ;
*exp0 = exp0 * XK0 / XG0 * ( (( 'EXP' ( -1. * x2 ) ) / rho ) - 1. ) ;   
*exp0 = eps_x - exp0 ;
*sx0 = 2. * XG0 * ( eps_x - exp0 ) ;  
f0 = 1. - ( ( 1. - fc0 ) * ( 'EXP' ( -1. * x2 ) ) ) ;
'SI' ( f0 '<' XFC0 ) ;
  f1 = f0 ;
'SINON' ;
  f1 = XFC0 + ( del0 * ( f0 - XFC0 ) ) ;
'FINSI' ;  
x20 = def00 ;
yl0 = sig00 * ( ( 1. + ( beta0 * x20 ) ) ** xm0 ) ;
g0 = 2. * XQ0 * f1 * ( 'COSH' ( 3. * sx0 / ( 4. * yl0 ) ) ) ;
g0 = 1. + ( XQ0 * XQ0 * f1 * f1 ) - g0 ; 
y2 = ( sx0 * sx0 * 9. / 4. ) ; 
y2 = y2 - ( yl0 * yl0 * g0 ) ; 
* 
*  
'SI' ( y2 '>' err0 ) ;  
  x1 = x2 ; 
'SINON' ; 
  'SI' ( y2 '<' ( -1. * err0 ) ) ; 
     x0 = x2 ; 
  'SINON' ; 
* 
*  On a gagné 
* 
    sig1 = 3. * sm0 ;   
    epsp_x = eps_x - ( sig1 / ( 2. * XG0 ) ) ;  
    def1 = ( x2 / 3. ) + epsp_x ;  
    recal0 = faux ; 
    'SI' recal0 ; 
* 
*  Calcul de la def. plast. 
* 
x0 = eps_x ; 
x3 = x0 ; 
sx0 = 2. * XG0 * ( eps_x - x3 ) ; 
sig_x = 3. * sx0 / 2. ; 
g0 = 2. * XQ0 * f1 * ( 'COSH' ( sig_x / ( 2. * yl0 ) ) ) ; 
g0 = 1. + ( XQ0 * XQ0 * f1 * f1 ) - g0 ; 
y2 = sig_x - yl0 * ( g0 ** .5 ) ;   
y0 = y2 ; 
* 
x1 = 0. ;  
x3 = x1 ; 
sx0 = 2. * XG0 * ( eps_x - x3 ) ; 
sig_x = 3. * sx0 / 2. ; 
g0 = 2. * XQ0 * f1 * ( 'COSH' ( sig_x / ( 2. * yl0 ) ) ) ; 
g0 = 1. + ( XQ0 * XQ0 * f1 * f1 ) - g0 ; 
y2 = sig_x - yl0 * ( g0 ** .5 ) ; 
y1 = y2 ; 
*  
err1 = 'ABS' ( y0 - y1 ) * 1.E-4 ;  
'REPETER' bloc02 ; 
i02 = &bloc02 ; 
x3 = ( x1 + x0 ) / 2. ; 
sx0 = 2. * XG0 * ( eps_x - x3 ) ; 
sig_x = 3. * sx0 / 2. ; 
g0 = 2. * XQ0 * f1 * ( 'COSH' ( sig_x / ( 2. * yl0 ) ) ) ; 
g0 = 1. + ( XQ0 * XQ0 * f1 * f1 ) - g0 ; 
y2 = sig_x - yl0 * ( g0 ** .5 ) ; 
'SI' ( y2 '>' err1 ) ; 
  x1 = x3 ; 
'SINON' ; 
  'SI' ( y2 '<' err1 ) ; 
    x0 = x3 ; 
  'SINON' ; 
    def1 = x3 + ( x2 / 3. ) ;  
    'QUITTER' bloc02 ; 
  'FINSI' ;  
'FINSI' ;   
* 
'SI' ( i02 '>' 100 ) ; 
  'MESS' ' Mauvais calcul de la def. plast. ' ; 
  'QUITTER' bloc02 ;  
'FINSI' ; 
* 
'FIN' bloc02 ; 
'FINSI' ;   
    bet1 = f0 ; 
    def01 = x20 ; 
    'MESS' ' Dichotomie converge:' iter0 ' itérations ' ; 
    'QUITTER' bloc00 ;  
*  
  'FINSI' ; 
'FINSI' ; 
* 
'SI' ( iter0 '>' nmax0 ) ; 
  'MESS' ' Pas de convergence dans la dichotomie ' ; 
  conv0 = -1. ; 
  'QUITTER' bloc00 ; 
'FINSI' ; 
* 
'FIN' bloc00 ; 
* 
'SINON' ; 
* 
*  On reste élastique 
* 
sig1 = sigt0 ; 
def1 = 0. ; 
bet1 = fc0 ; 
def01 = 0. ; 
* 
'FINSI' ; 
* 
*  
'FINPROC' sig1 def1 bet1 def01 conv0 ; 
* 
* 
*================================================================
*
* 
opti echo 0 dime 3 elem cub8 ; 
graph0 = faux ; 
errt0 = faux ; 
*  
*  
*  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 ;  
'SI' graph0 ; 
  'TITR' ' Maillage du test de validation' ; 
  'TRAC' vol1 ; 
'FINSI' ; 
*  
*  Deplacement maximal 
* 
depmax = .2 ;
*   
*  Courbe d'ecrouissage 
*
beta0 = 125. ; 
sig0 = 410.E6 ; 
xm = .1 ;       
youn0 = 2.1E11 ; 
epsp0 = 'PROG' 0. ; 
deb0 = 'PROG' 0. ;  
epsmax0 = 2. * depmax / l1 ;  
pas0 = epsmax0 / 50 ; 
pas1 = pas0 / 10. ; 
epsmax1 = ( epsmax0 / 10. ) ; 
epsp1 =  ( 'PROG' 0. 'PAS' pas1 epsmax1 ) 'ET'
( 'PROG' ( epsmax1 + pas0 )  'PAS' pas0 epsmax0 ) ; 
*epsp1 = 'PROG' 0. 'PAS' pas0 epsmax0 ;  
dim00 = 'DIME' epsp1 ;  
un = 'PROG' dim00 '*' 1. ; 
Y0 = sig0 ;  
epsp2 = beta0 * epsp1 ; 
epsp3 = epsp2 + un ; 
epsp31 = log epsp3 ; 
epsp32 = epsp31 * xm ;   
epsp4 = exp epsp32 ; 
Y1 = Y0 * epsp4 ; 
*  
epsp1 = epsp0 'ET' epsp1 ;  
Y1 = deb0 'ET' Y1 ;   
epsp2 = epsp1 + ( Y1 / youn0 ) ;   
trac00 = 'EVOL' 'MANU' 'defo' epsp1 'sigm' Y1 ; 
*  
*    Modele de calcul 
* 
trac0 = 'EVOL' 'MANU' 'defo' epsp2 'sigm' Y1 ; 
'SI' graph0 ; 
  'DESS' trac0 'TITR' ' Courbe de traction' ; 
'FINSI' ; 
mod0 = 'MODE' vol1 'MECANIQUE' 'ELASTIQUE' 'ISOTROPE' 
       'PLASTIQUE_ENDOM' 'GURSON2' ;  
SIG00 = youn0 / 500. ; 
fc0 = 0.01 ; 
mat0 = 'MATE' mod0 'YOUN' youn0 'NU' 0.3      
       'TRAC' trac0 'Q' 1.5 'FU' ( 1. / 1.5 ) 'FF' 0.25 'FC' 0.15 
       'FNS0' 0.00 'FNE0' 0.0 'SNS' ( .1 * SIG00 ) 'SNE' .1 
       'SIGN' ( 2.2 * SIG00 ) 'EPSN' .8 'F0' fc0 ;  
* 
*    Fraction de cavités initiale 
* 
q01 = 'MANU' 'CHML' mod0 'VHWF' fc0 'TYPE' 'VARINTER' 'STRESSES' ;
q00 = 'ZERO' mod0 'VARINTER' ;
qq00 = q00 + q01 ; 
*  
*    Conditions aux limites 
*  
cl1 = 'BLOQ' sur1 'UX' ; 
cl2 = 'BLOQ' sur2 'UX' ; 
cl3 = 'BLOQ' p1 'UX' 'UY' 'UZ' ;  
cl4 = 'BLOQ' p5 'UX' 'UY' ; 
cl5 = 'BLOQ' p4 'UX' 'UZ' ; 
cl0 = cl1 'ET' cl2 'ET' cl3 'ET' cl4 'ET' cl5 ;  
*  
*  Temps du calcul
*
dt0 = 50. ;
tfin0 = 1000. ;  
*  
*    Chargement 
*  
dep1 = 'DEPI' cl2 depmax ; 
ev0 = 'EVOL' 'MANU' temps ( 'PROG' 0. tfin0 ) y ( 'PROG' 0. 1. ) ; 
cha0 = 'CHAR' 'DIMP' dep1 ev0 ; 
*  
*   
*   
*  Resolution par PASAPAS  
*---------------------------------------
*    
ta1 = 'TABLE' ; 
ta1 .'MODELE' = mod0 ; 
ta1 .'CARACTERISTIQUES' = mat0 ; 
ta1 .'BLOCAGES_MECANIQUES' = cl0 ; 
ta1 .'CHARGEMENT' = cha0 ; 
ta1 .'VARIABLES_INTERNES' = 'TABLE' ; 
ta1 .'VARIABLES_INTERNES'. 0 = qq00 ; 
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 
*  
mat0 = ta1 .'CARACTERISTIQUES' ; 
youn1 = 'EXTR' ( 'EXCO' mat0 'YOUN' 'SCAL' ) 'SCAL' 1 1 1 ; 
xnu0 = 'EXTR' ( 'EXCO' mat0 'NU' 'SCAL' ) 'SCAL' 1 1 1 ;
G0 = youn1 / ( 2. * ( 1. + xnu0 ) ) ; 
XQ0 = 'EXTR' ( 'EXCO' mat0 'Q' 'SCAL' ) 'SCAL' 1 1 1 ;  
XFC0 = 'EXTR' ( 'EXCO' mat0 'FC' 'SCAL' ) 'SCAL' 1 1 1 ; 
XFU0 = 'EXTR' ( 'EXCO' mat0 'FU' 'SCAL' ) 'SCAL' 1 1 1 ;
XFF0 = 'EXTR' ( 'EXCO' mat0 'FF' 'SCAL' ) 'SCAL' 1 1 1 ; 
XSNS0 = 'EXTR' ( 'EXCO' mat0 'SNS' 'SCAL' ) 'SCAL' 1 1 1 ;
XSNE0 = 'EXTR' ( 'EXCO' mat0 'SNE' 'SCAL' ) 'SCAL' 1 1 1 ; 
XGIG0 = 'EXTR' ( 'EXCO' mat0 'SIGN' 'SCAL' ) 'SCAL' 1 1 1 ; 
XEPS0 = 'EXTR' ( 'EXCO' mat0 'EPSN' 'SCAL' ) 'SCAL' 1 1 1 ; 
*  
*  Post-traitement 
*-----------------------------------------
* 
sigx1 = 'PROG' 0. ; 
sigx2 = 'PROG' 0. ; 
depx1 = 'PROG' 0. ; 
depx2 = 'PROG' 0. ; 
sig_1 = 'PROG' 0. ; 
def_1 = 'PROG' 0. ; 
bet_1 = 'PROG' fc0 ; 
eps_1 = 'PROG' 0. ; 
sig_th1 = 'PROG' 0. ; 
def_th1 = 'PROG' 0. ; 
bet_th1 = 'PROG' fc0 ; 
eps_th1 = 'PROG' 0. ; 
err_s1 = 'PROG' 0. ; 
err_b1 = 'PROG' 0. ; 
err_e1 = 'PROG' 0. ; 
err_m1 = 'PROG' 0. ; 
sig1 = 0. ; 
def1 = 0. ; 
bet1 = 0. ; 
def01 = 0. ; 
* 
dim0 = 'DIME' ta1 .'TEMPS' - 1 ; 
mod0 = ta1 .'MODELE' ; 
eps_el0 = sig0 / youn1 ; 
mess ' eps_el0 = ' eps_el0 ;  
'REPETER' bloc1 dim0 ; 
  i1 = &bloc1 ; 
  temp0 = ta1 .'TEMPS'.i1 ; 
  mat0 = ta1 .'CARACTERISTIQUES' ;
  depl0 = ta1 .'DEPLACEMENTS'.i1 ; 
  sigm0 = ta1 .'CONTRAINTES'.i1 ; 
  depeq0 = ta1 .'VARIABLES_INTERNES'.i1 ;  
  def0 = ta1 .'DEFORMATIONS_INELASTIQUES'.i1 ;  
  sigx0 = 'MAXI' ( 'VMIS' mod0 sigm0 ) ;     
  sigx00 = 'MINI' ( 'VMIS' mod0 sigm0 ) ; 
  depx00 = 'MINI' ( 'EXCO' depeq0 'EPSE' 'SCAL' ) ;  
  epsp0 = 'MAXI' ( 'EXCO' depeq0 'EPSE' 'SCAL' ) ; 
  bet_0 = 'MAXI' ( 'EXCO' depeq0 'VHWF' '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 ; 
  eps_00 = 'EXCO' depeq0 'EPSM' 'SCAL' ; 
  eps_0 = 'EXTR' eps_00 'SCAL' 1 1 1 ; 
* 
*  trace de la deformation plastique 
* 
  epp_x = ( 'EXCO' def0 'EIXX' 'SCAL' ) ; 
  epp_y = ( 'EXCO' def0 'EIYY' 'SCAL' ) ; 
  epp_z = ( 'EXCO' def0 'EIZZ' 'SCAL' ) ; 
  trepp = epp_x + epp_y + epp_z ; 
  trepp0 = 'MAXI' trepp ;
*
  sigx1 = sigx1 'ET' ( 'PROG' sigx0 ) ; 
  sigx2 = sigx2 'ET' ( 'PROG' sigx00 ) ;  
  depx1 = depx1 'ET' ( 'PROG' epsp0 ) ;  
  depx2 = depx2 'ET' ( 'PROG' depx00 ) ; 
  sig_1 = sig_1 'ET' ( 'PROG' sig_0 ) ; 
  def_1 = def_1 'ET' ( 'PROG' def_0 ) ;  
  bet_1 = bet_1 'ET' ( 'PROG' bet_0 ) ;  
  eps_1 = eps_1 'ET' ( 'PROG' eps_0 ) ; 
*  
*  deformations totales 
*  
  eps0 = 'EPSI' mod0 depl0 ; 
  eps_x = 'MAXI' ( 'EXCO' eps0 'EPXX' ) ; 
*  
*  Calcul de la solution théorique  
*  
yl0 = sig0 * ( ( 1. + ( beta0 * eps_0 ) ) ** xm ) ;
'SI' ( bet_0 '<' XFC0 ) ;
   f1 = bet_0 ;
'SINON' ;
   f1 = XFC0 + ( del0 * ( bet_0 - XFC0 ) ) ;
'FINSI' ; 
gold = 2. * XQ0 * f1 * ( 'COSH' ( sig_0 / ( 2. * yl0 ) ) ) ;
gold = ( ( XQ0 * f1 ) * ( XQ0 * f1 ) ) - gold ;
gold = gold + 1. ;
* 
sig_th0 def_th0 bet_th0 eps_th0 conv0 =
PLGURS mat0 mod0 eps0 sig1 def1 eps_0 bet1
beta0 sig0 xm fc0 trepp0 ; 
*  
'SI' ( conv0 '<' 0. ) ;
  'QUITTER' bloc1 ;
'FINSI' ; 
*  
sig1 = sig_th0 ; 
def1 = def_th0 ; 
bet1 = bet_th0 ; 
def01 = eps_th0 ; 
*
yl0 = sig0 * ( ( 1. + ( beta0 * eps_th0 ) ) ** xm ) ;
'SI' ( bet_th0 '<' XFC0 ) ;
   f1 = bet_th0 ;
'SINON' ;
   f1 = XFC0 + ( del0 * ( bet_th0 - XFC0 ) ) ;
'FINSI' ; 
gold = 2. * XQ0 * f1 * ( 'COSH' ( sig_th0 / ( 2. * yl0 ) ) ) ;
gold = ( ( XQ0 * f1 ) * ( XQ0 * f1 ) ) - gold ;
gold = gold + 1. ;
*  
def_th1 = def_th1 'ET' ( 'PROG' def_th0 ) ; 
sig_th1 = sig_th1 'ET' ( 'PROG' sig_th0 ) ; 
bet_th1 = bet_th1 'ET' ( 'PROG' bet_th0 ) ; 
eps_th1 = eps_th1 'ET' ( 'PROG' eps_th0 ) ; 
*  
'SI' graph0 ; 
  'MESS' ' deformation totale imposee     ' eps_x ; 
  'MESS' ' deformation plastique theorique' def_th0 ; 
  'MESS' ' deformation plastique calculee ' def_0 ; 
  'MESS' ' contrainte théorique           ' sig_th0 ; 
  'MESS' ' contrainte calculee            ' sig_0 ;
  'MESS' ' Cavité théorique               ' bet_th0 ; 
  'MESS' ' Cavité calcule                 ' bet_0 ; 
'FINSI' ; 
*  
*  Calcul d'erreur  
*  
'SI' ( def_0 '>' ( 1.E-1 * eps_el0 ) ) ; 
     err_e0 = ( def_th0 - def_0 ) / def_0 ; 
     err_e0 = 'ABS' err_e0 ; 
     err_e0 = err_e0 * 100. ; 
'SINON' ; 
     err_e0 = 0. ; 
'FINSI' ; 
'SI' ( sig_0 '>' 0. ) ; 
     err_s0 = ( sig_th0 - sig_0 ) / sig_0 ; 
     err_s0 = 'ABS' err_s0 ; 
     err_s0 = err_s0 * 100. ; 
'SINON' ; 
     err_s0 = 0. ; 
'FINSI' ; 
'SI' ( bet_0 '>' 1.E-5 ) ; 
     err_b0 = ( bet_th0 - bet_0 ) / bet_0 ; 
     err_b0 = 'ABS' err_b0 ; 
     err_b0 = err_b0 * 100. ; 
'SINON' ; 
     err_b0 = 0. ; 
'FINSI' ; 
'SI' ( eps_0 '>' ( 1.E-1 * eps_el0 ) ) ;
     err_m0 = ( eps_th0 - eps_0 ) / eps_0 ;
     err_m0 = 'ABS' err_m0 ;
     err_m0 = err_m0 * 100. ;
'SINON' ;
     err_m0 = 0. ;
'FINSI' ; 
* 
*  Gestion des erreurs 
* 
*'SI' ( err_e0 '>' 8.E-2 ) ; 
*  errt0 = vrai ; 
*'FINSI' ; 
'SI' ( err_s0 '>' .15 ) ; 
  errt0 = vrai ;
'FINSI' ;  
'SI' ( err_b0 '>' 4.E-2 ) ;
  errt0 = vrai ;
'FINSI' ;  
*'SI' ( err_m0 '>' 8.E-2 ) ;
*  errt0 = vrai ;
*'FINSI' ; 
*  
err_e1 = err_e1 'ET' ( 'PROG' err_e0 ) ; 
err_s1 = err_s1 'ET' ( 'PROG' err_s0 ) ; 
err_b1 = err_b1 'ET' ( 'PROG' err_b0 ) ; 
err_m1 = err_m1 'ET' ( 'PROG' err_m0 ) ; 
* 
  'MESS' ' Fin du calcul de restitution, temps ' temp0 ;  
  'MESS' '  ' ; 
*   
'FIN' bloc1 ; 
*  
*  Trace  
*  
'SI' graph0 ; 
trac1 = 'EVOL' 'ROUG' 'MANU' 'epsp' depx1 'sigm' sigx1 ; 
TAB = 'TABLE' ;
TAB.1 = 'MARQ CARR REGU ' ;
TAB.2 = 'MARQ TRIA ' ;
TAB.'TITRE' = 'TABLE' ;
TAB.'TITRE'. 1 = MOT 'CALC' ;
TAB.'TITRE'. 2 = MOT 'TRACTION' ;
'DESSIN' ( trac1 'ET' trac00 ) 
'TITR' 'Contraintes - Deformation plastique' 
'LEGE' TAB ; 
trac2 = 'EVOL' 'ROUG' 'MANU' 'epsp' depx2 'sigm' sigx2 ;  
TAB = 'TABLE' ; 
TAB.1 = 'MARQ CARR REGU ' ;
TAB.2 = 'MARQ TRIA REGU ' ;
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' 'epsp' def_th1 'sigm' sig_th1 ; 
trac4 = 'EVOL' 'ROUG' 'MANU' 'epsp' def_1 'sigm' sig_1 ;  
TAB = 'TABLE' ;
TAB.1 = 'MARQ CARR REGU ' ;
TAB.2 = 'MARQ TRIA REGU ' ;
TAB.'TITRE' = 'TABLE' ;
TAB.'TITRE'. 1 = MOT 'THEORIE' ;
TAB.'TITRE'. 2 = MOT 'CALCUL' ;
'DESSIN' ( trac3 'ET' trac4 )
'TITR' 'Comparaison calcul theorie '
'LEGE' TAB ; 
trac5 = 'EVOL' 'ROUG' 'MANU' 'epsp' def_th1 'erreur%' err_s1 ;
trac6 = 'EVOL' 'ROUG' 'MANU' 'epsp' def_th1 'erreur%' err_e1 ;
TAB = 'TABLE' ;
TAB.1 = 'MARQ CARR REGU ' ;
TAB.2 = 'MARQ TRIA REGU ' ;
TAB.'TITRE' = 'TABLE' ;
TAB.'TITRE'. 1 = MOT 'CONTRAINTE' ;
TAB.'TITRE'. 2 = MOT 'DEFORMATION' ;
'DESSIN' ( trac5 'ET' trac6 )
'TITR' ' Evolution des erreurs '
'LEGE' TAB ; 
trac7 = 'EVOL' 'ROUG' 'MANU' 'epsp' def_th1 'erreur%' err_b1 ;
TAB = 'TABLE' ;
TAB.1 = 'MARQ CARR REGU ' ;
TAB.'TITRE' = 'TABLE' ;
TAB.'TITRE'. 1 = MOT 'ENDOMMAGEMENT' ;
'DESSIN' trac7 
'TITR' ' Evolution des erreurs '
'LEGE' TAB ; 
TAB = 'TABLE' ;
TAB.1 = 'MARQ CARR REGU ' ;
TAB.2 = 'MARQ TRIA ' ;
TAB.'TITRE' = 'TABLE' ;
TAB.'TITRE'. 1 = MOT 'THEORIE' ;
TAB.'TITRE'. 2 = MOT 'TRACTION' ;
'DESSIN' ( trac3 'ET' trac00 )
'TITR' 'Comparaison theorie traction '
'LEGE' TAB ; 
trac10 = 'EVOL' 'ROUG' 'MANU' 'epsp' def_th1 'frac' bet_1 ; 
trac11 = 'EVOL' 'ROUG' 'MANU' 'epsp' def_th1 'frac' bet_th1 ; 
TAB = 'TABLE' ;
TAB.1 = 'MARQ CARR REGU ' ;
TAB.2 = 'MARQ TRIA REGU ' ;
TAB.'TITRE' = 'TABLE' ;
TAB.'TITRE'. 1 = MOT 'CALCUL' ;
TAB.'TITRE'. 2 = MOT 'THEORIE' ;
'DESSIN' ( trac10 'ET' trac11 )
'TITR' 'Comparaison endommagement theorique et calcule '
'LEGE' TAB ; 
TAB = 'TABLE' ; 
TAB.1 = 'MARQ CARR REGU ' ;
*TAB.2 = ' ' ;
TAB.'TITRE' = 'TABLE' ;
TAB.'TITRE'. 1 = MOT 'ENDOMMAGEE' ;
*TAB.'TITRE'. 2 = MOT 'TRACTION' ;
'DESSIN' ( trac4 'ET' trac00 )
'TITR' 'Comparaison calcul traction '
'LEGE' TAB ; 
'FINSI' ; 
*  
'SI' errt0 ; 
  'ERRE' 5 ; 
'SINON' ; 
  'ERRE' 0 ; 
'FINSI' ; 
*    
'FIN' ;  
 

 

 

 

 

 

 

© Cast3M 2003 - All rights reserved.
Disclaimer