Télécharger sic1.dgibi

Retour à la liste

Numérotation des lignes :

  1. * fichier : sic1.dgibi
  2. ************************************************************************
  3. ************************************************************************
  4. ************************************************************************
  5. ************************************************************************
  6. *** ***
  7. *** ####### ####### ##### ####### ##### ### ##### ***
  8. *** # # # # # # # # # # ***
  9. *** # # # # # # # ***
  10. *** # ##### ##### # ##### # # ***
  11. *** # # # # # # # ***
  12. *** # # # # # # # # # # ***
  13. *** # ####### ##### # ##### ### ##### ***
  14. *** ***
  15. ************************************************************************
  16. ************************************************************************
  17.  
  18.  
  19.  
  20.  
  21.  
  22. * VALIDATION DU MODELE SIC/SIC AU CHARGHEMENT EN TRACTION *
  23.  
  24.  
  25. *** graph = 'O' ou 'N' pour voir le maillage et la courbe des contraintes.
  26. graph='N';
  27. *** echoc = 'O' ou 'N' pour voir le jeu de donnees
  28. echoc='N';
  29.  
  30. si (ega echoc 'N');
  31. OPTION echo 0;
  32. finsi;
  33.  
  34. * ajout de option epsilon lineaire pour la precision des test!
  35. OPTION epsilon lineaire;
  36.  
  37. * limite du chargement en traction (Pascal)
  38. char1= 200.e6;
  39. * pas (Pascal)
  40. paschar= 10.e6;
  41.  
  42. *base et nb d'elements
  43. b=1;
  44. nb=2;
  45. *hauteur et nb d'elements
  46. h=0.2;
  47. nh=2;
  48. *longeur e nb d'elements
  49. lng=10;
  50. nlng=3;
  51.  
  52.  
  53.  
  54.  
  55. opti dime 3 elem qua4;
  56.  
  57.  
  58. ****************************************************
  59. ****************************************************
  60. ***** MAILLAGE *****
  61. ****************************************************
  62. ****************************************************
  63.  
  64.  
  65. p1 = (0. 0. 0.);
  66. p2 = (0. b 0.);
  67. p3 = (0. b h);
  68. p4 = (0. 0. h.);
  69.  
  70.  
  71. l1 = p1 d nb p2;
  72. l2 = p2 d nh p3;
  73. l3 = p3 d nb p4;
  74. l4 = p4 d nh p1;
  75.  
  76. s1= dall plan l1 l2 l3 l4;
  77.  
  78. opti elem cub8;
  79. v1= s1 volu trans nlng (lng 0. 0.);
  80.  
  81. sx= l1 trans nlng (lng 0. 0.);
  82. sy= l2 trans nlng (lng 0. 0.);
  83. lc= p1 d nlng (lng 0. 0.);
  84. elim (sx et sy et v1 et lc) 0.0001;
  85.  
  86.  
  87.  
  88. mess 'total elements:' (nbel v1);
  89. *opti donn 5;
  90.  
  91.  
  92.  
  93. ****************************************************
  94. ***** MODELE *****
  95. ****************************************************
  96.  
  97. mov1 = modeli v1 mecanique elastique orthotrope endommagement
  98. sic_sic ;
  99.  
  100.  
  101. *opti donn 5;
  102. ***** MATERIAU *****
  103.  
  104. * Premiere direction axe X
  105. * Deuxieme direction axe Y
  106. * Troisieme direction (epaisseur) axe Z
  107.  
  108. mav1 = mate mov1 dire (1. 0. 0.) (0. 1. 0.) INCLI 45
  109. YG1 226.E9 YG2 226.E9 yg3 226.e9
  110. NU12 0.152 nu13 0.26 nu23 0.26
  111. g12 85.E9 g13 85.E9 g23 85.E9
  112. ALP1 4.E-6 ALP2 4.E-6 alp3 4.e-6
  113. G1DC 0.6 G1Y0 130.0 G1YC 400.0 G1P 1.0
  114. G2DC 0.6 G2Y0 130.0 G2YC 400.0 G2P 1.0
  115. G3DC 0.6 G3Y0 130.0 G3YC 400.0 G3P 1.0
  116. H23 0.7 H13 0.7 H12 0.7 ;
  117.  
  118.  
  119.  
  120. *mav1 = mate mov1 YOUN 200.E9 NU 0.18 PAR 100;
  121.  
  122.  
  123.  
  124. ****************************************************
  125. ***** CONDITIONS AUX LIMITES *****
  126. ****************************************************
  127.  
  128. *** blocage de la surface inferieure suivant ux
  129. clblq1= bloq ux s1;
  130. clblq=clblq1;
  131.  
  132.  
  133. *blocage de la surface laterale suivant uz
  134. clblq2= bloq uz sx;
  135. clblq= clblq et clblq2;
  136.  
  137. *blocage de la surface laterale suivant uy
  138. clblq3= bloq uy sy;
  139. clblq= clblq et clblq3;
  140.  
  141.  
  142.  
  143. ***************************************************
  144. ***** CHARGEMENT *****
  145. ***************************************************
  146.  
  147.  
  148.  
  149. sp= s1 plus (lng 0. 0.);
  150. elim (v1 et sp) 0.0001;
  151.  
  152.  
  153. effp = pression massif mov1 (-1 * char1) sp;
  154. tchar1= prog 0. pas (1/(char1/paschar)) 1;
  155. fchar1= prog 0. pas (1/(char1/paschar)) 1.;
  156. echar1= evol manu 'pseudotemps' tchar1 'force' fchar1;
  157.  
  158. cmec1= char meca effp echar1;
  159.  
  160.  
  161. vchar1 = vect effp 0.00001 fx fy fz roug;
  162. res1= maxi (resu effp);
  163. titr 'Chargement en traction: ' res1 ' Newton';
  164. si (neg graph 'N');
  165. tracer cach v1 vchar1;
  166. finsi;
  167.  
  168.  
  169. *opti donn 5;
  170.  
  171.  
  172. ****************************************************
  173. ***** CALCUL CONTRAINTES *****
  174. ****************************************************
  175.  
  176. tmp1= prog 0. pas (1/(char1/paschar)) 1;
  177.  
  178.  
  179.  
  180.  
  181. tab1=table;
  182.  
  183. tab1.'BLOCAGES_MECANIQUES'=clblq;
  184. tab1.'MODELE'=mov1;
  185. tab1.'CHARGEMENT'=cmec1;
  186. tab1.AUTOMATIQUE=VRAI;
  187. tab1.'TEMPS_CALCULES'=tmp1;
  188. tab1.'CARACTERISTIQUES'=mav1;
  189. tab1.'PROCESSEURS' = 'MOT' 'AUTOMATIQUE';
  190. pasapas tab1;
  191.  
  192.  
  193.  
  194.  
  195.  
  196.  
  197.  
  198.  
  199.  
  200. ***** On commence du pas zero
  201. mchdep= epsi mov1 tab1.deplacements.0;
  202.  
  203. corth= rtens tab1.contraintes.0 mov1 mav1;
  204. dorth= rtens mchdep mov1 mav1;
  205.  
  206. cntxxo= prog ( maxi ( (exco 'SMXX' corth)/1.e6) ) ;
  207. cntyyo= prog ( maxi ( (exco 'SMYY' corth)/1.e6) ) ;
  208. cntzzo= prog ( maxi ( (exco 'SMZZ' corth)/1.e6) ) ;
  209. cntxyo= prog ( maxi ( (exco 'SMXY' corth)/1.e6) ) ;
  210. cntxzo= prog ( maxi ( (exco 'SMXZ' corth)/1.e6) ) ;
  211. cntyzo= prog ( maxi ( (exco 'SMYZ' corth)/1.e6) ) ;
  212.  
  213. depxxo= prog ( maxi ( (exco 'EPXX' dorth)) ) ;
  214. depyyo= prog ( maxi ( (exco 'EPYY' dorth)) ) ;
  215. depzzo= prog ( maxi ( (exco 'EPZZ' dorth)) ) ;
  216. depxyo= prog ( maxi ( (exco 'GAXY' dorth)) ) ;
  217. depxzo= prog ( maxi ( (exco 'GAXZ' dorth)) ) ;
  218. depyzo= prog ( maxi ( (exco 'GAYZ' dorth)) ) ;
  219.  
  220.  
  221.  
  222.  
  223.  
  224.  
  225.  
  226. cntxx= prog (maxi ( (exco 'SMXX' tab1.contraintes.0)/1.e6)) ;
  227. cntzz= prog (maxi ( (exco 'SMYY' tab1.contraintes.0)/1.e6)) ;
  228. cntyy= prog (maxi ( (exco 'SMZZ' tab1.contraintes.0)/1.e6)) ;
  229. cntxy= prog (maxi ( (exco 'SMXY' tab1.contraintes.0)/1.e6)) ;
  230. cntxz= prog (maxi ( (exco 'SMXZ' tab1.contraintes.0)/1.e6)) ;
  231. cntyz= prog (maxi ( (exco 'SMYZ' tab1.contraintes.0)/1.e6)) ;
  232.  
  233. depxx= prog (maxi ( (exco 'EPXX' mchdep)) ) ;
  234. depyy= prog (maxi ( (exco 'EPYY' mchdep)) ) ;
  235. depzz= prog (maxi ( (exco 'EPZZ' mchdep)) ) ;
  236. depxy= prog (maxi ( (exco 'GAXY' mchdep)) ) ;
  237. depxz= prog (maxi ( (exco 'GAXZ' mchdep)) ) ;
  238. depyz= prog (maxi ( (exco 'GAYZ' mchdep)) ) ;
  239.  
  240.  
  241.  
  242. d1= prog (maxi ( (exco 'DOM1' tab1.variables_internes.0))) ;
  243. d2= prog (maxi ( (exco 'DOM2' tab1.variables_internes.0))) ;
  244. d3= prog (maxi ( (exco 'DOM3' tab1.variables_internes.0))) ;
  245.  
  246.  
  247.  
  248.  
  249. npas = enti (char1/paschar);
  250.  
  251. repe ijk (npas);
  252.  
  253. mchdep= epsi mov1 tab1.deplacements.&ijk;
  254.  
  255.  
  256.  
  257.  
  258. cntxx= cntxx et
  259. (prog (maxi ( (exco 'SMXX' tab1.contraintes.&ijk)/1.e6)));
  260. cntzz= cntzz et
  261. (prog (maxi ( (exco 'SMYY' tab1.contraintes.&ijk)/1.e6)));
  262. cntyy= cntyy et
  263. (prog (maxi ( (exco 'SMZZ' tab1.contraintes.&ijk)/1.e6)));
  264. cntxy= cntxy et
  265. (prog (maxi ( (exco 'SMXY' tab1.contraintes.&ijk)/1.e6)));
  266. cntxz= cntxz et
  267. (prog (maxi ( (exco 'SMXZ' tab1.contraintes.&ijk)/1.e6)));
  268. cntyz= cntyz et
  269. (prog (maxi ( (exco 'SMYZ' tab1.contraintes.&ijk)/1.e6)));
  270.  
  271. depxx= depxx et (prog (maxi ( (exco 'EPXX' mchdep))));
  272. depyy= depyy et (prog (maxi ( (exco 'EPYY' mchdep))));
  273. depzz= depzz et (prog (maxi ( (exco 'EPZZ' mchdep))));
  274. depxy= depxy et (prog (maxi ( (exco 'GAXY' mchdep))));
  275. depxz= depxz et (prog (maxi ( (exco 'GAXZ' mchdep))));
  276. depyz= depyz et (prog (maxi ( (exco 'GAYZ' mchdep))));
  277.  
  278.  
  279.  
  280.  
  281.  
  282.  
  283.  
  284.  
  285. corth= rtens tab1.contraintes.&ijk mov1 mav1;
  286. dorth= rtens mchdep mov1 mav1;
  287.  
  288. cntxxo= cntxxo et (prog (maxi ( (exco 'SMXX' corth)/1.e6)));
  289. cntyyo= cntyyo et (prog (maxi ( (exco 'SMYY' corth)/1.e6)));
  290. cntzzo= cntzzo et (prog (maxi ( (exco 'SMZZ' corth)/1.e6)));
  291. cntxyo= cntxyo et (prog (maxi ( (exco 'SMXY' corth)/1.e6)));
  292. cntxzo= cntxzo et (prog (maxi ( (exco 'SMXZ' corth)/1.e6)));
  293. cntyzo= cntyzo et (prog (maxi ( (exco 'SMYZ' corth)/1.e6)));
  294.  
  295. depxxo= depxxo et (prog (maxi ( (exco 'EPXX' dorth))));
  296. depyyo= depyyo et (prog (maxi ( (exco 'EPYY' dorth))));
  297. depzzo= depzzo et (prog (maxi ( (exco 'EPZZ' dorth))));
  298. depxyo= depxyo et (prog (maxi ( (exco 'GAXY' dorth))));
  299. depxzo= depxzo et (prog (maxi ( (exco 'GAXZ' dorth))));
  300. depyzo= depyzo et (prog (maxi ( (exco 'GAYZ' dorth))));
  301.  
  302.  
  303.  
  304.  
  305.  
  306. d1= d1 et (prog (maxi ( (exco 'DOM1' tab1.variables_internes.&ijk))));
  307. d2= d2 et (prog (maxi ( (exco 'DOM2' tab1.variables_internes.&ijk))));
  308. d3= d3 et (prog (maxi ( (exco 'DOM3' tab1.variables_internes.&ijk))));
  309.  
  310.  
  311. fin ijk;
  312.  
  313.  
  314. courxx= evol manu 'deformation' depxx 'contrainte' cntxx;
  315. couryy= evol manu 'deformation' depyy 'contrainte' cntyy;
  316. courzz= evol manu 'deformation' depzz 'contrainte' cntzz;
  317. courxy= evol manu 'deformation' depxy 'contrainte' cntxy;
  318. courxz= evol manu 'deformation' depxz 'contrainte' cntxz;
  319. couryz= evol manu 'deformation' depyz 'contrainte' cntyz;
  320.  
  321.  
  322. courxxo= evol manu 'deformation' depxxo 'contrainte' cntxxo;
  323. couryyo= evol manu 'deformation' depyyo 'contrainte' cntyyo;
  324. courzzo= evol manu 'deformation' depzzo 'contrainte' cntzzo;
  325. courxyo= evol manu 'deformation' depxyo 'contrainte' cntxyo;
  326. courxzo= evol manu 'deformation' depxzo 'contrainte' cntxzo;
  327. couryzo= evol manu 'deformation' depyzo 'contrainte' cntyzo;
  328.  
  329.  
  330. courd1= evol manu 'Contrainte' cntxx 'd1' d1;
  331. courd2= evol manu 'Contrainte' cntyy 'd2' d2;
  332. courd3= evol manu 'Contrainte' cntzz 'd3' d3;
  333.  
  334.  
  335.  
  336. si (ega graph 'O');
  337. dess courxx;
  338. finsi;
  339.  
  340.  
  341.  
  342. **********
  343. mchdep= epsi mov1 tab1.deplacements.npas;
  344. dorth= rtens mchdep mov1 mav1;
  345.  
  346. epxxc= maxi ( (exco 'EPXX' dorth));
  347. epyyc= maxi ( (exco 'EPYY' dorth));
  348. epzzc= maxi ( (exco 'EPZZ' dorth));
  349. gaxyc= maxi ( (exco 'GAXY' dorth));
  350. gaxzc= maxi ( (exco 'GAXZ' dorth));
  351. gayzc= maxi ( (exco 'GAYZ' dorth));
  352.  
  353. epxxt= 8.19e-04;
  354. epyyt= 8.19e-04;
  355. epzzt= -2.30e-4;
  356. gaxyt= 2.82e-3;
  357. gaxzt= 0.0;
  358. gayzt= 0.0;
  359.  
  360.  
  361.  
  362.  
  363. dcal1=maxi ( (exco 'DOM1' tab1.variables_internes.npas));
  364. dcal2=maxi ( (exco 'DOM2' tab1.variables_internes.npas));
  365. dcal3=maxi ( (exco 'DOM3' tab1.variables_internes.npas));
  366.  
  367. dter1=4.17e-1;
  368. dter2=4.17e-1;
  369. dter3=0.;
  370.  
  371.  
  372. saut 2 lignes;
  373.  
  374. opti echo 0;
  375. mess '**************************************************';
  376. mess ' DEFORMATION FINALES';
  377. mess ' Val. calc. Val. Theor.';
  378. mess ' ' epxxc ' ' epxxt;
  379. mess ' ' epyyc ' ' epyyt;
  380. mess ' ' epzzc ' ' epzzt;
  381. mess ' ' gaxyc ' ' gaxyt;
  382. mess ' ' gaxzc ' ' gaxzt;
  383. mess ' ' gayzc ' ' gayzt;
  384. mess '**************************************************';
  385. mess ' VARIABLES D''ENDOMMAGEMENT';
  386. mess ' Val. calc. Val. Theor.';
  387. mess ' ' dcal1 ' ' dter1;
  388. mess ' ' dcal2 ' ' dter2;
  389. mess ' ' dcal3 ' ' dter3;
  390.  
  391. opti echo 1;
  392.  
  393. err1 = 100*((abs(dcal1)-(abs(dter1)))/(abs(dcal1)));
  394. err2 = 100*((abs(dcal2)-(abs(dter2)))/(abs(dcal2)));
  395. err3 = 100*((abs(epxxc)-(abs(epxxt)))/(abs(epxxc)));
  396. err4 = 100*((abs(epyyc)-(abs(epyyt)))/(abs(epyyc)));
  397. err5 = 100*((abs(epzzc)-(abs(epzzt)))/(abs(epzzc)));
  398. err6 = 100*((abs(gaxyc)-(abs(gaxyt)))/(abs(gaxyc)));
  399.  
  400.  
  401. listerr= prog err1 err2 err3 err4 err5 err6;
  402.  
  403. err= maxi listerr;
  404.  
  405.  
  406. si (err < 1);
  407. erre 0;
  408. sinon;
  409. erre 5;
  410. finsi;
  411.  
  412.  
  413.  
  414.  
  415.  
  416. fin;
  417.  
  418.  
  419.  
  420.  
  421.  
  422.  
  423.  
  424.  
  425.  
  426.  
  427.  
  428.  
  429.  
  430.  
  431.  

© Cast3M 2003 - Tous droits réservés.
Mentions légales