* fichier : sic1.dgibi ************************************************************************ * Section : Mecanique Endommagement ************************************************************************ ************************************************************************ ************************************************************************ *** *** *** ####### ####### ##### ####### ##### ### ##### *** *** # # # # # # # # # # *** *** # # # # # # # *** *** # ##### ##### # ##### # # *** *** # # # # # # # *** *** # # # # # # # # # # *** *** # ####### ##### # ##### ### ##### *** *** *** ************************************************************************ ************************************************************************ * VALIDATION DU MODELE SIC/SIC AU CHARGHEMENT EN TRACTION * *** graph = 'O' ou 'N' pour voir le maillage et la courbe des contraintes. graph='N'; *** echoc = 'O' ou 'N' pour voir le jeu de donnees echoc='N'; si (ega echoc 'N'); OPTION echo 0; finsi; * limite du chargement en traction (Pascal) char1= 200.e6; * pas (Pascal) paschar= 10.e6; *base et nb d'elements b=1; nb=2; *hauteur et nb d'elements h=0.2; nh=2; *longeur e nb d'elements lng=10; nlng=3; opti dime 3 elem qua4; **************************************************** **************************************************** ***** MAILLAGE ***** **************************************************** **************************************************** p1 = (0. 0. 0.); p2 = (0. b 0.); p3 = (0. b h); p4 = (0. 0. h.); l1 = p1 d nb p2; l2 = p2 d nh p3; l3 = p3 d nb p4; l4 = p4 d nh p1; s1= dall plan l1 l2 l3 l4; opti elem cub8; v1= s1 volu trans nlng (lng 0. 0.); sx= l1 trans nlng (lng 0. 0.); sy= l2 trans nlng (lng 0. 0.); lc= p1 d nlng (lng 0. 0.); elim (sx et sy et v1 et lc) 0.0001; mess 'total elements:' (nbel v1); *opti donn 5; **************************************************** ***** MODELE ***** **************************************************** mov1 = modeli v1 mecanique elastique orthotrope endommagement sic_sic ; *opti donn 5; ***** MATERIAU ***** * Premiere direction axe X * Deuxieme direction axe Y * Troisieme direction (epaisseur) axe Z mav1 = mate mov1 dire (1. 0. 0.) (0. 1. 0.) INCLI 45 YG1 226.E9 YG2 226.E9 yg3 226.e9 NU12 0.152 nu13 0.26 nu23 0.26 g12 85.E9 g13 85.E9 g23 85.E9 ALP1 4.E-6 ALP2 4.E-6 alp3 4.e-6 G1DC 0.6 G1Y0 130.0 G1YC 400.0 G1P 1.0 G2DC 0.6 G2Y0 130.0 G2YC 400.0 G2P 1.0 G3DC 0.6 G3Y0 130.0 G3YC 400.0 G3P 1.0 H23 0.7 H13 0.7 H12 0.7 ; *mav1 = mate mov1 YOUN 200.E9 NU 0.18 PAR 100; **************************************************** ***** CONDITIONS AUX LIMITES ***** **************************************************** *** blocage de la surface inferieure suivant ux clblq1= bloq ux s1; clblq=clblq1; *blocage de la surface laterale suivant uz clblq2= bloq uz sx; clblq= clblq et clblq2; *blocage de la surface laterale suivant uy clblq3= bloq uy sy; clblq= clblq et clblq3; *************************************************** ***** CHARGEMENT ***** *************************************************** sp= s1 plus (lng 0. 0.); elim (v1 et sp) 0.0001; effp = pression massif mov1 (-1 * char1) sp; tchar1= prog 0. pas (1/(char1/paschar)) 1; fchar1= prog 0. pas (1/(char1/paschar)) 1.; echar1= evol manu 'pseudotemps' tchar1 'force' fchar1; cmec1= char meca effp echar1; vchar1 = vect effp 0.00001 fx fy fz roug; res1= maxi (resu effp); titr 'Chargement en traction: ' res1 ' Newton'; si (neg graph 'N'); tracer cach v1 vchar1; finsi; *opti donn 5; **************************************************** ***** CALCUL CONTRAINTES ***** **************************************************** tmp1= prog 0. pas (1/(char1/paschar)) 1; tab1=table; tab1.'BLOCAGES_MECANIQUES'=clblq; tab1.'MODELE'=mov1; tab1.'CHARGEMENT'=cmec1; tab1.AUTOMATIQUE=VRAI; tab1.'TEMPS_CALCULES'=tmp1; tab1.'CARACTERISTIQUES'=mav1; tab1.'PROCESSEURS' = 'MOT' 'AUTOMATIQUE'; tab1.'HYPOTHESE_DEFORMATIONS' = 'LINEAIRE' ; pasapas tab1; ***** On commence du pas zero mchdep= epsi mov1 tab1.deplacements.0 'LINE' ; corth= rtens tab1.contraintes.0 mov1 mav1; dorth= rtens mchdep mov1 mav1; cntxxo= prog ( maxi ( (exco 'SMXX' corth)/1.e6) ) ; cntyyo= prog ( maxi ( (exco 'SMYY' corth)/1.e6) ) ; cntzzo= prog ( maxi ( (exco 'SMZZ' corth)/1.e6) ) ; cntxyo= prog ( maxi ( (exco 'SMXY' corth)/1.e6) ) ; cntxzo= prog ( maxi ( (exco 'SMXZ' corth)/1.e6) ) ; cntyzo= prog ( maxi ( (exco 'SMYZ' corth)/1.e6) ) ; depxxo= prog ( maxi ( (exco 'EPXX' dorth)) ) ; depyyo= prog ( maxi ( (exco 'EPYY' dorth)) ) ; depzzo= prog ( maxi ( (exco 'EPZZ' dorth)) ) ; depxyo= prog ( maxi ( (exco 'GAXY' dorth)) ) ; depxzo= prog ( maxi ( (exco 'GAXZ' dorth)) ) ; depyzo= prog ( maxi ( (exco 'GAYZ' dorth)) ) ; cntxx= prog (maxi ( (exco 'SMXX' tab1.contraintes.0)/1.e6)) ; cntzz= prog (maxi ( (exco 'SMYY' tab1.contraintes.0)/1.e6)) ; cntyy= prog (maxi ( (exco 'SMZZ' tab1.contraintes.0)/1.e6)) ; cntxy= prog (maxi ( (exco 'SMXY' tab1.contraintes.0)/1.e6)) ; cntxz= prog (maxi ( (exco 'SMXZ' tab1.contraintes.0)/1.e6)) ; cntyz= prog (maxi ( (exco 'SMYZ' tab1.contraintes.0)/1.e6)) ; depxx= prog (maxi ( (exco 'EPXX' mchdep)) ) ; depyy= prog (maxi ( (exco 'EPYY' mchdep)) ) ; depzz= prog (maxi ( (exco 'EPZZ' mchdep)) ) ; depxy= prog (maxi ( (exco 'GAXY' mchdep)) ) ; depxz= prog (maxi ( (exco 'GAXZ' mchdep)) ) ; depyz= prog (maxi ( (exco 'GAYZ' mchdep)) ) ; d1= prog (maxi ( (exco 'DOM1' tab1.variables_internes.0))) ; d2= prog (maxi ( (exco 'DOM2' tab1.variables_internes.0))) ; d3= prog (maxi ( (exco 'DOM3' tab1.variables_internes.0))) ; npas = enti (char1/paschar); repe ijk (npas); mchdep= epsi mov1 tab1.deplacements.&ijk 'LINE' ; cntxx= cntxx et (prog (maxi ( (exco 'SMXX' tab1.contraintes.&ijk)/1.e6))); cntzz= cntzz et (prog (maxi ( (exco 'SMYY' tab1.contraintes.&ijk)/1.e6))); cntyy= cntyy et (prog (maxi ( (exco 'SMZZ' tab1.contraintes.&ijk)/1.e6))); cntxy= cntxy et (prog (maxi ( (exco 'SMXY' tab1.contraintes.&ijk)/1.e6))); cntxz= cntxz et (prog (maxi ( (exco 'SMXZ' tab1.contraintes.&ijk)/1.e6))); cntyz= cntyz et (prog (maxi ( (exco 'SMYZ' tab1.contraintes.&ijk)/1.e6))); depxx= depxx et (prog (maxi ( (exco 'EPXX' mchdep)))); depyy= depyy et (prog (maxi ( (exco 'EPYY' mchdep)))); depzz= depzz et (prog (maxi ( (exco 'EPZZ' mchdep)))); depxy= depxy et (prog (maxi ( (exco 'GAXY' mchdep)))); depxz= depxz et (prog (maxi ( (exco 'GAXZ' mchdep)))); depyz= depyz et (prog (maxi ( (exco 'GAYZ' mchdep)))); corth= rtens tab1.contraintes.&ijk mov1 mav1; dorth= rtens mchdep mov1 mav1; cntxxo= cntxxo et (prog (maxi ( (exco 'SMXX' corth)/1.e6))); cntyyo= cntyyo et (prog (maxi ( (exco 'SMYY' corth)/1.e6))); cntzzo= cntzzo et (prog (maxi ( (exco 'SMZZ' corth)/1.e6))); cntxyo= cntxyo et (prog (maxi ( (exco 'SMXY' corth)/1.e6))); cntxzo= cntxzo et (prog (maxi ( (exco 'SMXZ' corth)/1.e6))); cntyzo= cntyzo et (prog (maxi ( (exco 'SMYZ' corth)/1.e6))); depxxo= depxxo et (prog (maxi ( (exco 'EPXX' dorth)))); depyyo= depyyo et (prog (maxi ( (exco 'EPYY' dorth)))); depzzo= depzzo et (prog (maxi ( (exco 'EPZZ' dorth)))); depxyo= depxyo et (prog (maxi ( (exco 'GAXY' dorth)))); depxzo= depxzo et (prog (maxi ( (exco 'GAXZ' dorth)))); depyzo= depyzo et (prog (maxi ( (exco 'GAYZ' dorth)))); d1= d1 et (prog (maxi ( (exco 'DOM1' tab1.variables_internes.&ijk)))); d2= d2 et (prog (maxi ( (exco 'DOM2' tab1.variables_internes.&ijk)))); d3= d3 et (prog (maxi ( (exco 'DOM3' tab1.variables_internes.&ijk)))); fin ijk; courxx= evol manu 'deformation' depxx 'contrainte' cntxx; couryy= evol manu 'deformation' depyy 'contrainte' cntyy; courzz= evol manu 'deformation' depzz 'contrainte' cntzz; courxy= evol manu 'deformation' depxy 'contrainte' cntxy; courxz= evol manu 'deformation' depxz 'contrainte' cntxz; couryz= evol manu 'deformation' depyz 'contrainte' cntyz; courxxo= evol manu 'deformation' depxxo 'contrainte' cntxxo; couryyo= evol manu 'deformation' depyyo 'contrainte' cntyyo; courzzo= evol manu 'deformation' depzzo 'contrainte' cntzzo; courxyo= evol manu 'deformation' depxyo 'contrainte' cntxyo; courxzo= evol manu 'deformation' depxzo 'contrainte' cntxzo; couryzo= evol manu 'deformation' depyzo 'contrainte' cntyzo; courd1= evol manu 'Contrainte' cntxx 'd1' d1; courd2= evol manu 'Contrainte' cntyy 'd2' d2; courd3= evol manu 'Contrainte' cntzz 'd3' d3; si (ega graph 'O'); dess courxx; finsi; ********** mchdep= epsi mov1 tab1.deplacements.npas 'LINE' ; dorth= rtens mchdep mov1 mav1; epxxc= maxi ( (exco 'EPXX' dorth)); epyyc= maxi ( (exco 'EPYY' dorth)); epzzc= maxi ( (exco 'EPZZ' dorth)); gaxyc= maxi ( (exco 'GAXY' dorth)); gaxzc= maxi ( (exco 'GAXZ' dorth)); gayzc= maxi ( (exco 'GAYZ' dorth)); epxxt= 8.19e-04; epyyt= 8.19e-04; epzzt= -2.30e-4; gaxyt= 2.82e-3; gaxzt= 0.0; gayzt= 0.0; dcal1=maxi ( (exco 'DOM1' tab1.variables_internes.npas)); dcal2=maxi ( (exco 'DOM2' tab1.variables_internes.npas)); dcal3=maxi ( (exco 'DOM3' tab1.variables_internes.npas)); dter1=4.17e-1; dter2=4.17e-1; dter3=0.; saut 2 lignes; opti echo 0; mess '**************************************************'; mess ' DEFORMATION FINALES'; mess ' Val. calc. Val. Theor.'; mess ' ' epxxc ' ' epxxt; mess ' ' epyyc ' ' epyyt; mess ' ' epzzc ' ' epzzt; mess ' ' gaxyc ' ' gaxyt; mess ' ' gaxzc ' ' gaxzt; mess ' ' gayzc ' ' gayzt; mess '**************************************************'; mess ' VARIABLES D''ENDOMMAGEMENT'; mess ' Val. calc. Val. Theor.'; mess ' ' dcal1 ' ' dter1; mess ' ' dcal2 ' ' dter2; mess ' ' dcal3 ' ' dter3; opti echo 1; err1 = 100*((abs(dcal1)-(abs(dter1)))/(abs(dcal1))); err2 = 100*((abs(dcal2)-(abs(dter2)))/(abs(dcal2))); err3 = 100*((abs(epxxc)-(abs(epxxt)))/(abs(epxxc))); err4 = 100*((abs(epyyc)-(abs(epyyt)))/(abs(epyyc))); err5 = 100*((abs(epzzc)-(abs(epzzt)))/(abs(epzzc))); err6 = 100*((abs(gaxyc)-(abs(gaxyt)))/(abs(gaxyc))); listerr= prog err1 err2 err3 err4 err5 err6; err= maxi listerr; si (err < 1); erre 0; sinon; erre 5; finsi; fin;