* 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