* fichier : onera1.dgibi
************************************************************************
************************************************************************
*
complet = faux;
*
*************************************************
* pour calcul complet mettre complet à : vrai;
***************************************************
**************************************************
* *
* TEST DE VALIDATION D'UNE LOI DE COMPORTEMENT *
* -------------------------------------------- *
* DE MATERIAU *
* ----------- *
* *
* LOI DE COMPORTEMENT VISCOPLASTIQUE DE: *
* ONERA (CHABOCHE unifie) *
* *
* TEST POUR DES ELEMENTS MASSIFS *
* ------------------------------ *
* *
* MAILLAGE: *
* UNE BARRE DE SECTION CARREE *
* LONGUEUR L=.5 M *
* LARGEUR l=.01 M *
* *
* CHARGEMENT: *
* ESSAI DE TRACTION *
* DEPLACEMENTS IMPOSES *
* *
**************************************************
*
'DEBPROC' VISOHNO ta1*'TABLE' i0*'ENTIER'
sigx01*'FLOTTANT' eps0*'FLOTTANT'
R01*'FLOTTANT'
epsx01*'FLOTTANT'
Xx11*'FLOTTANT'
Xx21*'FLOTTANT' ;
*
* Résolution des lois viscoplastiques de ONERA dans
* le cas unidirectionnel
*
mat0 = ta1 .'CARACTERISTIQUES' ;
mod0 = ta1 .'MODELE' ;
*q00 = 'MAXI' ( ta1 .'QQ' ) ;
q00 = 0. ;
*
*exp10= 'MAXI' ( 'EXCO' mat0 'EXP1' ) ;
*exp20= 'MAXI' ( 'EXCO' mat0 'EXP2' ) ;
*
depl0 = ta1 .'DEPLACEMENTS'.( i0 - 1 ) ;
temp1 = ta1 .'TEMPS'.i0 ;
temp0 = ta1 .'TEMPS'.( i0 - 1 ) ;
temp01 = temp0 ;
*
niter0 = 50 ;
dt0 = ( temp1 - temp0 ) / niter0 ;
sigx00 = sigx01 ;
R00 = R01 ;
epsx00 = epsx01 ;
Xx10 = Xx11 ;
Xx20 = Xx21 ;
*
* Incrément de contrainte test
*
spt0 = youn0 * ( eps0 - eps_old ) / ( temp1 - temp0 ) ;
*mess ' sigx00 R00 epsx00 Xx10 Xx20=' sigx00 R00 epsx00 Xx10 Xx20 ;
*
'REPETER' bloc0 niter0 ;
*
* Initialisation du calcul pour un pas de temps
*
temp01 = temp01 + dt0 ;
depsx9 = 0. ;
dXx8 = 0. ;
dXx9 = 0. ;
dr9 = 0. ;
sigx0 = sigx00 ;
R0 = R00 ;
epsx0 = epsx00 ;
Xx1 = Xx10 ;
Xx2 = Xx20 ;
*
'REPETER' bloc1 2 ;
i1 = &bloc1 ;
*
* Memoire en déformation inélastique
*
qq = eta0 * epsx0 ;
Q0 = qmax0 -
( ( qmax0 - q00 ) * ( 'EXP' ( -2. * mu0 * eta0 * epsx0 ) ) ) ;
YX0 = ( 1. - eta0 ) * epsx0 ;
QR = Q0 - ( qsta0 * ( 1. - ( ( ( qmax0 - Q0 ) / qmax0 ) ** 2. ) ) ) ;
RR0 = alfr0 * R0 ;
KR0 = k00 + ( alfk0 * R0 ) ;
* mess ' qq, Q0, YX0, QR, RR0, KR0=' qq Q0 YX0 QR RR0 KR0 ;
*
* Critère
*
Xx0 = Xx1 + Xx2 ;
F0 = sigx0 - ( 3. * Xx0 / 2. ) - RR0 - kk0 ;
*
* Ecrouissages
*
'SI' ( F0 '>' 0. ) ;
depsx0 = ( F0 / KR0 ) ** ( n0 ) ;
depsx1 = alf0 * ( ( F0 / KR0 ) ** ( n0 + 1. ) ) ;
depsx1 = 'EXP' ( depsx1 ) ;
depsx0 = depsx0 * depsx1 * dt0 ;
'SINON' ;
depsx0 = 0. ;
'FINSI' ;
* mess ' depsx0 F0 = ' depsx0 F0 ;
dr0 = b0 * ( Q0 - R0 ) * depsx0 ;
dr1 = gama0 * ( ( 'ABS' ( QR - R0 ) ) ** ( m0 - 1. ) ) ;
dr1 = dr1 * ( QR - R0 ) ;
dr0 = dr0 + ( dr1 * dt0 ) ;
phi = phi0 + ( ( 1. - phi0 ) * ( 'EXP' ( -1. * b0 * epsx0 ) ) ) ;
dXx1 = 2. * a10 * c10 * depsx0 / 3. ;
dXx1 = dXx1 - ( c10 * Xx1 * depsx0 * phi ) ;
dXx1 = dXx1 -
( ( ( 3. * Xx1 / ( 2. * bet10 ) ) ** ( r10 - 1. ) ) * Xx1 * dt0 ) ;
dXx2 = 2. * a20 * c20 * depsx0 / 3. ;
dXx2 = dXx2 - ( c20 * Xx2 * depsx0 * phi ) ;
dXx2 = dXx2 -
( ( ( 3. * Xx2 / ( 2. * bet20 ) ) ** ( r20 - 1. ) ) * Xx2 * dt0 ) ;
* mess ' dr0 phi dXx1 dXx2 i1 =' dr0 phi dXx1 dXx2 i1 ;
*
* Somme ( Runge-Kutta )
*
dr0 = ( dr0 + dr9 ) / i1 ;
depsx0 = ( depsx0 + depsx9 ) / i1 ;
dXx1 = ( dXx1 + dXx8 ) / i1 ;
dXx2 = ( dXx2 + dXx9 ) / i1 ;
dr9 = dr0 ;
depsx9 = depsx0 ;
dXx8 = dXx1 ;
dXx9 = dXx2 ;
* mess ' dr0 depsx0 dXx1 dXx2 i1 =' dr0 depsx0 dXx1 dXx2 i1 ;
*
* Calcul des grandeurs actuelles
*
R0 = R00 + dr0 ;
epsx0 = epsx00 + depsx0 ;
Xx1 = Xx10 + dXx1 ;
Xx2 = Xx20 + dXx2 ;
sigx0 = sigx00 + ( dt0 * spt0 )
- ( youn0 * depsx0 ) ;
* mess ' R00 epsx00 Xx10 Xx20 sigx00 =' R00 epsx00 Xx10 Xx20 sigx00 ;
* mess ' R0 epsx0 Xx1 Xx2 sigx0 =' R0 epsx0 Xx1 Xx2 sigx0 ;
*
'FIN' bloc1 ;
*
* Mise à jour des valeurs
*
R00 = R0 ;
epsx00 = epsx0 ;
Xx10 = Xx1 ;
Xx20 = Xx2 ;
sigx00 = sigx0 ;
*
'FIN' bloc0 ;
*
'MESS' ' Temps final ' temp01 temp1 ;
*
'FINP' sigx00 R00
epsx0 Xx10 Xx20 ;
*
*---------------------------------------------------------------
*
*
* 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 ;
d5 = d p2 n3 p6 ;
d6 = d p6 n2 p7 ;
d7 = d p7 n3 p3 ;
d8 = d p3 n2 p2 ;
*
* Modele de calcul
*
mod0 = 'MODE' vol1 'MECANIQUE' 'ELASTIQUE' 'ISOTROPE'
'VISCOPLASTIQUE' 'ONERA' ;
'RHO' 7.8E3 'ALPHA' 1.E-5 'N' 24
'KK' 10.E6 'K0' 116.E6 'ALFK' 1.5 'ALFR' 0.35 'ALF' 2.E6
'A1' 67.5E6 'C1' 1300 'BET1' 4807.E6 'R1' 4
'A2' 80.E6 'C2' 45 'BET2' 58480.E6 'R2' 4 'PHI' 1.
'B' 12 'GAMA' 2.E-7 'M' 2
'QMAX' 455.E6 'QSTA' 200.E6 'MU' 19 'ETA' 0.06 ;
* 'EXP1' 2. 'EXP2' 2. ;
*q00 = 'MANU' 'CHML' vol1 'QQ' 30.E6 ;
*
* Conditions aux limites
*
cl0 = cl1 'ET' cl2 'ET' cl3 'ET' cl4 ;
*
* Chargement
*
*
* Temps du calcul
*
dt0 = 50. ;
si complet;
tfin0 = 1000. ;
sinon;
tfin0 = 300 ;
finsi;
*
*
* Resolution par PASAPAS
*---------------------------------------
*
ta1 = 'TABLE' ;
*ta1 .'QQ' = 'TABLE' ;
ta1 .'MODELE' = mod0 ;
ta1 .'CARACTERISTIQUES' = mat0 ;
ta1 .'BLOCAGES_MECANIQUES' = cl0 ;
ta1 .'CHARGEMENT' = cha0 ;
*ta1 .'QQ'. 0 = q00 ;
*
TMASAU=table;
ta1 . 'MES_SAUVEGARDES'=TMASAU;
TMASAU .'DEFTO'=VRAI;
TMASAU .'DEFIN'=VRAI;
ta1 .'HYPOTHESE_DEFORMATIONS'='LINEAIRE' ;
PASAPAS ta1 ;
*
mat0 = ta1 .'CARACTERISTIQUES' ;
mod0 = ta1 .'MODELE' ;
*q00 = ta1 .'QQ' ;
q00 = 0. ;
*
*exp10= 'MAXI' ( 'EXCO' mat0 'EXP1' ) ;
*exp20= 'MAXI' ( 'EXCO' mat0 'EXP2' ) ;
*
*
sig_th0 = 0. ;
r_th0 = 0. ;
eps_th0 = 0. ;
xx_th10 = 0. ;
xx_th20 = 0. ;
si ( non complet);
1.46800E+07 2.93600E+07 4.40400E+07 5.87196E+07 7.30534E+07
8.18875E+07 8.94690E+07 9.66012E+07 1.03261E+08
1.09429E+08 1.15090E+08 1.20240E+08 1.24881E+08 1.29026E+08
1.32697E+08 1.35925E+08 1.38748E+08 1.41209E+08 1.43350E+08
1.45216E+08;
-1.97215E-20 -3.94430E-20 7.95615E-15 5.98126E-07 .42434
374.04 2920.8 8804.9 17897.
29519. 43036. 58025. 74244. 91553.
1.09868E+05 1.29116E+05 1.49232E+05 1.70143E+05 1.91771E+05
2.14038E+05;
2.62535E-34 5.81971E-19 7.73859E-13 6.03725E-09 4.72243E-06
8.43662E-05 1.81076E-04 2.83907E-04 3.93175E-04
5.09147E-04 6.32012E-04 7.61849E-04 8.98620E-04 1.04215E-03
1.19214E-03 1.34816E-03 1.50969E-03 1.67618E-03 1.84700E-03
2.02158E-03;
finsi;
*
'REPETER' bloc0 ( dim0 - 1 ) ;
i0 = &bloc0 ;
depl0 = ta1 .'DEPLACEMENTS'.i0 ;
sigm0 = ta1 .'CONTRAINTES'.i0 ;
var0 = ta1 .'VARIABLES_INTERNES'.i0 ;
def0 = ta1 .'DEFORMATIONS_INELASTIQUES'.i0 ;
temp0 = ta1 .'TEMPS'.i0 ;
*
* Contraintes et déformations inélastiques équivalentes
*
*
* Déformation totale et inélastique suivant x
*
*
* Contraintes suivant x
*
*
* Calcul theorique
*
si complet;
sig_th00 r_th00 eps_th00 xx_th1 xx_th2 = VISOHNO ta1 i0 sig_th0
eps0 r_th0 eps_th0 xx_th10 xx_th20 ;
*
sig_th0 = sig_th00 ;
r_th0 = r_th00 ;
eps_th0 = eps_th00 ;
xx_th10 = xx_th1 ;
xx_th20 = xx_th2 ;
sinon;
finsi;
*
* Calcul d'erreur
*
'SI' ( epsx0 '<' ( 1.E-2 * eps0) ) ;
err_e0 = 0. ;
'SINON' ;
err_e0 = ( 'ABS' ( eps_th00 - epsx0 ) ) / epsx0 ;
err_e0 = err_e0 * 100. ;
'FINSI' ;
'SI' ( sigx0 'EGA' 0. ) ;
err_s0 = 0. ;
'SINON' ;
err_s0 = ( 'ABS' ( sig_th00 - sigx0 ) ) / sigx0 ;
err_s0 = err_s0 * 100. ;
'FINSI' ;
*
'SI' ( (err_e0 '>' 1.E-1) 'OU' (err_s0 '>' 1.E-1 ) ) ;
prob0 = vrai ;
'SINON' ;
prob0 = faux ;
'FINSI' ;
*
'FIN' bloc0 ;
*
'SI' ( prob0 'EGA' vrai ) ;
'SINON' ;
'FINSI' ;
*
'FIN' ;
					© Cast3M 2003 - Tous droits réservés.
					Mentions légales