Télécharger mazars_compression_cyclique.dgibi

Retour à la liste

Numérotation des lignes :

  1. * fichier : mazars_compression_cyclique.dgibi
  2. ************************************************************************
  3. * Cas test elementaire pour la loi d'endommagement de Mazars *
  4. * Essai de compression simple cyclique *
  5. * *
  6. * Le test est realise avec plusieurs modes de calcul : *
  7. * 1) 3D volumique *
  8. * 2) 3D poutre a fibre *
  9. * 3) 2D contraintes planes *
  10. * 4) 2D axisymetrique *
  11. * 5) 2D poutre a fibre *
  12. * *
  13. * ITRAC1 : VRAI => affichage resultats *
  14. * IPSC1 : VRAI => affichage resultats dans un PostScript Couleur *
  15. ************************************************************************
  16.  
  17. ** Options pour les traces
  18. ITRAC1 = FAUX ;
  19. IPSC1 = VRAI ;
  20. SI IPSC1 ;
  21. OPTI 'TRAC' 'PSC' ;
  22. FINSI ;
  23.  
  24. ** Sortie sur Erreur 1152 "Solution calculee non conforme par rapport a la solution de reference"
  25. IERR = FAUX ;
  26.  
  27. ** Liste des modes de calcul a traiter
  28. lcas = LECT 1 2 3 4 5 ;
  29. *nh145313
  30. *lcas = LECT 1 ; COMM '3D volumique' ;
  31. *lcas = LECT 2 ; COMM '3D poutre a fibre' ;
  32. *lcas = LECT 3 ; COMM '2D contraintes planes' ;
  33. *lcas = LECT 4 ; COMM '2D axisymetrique' ;
  34. *lcas = LECT 5 ; COMM '2D poutre a fibre' ;
  35.  
  36. ** Parametres geometriques
  37. long = 1. ;
  38. epai = 0.1 ;
  39.  
  40. ** Parametres materiau
  41. you = 20.E9 ;
  42. nu = 0.2 ;
  43. epd0 = 8.E-5 ;
  44. at = 1. ;
  45. ac = 1.5 ;
  46. bt = 8000. ;
  47. bc = 1550. ;
  48. beta = 1. ;
  49.  
  50. *nh145313
  51. ** Paramètres chargement
  52. umax = -5.E-3 ;
  53.  
  54. ** Legende courbes
  55. tdess = 'TABLE' ;
  56. tdess.'TITRE' = 'TABLE' ;
  57. tdess. 1 = 'MARQ LOSA' ;
  58. tdess.'TITRE'. 1 = MOT 'Calcul' ;
  59. tdess. 2 = 'MARQ CROI' ;
  60. tdess.'TITRE'. 2 = MOT 'Reference' ;
  61.  
  62.  
  63.  
  64.  
  65.  
  66. **************** C A S #1 : 3 D V O L U M I Q U E ****************
  67. SI (EXIS lcas 1) ;
  68.  
  69. ** Options generales
  70. OPTI 'DIME' 3 'MODE' 'TRID' 'ELEM' 'CUB8' ;
  71.  
  72. ** Maillage
  73. p1 = 0. 0. 0. ;
  74. p2 = 0. long 0. ;
  75. l12 = DROI 1 p1 p2 ;
  76. sgauche = l12 TRAN 1 (0. 0. long) ;
  77. mail = sgauche VOLU 'TRAN' 1 (long 0. 0.) ;
  78. sdroite = mail FACE 2 ;
  79. p3 = sdroite POIN 'PROC' (long 0. 0.) ;
  80. mes1 = MESU mail ;
  81. *nh145313
  82. cadr1 = COUL ((0. 1.05 1.05) ET (1. 1.05 1.05)) 'BLAN' ;
  83. rep1 = @REPERE (-0.55 -0.55 0.) 'TURQ' ;
  84. SI ITRAC1 ;
  85. TRAC 'QUAL' (cadr1 ET rep1 ET mail ET (sgauche COUL 'VERT') ET (sdroite COUL 'ROUG')) 'TITR' '[3D V] Maillage' ;
  86. FINSI ;
  87.  
  88. ** Modele et caracteristiques materiau
  89. mo = MODE mail 'MECANIQUE' 'ELASTIQUE' 'ENDOMMAGEMENT' 'MAZARS' ;
  90. ma = MATE mo 'YOUN' you 'NU' nu 'KTR0' epd0 'ACOM' ac 'BCOM' bc 'ATRA' at 'BTRA' bt 'BETA' beta ;
  91.  
  92. ** Blocages
  93. blgauche = BLOQ 'UX' sgauche ;
  94. bldroite = BLOQ 'UX' sdroite ;
  95. blrig = (BLOQ 'UY' 'UZ' p1) ET (BLOQ 'UZ' p2) ;
  96. bl = blgauche ET bldroite ET blrig ;
  97.  
  98. ** Chargements
  99. didroite = DEPI bldroite umax ;
  100. ec1 = EVOL 'MANU' (PROG 0. 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1.)
  101. (PROG 0. 0.2 0. 0.4 0. 0.6 0. 0.8 0. 1. 0.) ;
  102. cha = CHAR 'DIMP' didroite ec1 ;
  103.  
  104. ** Tracé des blocages et du chargement
  105. re0 = @REPERE (-0.55 -0.55 0.) ;
  106. mor = MODE re0 'MECANIQUE' 'BARR' ;
  107. mar = MATE mor 'YOUN' 1. 'NU' 1. 'SECT' 1. ;
  108. rir = RIGI mor mar ;
  109. vf = VECT didroite 'FLX' ' ' ' ' 'ROUGE' ;
  110. SI ITRAC1 ;
  111. TRAC ((RIGI mo ma) ET blgauche ET blrig ET rir) vf 'NOLE' 'TITR' '[3D V] Blocages et chargement' ;
  112. FINSI ;
  113.  
  114. ** Resolution
  115. t = TABL ;
  116. t . 'MODELE' = mo ;
  117. t . 'CARACTERISTIQUES' = ma ;
  118. t . 'BLOCAGES_MECANIQUES' = bl ;
  119. t . 'CHARGEMENT' = cha ;
  120. t . 'TEMPS_CALCULES' = PROG 0. 'PAS' 0.01 0.08
  121. 0.086 'PAS' 0.002 0.09
  122. 0.1 'PAS' 0.01 0.3
  123.  
  124. 'PAS' 0.01 0.46 0.466
  125. 'PAS' 0.00066 0.468
  126. 'PAS' 0.002 0.47
  127.  
  128. 'PAS' 0.01 0.67
  129. 'PAS' 0.0025 0.68
  130. 'PAS' 0.01 0.7
  131.  
  132. 'PAS' 0.01 0.9
  133. 'PAS' 0.01 1.0 ;
  134. t . 'MOVA' = MOT 'D' ;
  135. t . 'MES_SAUVEGARDES' = TABL ;
  136. t . 'MES_SAUVEGARDES' . 'DEFTO' = VRAI ;
  137. PASAPAS t ;
  138.  
  139. ** Post traitement
  140. * courbes : endommagement moyen vs temps
  141. * contrainte moyenne vs deformation moyenne
  142. * force de reaction vs deplacement impose
  143. tt = t . 'TEMPS' ;
  144. tc = t . 'CONTRAINTES' ;
  145. te = t . 'DEFORMATIONS' ;
  146. tv = t . 'VARIABLES_INTERNES' ;
  147. tu = t . 'DEPLACEMENTS' ;
  148. tr = t . 'REACTIONS' ;
  149. def0 = DEFO (cadr1 ET rep1 ET mail) (tu . 0) 0. ;
  150. ltps = PROG ;
  151. lend = PROG ;
  152. lsig = PROG ;
  153. leps = PROG ;
  154. ldep = PROG ;
  155. lrea = PROG ;
  156. REPE b1 (DIME tt) ;
  157. tps1 = tt . (&b1 - 1) ;
  158. ltps = ltps ET tps1 ;
  159. end1 = (INTG mo (tv . (&b1 - 1)) 'D') / mes1 ;
  160. sig1 = (INTG mo (tc . (&b1 - 1)) 'SMXX') / mes1 ;
  161. eps1 = (INTG mo (te . (&b1 - 1)) 'EPXX') / mes1 ;
  162. u1 = EXTR (tu . (&b1 - 1)) 'UX' p3 ;
  163. rea1 = 0. ;
  164. SI (NEG &b1 1) ;
  165. rea1 = @TOTAL (tr . (&b1 - 1)) sgauche 'FX' ;
  166. FINSI ;
  167. lend = lend ET end1 ;
  168. lsig = lsig ET sig1 ;
  169. leps = leps ET eps1 ;
  170. ldep = ldep ET u1 ;
  171. lrea = lrea ET rea1 ;
  172. FIN b1 ;
  173. ev0 = EVOL 'ROUG' 'MANU' 'Temps' ltps 'D' lend ;
  174. ev1 = EVOL 'ROUG' 'MANU' 'EPXX' leps 'SMXX' lsig ;
  175. ev2 = EVOL 'ROUG' 'MANU' 'UX' ldep 'FX' lrea ;
  176. *nh145313
  177. ltps1 = ENLE ltps 1 ;
  178. nb1 = DIME ltps1 ;
  179. un1 = PROG nb1 * 1.D0 ;
  180. lepd0 = PROG nb1 * epd0 ;
  181. lac1 = PROG nb1 * ac ;
  182. lep1 = IPOL ltps1 ec1 ;
  183. lepu = lep1 * umax / long ;
  184. lepe = (2.**0.5) * nu * (ABS lepu) ;
  185. *mess 'lepe avant seuillage 0'; list lepe;
  186. seuil0 = lepe MASQ 'EGAL' 0 ;
  187. *mess 'test seuil0';list seuil0;
  188. lepe0 = seuil0 * 1.E-20 ;
  189. *mess 'lepe0';list lepe0;
  190. lepe = lepe + lepe0 ;
  191. *mess 'lepe apres seuillage 0'; list lepe;
  192. dc = un1 - ((epd0*(un1-lac1)/lepe) + (ac*(EXP(bc*(lepd0-lepe))))) ;
  193. *mess 'dc avant filtrage';list dc;
  194. dc_m = 0. ;
  195. ldc = PROG ;
  196. REPE b2 ;
  197. dc_i = EXTR dc &b2 ;
  198. de_i = EXTR lepe &b2 ;
  199. SI (EGA &b2 1) ;
  200. dc_p = 1. ;
  201. de_p = 0. ;
  202. FINSI ;
  203. ddc = dc_i - dc_p ;
  204. dde = de_i - de_p ;
  205. *mess '=== Boucle b2 passage' ' ' &b2;
  206. *mess ' dom.max ' ' ' dc_m;
  207. *mess ' dom.preced.' ' ' dc_p;
  208. *mess ' dom.courant' ' ' dc_i;
  209. *mess ' inc.dommage' ' ' ddc;
  210. *mess ' inc.defo.eq' ' ' dde;
  211. SI ((ddc < 0.) OU (dc_i < 0.) OU (dc_i > 1.) OU (dde < 0)) ;
  212. *mess ' => a filtrer';
  213. ldc = ldc ET (PROG dc_m) ;
  214. SINON;
  215. *mess ' a garder si le dommage augmente...';
  216. dc_m = MAXI dc_m dc_i ;
  217. *mess ' dom.max ' ' ' dc_m;
  218. SI (dc_i < dc_m) ;
  219. *mess ' ... NON => on ne garde pas';
  220. ldc = ldc ET (PROG dc_m) ;
  221. SINON ;
  222. *mess ' ... OUI => on garde';
  223. ldc = ldc ET (PROG dc_i) ;
  224. FINSI ;
  225. FINSI ;
  226. dc_p = dc_i ;
  227. de_p = de_i ;
  228. *mess ' list dom.';list ldc;
  229. SI (EGA &b2 (DIME dc)) ;
  230. *mess '=== Sortie Boucle b2';
  231. QUIT b2 ;
  232. FINSI ;
  233. FIN b2 ;
  234. dc = ldc ;
  235. *mess 'dc apres filtrage';list dc;
  236. lsig1 = (un1 - dc) * you * lepu ;
  237. * contrainte nulle = 1.E-20
  238. seuilsc = lsig MASQ 'EGSUP' -1.E-6 ;
  239. sc0 = seuilsc * -1.E-20 ;
  240. lsig = (lsig * (lsig MASQ 'EGINF' -1.E-6)) + sc0 ;
  241. seuilsr = lsig1 MASQ 'EGSUP' -1.E-6 ;
  242. sr0 = seuilsr * -1.E-20 ;
  243. lsig1 = (lsig1 * (lsig1 MASQ 'EGINF' -1.E-6)) + sr0 ;
  244. *mess 'Sig.calcul';list (ENLE lsig 1);
  245. *mess 'Sig.Ref.';list lsig1;
  246. an0 = EVOL 'TURQ' 'MANU' 'Temps' ltps1 'D' dc ;
  247. an1 = EVOL 'TURQ' 'MANU' 'EPXX' lepu 'SMXX' lsig1 ;
  248. ansmxx = EVOL 'TURQ' 'MANU' 'Temps' ltps1 'SMXX' lsig1 ;
  249. SI ITRAC1 ;
  250. DESS (ev0 ET an0) 'TITR' '[3D V] Endommagement vs Temps' 'LEGE' 'SE' tdess ;
  251. DESS (ev1 ET an1) 'XBOR' -6.E-3 0. 'TITR' '[3D V] Contrainte vs Deformation' 'LEGE' 'NO' tdess ;
  252. DESS ev2 'TITR' '[3D V] Reaction vs Deplacement' 'LEGE' 'SO' tdess ;
  253. FINSI ;
  254. * evolutions temporelles a tous les points de Gauss
  255. ng = 8 ;
  256. tleg = TABL ;
  257. tleg . 1 = MOT 'MARQ CARR NOLI' ;
  258. tleg . 2 = MOT 'MARQ LOSA NOLI' ;
  259. tleg . 3 = MOT 'MARQ ROND NOLI' ;
  260. tleg . 4 = MOT 'MARQ ETOI NOLI' ;
  261. tleg . 5 = MOT 'MARQ TRID NOLI' ;
  262. tleg . 6 = MOT 'MARQ TRIU NOLI' ;
  263. tleg . 7 = MOT 'MARQ TRIL NOLI' ;
  264. tleg . 8 = MOT 'MARQ TRIR NOLI' ;
  265. tleg . 'TITRE' = TABL ;
  266. *
  267. evend = VIDE 'EVOLUTIO' ;
  268. evsmxx = VIDE 'EVOLUTIO' ;
  269. evepxx = VIDE 'EVOLUTIO' ;
  270. REPE b ng ;
  271. tleg . 'TITRE' . &b = CHAI 'Calc_Pt_Gauss' ' ' &b ;
  272. evend = evend ET (EVOL 'ROSE' 'TEMP' t 'VARIABLES_INTERNES' 'D' 1 1 &b) ;
  273. evsmxx = evsmxx ET (EVOL 'BLEU' 'TEMP' t 'CONTRAINTES' 'SMXX' 1 1 &b) ;
  274. evepxx = evepxx ET (EVOL 'VERT' 'TEMP' t 'DEFORMATIONS' 'EPXX' 1 1 &b) ;
  275. FIN b ;
  276. tleg . (ng+1) = MOT 'MARQ CROI' ;
  277. tleg . 'TITRE' . (ng+1) = MOT 'Reference' ;
  278. *
  279. SI ITRAC1 ;
  280. DESS (evend ET an0) 'LEGE' 'SE' tleg 'TITR' '[3D V] D vs Temps' ;
  281. DESS (evsmxx ET ansmxx) 'LEGE' 'NE' tleg 'TITR' '[3D V] SMXX vs Temps' ;
  282. DESS evepxx 'LEGE' 'SO' tleg 'TITR' '[3D V] EPXX vs Temps' ;
  283. FINSI ;
  284. *
  285. * deformee
  286. REPE b2 (DIME tt) ;
  287. tps1 = tt . (&b2 - 1) ;
  288. * trace de la deformee (pour controle visuel)
  289. def1 = DEFO mail (tu . (&b2 - 1)) 33. 'ROUG' ;
  290. tit1 = CHAI '[3D V] Deformee au temps' ' ' tps1 ;
  291. SI ITRAC1 ;
  292. * TRAC (def0 ET def1) 'TITR' tit1 ;
  293. FINSI ;
  294. FIN b2 ;
  295. SI ITRAC1 ;
  296. TRAC (def0 ET def1) 'TITR' tit1 ;
  297. FINSI ;
  298. *
  299. * comparaison Calcul / Reference sur la contrainte moyenne
  300. ler1 = ABS (((ENLE lsig 1) - lsig1) / lsig1) ;
  301. eer1 = EVOL 'ORAN' 'MANU' 'Temps' ltps1 '|Ec.rel|SMXX' ler1 ;
  302. dtps = (EXTR ltps1 (DIME ltps1)) - (EXTR ltps1 1) ;
  303. mer1 = (INTG eer1) / dtps ;
  304. tit1 = CHAI '[3D V] Val.abs.Ec.rel.|(Calc-Ref)/Ref| Contr. vs tps, moy.int.|Ecart|' ' ' mer1 ;
  305. SI ITRAC1 ;
  306. DESS eer1 'TITR' tit1 ;
  307. FINSI ;
  308. OPTI ECHO 0 ;
  309. SAUT 1 LIGN ;
  310. MESS ' **************** C A S #1 : 3 D V O L U M I Q U E ****************';
  311. SAUT 1 LIGN ;
  312. SI (mer1 < 1.E-6) ;
  313. MESS ' Moy.int. Val.abs. Ecart relatif entre Calcul et Reference' ' ' mer1 ' < 1.E-06 => OK' ;
  314. SAUT 1 LIGN ;
  315. SINO ;
  316. MESS ' Moy.int. Val.abs. Ecart relatif entre Calcul et Reference' ' ' mer1 ' > 1.E-06 => ECHEC' ;
  317. IERR = VRAI ;
  318. SAUT 1 LIGN ;
  319. FINS ;
  320. SAUT 1 LIGN ;
  321. OPTI ECHO 1 ;
  322. FINSI ;
  323.  
  324.  
  325.  
  326.  
  327.  
  328. *********** C A S #2 : 3 D P O U T R E A F I B R E ************
  329. SI (EXIS lcas 2) ;
  330.  
  331. ** Options generales
  332. OPTI 'DIME' 3 'MODE' 'TRID' 'ELEM' 'CUB8' ;
  333.  
  334. ** Maillage
  335. p1s = (-0.5 * epai) (-0.5 * epai) 0. ;
  336. p2s = (-0.5 * epai) ( 0.5 * epai) 0. ;
  337. l12s = DROI 1 p1s p2s ;
  338. mails = l12s TRAN 1 (epai 0. 0.) ;
  339. p1 = 0. 0. 0. ;
  340. p2 = long 0. 0. ;
  341. mail = DROI 1 p1 p2 ;
  342. mes1 = MESU mails ;
  343. *nh145313
  344. cadr1 = COUL ((-0.1 0. 0.) ET (1. 0. 0.)) 'BLAN' ;
  345. rep1 = @REPERE (-0.2 -0.2 0.) (PROG 0.2 0.2 0.2) 'TURQ' ;
  346. SI ITRAC1 ;
  347. TRAC 'QUAL' (cadr1 ET rep1 ET (mails COUL 'VERT') ET (mail COUL 'ROUG')) 'TITR' '[3D PaF] Maillages de la Poutre et de sa Section' ;
  348. FINSI ;
  349.  
  350.  
  351. ** Modele et caracteristiques materiau
  352. mos = MODE mails 'MECANIQUE' 'ELASTIQUE' 'PLASTIQUE' 'MAZARS' 'QUAS' ;
  353. mas = MATE mos 'YOUN' you 'NU' nu 'KTR0' epd0 'ACOM' ac 'BCOM' bc 'ATRA' at 'BTRA' bt 'BETA' beta
  354. 'ALPY' 1. 'ALPZ' 1. ;
  355. mo = MODE mail 'MECANIQUE' 'ELASTIQUE' 'SECTION' 'PLASTIQUE' 'SECTION' 'TIMO' ;
  356. ma = MATE mo 'MODS' mos 'MATS' mas 'VECT' (0. 1. 0.) ;
  357.  
  358. ** Blocages
  359. blgauche = BLOQ 'DEPL' 'ROTA' p1 ;
  360. bldroite = BLOQ 'UX' p2 ;
  361. bl = blgauche ET bldroite ;
  362. *nh145313
  363. bldroit2 = BLOQ 'ROTA' p2 ;
  364. bl = bl ET bldroit2 ;
  365.  
  366. ** Chargements
  367. didroite = DEPI bldroite umax ;
  368. ec1 = EVOL 'MANU' (PROG 0. 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1.)
  369. (PROG 0. 0.2 0. 0.4 0. 0.6 0. 0.8 0. 1. 0.) ;
  370. cha = CHAR 'DIMP' didroite ec1 ;
  371.  
  372. ** Tracé des blocages et du chargement
  373. re0 = @REPERE (-0.2 -0.2 0.) (PROG 0.2 0.2 0.2) ;
  374. mor = MODE re0 'MECANIQUE' 'BARR' ;
  375. mar = MATE mor 'YOUN' 1. 'NU' 1. 'SECT' 1. ;
  376. rir = RIGI mor mar ;
  377. vf = VECT didroite 'FLX' ' ' ' ' 'ROUG' 20. ;
  378. SI ITRAC1 ;
  379. TRAC ((RIGI mo ma) ET blgauche ET rir) vf 'NOLE' 'TITR' '[3D PaF] Blocages et chargement' ;
  380. FINSI ;
  381.  
  382. ** Resolution
  383. t = TABL ;
  384. t . 'MODELE' = mo ;
  385. t . 'CARACTERISTIQUES' = ma ;
  386. t . 'BLOCAGES_MECANIQUES' = bl ;
  387. t . 'CHARGEMENT' = cha ;
  388. t . 'TEMPS_CALCULES' = PROG 0. 'PAS' 0.01 0.08
  389. 0.086 'PAS' 0.002 0.09
  390. 0.1 'PAS' 0.01 0.3
  391.  
  392. 'PAS' 0.01 0.46 0.466
  393. 'PAS' 0.00066 0.468
  394. 'PAS' 0.002 0.47
  395.  
  396. 'PAS' 0.01 0.67
  397. 'PAS' 0.0025 0.68
  398. 'PAS' 0.01 0.7
  399.  
  400. 'PAS' 0.01 0.9
  401. 'PAS' 0.01 1.0 ;
  402. t . 'MES_SAUVEGARDES' = TABL ;
  403. t . 'MES_SAUVEGARDES' . 'DEFTO' = VRAI ;
  404. PASAPAS t ;
  405.  
  406. ** Post traitement
  407. * courbes : endommagement moyen vs temps
  408. * contrainte moyenne vs deformation moyenne
  409. * force de reaction vs deplacement impose
  410. * evolutions temporelles a tous les points de Gauss
  411. ng = 4 ;
  412. tleg = TABL ;
  413. tleg . 1 = MOT 'MARQ CARR NOLI' ;
  414. tleg . 2 = MOT 'MARQ LOSA NOLI' ;
  415. tleg . 3 = MOT 'MARQ ROND NOLI' ;
  416. tleg . 4 = MOT 'MARQ ETOI NOLI' ;
  417. tleg . 'TITRE' = TABL ;
  418. REPE b ng ;
  419. tleg . 'TITRE' . &b = CHAI 'Calc_Pt_Gauss' ' ' &b ;
  420. FIN b ;
  421. *nh145313
  422. tleg . (ng+1) = MOT 'MARQ CROI' ;
  423. tleg . 'TITRE' . (ng+1) = MOT 'Reference' ;
  424. tt = t . 'TEMPS' ;
  425. tv = t . 'VARIABLES_INTERNES' ;
  426. tu = t . 'DEPLACEMENTS' ;
  427. tr = t . 'REACTIONS' ;
  428. def0 = DEFO (cadr1 ET rep1 ET mail) (tu . 0) 0. ;
  429. ltps = PROG ;
  430. lend1 = PROG ;
  431. lend2 = PROG ;
  432. lend3 = PROG ;
  433. lend4 = PROG ;
  434. lsig1 = PROG ;
  435. lsig2 = PROG ;
  436. lsig3 = PROG ;
  437. lsig4 = PROG ;
  438. leps1 = PROG ;
  439. leps2 = PROG ;
  440. leps3 = PROG ;
  441. leps4 = PROG ;
  442. ldep = PROG ;
  443. lrea = PROG ;
  444. REPE b1 (DIME tt) ;
  445. tps1 = tt . (&b1 - 1) ;
  446. ltps = ltps ET tps1 ;
  447. SI (EGA &b1 1) ;
  448. lend1 = lend1 ET 0. ;
  449. lend2 = lend2 ET 0. ;
  450. lend3 = lend3 ET 0. ;
  451. lend4 = lend4 ET 0. ;
  452. lsig1 = lsig1 ET 0. ;
  453. lsig2 = lsig2 ET 0. ;
  454. lsig3 = lsig3 ET 0. ;
  455. lsig4 = lsig4 ET 0. ;
  456. leps1 = leps1 ET 0. ;
  457. leps2 = leps2 ET 0. ;
  458. leps3 = leps3 ET 0. ;
  459. leps4 = leps4 ET 0. ;
  460. SINON ;
  461. lend1 = lend1 ET (EXTR (EXTR (tv . (&b1 - 1)) 'VAIS' 1 1 1) 'VHNI' 1 1 1) ;
  462. lend2 = lend2 ET (EXTR (EXTR (tv . (&b1 - 1)) 'VAIS' 1 1 1) 'VHNI' 1 1 2) ;
  463. lend3 = lend3 ET (EXTR (EXTR (tv . (&b1 - 1)) 'VAIS' 1 1 1) 'VHNI' 1 1 3) ;
  464. lend4 = lend4 ET (EXTR (EXTR (tv . (&b1 - 1)) 'VAIS' 1 1 1) 'VHNI' 1 1 4) ;
  465. lsig1 = lsig1 ET (EXTR (EXTR (tv . (&b1 - 1)) 'VONS' 1 1 1) 'SMXX' 1 1 1) ;
  466. lsig2 = lsig2 ET (EXTR (EXTR (tv . (&b1 - 1)) 'VONS' 1 1 1) 'SMXX' 1 1 2) ;
  467. lsig3 = lsig3 ET (EXTR (EXTR (tv . (&b1 - 1)) 'VONS' 1 1 1) 'SMXX' 1 1 3) ;
  468. lsig4 = lsig4 ET (EXTR (EXTR (tv . (&b1 - 1)) 'VONS' 1 1 1) 'SMXX' 1 1 4) ;
  469. leps1 = leps1 ET (EXTR (EXTR (tv . (&b1 - 1)) 'VAIS' 1 1 1) 'VISX' 1 1 1) ;
  470. leps2 = leps2 ET (EXTR (EXTR (tv . (&b1 - 1)) 'VAIS' 1 1 1) 'VISX' 1 1 2) ;
  471. leps3 = leps3 ET (EXTR (EXTR (tv . (&b1 - 1)) 'VAIS' 1 1 1) 'VISX' 1 1 3) ;
  472. leps4 = leps4 ET (EXTR (EXTR (tv . (&b1 - 1)) 'VAIS' 1 1 1) 'VISX' 1 1 4) ;
  473. FINSI ;
  474. u1 = EXTR (tu . (&b1 - 1)) 'UX' p2 ;
  475. rea1 = EXTR (tr . (&b1 - 1)) 'FX' p1 ;
  476. ldep = ldep ET u1 ;
  477. lrea = lrea ET rea1 ;
  478. FIN b1 ;
  479. ev0 = (EVOL 'ROUG' 'MANU' 'Temps' ltps 'D' lend1) ET (EVOL 'ROUG' 'MANU' 'Temps' ltps 'D' lend2) ET
  480. (EVOL 'ROUG' 'MANU' 'Temps' ltps 'D' lend3) ET (EVOL 'ROUG' 'MANU' 'Temps' ltps 'D' lend4) ;
  481. ev1 = (EVOL 'ROUG' 'MANU' 'EPXX' leps1 'SMXX' lsig1) ET (EVOL 'ROUG' 'MANU' 'EPXX' leps2 'SMXX' lsig2) ET
  482. (EVOL 'ROUG' 'MANU' 'EPXX' leps3 'SMXX' lsig3) ET (EVOL 'ROUG' 'MANU' 'EPXX' leps4 'SMXX' lsig4) ;
  483. ev2 = EVOL 'ROUG' 'MANU' 'UX' ldep 'FX' lrea ;
  484. *nh145313
  485. ltps1 = ENLE ltps 1 ;
  486. nb1 = DIME ltps1 ;
  487. un1 = PROG nb1 * 1.D0 ;
  488. lepd0 = PROG nb1 * epd0 ;
  489. lac1 = PROG nb1 * ac ;
  490. lep1 = IPOL ltps1 ec1 ;
  491. lepu = lep1 * umax / long ;
  492. lepe = (2.**0.5) * nu * (ABS lepu) ;
  493. *mess 'lepe avant seuillage 0'; list lepe;
  494. seuil0 = lepe MASQ 'EGAL' 0 ;
  495. *mess 'test seuil0';list seuil0;
  496. lepe0 = seuil0 * 1.E-20 ;
  497. *mess 'lepe0';list lepe0;
  498. lepe = lepe + lepe0 ;
  499. *mess 'lepe apres seuillage 0'; list lepe;
  500. dc = un1 - ((epd0*(un1-lac1)/lepe) + (ac*(EXP(bc*(lepd0-lepe))))) ;
  501. dc_m = 0. ;
  502. ldc = PROG ;
  503. REPE b2 ;
  504. dc_i = EXTR dc &b2 ;
  505. de_i = EXTR lepe &b2 ;
  506. SI (EGA &b2 1) ;
  507. dc_p = 1. ;
  508. de_p = 0. ;
  509. FINSI ;
  510. ddc = dc_i - dc_p ;
  511. dde = de_i - de_p ;
  512. SI ((ddc < 0.) OU (dc_i < 0.) OU (dc_i > 1.) OU (dde < 0)) ;
  513. ldc = ldc ET (PROG dc_m) ;
  514. SINON;
  515. dc_m = MAXI dc_m dc_i ;
  516. SI (dc_i < dc_m) ;
  517. ldc = ldc ET (PROG dc_m) ;
  518. SINON ;
  519. ldc = ldc ET (PROG dc_i) ;
  520. FINSI ;
  521. FINSI ;
  522. dc_p = dc_i ;
  523. de_p = de_i ;
  524. SI (EGA &b2 (DIME dc)) ;
  525. QUIT b2 ;
  526. FINSI ;
  527. FIN b2 ;
  528. dc = ldc ;
  529. lsan1 = (un1 - dc) * you * lepu ;
  530. * contrainte nulle = 1.E-20
  531. lsig = (lsig1 + lsig2 + lsig3 + lsig4) / 4. ;
  532. seuilsc = lsig MASQ 'EGSUP' -1.E-6 ;
  533. sc0 = seuilsc * -1.E-20 ;
  534. lsig = (lsig * (lsig MASQ 'EGINF' -1.E-6)) + sc0 ;
  535. seuilsr = lsan1 MASQ 'EGSUP' -1.E-6 ;
  536. sr0 = seuilsr * -1.E-20 ;
  537. lsan1 = (lsan1 * (lsan1 MASQ 'EGINF' -1.E-6)) + sr0 ;
  538. an0 = EVOL 'TURQ' 'MANU' 'Temps' ltps1 'D' dc ;
  539. an1 = EVOL 'TURQ' 'MANU' 'EPXX' lepu 'SMXX' lsan1 ;
  540. SI ITRAC1 ;
  541. DESS (ev0 ET an0) 'LEGE' 'SE' tleg 'TITR' '[3D PaF] Endommagement vs Temps' ;
  542. DESS (ev1 ET an1) 'LEGE' 'NO' tleg 'TITR' '[3D PaF] Contrainte vs Deformation' ;
  543. DESS ev2 'TITR' '[3D PaF] Reaction vs Deplacement' 'LEGE' 'SO' tdess ;
  544. FINSI ;
  545. * deformee
  546. REPE b2 (DIME tt) ;
  547. tps1 = tt . (&b2 - 1) ;
  548. * trace de la deformee (pour controle visuel)
  549. def1 = DEFO mail (tu . (&b2 - 1)) 33. 'ROUG' ;
  550. tit1 = CHAI '[3D PaF] Deformee au temps' ' ' tps1 ;
  551. SI ITRAC1 ;
  552. * TRAC (def0 ET def1) 'TITR' tit1 ;
  553. FINSI ;
  554. FIN b2 ;
  555. SI ITRAC1 ;
  556. TRAC (def0 ET def1) 'TITR' tit1 ;
  557. FINSI ;
  558. * comparaison Calcul / Reference sur la contrainte moyenne
  559. ler1 = ABS (((ENLE lsig 1) - lsan1) / lsan1) ;
  560. eer1 = EVOL 'ORAN' 'MANU' 'Temps' ltps1 '|Ec.rel|SMXX' ler1 ;
  561. dtps = (EXTR ltps1 (DIME ltps1)) - (EXTR ltps1 1) ;
  562. mer1 = (INTG eer1) / dtps ;
  563. tit1 = CHAI '[3D PaF] Val.abs.Ec.rel.|(Calc-Ref)/Ref| Contr. vs tps, moy.int.|Ecart|' ' ' mer1 ;
  564. SI ITRAC1 ;
  565. DESS eer1 'TITR' tit1 ;
  566. FINSI ;
  567. OPTI ECHO 0 ;
  568. SAUT 1 LIGN ;
  569. MESS ' *********** C A S #2 : 3 D P O U T R E A F I B R E ************';
  570. SAUT 1 LIGN ;
  571. SI (mer1 < 1.E-6) ;
  572. MESS ' Moy.int. Val.abs. Ecart relatif entre Calcul et Reference' ' ' mer1 ' < 1.E-06 => OK' ;
  573. SAUT 1 LIGN ;
  574. SINO ;
  575. MESS ' Moy.int. Val.abs. Ecart relatif entre Calcul et Reference' ' ' mer1 ' > 1.E-06 => ECHEC' ;
  576. IERR = VRAI ;
  577. SAUT 1 LIGN ;
  578. FINS ;
  579. SAUT 1 LIGN ;
  580. OPTI ECHO 1 ;
  581. FINSI ;
  582.  
  583.  
  584.  
  585.  
  586.  
  587. ******* C A S #3 : 2 D C O N T R A I N T E S P L A N E S ********
  588. SI (EXIS lcas 3) ;
  589.  
  590. ** Options generales
  591. OPTI 'DIME' 2 'MODE' 'PLAN' 'CONT' 'ELEM' 'QUA4' ;
  592.  
  593. ** Maillage
  594. p1 = 0. 0. ;
  595. p2 = 0. long ;
  596. sgauche = DROI 1 p1 p2 ;
  597. mail = sgauche TRAN 1 (long 0.) ;
  598. sdroite = mail COTE 3 ;
  599. p3 = sdroite POIN 'PROC' (long 0.) ;
  600. mes1 = MESU mail ;
  601. *nh145313
  602. cadr1 = COUL ((0. 1.05) ET (1. 1.05)) 'BLAN' ;
  603. rep1 = @REPERE (-0.2 -0.2) (PROG 0.5 0.5) 'TURQ' ;
  604. SI ITRAC1 ;
  605. TRAC 'QUAL' (cadr1 ET rep1 ET mail ET (sgauche COUL 'VERT') ET (sdroite COUL 'ROUG')) 'TITR' '[2D Plan cont.] Maillage' ;
  606. FINSI ;
  607.  
  608. ** Modele et caracteristiques materiau
  609. mo = MODE mail 'MECANIQUE' 'ELASTIQUE' 'ENDOMMAGEMENT' 'MAZARS' ;
  610. ma = MATE mo 'YOUN' you 'NU' nu 'KTR0' epd0 'ACOM' ac 'BCOM' bc 'ATRA' at 'BTRA' bt 'BETA' beta 'DIM3' epai ;
  611.  
  612. ** Blocages
  613. blgauche = BLOQ 'UX' sgauche ;
  614. bldroite = BLOQ 'UX' sdroite ;
  615. blrig = BLOQ 'UY' p1 ;
  616. bl = blgauche ET bldroite ET blrig ;
  617.  
  618. ** Chargements
  619. didroite = DEPI bldroite umax ;
  620. ec1 = EVOL 'MANU' (PROG 0. 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1.)
  621. (PROG 0. 0.2 0. 0.4 0. 0.6 0. 0.8 0. 1. 0.) ;
  622. cha = CHAR 'DIMP' didroite ec1 ;
  623.  
  624. ** Tracé des blocages et du chargement
  625. re0 = @REPERE (-0.2 -0.2) (PROG 0.5 0.5) ;
  626. mor = MODE re0 'MECANIQUE' 'BARR' ;
  627. mar = MATE mor 'YOUN' 1. 'NU' 1. 'SECT' 1. ;
  628. rir = RIGI mor mar ;
  629. vf = VECT didroite 'FLX' ' ' 'ROUG' ;
  630. SI ITRAC1 ;
  631. TRAC ((RIGI mo ma) ET blgauche ET blrig ET rir) vf 'NOLE' 'TITR' '[2D Plan cont.] Blocages et chargement' ;
  632. FINSI ;
  633.  
  634. ** Resolution
  635. t = TABL ;
  636. t . 'MODELE' = mo ;
  637. t . 'CARACTERISTIQUES' = ma ;
  638. t . 'BLOCAGES_MECANIQUES' = bl ;
  639. t . 'CHARGEMENT' = cha ;
  640. t . 'TEMPS_CALCULES' = PROG 0. 'PAS' 0.01 0.08
  641. 0.086 'PAS' 0.002 0.09
  642. 0.1 'PAS' 0.01 0.3
  643.  
  644. 'PAS' 0.01 0.46 0.466
  645. 'PAS' 0.00066 0.468
  646. 'PAS' 0.002 0.47
  647.  
  648. 'PAS' 0.01 0.67
  649. 'PAS' 0.0025 0.68
  650. 'PAS' 0.01 0.7
  651.  
  652. 'PAS' 0.01 0.9
  653. 'PAS' 0.01 1.0 ;
  654. t . 'MOVA' = MOT 'D' ;
  655. t . 'MES_SAUVEGARDES' = TABL ;
  656. t . 'MES_SAUVEGARDES' . 'DEFTO' = VRAI ;
  657. PASAPAS t ;
  658.  
  659. ** Post traitement
  660. * courbes : endommagement moyen vs temps
  661. * contrainte moyenne vs deformation moyenne
  662. * force de reaction vs deplacement impose
  663. tt = t . 'TEMPS' ;
  664. tc = t . 'CONTRAINTES' ;
  665. te = t . 'DEFORMATIONS' ;
  666. tv = t . 'VARIABLES_INTERNES' ;
  667. tu = t . 'DEPLACEMENTS' ;
  668. tr = t . 'REACTIONS' ;
  669. def0 = DEFO (cadr1 ET rep1 ET mail) (tu . 0) 0. ;
  670. ltps = PROG ;
  671. lend = PROG ;
  672. lsig = PROG ;
  673. leps = PROG ;
  674. ldep = PROG ;
  675. lrea = PROG ;
  676. REPE b1 (DIME tt) ;
  677. tps1 = tt . (&b1 - 1) ;
  678. ltps = ltps ET tps1 ;
  679. end1 = (INTG mo (tv . (&b1 - 1)) 'D') / mes1 ;
  680. sig1 = (INTG mo (tc . (&b1 - 1)) 'SMXX') / mes1 ;
  681. eps1 = (INTG mo (te . (&b1 - 1)) 'EPXX') / mes1 ;
  682. u1 = EXTR (tu . (&b1 - 1)) 'UX' p3 ;
  683. rea1 = 0. ;
  684. SI (NEG &b1 1) ;
  685. rea1 = @TOTAL (tr . (&b1 - 1)) sgauche 'FX' ;
  686. FINSI ;
  687. lend = lend ET end1 ;
  688. lsig = lsig ET sig1 ;
  689. leps = leps ET eps1 ;
  690. ldep = ldep ET u1 ;
  691. lrea = lrea ET rea1 ;
  692. FIN b1 ;
  693. ev0 = EVOL 'ROUG' 'MANU' 'Temps' ltps 'D' lend ;
  694. ev1 = EVOL 'ROUG' 'MANU' 'EPXX' leps 'SMXX' lsig ;
  695. ev2 = EVOL 'ROUG' 'MANU' 'UX' ldep 'FX' lrea ;
  696. *nh145313
  697. ltps1 = ENLE ltps 1 ;
  698. nb1 = DIME ltps1 ;
  699. un1 = PROG nb1 * 1.D0 ;
  700. lepd0 = PROG nb1 * epd0 ;
  701. lac1 = PROG nb1 * ac ;
  702. lep1 = IPOL ltps1 ec1 ;
  703. lepu = lep1 * umax / long ;
  704. lepe = (2.**0.5) * nu * (ABS lepu) ;
  705. *mess 'lepe avant seuillage 0'; list lepe;
  706. seuil0 = lepe MASQ 'EGAL' 0 ;
  707. *mess 'test seuil0';list seuil0;
  708. lepe0 = seuil0 * 1.E-20 ;
  709. *mess 'lepe0';list lepe0;
  710. lepe = lepe + lepe0 ;
  711. *mess 'lepe apres seuillage 0'; list lepe;
  712. dc = un1 - ((epd0*(un1-lac1)/lepe) + (ac*(EXP(bc*(lepd0-lepe))))) ;
  713. dc_m = 0. ;
  714. ldc = PROG ;
  715. REPE b2 ;
  716. dc_i = EXTR dc &b2 ;
  717. de_i = EXTR lepe &b2 ;
  718. SI (EGA &b2 1) ;
  719. dc_p = 1. ;
  720. de_p = 0. ;
  721. FINSI ;
  722. ddc = dc_i - dc_p ;
  723. dde = de_i - de_p ;
  724. SI ((ddc < 0.) OU (dc_i < 0.) OU (dc_i > 1.) OU (dde < 0)) ;
  725. ldc = ldc ET (PROG dc_m) ;
  726. SINON;
  727. dc_m = MAXI dc_m dc_i ;
  728. SI (dc_i < dc_m) ;
  729. ldc = ldc ET (PROG dc_m) ;
  730. SINON ;
  731. ldc = ldc ET (PROG dc_i) ;
  732. FINSI ;
  733. FINSI ;
  734. dc_p = dc_i ;
  735. de_p = de_i ;
  736. SI (EGA &b2 (DIME dc)) ;
  737. QUIT b2 ;
  738. FINSI ;
  739. FIN b2 ;
  740. dc = ldc ;
  741. lsig1 = (un1 - dc) * you * lepu ;
  742. * contrainte nulle = 1.E-20
  743. seuilsc = lsig MASQ 'EGSUP' -1.E-6 ;
  744. sc0 = seuilsc * -1.E-20 ;
  745. lsig = (lsig * (lsig MASQ 'EGINF' -1.E-6)) + sc0 ;
  746. seuilsr = lsig1 MASQ 'EGSUP' -1.E-6 ;
  747. sr0 = seuilsr * -1.E-20 ;
  748. lsig1 = (lsig1 * (lsig1 MASQ 'EGINF' -1.E-6)) + sr0 ;
  749. an0 = EVOL 'TURQ' 'MANU' 'Temps' ltps1 'D' dc ;
  750. an1 = EVOL 'TURQ' 'MANU' 'EPXX' lepu 'SMXX' lsig1 ;
  751. ansmxx = EVOL 'TURQ' 'MANU' 'Temps' ltps1 'SMXX' lsig1 ;
  752. SI ITRAC1 ;
  753. DESS (ev0 ET an0) 'TITR' '[2D Plan cont.] Endommagement vs Temps' 'LEGE' 'SE' tdess ;
  754. DESS (ev1 ET an1) 'TITR' '[2D Plan cont.] Contrainte vs Deformation' 'LEGE' 'NO' tdess ;
  755. DESS ev2 'TITR' '[2D Plan cont.] Reaction vs Deplacement' 'LEGE' 'SO' tdess ;
  756. FINSI ;
  757. * evolutions temporelles a tous les points de Gauss
  758. ng = 4 ;
  759. tleg = TABL ;
  760. tleg . 1 = MOT 'MARQ CARR NOLI' ;
  761. tleg . 2 = MOT 'MARQ LOSA NOLI' ;
  762. tleg . 3 = MOT 'MARQ ROND NOLI' ;
  763. tleg . 4 = MOT 'MARQ ETOI NOLI' ;
  764. tleg . 'TITRE' = TABL ;
  765. *
  766. evend = VIDE 'EVOLUTIO' ;
  767. evsmxx = VIDE 'EVOLUTIO' ;
  768. evepxx = VIDE 'EVOLUTIO' ;
  769. REPE b ng ;
  770. tleg . 'TITRE' . &b = CHAI 'Calc_Pt_Gauss' ' ' &b ;
  771. evend = evend ET (EVOL 'ROSE' 'TEMP' t 'VARIABLES_INTERNES' 'D' 1 1 &b) ;
  772. evsmxx = evsmxx ET (EVOL 'BLEU' 'TEMP' t 'CONTRAINTES' 'SMXX' 1 1 &b) ;
  773. evepxx = evepxx ET (EVOL 'VERT' 'TEMP' t 'DEFORMATIONS' 'EPXX' 1 1 &b) ;
  774. FIN b ;
  775. *
  776. tleg . (ng+1) = MOT 'MARQ CROI' ;
  777. tleg . 'TITRE' . (ng+1) = MOT 'Reference' ;
  778. *
  779. SI ITRAC1 ;
  780. DESS (evend ET an0) 'LEGE' 'SE' tleg 'TITR' '[2D Plan cont.] D vs Temps' ;
  781. DESS (evsmxx ET ansmxx) 'LEGE' 'NE' tleg 'TITR' '[2D Plan cont.] SMXX vs Temps' ;
  782. DESS evepxx 'LEGE' 'SO' tleg 'TITR' '[2D Plan cont.] EPXX vs Temps' ;
  783. FINSI ;
  784. * deformee
  785. REPE b2 (DIME tt) ;
  786. tps1 = tt . (&b2 - 1) ;
  787. * trace de la deformee (pour controle visuel)
  788. def1 = DEFO mail (tu . (&b2 - 1)) 33. 'ROUG' ;
  789. tit1 = CHAI '[2D Plan cont.] Deformee au temps' ' ' tps1 ;
  790. SI ITRAC1 ;
  791. * TRAC (def0 ET def1) 'TITR' tit1 ;
  792. FINSI ;
  793. FIN b2 ;
  794. SI ITRAC1 ;
  795. TRAC (def0 ET def1) 'TITR' tit1 ;
  796. FINSI ;
  797. * comparaison Calcul / Reference sur la contrainte moyenne
  798. ler1 = ABS (((ENLE lsig 1) - lsig1) / lsig1) ;
  799. eer1 = EVOL 'ORAN' 'MANU' 'Temps' ltps1 '|Ec.rel|SMXX' ler1 ;
  800. dtps = (EXTR ltps1 (DIME ltps1)) - (EXTR ltps1 1) ;
  801. mer1 = (INTG eer1) / dtps ;
  802. tit1 = CHAI '[2D Plan cont.] Val.abs.Ec.rel.|(Calc-Ref)/Ref| Contr. vs tps, moy.int.|Ecart|' ' ' mer1 ;
  803. SI ITRAC1 ;
  804. DESS eer1 'TITR' tit1 ;
  805. FINSI ;
  806. OPTI ECHO 0 ;
  807. SAUT 1 LIGN ;
  808. MESS ' ******* C A S #3 : 2 D C O N T R A I N T E S P L A N E S ********';
  809. SAUT 1 LIGN ;
  810. SI (mer1 < 1.E-6) ;
  811. MESS ' Moy.int. Val.abs. Ecart relatif entre Calcul et Reference' ' ' mer1 ' < 1.E-06 => OK' ;
  812. SAUT 1 LIGN ;
  813. SINO ;
  814. MESS ' Moy.int. Val.abs. Ecart relatif entre Calcul et Reference' ' ' mer1 ' > 1.E-06 => ECHEC' ;
  815. IERR = VRAI ;
  816. SAUT 1 LIGN ;
  817. FINS ;
  818. SAUT 1 LIGN ;
  819. OPTI ECHO 1 ;
  820. FINSI ;
  821.  
  822.  
  823.  
  824.  
  825.  
  826. ************ C A S #4 : 2 D A X I S Y M E T R I Q U E *************
  827. SI (EXIS lcas 4) ;
  828.  
  829. ** Options generales
  830. OPTI 'DIME' 2 'MODE' 'AXIS' 'ELEM' 'QUA4' ;
  831.  
  832. ** Maillage
  833. p1 = 0. 0. ;
  834. p2 = long 0. ;
  835. sbas = DROI 1 p1 p2 ;
  836. mail = sbas TRAN 1 (0. long) ;
  837. shaut = mail COTE 3 ;
  838. p3 = shaut POIN 'PROC' (0. long) ;
  839. *nh145313
  840. cadr1 = COUL ((0. 1.) ET (1.05 1.)) 'BLAN' ;
  841. rep1 = @REPERE (-0.2 -0.2) (PROG 0.5 0.5) 'TURQ' ;
  842. SI ITRAC1 ;
  843. TRAC 'QUAL' (cadr1 ET rep1 ET mail ET (sbas COUL 'VERT') ET (shaut COUL 'ROUG')) 'TITR' '[2D Axi.] Maillage' ;
  844. FINSI ;
  845.  
  846. ** Modele et caracteristiques materiau
  847. mo = MODE mail 'MECANIQUE' 'ELASTIQUE' 'ENDOMMAGEMENT' 'MAZARS' ;
  848. ma = MATE mo 'YOUN' you 'NU' nu 'KTR0' epd0 'ACOM' ac 'BCOM' bc 'ATRA' at 'BTRA' bt 'BETA' beta ;
  849. zer = ZERO mo 'NOEUD' ;
  850. un = zer + 1. ;
  851. mes1 = INTG mo un 'SCAL' ;
  852.  
  853. ** Blocages
  854. blbas = BLOQ 'UZ' sbas ;
  855. blhaut = BLOQ 'UZ' shaut ;
  856. bl = blbas ET blhaut ;
  857.  
  858. ** Chargements
  859. dihaut = DEPI blhaut umax ;
  860. ec1 = EVOL 'MANU' (PROG 0. 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1.)
  861. (PROG 0. 0.2 0. 0.4 0. 0.6 0. 0.8 0. 1. 0.) ;
  862. cha = CHAR 'DIMP' dihaut ec1 ;
  863.  
  864. ** Tracé des blocages et du chargement
  865. re0 = @REPERE (-0.2 -0.2) (PROG 0.5 0.5) ;
  866. mor = MODE re0 'MECANIQUE' 'BARR' ;
  867. mar = MATE mor 'YOUN' 1. 'NU' 1. 'SECT' 1. ;
  868. rir = RIGI mor mar ;
  869. vf = VECT dihaut ' ' 'FLX' 'ROUG' ;
  870. SI ITRAC1 ;
  871. TRAC ((RIGI mo ma) ET blbas ET rir) vf 'NOLE' 'TITR' '[2D Axi.] Blocages et chargement' ;
  872. FINSI ;
  873.  
  874. ** Resolution
  875. t = TABL ;
  876. t . 'MODELE' = mo ;
  877. t . 'CARACTERISTIQUES' = ma ;
  878. t . 'BLOCAGES_MECANIQUES' = bl ;
  879. t . 'CHARGEMENT' = cha ;
  880. t . 'TEMPS_CALCULES' = PROG 0. 'PAS' 0.01 0.08
  881. 0.086 'PAS' 0.002 0.09
  882. 0.1 'PAS' 0.01 0.3
  883.  
  884. 'PAS' 0.01 0.46 0.466
  885. 'PAS' 0.00066 0.468
  886. 'PAS' 0.002 0.47
  887.  
  888. 'PAS' 0.01 0.67
  889. 'PAS' 0.0025 0.68
  890. 'PAS' 0.01 0.7
  891.  
  892. 'PAS' 0.01 0.9
  893. 'PAS' 0.01 1.0 ;
  894. t . 'MOVA' = MOT 'D' ;
  895. t . 'MES_SAUVEGARDES' = TABL ;
  896. t . 'MES_SAUVEGARDES' . 'DEFTO' = VRAI ;
  897. PASAPAS t ;
  898.  
  899. ** Post traitement
  900. * courbes : endommagement moyen vs temps
  901. * contrainte moyenne vs deformation moyenne
  902. * force de reaction vs deplacement impose
  903. tt = t . 'TEMPS' ;
  904. tc = t . 'CONTRAINTES' ;
  905. te = t . 'DEFORMATIONS' ;
  906. tv = t . 'VARIABLES_INTERNES' ;
  907. tu = t . 'DEPLACEMENTS' ;
  908. tr = t . 'REACTIONS' ;
  909. def0 = DEFO (cadr1 ET rep1 ET mail) (tu . 0) 0. ;
  910. ltps = PROG ;
  911. lend = PROG ;
  912. lsig = PROG ;
  913. leps = PROG ;
  914. ldep = PROG ;
  915. lrea = PROG ;
  916. REPE b1 (DIME tt) ;
  917. tps1 = tt . (&b1 - 1) ;
  918. ltps = ltps ET tps1 ;
  919. end1 = (INTG mo (tv . (&b1 - 1)) 'D') / mes1 ;
  920. sig1 = (INTG mo (tc . (&b1 - 1)) 'SMZZ') / mes1 ;
  921. eps1 = (INTG mo (te . (&b1 - 1)) 'EPZZ') / mes1 ;
  922. u1 = EXTR (tu . (&b1 - 1)) 'UZ' p3 ;
  923. rea1 = 0. ;
  924. SI (NEG &b1 1) ;
  925. rea1 = @TOTAL (tr . (&b1 - 1)) sbas 'FZ' ;
  926. FINSI ;
  927. lend = lend ET end1 ;
  928. lsig = lsig ET sig1 ;
  929. leps = leps ET eps1 ;
  930. ldep = ldep ET u1 ;
  931. lrea = lrea ET rea1 ;
  932. FIN b1 ;
  933. ev0 = EVOL 'ROUG' 'MANU' 'Temps' ltps 'D' lend ;
  934. ev1 = EVOL 'ROUG' 'MANU' 'EPZZ' leps 'SMZZ' lsig ;
  935. ev2 = EVOL 'ROUG' 'MANU' 'UZ' ldep 'FZ' lrea ;
  936. *nh145313
  937. ltps1 = ENLE ltps 1 ;
  938. nb1 = DIME ltps1 ;
  939. un1 = PROG nb1 * 1.D0 ;
  940. lepd0 = PROG nb1 * epd0 ;
  941. lac1 = PROG nb1 * ac ;
  942. lep1 = IPOL ltps1 ec1 ;
  943. lepu = lep1 * umax / long ;
  944. lepe = (2.**0.5) * nu * (ABS lepu) ;
  945. *mess 'lepe avant seuillage 0'; list lepe;
  946. seuil0 = lepe MASQ 'EGAL' 0 ;
  947. *mess 'test seuil0';list seuil0;
  948. lepe0 = seuil0 * 1.E-20 ;
  949. *mess 'lepe0';list lepe0;
  950. lepe = lepe + lepe0 ;
  951. *mess 'lepe apres seuillage 0'; list lepe;
  952. dc = un1 - ((epd0*(un1-lac1)/lepe) + (ac*(EXP(bc*(lepd0-lepe))))) ;
  953. dc_m = 0. ;
  954. ldc = PROG ;
  955. REPE b2 ;
  956. dc_i = EXTR dc &b2 ;
  957. de_i = EXTR lepe &b2 ;
  958. SI (EGA &b2 1) ;
  959. dc_p = 1. ;
  960. de_p = 0. ;
  961. FINSI ;
  962. ddc = dc_i - dc_p ;
  963. dde = de_i - de_p ;
  964. SI ((ddc < 0.) OU (dc_i < 0.) OU (dc_i > 1.) OU (dde < 0)) ;
  965. ldc = ldc ET (PROG dc_m) ;
  966. SINON;
  967. dc_m = MAXI dc_m dc_i ;
  968. SI (dc_i < dc_m) ;
  969. ldc = ldc ET (PROG dc_m) ;
  970. SINON ;
  971. ldc = ldc ET (PROG dc_i) ;
  972. FINSI ;
  973. FINSI ;
  974. dc_p = dc_i ;
  975. de_p = de_i ;
  976. SI (EGA &b2 (DIME dc)) ;
  977. QUIT b2 ;
  978. FINSI ;
  979. FIN b2 ;
  980. dc = ldc ;
  981. lsig1 = (un1 - dc) * you * lepu ;
  982. * contrainte nulle = 1.E-20
  983. seuilsc = lsig MASQ 'EGSUP' -1.E-6 ;
  984. sc0 = seuilsc * -1.E-20 ;
  985. lsig = (lsig * (lsig MASQ 'EGINF' -1.E-6)) + sc0 ;
  986. seuilsr = lsig1 MASQ 'EGSUP' -1.E-6 ;
  987. sr0 = seuilsr * -1.E-20 ;
  988. lsig1 = (lsig1 * (lsig1 MASQ 'EGINF' -1.E-6)) + sr0 ;
  989. an0 = EVOL 'TURQ' 'MANU' 'Temps' ltps1 'D' dc ;
  990. an1 = EVOL 'TURQ' 'MANU' 'EPXX' lepu 'SMXX' lsig1 ;
  991. ansmzz = EVOL 'TURQ' 'MANU' 'Temps' ltps1 'SMZZ' lsig1 ;
  992. SI ITRAC1 ;
  993. DESS (ev0 ET an0) 'TITR' '[2D Axi.] Endommagement vs Temps' 'LEGE' 'SE' tdess ;
  994. DESS (ev1 ET an1) 'TITR' '[2D Axi.] Contrainte vs Deformation' 'LEGE' 'NO' tdess ;
  995. DESS ev2 'TITR' '[2D Axi.] Reaction vs Deplacement' 'LEGE' 'SO' tdess ;
  996. FINSI ;
  997. * evolutions temporelles a tous les points de Gauss
  998. ng = 4 ;
  999. tleg = TABL ;
  1000. tleg . 1 = MOT 'MARQ CARR NOLI' ;
  1001. tleg . 2 = MOT 'MARQ LOSA NOLI' ;
  1002. tleg . 3 = MOT 'MARQ ROND NOLI' ;
  1003. tleg . 4 = MOT 'MARQ ETOI NOLI' ;
  1004. tleg . 'TITRE' = TABL ;
  1005. *
  1006. evend = VIDE 'EVOLUTIO' ;
  1007. evsmzz = VIDE 'EVOLUTIO' ;
  1008. evepzz = VIDE 'EVOLUTIO' ;
  1009. REPE b ng ;
  1010. tleg . 'TITRE' . &b = CHAI 'Calc_Pt_Gauss' ' ' &b ;
  1011. evend = evend ET (EVOL 'ROSE' 'TEMP' t 'VARIABLES_INTERNES' 'D' 1 1 &b) ;
  1012. evsmzz = evsmzz ET (EVOL 'BLEU' 'TEMP' t 'CONTRAINTES' 'SMZZ' 1 1 &b) ;
  1013. evepzz = evepzz ET (EVOL 'VERT' 'TEMP' t 'DEFORMATIONS' 'EPZZ' 1 1 &b) ;
  1014. FIN b ;
  1015. *
  1016. tleg . (ng+1) = MOT 'MARQ CROI' ;
  1017. tleg . 'TITRE' . (ng+1) = MOT 'Reference' ;
  1018. *
  1019. SI ITRAC1 ;
  1020. DESS (evend ET an0) 'LEGE' 'SE' tleg 'TITR' '[2D Axi.] D vs Temps' ;
  1021. DESS (evsmzz ET ansmzz) 'LEGE' 'NE' tleg 'TITR' '[2D Axi.] SMZZ vs Temps' ;
  1022. DESS evepzz 'LEGE' 'SO' tleg 'TITR' '[2D Axi.] EPZZ vs Temps' ;
  1023. FINSI ;
  1024. * deformee
  1025. REPE b2 (DIME tt) ;
  1026. tps1 = tt . (&b2 - 1) ;
  1027. * trace de la deformee (pour controle visuel)
  1028. def1 = DEFO mail (tu . (&b2 - 1)) 33. 'ROUG' ;
  1029. tit1 = CHAI '[2D Axi.] Deformee au temps' ' ' tps1 ;
  1030. SI ITRAC1 ;
  1031. * TRAC (def0 ET def1) 'TITR' tit1 ;
  1032. FINSI ;
  1033. FIN b2 ;
  1034. SI ITRAC1 ;
  1035. TRAC (def0 ET def1) 'TITR' tit1 ;
  1036. FINSI ;
  1037. * comparaison Calcul / Reference sur la contrainte moyenne
  1038. ler1 = ABS (((ENLE lsig 1) - lsig1) / lsig1) ;
  1039. eer1 = EVOL 'ORAN' 'MANU' 'Temps' ltps1 '|Ec.rel|SMXX' ler1 ;
  1040. dtps = (EXTR ltps1 (DIME ltps1)) - (EXTR ltps1 1) ;
  1041. mer1 = (INTG eer1) / dtps ;
  1042. tit1 = CHAI '[2D Axi.] Val.abs.Ec.rel.|(Calc-Ref)/Ref| Contr. vs tps, moy.int.|Ecart|' ' ' mer1 ;
  1043. SI ITRAC1 ;
  1044. DESS eer1 'TITR' tit1 ;
  1045. FINSI ;
  1046. OPTI ECHO 0 ;
  1047. SAUT 1 LIGN ;
  1048. MESS ' ************ C A S #4 : 2 D A X I S Y M E T R I Q U E *************';
  1049. SAUT 1 LIGN ;
  1050. SI (mer1 < 1.E-6) ;
  1051. MESS ' Moy.int. Val.abs. Ecart relatif entre Calcul et Reference' ' ' mer1 ' < 1.E-06 => OK' ;
  1052. SAUT 1 LIGN ;
  1053. SINO ;
  1054. MESS ' Moy.int. Val.abs. Ecart relatif entre Calcul et Reference' ' ' mer1 ' > 1.E-06 => ECHEC' ;
  1055. IERR = VRAI ;
  1056. SAUT 1 LIGN ;
  1057. FINS ;
  1058. SAUT 1 LIGN ;
  1059. OPTI ECHO 1 ;
  1060. FINSI ;
  1061.  
  1062.  
  1063.  
  1064.  
  1065.  
  1066. *********** C A S #5 : 2 D P O U T R E A F I B R E ************
  1067. SI (EXIS lcas 5) ;
  1068.  
  1069. ** Options generales
  1070. OPTI 'DIME' 2 'MODE' 'PLAN' 'ELEM' 'QUA4' ;
  1071.  
  1072. ** Maillage
  1073. p1s = (-0.5 * epai) (-0.5 * epai) ;
  1074. p2s = (-0.5 * epai) ( 0.5 * epai) ;
  1075. l12s = DROI 1 p1s p2s ;
  1076. mails = l12s TRAN 1 (epai 0.) ;
  1077. p1 = 0. 0. ;
  1078. p2 = long 0. ;
  1079. mail = DROI 1 p1 p2 ;
  1080. mes1 = MESU mails ;
  1081. *nh145313
  1082. cadr1 = COUL ((-0.1 0.) ET (1. 0.)) 'BLAN' ;
  1083. rep1 = @REPERE (-0.2 -0.2) (PROG 0.2 0.2) 'TURQ' ;
  1084. SI ITRAC1 ;
  1085. TRAC 'QUAL' (rep1 ET (mails COUL 'VERT') ET (mail COUL 'ROUG')) 'TITR' '[2D PaF] Maillages de la Poutre et de sa Section' ;
  1086. FINSI ;
  1087.  
  1088. ** Modele et caracteristiques materiau
  1089. mos = MODE mails 'MECANIQUE' 'ELASTIQUE' 'PLASTIQUE' 'MAZARS' 'QUAS' ;
  1090. mas = MATE mos 'YOUN' you 'NU' nu 'KTR0' epd0 'ACOM' ac 'BCOM' bc 'ATRA' at 'BTRA' bt 'BETA' beta
  1091. 'ALPY' 1. ;
  1092. mo = MODE mail 'MECANIQUE' 'ELASTIQUE' 'SECTION' 'PLASTIQUE' 'SECTION' 'TIMO' ;
  1093. ma = MATE mo 'MODS' mos 'MATS' mas ;
  1094.  
  1095. ** Blocages
  1096. blgauche = BLOQ 'DEPL' 'ROTA' p1 ;
  1097. bldroite = BLOQ 'UX' p2 ;
  1098. bl = blgauche ET bldroite ;
  1099. *nh145313
  1100. bldroit2 = BLOQ 'ROTA' p2 ;
  1101. bl = bl ET bldroit2 ;
  1102.  
  1103. ** Chargements
  1104. didroite = DEPI bldroite umax ;
  1105. ec1 = EVOL 'MANU' (PROG 0. 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1.)
  1106. (PROG 0. 0.2 0. 0.4 0. 0.6 0. 0.8 0. 1. 0.) ;
  1107. cha = CHAR 'DIMP' didroite ec1 ;
  1108.  
  1109. ** Tracé des blocages et du chargement
  1110. re0 = @REPERE (-0.2 -0.2) (PROG 0.2 0.2) ;
  1111. mor = MODE re0 'MECANIQUE' 'BARR' ;
  1112. mar = MATE mor 'YOUN' 1. 'NU' 1. 'SECT' 1. ;
  1113. rir = RIGI mor mar ;
  1114. vf = VECT didroite 'FLX' ' ' 'ROUG' 20. ;
  1115. SI ITRAC1 ;
  1116. TRAC ((RIGI mo ma) ET blgauche ET rir) vf 'NOLE' 'TITR' '[2D PaF] Blocages et chargement' ;
  1117. FINSI ;
  1118.  
  1119. ** Resolution
  1120. t = TABL ;
  1121. t . 'MODELE' = mo ;
  1122. t . 'CARACTERISTIQUES' = ma ;
  1123. t . 'BLOCAGES_MECANIQUES' = bl ;
  1124. t . 'CHARGEMENT' = cha ;
  1125. t . 'TEMPS_CALCULES' = PROG 0. 'PAS' 0.01 0.08
  1126. 0.086 'PAS' 0.002 0.09
  1127. 0.1 'PAS' 0.01 0.3
  1128.  
  1129. 'PAS' 0.01 0.46 0.466
  1130. 'PAS' 0.00066 0.468
  1131. 'PAS' 0.002 0.47
  1132.  
  1133. 'PAS' 0.01 0.67
  1134. 'PAS' 0.0025 0.68
  1135. 'PAS' 0.01 0.7
  1136.  
  1137. 'PAS' 0.01 0.9
  1138. 'PAS' 0.01 1.0 ;
  1139. t . 'MES_SAUVEGARDES' = TABL ;
  1140. t . 'MES_SAUVEGARDES' . 'DEFTO' = VRAI ;
  1141. PASAPAS t ;
  1142.  
  1143. ** Post traitement
  1144. * courbes : endommagement moyen vs temps
  1145. * contrainte moyenne vs deformation moyenne
  1146. * force de reaction vs deplacement impose
  1147. * evolutions temporelles a tous les points de Gauss
  1148. ng = 4 ;
  1149. tleg = TABL ;
  1150. tleg . 1 = MOT 'MARQ CARR NOLI' ;
  1151. tleg . 2 = MOT 'MARQ LOSA NOLI' ;
  1152. tleg . 3 = MOT 'MARQ ROND NOLI' ;
  1153. tleg . 4 = MOT 'MARQ ETOI NOLI' ;
  1154. tleg . 'TITRE' = TABL ;
  1155. REPE b ng ;
  1156. tleg . 'TITRE' . &b = CHAI 'Calc_Pt_Gauss' ' ' &b ;
  1157. FIN b ;
  1158. *nh145313
  1159. tleg . (ng+1) = MOT 'MARQ CROI' ;
  1160. tleg . 'TITRE' . (ng+1) = MOT 'Reference' ;
  1161. tt = t . 'TEMPS' ;
  1162. tv = t . 'VARIABLES_INTERNES' ;
  1163. tu = t . 'DEPLACEMENTS' ;
  1164. tr = t . 'REACTIONS' ;
  1165. def0 = DEFO (cadr1 ET rep1 ET mail) (tu . 0) 0. ;
  1166. ltps = PROG ;
  1167. lend1 = PROG ;
  1168. lend2 = PROG ;
  1169. lend3 = PROG ;
  1170. lend4 = PROG ;
  1171. lsig1 = PROG ;
  1172. lsig2 = PROG ;
  1173. lsig3 = PROG ;
  1174. lsig4 = PROG ;
  1175. leps1 = PROG ;
  1176. leps2 = PROG ;
  1177. leps3 = PROG ;
  1178. leps4 = PROG ;
  1179. ldep = PROG ;
  1180. lrea = PROG ;
  1181. REPE b1 (DIME tt) ;
  1182. tps1 = tt . (&b1 - 1) ;
  1183. ltps = ltps ET tps1 ;
  1184. SI (EGA &b1 1) ;
  1185. lend1 = lend1 ET 0. ;
  1186. lend2 = lend2 ET 0. ;
  1187. lend3 = lend3 ET 0. ;
  1188. lend4 = lend4 ET 0. ;
  1189. lsig1 = lsig1 ET 0. ;
  1190. lsig2 = lsig2 ET 0. ;
  1191. lsig3 = lsig3 ET 0. ;
  1192. lsig4 = lsig4 ET 0. ;
  1193. leps1 = leps1 ET 0. ;
  1194. leps2 = leps2 ET 0. ;
  1195. leps3 = leps3 ET 0. ;
  1196. leps4 = leps4 ET 0. ;
  1197. SINON ;
  1198. lend1 = lend1 ET (EXTR (EXTR (tv . (&b1 - 1)) 'VAIS' 1 1 1) 'VHNI' 1 1 1) ;
  1199. lend2 = lend2 ET (EXTR (EXTR (tv . (&b1 - 1)) 'VAIS' 1 1 1) 'VHNI' 1 1 2) ;
  1200. lend3 = lend3 ET (EXTR (EXTR (tv . (&b1 - 1)) 'VAIS' 1 1 1) 'VHNI' 1 1 3) ;
  1201. lend4 = lend4 ET (EXTR (EXTR (tv . (&b1 - 1)) 'VAIS' 1 1 1) 'VHNI' 1 1 4) ;
  1202. lsig1 = lsig1 ET (EXTR (EXTR (tv . (&b1 - 1)) 'VONS' 1 1 1) 'SMXX' 1 1 1) ;
  1203. lsig2 = lsig2 ET (EXTR (EXTR (tv . (&b1 - 1)) 'VONS' 1 1 1) 'SMXX' 1 1 2) ;
  1204. lsig3 = lsig3 ET (EXTR (EXTR (tv . (&b1 - 1)) 'VONS' 1 1 1) 'SMXX' 1 1 3) ;
  1205. lsig4 = lsig4 ET (EXTR (EXTR (tv . (&b1 - 1)) 'VONS' 1 1 1) 'SMXX' 1 1 4) ;
  1206. leps1 = leps1 ET (EXTR (EXTR (tv . (&b1 - 1)) 'VAIS' 1 1 1) 'VISX' 1 1 1) ;
  1207. leps2 = leps2 ET (EXTR (EXTR (tv . (&b1 - 1)) 'VAIS' 1 1 1) 'VISX' 1 1 2) ;
  1208. leps3 = leps3 ET (EXTR (EXTR (tv . (&b1 - 1)) 'VAIS' 1 1 1) 'VISX' 1 1 3) ;
  1209. leps4 = leps4 ET (EXTR (EXTR (tv . (&b1 - 1)) 'VAIS' 1 1 1) 'VISX' 1 1 4) ;
  1210. FINSI ;
  1211. u1 = EXTR (tu . (&b1 - 1)) 'UX' p2 ;
  1212. rea1 = EXTR (tr . (&b1 - 1)) 'FX' p1 ;
  1213. ldep = ldep ET u1 ;
  1214. lrea = lrea ET rea1 ;
  1215. FIN b1 ;
  1216. ev0 = (EVOL 'ROUG' 'MANU' 'Temps' ltps 'D' lend1) ET (EVOL 'ROUG' 'MANU' 'Temps' ltps 'D' lend2) ET
  1217. (EVOL 'ROUG' 'MANU' 'Temps' ltps 'D' lend3) ET (EVOL 'ROUG' 'MANU' 'Temps' ltps 'D' lend4) ;
  1218. ev1 = (EVOL 'ROUG' 'MANU' 'EPXX' leps1 'SMXX' lsig1) ET (EVOL 'ROUG' 'MANU' 'EPXX' leps2 'SMXX' lsig2) ET
  1219. (EVOL 'ROUG' 'MANU' 'EPXX' leps3 'SMXX' lsig3) ET (EVOL 'ROUG' 'MANU' 'EPXX' leps4 'SMXX' lsig4) ;
  1220. ev2 = EVOL 'ROUG' 'MANU' 'UX' ldep 'FX' lrea ;
  1221. *nh145313
  1222. ltps1 = ENLE ltps 1 ;
  1223. nb1 = DIME ltps1 ;
  1224. un1 = PROG nb1 * 1.D0 ;
  1225. lepd0 = PROG nb1 * epd0 ;
  1226. lac1 = PROG nb1 * ac ;
  1227. lep1 = IPOL ltps1 ec1 ;
  1228. lepu = lep1 * umax / long ;
  1229. lepe = (2.**0.5) * nu * (ABS lepu) ;
  1230. *mess 'lepe avant seuillage 0'; list lepe;
  1231. seuil0 = lepe MASQ 'EGAL' 0 ;
  1232. *mess 'test seuil0';list seuil0;
  1233. lepe0 = seuil0 * 1.E-20 ;
  1234. *mess 'lepe0';list lepe0;
  1235. lepe = lepe + lepe0 ;
  1236. *mess 'lepe apres seuillage 0'; list lepe;
  1237. dc = un1 - ((epd0*(un1-lac1)/lepe) + (ac*(EXP(bc*(lepd0-lepe))))) ;
  1238. dc_m = 0. ;
  1239. ldc = PROG ;
  1240. REPE b2 ;
  1241. dc_i = EXTR dc &b2 ;
  1242. de_i = EXTR lepe &b2 ;
  1243. SI (EGA &b2 1) ;
  1244. dc_p = 1. ;
  1245. de_p = 0. ;
  1246. FINSI ;
  1247. ddc = dc_i - dc_p ;
  1248. dde = de_i - de_p ;
  1249. SI ((ddc < 0.) OU (dc_i < 0.) OU (dc_i > 1.) OU (dde < 0)) ;
  1250. ldc = ldc ET (PROG dc_m) ;
  1251. SINON;
  1252. dc_m = MAXI dc_m dc_i ;
  1253. SI (dc_i < dc_m) ;
  1254. ldc = ldc ET (PROG dc_m) ;
  1255. SINON ;
  1256. ldc = ldc ET (PROG dc_i) ;
  1257. FINSI ;
  1258. FINSI ;
  1259. dc_p = dc_i ;
  1260. de_p = de_i ;
  1261. SI (EGA &b2 (DIME dc)) ;
  1262. QUIT b2 ;
  1263. FINSI ;
  1264. FIN b2 ;
  1265. dc = ldc ;
  1266. lsan1 = (un1 - dc) * you * lepu ;
  1267. * contrainte nulle = 1.E-20
  1268. lsig = (lsig1 + lsig2 + lsig3 + lsig4) / 4. ;
  1269. seuilsc = lsig MASQ 'EGSUP' -1.E-6 ;
  1270. sc0 = seuilsc * -1.E-20 ;
  1271. lsig = (lsig * (lsig MASQ 'EGINF' -1.E-6)) + sc0 ;
  1272. seuilsr = lsan1 MASQ 'EGSUP' -1.E-6 ;
  1273. sr0 = seuilsr * -1.E-20 ;
  1274. lsan1 = (lsan1 * (lsan1 MASQ 'EGINF' -1.E-6)) + sr0 ;
  1275. an0 = EVOL 'TURQ' 'MANU' 'Temps' ltps1 'D' dc ;
  1276. an1 = EVOL 'TURQ' 'MANU' 'EPXX' lepu 'SMXX' lsan1 ;
  1277. SI ITRAC1 ;
  1278. DESS (ev0 ET an0) 'LEGE' 'SE' tleg 'TITR' '[2D PaF] Endommagement vs Temps' ;
  1279. DESS (ev1 ET an1) 'LEGE' 'NO' tleg 'TITR' '[2D PaF] Contrainte vs Deformation' ;
  1280. DESS ev2 'TITR' '[2D PaF] Reaction vs Deplacement' 'LEGE' 'SO' tdess ;
  1281. FINSI ;
  1282. * deformee
  1283. REPE b2 (DIME tt) ;
  1284. tps1 = tt . (&b2 - 1) ;
  1285. * trace de la deformee (pour controle visuel)
  1286. def1 = DEFO mail (tu . (&b2 - 1)) 33. 'ROUG' ;
  1287. tit1 = CHAI '[2D PaF] Deformee au temps' ' ' tps1 ;
  1288. SI ITRAC1 ;
  1289. * TRAC (def0 ET def1) 'TITR' tit1 ;
  1290. FINSI ;
  1291. FIN b2 ;
  1292. SI ITRAC1 ;
  1293. TRAC (def0 ET def1) 'TITR' tit1 ;
  1294. FINSI ;
  1295. * comparaison Calcul / Reference sur la contrainte moyenne
  1296. ler1 = ABS (((ENLE lsig 1) - lsan1) / lsan1) ;
  1297. eer1 = EVOL 'ORAN' 'MANU' 'Temps' ltps1 '|Ec.rel|SMXX' ler1 ;
  1298. dtps = (EXTR ltps1 (DIME ltps1)) - (EXTR ltps1 1) ;
  1299. mer1 = (INTG eer1) / dtps ;
  1300. tit1 = CHAI '[2D PaF] Val.abs.Ec.rel.|(Calc-Ref)/Ref| Contr. vs tps, moy.int.|Ecart|' ' ' mer1 ;
  1301. SI ITRAC1 ;
  1302. DESS eer1 'TITR' tit1 ;
  1303. FINSI ;
  1304. OPTI ECHO 0 ;
  1305. SAUT 1 LIGN ;
  1306. MESS ' *********** C A S #5 : 2 D P O U T R E A F I B R E ************';
  1307. SAUT 1 LIGN ;
  1308. SI (mer1 < 1.E-6) ;
  1309. MESS ' Moy.int. Val.abs. Ecart relatif entre Calcul et Reference' ' ' mer1 ' < 1.E-06 => OK' ;
  1310. SAUT 1 LIGN ;
  1311. SINO ;
  1312. MESS ' Moy.int. Val.abs. Ecart relatif entre Calcul et Reference' ' ' mer1 ' > 1.E-06 => ECHEC' ;
  1313. IERR = VRAI ;
  1314. SAUT 1 LIGN ;
  1315. FINS ;
  1316. SAUT 1 LIGN ;
  1317. OPTI ECHO 1 ;
  1318. FINSI ;
  1319.  
  1320. ** Sortie sur Erreur 1152 en cas de non conformite
  1321. SI IERR ;
  1322. ERRE 1152 ;
  1323. ERRE 5 ;
  1324. FINSI ;
  1325.  
  1326.  
  1327.  
  1328.  
  1329.  
  1330. FIN ;
  1331.  
  1332.  
  1333.  
  1334.  
  1335.  

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