Télécharger mazars_traction_compression.dgibi

Retour à la liste

Numérotation des lignes :

  1. * fichier : mazars_traction_compression.dgibi
  2. ************************************************************************
  3. * Cas test elementaire pour la loi d'endommagement de Mazars *
  4. * Essai de traction-compression alterné *
  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 traction (utmax), compression (ucmax), instant d'alternance (inst_a)
  52. utmax = 2.E-4 ;
  53. ucmax = -5.E-3 ;
  54. inst_a = utmax / (utmax + (0.5*(ABS ucmax))) ;
  55.  
  56. ** Legende courbes
  57. tdess = 'TABLE' ;
  58. tdess.'TITRE' = 'TABLE' ;
  59. tdess. 1 = MOT 'MARQ LOSA' ;
  60. tdess.'TITRE'. 1 = MOT 'Calcul' ;
  61. tdess . 2 = MOT 'MARQ CROI REGU' ;
  62. tdess . 'TITRE' . 2 = MOT 'Ref_Traction' ;
  63. tdess . 3 = MOT 'MARQ PLUS REGU' ;
  64. tdess . 'TITRE' . 3 = MOT 'Ref_Compression' ;
  65.  
  66.  
  67.  
  68.  
  69.  
  70.  
  71. **************** C A S #1 : 3 D V O L U M I Q U E ****************
  72. SI (EXIS lcas 1) ;
  73.  
  74. ** Options generales
  75. OPTI 'DIME' 3 'MODE' 'TRID' 'ELEM' 'CUB8' ;
  76.  
  77. ** Maillage
  78. p1 = 0. 0. 0. ;
  79. p2 = 0. long 0. ;
  80. l12 = DROI 1 p1 p2 ;
  81. sgauche = l12 TRAN 1 (0. 0. long) ;
  82. mail = sgauche VOLU 'TRAN' 1 (long 0. 0.) ;
  83. sdroite = mail FACE 2 ;
  84. p3 = sdroite POIN 'PROC' (long 0. 0.) ;
  85. mes1 = MESU mail ;
  86. *nh145313
  87. cadr1 = COUL ((0. 1.05 1.05) ET (1. 1.05 1.05)) 'BLAN' ;
  88. rep1 = @REPERE (-0.55 -0.55 0.) 'TURQ' ;
  89. SI ITRAC1 ;
  90. TRAC 'QUAL' (cadr1 ET rep1 ET mail ET (sgauche COUL 'VERT') ET (sdroite COUL 'ROUG')) 'TITR' '[3D V] Maillage' ;
  91. FINSI ;
  92.  
  93. ** Modele et caracteristiques materiau
  94. mo = MODE mail 'MECANIQUE' 'ELASTIQUE' 'ENDOMMAGEMENT' 'MAZARS' ;
  95. ma = MATE mo 'YOUN' you 'NU' nu 'KTR0' epd0 'ACOM' ac 'BCOM' bc 'ATRA' at 'BTRA' bt 'BETA' beta ;
  96.  
  97. ** Blocages
  98. blgauche = BLOQ 'UX' sgauche ;
  99. bldroite = BLOQ 'UX' sdroite ;
  100. blrig = (BLOQ 'UY' 'UZ' p1) ET (BLOQ 'UZ' p2) ;
  101. bl = blgauche ET bldroite ET blrig ;
  102.  
  103. ** Chargements
  104. didroite = DEPI bldroite 1. ;
  105. ec1 = EVOL 'MANU' (PROG 0. (0.5*inst_a) inst_a 1. )
  106. (PROG 0. utmax 0. ucmax) ;
  107. cha = CHAR 'DIMP' didroite ec1 ;
  108.  
  109. ** Tracé des blocages et du chargement
  110. re0 = @REPERE (-0.55 -0.55 0.) ;
  111. mor = MODE re0 'MECANIQUE' 'BARR' ;
  112. mar = MATE mor 'YOUN' 1. 'NU' 1. 'SECT' 1. ;
  113. rir = RIGI mor mar ;
  114. vf = VECT didroite 'FLX' ' ' ' ' 'ROUGE' ;
  115. SI ITRAC1 ;
  116. TRAC ((RIGI mo ma) ET blgauche ET blrig ET rir) vf 'NOLE' 'TITR' '[3D V] Blocages et chargement' ;
  117. FINSI ;
  118.  
  119. ** Resolution
  120. t = TABL ;
  121. t . 'MODELE' = mo ;
  122. t . 'CARACTERISTIQUES' = ma ;
  123. t . 'BLOCAGES_MECANIQUES' = bl ;
  124. t . 'CHARGEMENT' = cha ;
  125. t . 'TEMPS_CALCULES' = PROG 0. 'PAS' 3.E-3 (0.5*inst_a)
  126. 'PAS' 3.E-3 inst_a
  127. 'PAS' 1.E-2 1. ;
  128. t . 'MOVA' = MOT 'D' ;
  129. t . 'MES_SAUVEGARDES' = TABL ;
  130. t . 'MES_SAUVEGARDES' . 'DEFTO' = VRAI ;
  131. PASAPAS t ;
  132.  
  133. ** Post traitement
  134. * courbes : endommagement moyen vs temps
  135. * contrainte moyenne vs deformation moyenne
  136. * force de reaction vs deplacement impose
  137. tt = t . 'TEMPS' ;
  138. tc = t . 'CONTRAINTES' ;
  139. te = t . 'DEFORMATIONS' ;
  140. tv = t . 'VARIABLES_INTERNES' ;
  141. tu = t . 'DEPLACEMENTS' ;
  142. tr = t . 'REACTIONS' ;
  143. def0 = DEFO (cadr1 ET rep1 ET mail) (tu . 0) 0. ;
  144. ltps = PROG ;
  145. ltps_t = PROG ;
  146. ltps_c = PROG ;
  147. lend = PROG ;
  148. lsig = PROG ;
  149. leps = PROG ;
  150. ldep = PROG ;
  151. lrea = PROG ;
  152. end_p = 0. ;
  153. REPE b0 (DIME tt) ;
  154. tps1 = tt . (&b0 - 1) ;
  155. * Liste des instants : globale (ltps) de traction (ltps_t) de compression (ltps_c)
  156. ltps = ltps ET tps1 ;
  157. SI (<EG tps1 inst_a) ;
  158. ltps_t = ltps_t ET tps1 ;
  159. SINON ;
  160. ltps_c = ltps_c ET tps1 ;
  161. FINSI ;
  162. end1 = (INTG mo (tv . (&b0 - 1)) 'D') / mes1 ;
  163. sig1 = (INTG mo (tc . (&b0 - 1)) 'SMXX') / mes1 ;
  164. eps1 = (INTG mo (te . (&b0 - 1)) 'EPXX') / mes1 ;
  165. u1 = EXTR (tu . (&b0 - 1)) 'UX' p3 ;
  166. rea1 = 0. ;
  167. SI (NEG &b0 1) ;
  168. rea1 = @TOTAL (tr . (&b0 - 1)) sgauche 'FX' ;
  169. FINSI ;
  170. lend = lend ET end1 ;
  171. lsig = lsig ET sig1 ;
  172. leps = leps ET eps1 ;
  173. ldep = ldep ET u1 ;
  174. lrea = lrea ET rea1 ;
  175. * Endommagement de transition traction-compression end_t
  176. dd1 = end1 - end_p ;
  177. SI ((> end1 0.) ET (EGA dd1 0.)) ;
  178. end_t = end1 ;
  179. SINON ;
  180. FINSI ;
  181. end_p = end1 ;
  182. FIN b0 ;
  183. ev0 = EVOL 'ROUG' 'MANU' 'Temps' ltps 'D' lend ;
  184. ev1 = EVOL 'ROUG' 'MANU' 'EPXX' leps 'SMXX' lsig ;
  185. ev2 = EVOL 'ROUG' 'MANU' 'UX' ldep 'FX' lrea ;
  186. *nh145313
  187. ** Sol.Ana.Traction
  188. ltps_t = ENLE (ENLE ltps_t (DIME ltps_t)) 1 ;
  189. nb1 = DIME ltps_t ;
  190. un1 = PROG nb1 * 1.D0 ;
  191. lepd01 = PROG nb1 * epd0 ;
  192. lat1 = PROG nb1 * at ;
  193. * defo.unidim.
  194. lepu1 = (IPOL ltps_t ec1) / long ;
  195. * defo.eq.Mazars (eps.tild) traction = defo.unidim.
  196. lepe1 = lepu1 ;
  197. dt = un1 - ((epd0*(un1-lat1)/lepe1) + (at*(EXP(bt*(lepd01-lepe1))))) ;
  198. lfiltr1 = LECT ;
  199. REPE b1 ;
  200. dt_i = EXTR dt &b1 ;
  201. SI (EGA &b1 1) ;
  202. dt_p = 0. ;
  203. FINSI ;
  204. ddt = dt_i - dt_p ;
  205. SI ((ddt < 0.) OU (dt_i < 0.) OU (dt_i > 1.)) ;
  206. lfiltr1 = lfiltr1 ET (LECT &b1) ;
  207. FINSI ;
  208. dt_p = dt_i ;
  209. SI (EGA &b1 (DIME dt)) ;
  210. QUIT b1 ;
  211. FINSI ;
  212. FIN b1 ;
  213. ltps_t = ENLE ltps_t lfiltr1 ;
  214. un1 = ENLE un1 lfiltr1 ;
  215. lepu1 = ENLE lepu1 lfiltr1 ;
  216. dt = ENLE dt lfiltr1 ;
  217. lsig1 = (un1 - dt) * you * lepu1 ;
  218. an01 = EVOL 'TURQ' 'MANU' 'Temps' ltps_t 'D' dt ;
  219. tpst_t = IPOL end_t dt ltps_t ;
  220. an11 = EVOL 'TURQ' 'MANU' 'EPXX' lepu1 'SMXX' lsig1 ;
  221. sigt_t = IPOL tpst_t ltps_t lsig1 ;
  222. epst_t = IPOL tpst_t ltps_t lepu1 ;
  223.  
  224. ** Sol.Ana.Compression
  225. nb2 = DIME ltps_c ;
  226. un2 = PROG nb2 * 1.D0 ;
  227. lepd02 = PROG nb2 * epd0 ;
  228. lac2 = PROG nb2 * ac ;
  229. * defo.unidim.
  230. lepu2 = (IPOL ltps_c ec1) / long ;
  231. * defo.eq.Mazars (eps.tild) compression = racine(2)*nu*|defo.unidim.|
  232. lepe2 = (2.**0.5) * nu * (ABS lepu2) ;
  233. dc = un2 - ((epd0*(un2-lac2)/lepe2) + (ac*(EXP(bc*(lepd02-lepe2))))) ;
  234. lfiltr2 = LECT ;
  235. REPE b2 ;
  236. dc_i = EXTR dc &b2 ;
  237. SI (EGA &b2 1) ;
  238. dc_p = 1. ;
  239. FINSI ;
  240. ddc = dc_i - dc_p ;
  241. SI ((ddc < 0.) OU (dc_i < 0.) OU (dc_i > 1.)) ;
  242. lfiltr2 = lfiltr2 ET (LECT &b2) ;
  243. FINSI ;
  244. dc_p = dc_i ;
  245. SI (EGA &b2 (DIME dc)) ;
  246. QUIT b2 ;
  247. FINSI ;
  248. FIN b2 ;
  249. ltps_c = ENLE ltps_c lfiltr2 ;
  250. un2 = ENLE un2 lfiltr2 ;
  251. lepu2 = ENLE lepu2 lfiltr2 ;
  252. dc = ENLE dc lfiltr2 ;
  253. lsig2 = (un2 - dc) * you * lepu2 ;
  254. an02 = EVOL 'TURQ' 'MANU' 'Temps' ltps_c 'D' dc ;
  255. tpsc_t = IPOL end_t dc ltps_c ;
  256. an12 = EVOL 'TURQ' 'MANU' 'EPXX' lepu2 'SMXX' lsig2 ;
  257. sigc_t = IPOL tpsc_t ltps_c lsig2 ;
  258. epsc_t = IPOL tpsc_t ltps_c lepu2 ;
  259. SI ITRAC1 ;
  260. DESS (ev0 ET an01 ET an02) 'TITR' '[3D V] Endommagement vs Temps' 'LEGE' 'SE' tdess ;
  261. DESS (ev1 ET an11 ET an12) 'TITR' '[3D V] Contrainte vs Deformation' 'LEGE' 'NO' tdess ;
  262. DESS ev2 'TITR' '[3D V] Reaction vs Deplacement' 'LEGE' 'SE' tdess ;
  263. FINSI ;
  264. * evolutions temporelles a tous les points de Gauss
  265. ng = 8 ;
  266. tleg = TABL ;
  267. tleg . 1 = MOT 'MARQ CARR NOLI' ;
  268. tleg . 2 = MOT 'MARQ LOSA NOLI' ;
  269. tleg . 3 = MOT 'MARQ ROND NOLI' ;
  270. tleg . 4 = MOT 'MARQ ETOI NOLI' ;
  271. tleg . 5 = MOT 'MARQ TRID NOLI' ;
  272. tleg . 6 = MOT 'MARQ TRIU NOLI' ;
  273. tleg . 7 = MOT 'MARQ TRIL NOLI' ;
  274. tleg . 8 = MOT 'MARQ TRIR NOLI' ;
  275. tleg . 'TITRE' = TABL ;
  276. REPE b ng ;
  277. tleg . 'TITRE' . &b = CHAI 'Calc_Pt_Gauss' ' ' &b ;
  278. FIN b ;
  279. * endommagement
  280. evend = VIDE 'EVOLUTIO' ;
  281. REPE b ng ;
  282. evend = evend ET (EVOL 'ROSE' 'TEMP' t 'VARIABLES_INTERNES' 'D' 1 1 &b) ;
  283. FIN b ;
  284. *nh145313
  285. tleg . (ng+1) = MOT 'MARQ CROI REGU' ;
  286. tleg . 'TITRE' . (ng+1) = MOT 'Ref_Traction' ;
  287. tleg . (ng+2) = MOT 'MARQ PLUS REGU' ;
  288. tleg . 'TITRE' . (ng+2) = MOT 'Ref_Compression' ;
  289. SI ITRAC1 ;
  290. DESS (evend ET an01 ET an02) 'LEGE' 'SE' tleg 'TITR' '[3D V] D vs Temps' ;
  291. FINSI ;
  292. * contrainte
  293. evsmxx = VIDE 'EVOLUTIO' ;
  294. REPE b ng ;
  295. evsmxx = evsmxx ET (EVOL 'BLEU' 'TEMP' t 'CONTRAINTES' 'SMXX' 1 1 &b) ;
  296. FIN b ;
  297. *nh145313
  298. ansmxx1 = EVOL 'TURQ' 'MANU' 'Temps' ltps_t 'SMXX' lsig1 ;
  299. ansmxx2 = EVOL 'TURQ' 'MANU' 'Temps' ltps_c 'SMXX' lsig2 ;
  300. SI ITRAC1 ;
  301. DESS (evsmxx ET ansmxx1 ET ansmxx2) 'LEGE' 'NE' tleg 'TITR' '[3D V] SMXX vs Temps' ;
  302. FINSI ;
  303. * deformation
  304. evepxx = VIDE 'EVOLUTIO' ;
  305. REPE b ng ;
  306. evepxx = evepxx ET (EVOL 'VERT' 'TEMP' t 'DEFORMATIONS' 'EPXX' 1 1 &b) ;
  307. FIN b ;
  308. SI ITRAC1 ;
  309. DESS evepxx 'LEGE' 'NE' tleg 'TITR' '[3D V] EPXX vs Temps' ;
  310. FINSI ;
  311. * deformee
  312. REPE b3 (DIME tt) ;
  313. tps1 = tt . (&b3 - 1) ;
  314. * trace de la deformee (pour controle visuel)
  315. def1 = DEFO mail (tu . (&b3 - 1)) 33. 'ROUG' ;
  316. tit1 = CHAI '[3D V] Deformee au temps' ' ' tps1 ;
  317. SI ITRAC1 ;
  318. * TRAC (def0 ET def1) 'TITR' tit1 ;
  319. FINSI ;
  320. FIN b3 ;
  321. SI ITRAC1 ;
  322. TRAC (def0 ET def1) 'TITR' tit1 ;
  323. FINSI ;
  324. * comparaison Calcul / Reference sur la contrainte moyenne
  325. * Traction, courbes réduites
  326. lepu1_red = PROG ;
  327. lsig1_red = PROG ;
  328. born_inf = EXTR lepu1 1 ;
  329. born_sup = epst_t ;
  330. REPE b_an11 (dime lepu1) ;
  331. xi = EXTR lepu1 &b_an11 ;
  332. yi = EXTR lsig1 &b_an11 ;
  333. SI ((>EG xi born_inf) ET (&lt;EG xi born_sup)) ;
  334. lepu1_red = lepu1_red et (PROG xi) ;
  335. lsig1_red = lsig1_red et (PROG yi) ;
  336. FINSI ;
  337. FIN b_an11 ;
  338. an11_red = EVOL 'TURQ' 'MANU' 'EPXX' lepu1_red 'SMXX' lsig1_red ;
  339.  
  340. leps_red = PROG ;
  341. lsig_red = PROG ;
  342. ltps_red = PROG ;
  343. xp = 0. ;
  344. REPE b_ev1 (dime leps) ;
  345. xi = EXTR leps &b_ev1 ;
  346. dx = xi - xp ;
  347. yi = EXTR lsig &b_ev1 ;
  348. ti = EXTR ltps &b_ev1 ;
  349. SI ((>EG xi born_inf) ET (&lt;EG xi born_sup) ET (>EG dx 0)) ;
  350. leps_red = leps_red et (PROG xi) ;
  351. lsig_red = lsig_red et (PROG yi) ;
  352. ltps_red = ltps_red et (PROG ti) ;
  353. FINSI ;
  354. xp = xi ;
  355. FIN b_ev1 ;
  356. ev1_red = EVOL 'ROUG' 'MANU' 'EPXX' leps_red 'SMXX' lsig_red ;
  357.  
  358. lsiga_red = 'IPOL' an11_red leps_red ;
  359. ler1 = ABS (lsig_red - lsiga_red) / lsiga_red ;
  360. eer1 = EVOL 'ORAN' 'MANU' 'Temps' ltps_red 'Ec.rel.SMXX' ler1 ;
  361. dtps = (EXTR ltps_red (DIME ltps_red)) - (EXTR ltps_red 1) ;
  362. mer1 = (INTG eer1) / dtps ;
  363. tit1 = CHAI '[3D V] Ecart rel. |Calc.-Ref.|/Ref. Contr. vs tps en traction, moy.int.|Ecart|' ' ' mer1 ;
  364. SI ITRAC1 ;
  365. DESS eer1 'TITR' tit1 ;
  366. FINSI ;
  367.  
  368. * Compression, courbes réduites
  369. lepu2_red = PROG ;
  370. lsig2_red = PROG ;
  371. born_inf = epsc_t ;
  372. born_sup = EXTR lepu2 (DIME lepu2) ;
  373. REPE b_an12 (dime lepu2) ;
  374. xi = EXTR lepu2 &b_an12 ;
  375. yi = EXTR lsig2 &b_an12 ;
  376. SI ((&lt;EG xi born_inf) ET (>EG xi born_sup)) ;
  377. lepu2_red = lepu2_red et (PROG xi) ;
  378. lsig2_red = lsig2_red et (PROG yi) ;
  379. FINSI ;
  380. FIN b_an12 ;
  381. an12_red = EVOL 'TURQ' 'MANU' 'EPXX' lepu2_red 'SMXX' lsig2_red ;
  382.  
  383. leps_red = PROG ;
  384. lsig_red = PROG ;
  385. ltps_red = PROG ;
  386. xp = 0. ;
  387. REPE b_ev1 (dime leps) ;
  388. xi = EXTR leps &b_ev1 ;
  389. dx = xi - xp ;
  390. yi = EXTR lsig &b_ev1 ;
  391. ti = EXTR ltps &b_ev1 ;
  392. SI ((&lt;EG xi born_inf) ET (>EG xi born_sup)) ;
  393. leps_red = leps_red et (PROG xi) ;
  394. lsig_red = lsig_red et (PROG yi) ;
  395. ltps_red = ltps_red et (PROG ti) ;
  396. FINSI ;
  397. xp = xi ;
  398. FIN b_ev1 ;
  399. ev1_red = EVOL 'ROUG' 'MANU' 'EPXX' leps_red 'SMXX' lsig_red ;
  400.  
  401. lsiga_red = 'IPOL' an12_red leps_red ;
  402. ler2 = ABS ((lsig_red - lsiga_red) / lsiga_red) ;
  403. eer2 = EVOL 'ORAN' 'MANU' 'Temps' ltps_red '|Ec.rel|SMXX' ler2 ;
  404. dtps = (EXTR ltps_red (DIME ltps_red)) - (EXTR ltps_red 1) ;
  405. mer2 = (INTG eer2) / dtps ;
  406. tit2 = CHAI '[3D V] Val.abs.Ec.rel.|(Calc-Ref)/Ref| Contr. vs tps en compression, moy.int.|Ecart|' ' ' mer2 ;
  407. SI ITRAC1 ;
  408. DESS eer2 'TITR' tit2 ;
  409. FINSI ;
  410. tdes1 = 'TABLE' ;
  411. tdes1.'TITRE' = 'TABLE' ;
  412. tdes1 . 1 = MOT 'MARQ CROI' ;
  413. tdes1 . 'TITRE' . 1 = MOT 'Traction' ;
  414. tdes1 . 2 = MOT 'MARQ PLUS' ;
  415. tdes1 . 'TITRE' . 2 = MOT 'Compression' ;
  416. tit1 = CHAI '[3D V] |Ec.r|Contr. vs tps, moy.int.|Ec.r| en trac.' mer1 ' - compr.' mer2 ;
  417. SI ITRAC1 ;
  418. DESS (eer1 et eer2) 'LEGE' 'NO' tdes1 'TITR' tit1 ;
  419. FINSI ;
  420. OPTI ECHO 0 ;
  421. SAUT 1 LIGN ;
  422. MESS ' **************** C A S #1 : 3 D V O L U M I Q U E ****************';
  423. SAUT 1 LIGN ;
  424. SI ((MAXI mer1 mer2) < 1.E-6) ;
  425. MESS ' Moy.int. Val.abs. Ecart relatif entre Calcul et Reference' ;
  426. MESS ' - phase 1.Traction' ' ' mer1 ;
  427. MESS ' - phase 2.Compression' ' ' mer2 ;
  428. MESS ' - maximum des 2 phases' ' ' (MAXI mer1 mer2) ' < 1.E-06 => OK' ;
  429. SAUT 1 LIGN ;
  430. SINO ;
  431. MESS ' Moy.int. Val.abs. Ecart relatif entre Calcul et Reference' ;
  432. MESS ' - phase 1.Traction' ' ' mer1 ;
  433. MESS ' - phase 2.Compression' ' ' mer2 ;
  434. MESS ' - maximum des 2 phases' ' ' (MAXI mer1 mer2) ' > 1.E-06 => ECHEC' ;
  435. IERR = VRAI ;
  436. SAUT 1 LIGN ;
  437. FINS ;
  438. SAUT 1 LIGN ;
  439. OPTI ECHO 1 ;
  440. FINSI ;
  441.  
  442.  
  443.  
  444.  
  445.  
  446. *********** C A S #2 : 3 D P O U T R E A F I B R E ************
  447. SI (EXIS lcas 2) ;
  448.  
  449. ** Options generales
  450. OPTI 'DIME' 3 'MODE' 'TRID' 'ELEM' 'CUB8' ;
  451.  
  452. ** Maillage
  453. p1s = (-0.5 * epai) (-0.5 * epai) 0. ;
  454. p2s = (-0.5 * epai) ( 0.5 * epai) 0. ;
  455. l12s = DROI 1 p1s p2s ;
  456. mails = l12s TRAN 1 (epai 0. 0.) ;
  457. p1 = 0. 0. 0. ;
  458. p2 = long 0. 0. ;
  459. mail = DROI 1 p1 p2 ;
  460. mes1 = MESU mails ;
  461. *nh145313
  462. cadr1 = COUL ((-0.1 0. 0.) ET (1. 0. 0.)) 'BLAN' ;
  463. rep1 = @REPERE (-0.2 -0.2 0.) (PROG 0.2 0.2 0.2) 'TURQ' ;
  464. SI ITRAC1 ;
  465. TRAC 'QUAL' (cadr1 ET rep1 ET (mails COUL 'VERT') ET (mail COUL 'ROUG')) 'TITR' '[3D PaF] Maillages de la Poutre et de sa Section' ;
  466. FINSI ;
  467.  
  468.  
  469. ** Modele et caracteristiques materiau
  470. mos = MODE mails 'MECANIQUE' 'ELASTIQUE' 'PLASTIQUE' 'MAZARS' 'QUAS' ;
  471. mas = MATE mos 'YOUN' you 'NU' nu 'KTR0' epd0 'ACOM' ac 'BCOM' bc 'ATRA' at 'BTRA' bt 'BETA' beta
  472. 'ALPY' 1. 'ALPZ' 1. ;
  473. mo = MODE mail 'MECANIQUE' 'ELASTIQUE' 'SECTION' 'PLASTIQUE' 'SECTION' 'TIMO' ;
  474. ma = MATE mo 'MODS' mos 'MATS' mas 'VECT' (0. 1. 0.) ;
  475.  
  476. ** Blocages
  477. blgauche = BLOQ 'DEPL' 'ROTA' p1 ;
  478. bldroite = BLOQ 'UX' p2 ;
  479. bl = blgauche ET bldroite ;
  480. *nh145313
  481. bldroit2 = BLOQ 'ROTA' p2 ;
  482. bl = bl ET bldroit2 ;
  483.  
  484. ** Chargements
  485. didroite = DEPI bldroite 1. ;
  486. ec1 = EVOL 'MANU' (PROG 0. (0.5*inst_a) inst_a 1. )
  487. (PROG 0. utmax 0. ucmax) ;
  488. cha = CHAR 'DIMP' didroite ec1 ;
  489.  
  490. ** Tracé des blocages et du chargement
  491. re0 = @REPERE (-0.2 -0.2 0.) (PROG 0.2 0.2 0.2) ;
  492. mor = MODE re0 'MECANIQUE' 'BARR' ;
  493. mar = MATE mor 'YOUN' 1. 'NU' 1. 'SECT' 1. ;
  494. rir = RIGI mor mar ;
  495. vf = VECT didroite 'FLX' ' ' ' ' 'ROUG' 0.1 ;
  496. SI ITRAC1 ;
  497. TRAC ((RIGI mo ma) ET blgauche ET rir) vf 'NOLE' 'TITR' '[3D PaF] Blocages et chargement' ;
  498. FINSI ;
  499.  
  500. ** Resolution
  501. t = TABL ;
  502. t . 'MODELE' = mo ;
  503. t . 'CARACTERISTIQUES' = ma ;
  504. t . 'BLOCAGES_MECANIQUES' = bl ;
  505. t . 'CHARGEMENT' = cha ;
  506. t . 'TEMPS_CALCULES' = PROG 0. 'PAS' 3.E-3 (0.5*inst_a)
  507. 'PAS' 3.E-3 inst_a
  508. 'PAS' 1.E-2 1. ;
  509. t . 'MES_SAUVEGARDES' = TABL ;
  510. t . 'MES_SAUVEGARDES' . 'DEFTO' = VRAI ;
  511. PASAPAS t ;
  512.  
  513. ** Post traitement
  514. * courbes : endommagement moyen vs temps
  515. * contrainte moyenne vs deformation moyenne
  516. * force de reaction vs deplacement impose
  517. * evolutions temporelles a tous les points de Gauss
  518. ng = 4 ;
  519. tleg = TABL ;
  520. tleg . 1 = MOT 'MARQ CARR NOLI' ;
  521. tleg . 2 = MOT 'MARQ LOSA NOLI' ;
  522. tleg . 3 = MOT 'MARQ ROND NOLI' ;
  523. tleg . 4 = MOT 'MARQ ETOI NOLI' ;
  524. tleg . 'TITRE' = TABL ;
  525. REPE b ng ;
  526. tleg . 'TITRE' . &b = CHAI 'Calc_Pt_Gauss' ' ' &b ;
  527. FIN b ;
  528. *nh145313
  529. tleg . (ng+1) = MOT 'MARQ CROI REGU' ;
  530. tleg . 'TITRE' . (ng+1) = MOT 'Ref_Traction' ;
  531. tleg . (ng+2) = MOT 'MARQ PLUS REGU' ;
  532. tleg . 'TITRE' . (ng+2) = MOT 'Ref_Compression' ;
  533. tt = t . 'TEMPS' ;
  534. tv = t . 'VARIABLES_INTERNES' ;
  535. tu = t . 'DEPLACEMENTS' ;
  536. tr = t . 'REACTIONS' ;
  537. def0 = DEFO (cadr1 ET rep1 ET mail) (tu . 0) 0. ;
  538. ltps = PROG ;
  539. ltps_t = PROG ;
  540. ltps_c = PROG ;
  541. lend1 = PROG ;
  542. lend2 = PROG ;
  543. lend3 = PROG ;
  544. lend4 = PROG ;
  545. lsig1 = PROG ;
  546. lsig2 = PROG ;
  547. lsig3 = PROG ;
  548. lsig4 = PROG ;
  549. leps1 = PROG ;
  550. leps2 = PROG ;
  551. leps3 = PROG ;
  552. leps4 = PROG ;
  553. ldep = PROG ;
  554. lrea = PROG ;
  555. end_p = 0. ;
  556. REPE b0 (DIME tt) ;
  557. tps1 = tt . (&b0 - 1) ;
  558. * Liste des instants : globale (ltps) de traction (ltps_t) de compression (ltps_c)
  559. ltps = ltps ET tps1 ;
  560. SI (&lt;EG tps1 inst_a) ;
  561. ltps_t = ltps_t ET tps1 ;
  562. SINON ;
  563. ltps_c = ltps_c ET tps1 ;
  564. FINSI ;
  565. SI (EGA &b0 1) ;
  566. lend1 = lend1 ET 0. ;
  567. lend2 = lend2 ET 0. ;
  568. lend3 = lend3 ET 0. ;
  569. lend4 = lend4 ET 0. ;
  570. lsig1 = lsig1 ET 0. ;
  571. lsig2 = lsig2 ET 0. ;
  572. lsig3 = lsig3 ET 0. ;
  573. lsig4 = lsig4 ET 0. ;
  574. leps1 = leps1 ET 0. ;
  575. leps2 = leps2 ET 0. ;
  576. leps3 = leps3 ET 0. ;
  577. leps4 = leps4 ET 0. ;
  578. end1 = 0. ;
  579. SINON ;
  580. lend1 = lend1 ET (EXTR (EXTR (tv . (&b0 - 1)) 'VAIS' 1 1 1) 'VHNI' 1 1 1) ;
  581. lend2 = lend2 ET (EXTR (EXTR (tv . (&b0 - 1)) 'VAIS' 1 1 1) 'VHNI' 1 1 2) ;
  582. lend3 = lend3 ET (EXTR (EXTR (tv . (&b0 - 1)) 'VAIS' 1 1 1) 'VHNI' 1 1 3) ;
  583. lend4 = lend4 ET (EXTR (EXTR (tv . (&b0 - 1)) 'VAIS' 1 1 1) 'VHNI' 1 1 4) ;
  584. lsig1 = lsig1 ET (EXTR (EXTR (tv . (&b0 - 1)) 'VONS' 1 1 1) 'SMXX' 1 1 1) ;
  585. lsig2 = lsig2 ET (EXTR (EXTR (tv . (&b0 - 1)) 'VONS' 1 1 1) 'SMXX' 1 1 2) ;
  586. lsig3 = lsig3 ET (EXTR (EXTR (tv . (&b0 - 1)) 'VONS' 1 1 1) 'SMXX' 1 1 3) ;
  587. lsig4 = lsig4 ET (EXTR (EXTR (tv . (&b0 - 1)) 'VONS' 1 1 1) 'SMXX' 1 1 4) ;
  588. leps1 = leps1 ET (EXTR (EXTR (tv . (&b0 - 1)) 'VAIS' 1 1 1) 'VISX' 1 1 1) ;
  589. leps2 = leps2 ET (EXTR (EXTR (tv . (&b0 - 1)) 'VAIS' 1 1 1) 'VISX' 1 1 2) ;
  590. leps3 = leps3 ET (EXTR (EXTR (tv . (&b0 - 1)) 'VAIS' 1 1 1) 'VISX' 1 1 3) ;
  591. leps4 = leps4 ET (EXTR (EXTR (tv . (&b0 - 1)) 'VAIS' 1 1 1) 'VISX' 1 1 4) ;
  592. end1 = EXTR (EXTR (tv . (&b0 - 1)) 'VAIS' 1 1 1) 'VHNI' 1 1 1 ;
  593. FINSI ;
  594. u1 = EXTR (tu . (&b0 - 1)) 'UX' p2 ;
  595. rea1 = EXTR (tr . (&b0 - 1)) 'FX' p1 ;
  596. ldep = ldep ET u1 ;
  597. lrea = lrea ET rea1 ;
  598. * Endommagement de transition traction-compression end_t
  599. dd1 = end1 - end_p ;
  600. SI ((> end1 0.) ET (EGA dd1 0.)) ;
  601. end_t = end1 ;
  602. SINON ;
  603. FINSI ;
  604. end_p = end1 ;
  605. FIN b0 ;
  606. ev0 = (EVOL 'ROUG' 'MANU' 'Temps' ltps 'D' lend1) ET (EVOL 'ROUG' 'MANU' 'Temps' ltps 'D' lend2) ET
  607. (EVOL 'ROUG' 'MANU' 'Temps' ltps 'D' lend3) ET (EVOL 'ROUG' 'MANU' 'Temps' ltps 'D' lend4) ;
  608. ev1 = (EVOL 'ROUG' 'MANU' 'EPXX' leps1 'SMXX' lsig1) ET (EVOL 'ROUG' 'MANU' 'EPXX' leps2 'SMXX' lsig2) ET
  609. (EVOL 'ROUG' 'MANU' 'EPXX' leps3 'SMXX' lsig3) ET (EVOL 'ROUG' 'MANU' 'EPXX' leps4 'SMXX' lsig4) ;
  610. ev2 = EVOL 'ROUG' 'MANU' 'UX' ldep 'FX' lrea ;
  611. *nh145313
  612. ** Sol.Ana.Traction
  613. ltps_t = ENLE (ENLE ltps_t (DIME ltps_t)) 1 ;
  614. nb1 = DIME ltps_t ;
  615. un1 = PROG nb1 * 1.D0 ;
  616. lepd01 = PROG nb1 * epd0 ;
  617. lat1 = PROG nb1 * at ;
  618. * defo.unidim.
  619. lepu1 = (IPOL ltps_t ec1) / long ;
  620. * defo.eq.Mazars (eps.tild) traction = defo.unidim.
  621. lepe1 = lepu1 ;
  622. dt = un1 - ((epd0*(un1-lat1)/lepe1) + (at*(EXP(bt*(lepd01-lepe1))))) ;
  623. lfiltr1 = LECT ;
  624. REPE b1 ;
  625. dt_i = EXTR dt &b1 ;
  626. SI (EGA &b1 1) ;
  627. dt_p = 0. ;
  628. FINSI ;
  629. ddt = dt_i - dt_p ;
  630. SI ((ddt < 0.) OU (dt_i < 0.) OU (dt_i > 1.)) ;
  631. lfiltr1 = lfiltr1 ET (LECT &b1) ;
  632. FINSI ;
  633. dt_p = dt_i ;
  634. SI (EGA &b1 (DIME dt)) ;
  635. QUIT b1 ;
  636. FINSI ;
  637. FIN b1 ;
  638. ltps_t = ENLE ltps_t lfiltr1 ;
  639. un1 = ENLE un1 lfiltr1 ;
  640. lepu1 = ENLE lepu1 lfiltr1 ;
  641. dt = ENLE dt lfiltr1 ;
  642. asig1 = (un1 - dt) * you * lepu1 ;
  643. an01 = EVOL 'TURQ' 'MANU' 'Temps' ltps_t 'D' dt ;
  644. tpst_t = IPOL end_t dt ltps_t ;
  645. an11 = EVOL 'TURQ' 'MANU' 'EPXX' lepu1 'SMXX' asig1 ;
  646. sigt_t = IPOL tpst_t ltps_t asig1 ;
  647. epst_t = IPOL tpst_t ltps_t lepu1 ;
  648.  
  649. ** Sol.Ana.Compression
  650. nb2 = DIME ltps_c ;
  651. un2 = PROG nb2 * 1.D0 ;
  652. lepd02 = PROG nb2 * epd0 ;
  653. lac2 = PROG nb2 * ac ;
  654. * defo.unidim.
  655. lepu2 = (IPOL ltps_c ec1) / long ;
  656. * defo.eq.Mazars (eps.tild) compression = racine(2)*nu*|defo.unidim.|
  657. lepe2 = (2.**0.5) * nu * (ABS lepu2) ;
  658. dc = un2 - ((epd0*(un2-lac2)/lepe2) + (ac*(EXP(bc*(lepd02-lepe2))))) ;
  659. lfiltr2 = LECT ;
  660. REPE b2 ;
  661. dc_i = EXTR dc &b2 ;
  662. SI (EGA &b2 1) ;
  663. dc_p = 1. ;
  664. FINSI ;
  665. ddc = dc_i - dc_p ;
  666. SI ((ddc < 0.) OU (dc_i < 0.) OU (dc_i > 1.)) ;
  667. lfiltr2 = lfiltr2 ET (LECT &b2) ;
  668. FINSI ;
  669. dc_p = dc_i ;
  670. SI (EGA &b2 (DIME dc)) ;
  671. QUIT b2 ;
  672. FINSI ;
  673. FIN b2 ;
  674. ltps_c = ENLE ltps_c lfiltr2 ;
  675. un2 = ENLE un2 lfiltr2 ;
  676. lepu2 = ENLE lepu2 lfiltr2 ;
  677. dc = ENLE dc lfiltr2 ;
  678. asig2 = (un2 - dc) * you * lepu2 ;
  679. an02 = EVOL 'TURQ' 'MANU' 'Temps' ltps_c 'D' dc ;
  680. tpsc_t = IPOL end_t dc ltps_c ;
  681. an12 = EVOL 'TURQ' 'MANU' 'EPXX' lepu2 'SMXX' asig2 ;
  682. sigc_t = IPOL tpsc_t ltps_c asig2 ;
  683. epsc_t = IPOL tpsc_t ltps_c lepu2 ;
  684. SI ITRAC1 ;
  685. DESS (ev0 ET an01 ET an02) 'LEGE' 'SE' tleg 'TITR' '[3D PaF] Endommagement vs Temps' ;
  686. DESS (ev1 ET an11 ET an12) 'LEGE' 'NO' tleg 'TITR' '[3D PaF] Contrainte vs Deformation' ;
  687. DESS ev2 'TITR' '[3D PaF] Reaction vs Deplacement' 'LEGE' 'SE' tdess ;
  688. FINSI ;
  689. * deformee
  690. REPE b3 (DIME tt) ;
  691. tps1 = tt . (&b3 - 1) ;
  692. * trace de la deformee (pour controle visuel)
  693. def1 = DEFO mail (tu . (&b3 - 1)) 33. 'ROUG' ;
  694. tit1 = CHAI '[3D PaF] Deformee au temps' ' ' tps1 ;
  695. SI ITRAC1 ;
  696. * TRAC (def0 ET def1) 'TITR' tit1 ;
  697. FINSI ;
  698. FIN b3 ;
  699. SI ITRAC1 ;
  700. TRAC (def0 ET def1) 'TITR' tit1 ;
  701. FINSI ;
  702. * comparaison Calcul / Reference sur la contrainte moyenne
  703. * Traction, courbes réduites
  704. lepu1_red = PROG ;
  705. asig1_red = PROG ;
  706. born_inf = EXTR lepu1 1 ;
  707. born_sup = epst_t ;
  708. REPE b_an11 (dime lepu1) ;
  709. xi = EXTR lepu1 &b_an11 ;
  710. yi = EXTR asig1 &b_an11 ;
  711. SI ((>EG xi born_inf) ET (&lt;EG xi born_sup)) ;
  712. lepu1_red = lepu1_red et (PROG xi) ;
  713. asig1_red = asig1_red et (PROG yi) ;
  714. FINSI ;
  715. FIN b_an11 ;
  716. an11_red = EVOL 'TURQ' 'MANU' 'EPXX' lepu1_red 'SMXX' asig1_red ;
  717.  
  718. leps_red = PROG ;
  719. lsig_red = PROG ;
  720. ltps_red = PROG ;
  721. xp = 0. ;
  722. REPE b_ev1 (dime leps1) ;
  723. xi = EXTR leps1 &b_ev1 ;
  724. dx = xi - xp ;
  725. yi = EXTR lsig1 &b_ev1 ;
  726. ti = EXTR ltps &b_ev1 ;
  727. SI ((>EG xi born_inf) ET (&lt;EG xi born_sup) ET (>EG dx 0)) ;
  728. leps_red = leps_red et (PROG xi) ;
  729. lsig_red = lsig_red et (PROG yi) ;
  730. ltps_red = ltps_red et (PROG ti) ;
  731. FINSI ;
  732. xp = xi ;
  733. FIN b_ev1 ;
  734. ev1_red = EVOL 'ROUG' 'MANU' 'EPXX' leps_red 'SMXX' lsig_red ;
  735.  
  736. lsiga_red = 'IPOL' an11_red leps_red ;
  737. ler1 = ABS (lsig_red - lsiga_red) / lsiga_red ;
  738. eer1 = EVOL 'ORAN' 'MANU' 'Temps' ltps_red 'Ec.rel.SMXX' ler1 ;
  739. dtps = (EXTR ltps_red (DIME ltps_red)) - (EXTR ltps_red 1) ;
  740. mer1 = (INTG eer1) / dtps ;
  741. tit1 = CHAI '[3D PaF] Ecart rel. |Calc.-Ref.|/Ref. Contr. vs tps en traction, moy.int.|Ecart|' ' ' mer1 ;
  742. SI ITRAC1 ;
  743. DESS eer1 'TITR' tit1 ;
  744. FINSI ;
  745.  
  746. * Compression, courbes réduites
  747. lepu2_red = PROG ;
  748. asig2_red = PROG ;
  749. born_inf = epsc_t ;
  750. born_sup = EXTR lepu2 (DIME lepu2) ;
  751. REPE b_an12 (dime lepu2) ;
  752. xi = EXTR lepu2 &b_an12 ;
  753. yi = EXTR asig2 &b_an12 ;
  754. SI ((&lt;EG xi born_inf) ET (>EG xi born_sup)) ;
  755. lepu2_red = lepu2_red et (PROG xi) ;
  756. asig2_red = asig2_red et (PROG yi) ;
  757. FINSI ;
  758. FIN b_an12 ;
  759. an12_red = EVOL 'TURQ' 'MANU' 'EPXX' lepu2_red 'SMXX' asig2_red ;
  760.  
  761. leps_red = PROG ;
  762. lsig_red = PROG ;
  763. ltps_red = PROG ;
  764. xp = 0. ;
  765. REPE b_ev1 (dime leps1) ;
  766. xi = EXTR leps1 &b_ev1 ;
  767. dx = xi - xp ;
  768. yi = EXTR lsig1 &b_ev1 ;
  769. ti = EXTR ltps &b_ev1 ;
  770. SI ((&lt;EG xi born_inf) ET (>EG xi born_sup)) ;
  771. leps_red = leps_red et (PROG xi) ;
  772. lsig_red = lsig_red et (PROG yi) ;
  773. ltps_red = ltps_red et (PROG ti) ;
  774. FINSI ;
  775. xp = xi ;
  776. FIN b_ev1 ;
  777. ev1_red = EVOL 'ROUG' 'MANU' 'EPXX' leps_red 'SMXX' lsig_red ;
  778.  
  779. lsiga_red = 'IPOL' an12_red leps_red ;
  780. ler2 = ABS ((lsig_red - lsiga_red) / lsiga_red) ;
  781. eer2 = EVOL 'ORAN' 'MANU' 'Temps' ltps_red '|Ec.rel|SMXX' ler2 ;
  782. dtps = (EXTR ltps_red (DIME ltps_red)) - (EXTR ltps_red 1) ;
  783. mer2 = (INTG eer2) / dtps ;
  784. tit2 = CHAI '[3D PaF] Val.abs.Ec.rel.|(Calc-Ref)/Ref| Contr. vs tps en compression, moy.int.|Ecart|' ' ' mer2 ;
  785. SI ITRAC1 ;
  786. DESS eer2 'TITR' tit2 ;
  787. FINSI ;
  788. tdes1 = 'TABLE' ;
  789. tdes1.'TITRE' = 'TABLE' ;
  790. tdes1 . 1 = MOT 'MARQ CROI' ;
  791. tdes1 . 'TITRE' . 1 = MOT 'Traction' ;
  792. tdes1 . 2 = MOT 'MARQ PLUS' ;
  793. tdes1 . 'TITRE' . 2 = MOT 'Compression' ;
  794. tit1 = CHAI '[3D PaF] |Ec.r|Contr. vs tps, moy.int.|Ec.r| en trac.' mer1 ' - compr.' mer2 ;
  795. SI ITRAC1 ;
  796. DESS (eer1 et eer2) 'LEGE' 'NE' tdes1 'TITR' tit1 ;
  797. FINSI ;
  798. OPTI ECHO 0 ;
  799. SAUT 1 LIGN ;
  800. MESS ' *********** C A S #2 : 3 D P O U T R E A F I B R E ************';
  801. SAUT 1 LIGN ;
  802. SI ((MAXI mer1 mer2) < 1.E-6) ;
  803. MESS ' Moy.int. Val.abs. Ecart relatif entre Calcul et Reference' ;
  804. MESS ' - phase 1.Traction' ' ' mer1 ;
  805. MESS ' - phase 2.Compression' ' ' mer2 ;
  806. MESS ' - maximum des 2 phases' ' ' (MAXI mer1 mer2) ' < 1.E-06 => OK' ;
  807. SAUT 1 LIGN ;
  808. SINO ;
  809. MESS ' Moy.int. Val.abs. Ecart relatif entre Calcul et Reference' ;
  810. MESS ' - phase 1.Traction' ' ' mer1 ;
  811. MESS ' - phase 2.Compression' ' ' mer2 ;
  812. MESS ' - maximum des 2 phases' ' ' (MAXI mer1 mer2) ' > 1.E-06 => ECHEC' ;
  813. IERR = VRAI ;
  814. SAUT 1 LIGN ;
  815. FINS ;
  816. SAUT 1 LIGN ;
  817. OPTI ECHO 1 ;
  818. FINSI ;
  819.  
  820.  
  821.  
  822.  
  823.  
  824. ******* C A S #3 : 2 D C O N T R A I N T E S P L A N E S ********
  825. SI (EXIS lcas 3) ;
  826.  
  827. ** Options generales
  828. OPTI 'DIME' 2 'MODE' 'PLAN' 'CONT' 'ELEM' 'QUA4' ;
  829.  
  830. ** Maillage
  831. p1 = 0. 0. ;
  832. p2 = 0. long ;
  833. sgauche = DROI 1 p1 p2 ;
  834. mail = sgauche TRAN 1 (long 0.) ;
  835. sdroite = mail COTE 3 ;
  836. p3 = sdroite POIN 'PROC' (long 0.) ;
  837. mes1 = MESU mail ;
  838. *nh145313
  839. cadr1 = COUL ((0. 1.05) ET (1.01 1.05)) 'BLAN' ;
  840. rep1 = @REPERE (-0.2 -0.2) (PROG 0.5 0.5) 'TURQ' ;
  841. SI ITRAC1 ;
  842. TRAC 'QUAL' (cadr1 ET rep1 ET mail ET (sgauche COUL 'VERT') ET (sdroite COUL 'ROUG')) 'TITR' '[2D Plan cont.] Maillage' ;
  843. FINSI ;
  844.  
  845. ** Modele et caracteristiques materiau
  846. mo = MODE mail 'MECANIQUE' 'ELASTIQUE' 'ENDOMMAGEMENT' 'MAZARS' ;
  847. ma = MATE mo 'YOUN' you 'NU' nu 'KTR0' epd0 'ACOM' ac 'BCOM' bc 'ATRA' at 'BTRA' bt 'BETA' beta 'DIM3' epai ;
  848.  
  849. ** Blocages
  850. blgauche = BLOQ 'UX' sgauche ;
  851. bldroite = BLOQ 'UX' sdroite ;
  852. blrig = BLOQ 'UY' p1 ;
  853. bl = blgauche ET bldroite ET blrig ;
  854.  
  855. ** Chargements
  856. didroite = DEPI bldroite 1. ;
  857. ec1 = EVOL 'MANU' (PROG 0. (0.5*inst_a) inst_a 1. )
  858. (PROG 0. utmax 0. ucmax) ;
  859. cha = CHAR 'DIMP' didroite ec1 ;
  860.  
  861. ** Tracé des blocages et du chargement
  862. re0 = @REPERE (-0.2 -0.2) (PROG 0.5 0.5) ;
  863. mor = MODE re0 'MECANIQUE' 'BARR' ;
  864. mar = MATE mor 'YOUN' 1. 'NU' 1. 'SECT' 1. ;
  865. rir = RIGI mor mar ;
  866. vf = VECT didroite 'FLX' ' ' 'ROUG' ;
  867. SI ITRAC1 ;
  868. TRAC ((RIGI mo ma) ET blgauche ET blrig ET rir) vf 'NOLE' 'TITR' '[2D Plan cont.] Blocages et chargement' ;
  869. FINSI ;
  870.  
  871. ** Resolution
  872. t = TABL ;
  873. t . 'MODELE' = mo ;
  874. t . 'CARACTERISTIQUES' = ma ;
  875. t . 'BLOCAGES_MECANIQUES' = bl ;
  876. t . 'CHARGEMENT' = cha ;
  877. t . 'TEMPS_CALCULES' = PROG 0. 'PAS' 3.E-3 (0.5*inst_a)
  878. 'PAS' 3.E-3 inst_a
  879. 'PAS' 1.E-2 1. ;
  880. t . 'MES_SAUVEGARDES' = TABL ;
  881. t . 'MES_SAUVEGARDES' . 'DEFTO' = VRAI ;
  882. PASAPAS t ;
  883.  
  884. ** Post traitement
  885. * courbes : endommagement moyen vs temps
  886. * contrainte moyenne vs deformation moyenne
  887. * force de reaction vs deplacement impose
  888. tt = t . 'TEMPS' ;
  889. tc = t . 'CONTRAINTES' ;
  890. te = t . 'DEFORMATIONS' ;
  891. tv = t . 'VARIABLES_INTERNES' ;
  892. tu = t . 'DEPLACEMENTS' ;
  893. tr = t . 'REACTIONS' ;
  894. def0 = DEFO (cadr1 ET rep1 ET mail) (tu . 0) 0. ;
  895. ltps = PROG ;
  896. ltps_t = PROG ;
  897. ltps_c = PROG ;
  898. lend = PROG ;
  899. lsig = PROG ;
  900. leps = PROG ;
  901. ldep = PROG ;
  902. lrea = PROG ;
  903. end_p = 0. ;
  904. REPE b0 (DIME tt) ;
  905. tps1 = tt . (&b0 - 1) ;
  906. * Liste des instants : globale (ltps) de traction (ltps_t) de compression (ltps_c)
  907. ltps = ltps ET tps1 ;
  908. SI (&lt;EG tps1 inst_a) ;
  909. ltps_t = ltps_t ET tps1 ;
  910. SINON ;
  911. ltps_c = ltps_c ET tps1 ;
  912. FINSI ;
  913. end1 = (INTG mo (tv . (&b0 - 1)) 'D') / mes1 ;
  914. sig1 = (INTG mo (tc . (&b0 - 1)) 'SMXX') / mes1 ;
  915. eps1 = (INTG mo (te . (&b0 - 1)) 'EPXX') / mes1 ;
  916. u1 = EXTR (tu . (&b0 - 1)) 'UX' p3 ;
  917. rea1 = 0. ;
  918. SI (NEG &b0 1) ;
  919. rea1 = @TOTAL (tr . (&b0 - 1)) sgauche 'FX' ;
  920. FINSI ;
  921. lend = lend ET end1 ;
  922. lsig = lsig ET sig1 ;
  923. leps = leps ET eps1 ;
  924. ldep = ldep ET u1 ;
  925. lrea = lrea ET rea1 ;
  926. * Endommagement de transition traction-compression end_t
  927. dd1 = end1 - end_p ;
  928. SI ((> end1 0.) ET (EGA dd1 0.)) ;
  929. end_t = end1 ;
  930. SINON ;
  931. FINSI ;
  932. end_p = end1 ;
  933. FIN b0 ;
  934. ev0 = EVOL 'ROUG' 'MANU' 'Temps' ltps 'D' lend ;
  935. ev1 = EVOL 'ROUG' 'MANU' 'EPXX' leps 'SMXX' lsig ;
  936. ev2 = EVOL 'ROUG' 'MANU' 'UX' ldep 'FX' lrea ;
  937. *nh145313
  938. ** Sol.Ana.Traction
  939. ltps_t = ENLE (ENLE ltps_t (DIME ltps_t)) 1 ;
  940. nb1 = DIME ltps_t ;
  941. un1 = PROG nb1 * 1.D0 ;
  942. lepd01 = PROG nb1 * epd0 ;
  943. lat1 = PROG nb1 * at ;
  944. * defo.unidim.
  945. lepu1 = (IPOL ltps_t ec1) / long ;
  946. * defo.eq.Mazars (eps.tild) traction = defo.unidim.
  947. lepe1 = lepu1 ;
  948. dt = un1 - ((epd0*(un1-lat1)/lepe1) + (at*(EXP(bt*(lepd01-lepe1))))) ;
  949. lfiltr1 = LECT ;
  950. REPE b1 ;
  951. dt_i = EXTR dt &b1 ;
  952. SI (EGA &b1 1) ;
  953. dt_p = 0. ;
  954. FINSI ;
  955. ddt = dt_i - dt_p ;
  956. SI ((ddt < 0.) OU (dt_i < 0.) OU (dt_i > 1.)) ;
  957. lfiltr1 = lfiltr1 ET (LECT &b1) ;
  958. FINSI ;
  959. dt_p = dt_i ;
  960. SI (EGA &b1 (DIME dt)) ;
  961. QUIT b1 ;
  962. FINSI ;
  963. FIN b1 ;
  964. ltps_t = ENLE ltps_t lfiltr1 ;
  965. un1 = ENLE un1 lfiltr1 ;
  966. lepu1 = ENLE lepu1 lfiltr1 ;
  967. dt = ENLE dt lfiltr1 ;
  968. lsig1 = (un1 - dt) * you * lepu1 ;
  969. an01 = EVOL 'TURQ' 'MANU' 'Temps' ltps_t 'D' dt ;
  970. tpst_t = IPOL end_t dt ltps_t ;
  971. an11 = EVOL 'TURQ' 'MANU' 'EPXX' lepu1 'SMXX' lsig1 ;
  972. sigt_t = IPOL tpst_t ltps_t lsig1 ;
  973. epst_t = IPOL tpst_t ltps_t lepu1 ;
  974.  
  975. ** Sol.Ana.Compression
  976. nb2 = DIME ltps_c ;
  977. un2 = PROG nb2 * 1.D0 ;
  978. lepd02 = PROG nb2 * epd0 ;
  979. lac2 = PROG nb2 * ac ;
  980. * defo.unidim.
  981. lepu2 = (IPOL ltps_c ec1) / long ;
  982. * defo.eq.Mazars (eps.tild) compression = racine(2)*nu*|defo.unidim.|
  983. lepe2 = (2.**0.5) * nu * (ABS lepu2) ;
  984. dc = un2 - ((epd0*(un2-lac2)/lepe2) + (ac*(EXP(bc*(lepd02-lepe2))))) ;
  985. lfiltr2 = LECT ;
  986. REPE b2 ;
  987. dc_i = EXTR dc &b2 ;
  988. SI (EGA &b2 1) ;
  989. dc_p = 1. ;
  990. FINSI ;
  991. ddc = dc_i - dc_p ;
  992. SI ((ddc < 0.) OU (dc_i < 0.) OU (dc_i > 1.)) ;
  993. lfiltr2 = lfiltr2 ET (LECT &b2) ;
  994. FINSI ;
  995. dc_p = dc_i ;
  996. SI (EGA &b2 (DIME dc)) ;
  997. QUIT b2 ;
  998. FINSI ;
  999. FIN b2 ;
  1000. ltps_c = ENLE ltps_c lfiltr2 ;
  1001. un2 = ENLE un2 lfiltr2 ;
  1002. lepu2 = ENLE lepu2 lfiltr2 ;
  1003. dc = ENLE dc lfiltr2 ;
  1004. lsig2 = (un2 - dc) * you * lepu2 ;
  1005. an02 = EVOL 'TURQ' 'MANU' 'Temps' ltps_c 'D' dc ;
  1006. tpsc_t = IPOL end_t dc ltps_c ;
  1007. an12 = EVOL 'TURQ' 'MANU' 'EPXX' lepu2 'SMXX' lsig2 ;
  1008. sigc_t = IPOL tpsc_t ltps_c lsig2 ;
  1009. epsc_t = IPOL tpsc_t ltps_c lepu2 ;
  1010. SI ITRAC1 ;
  1011. DESS (ev0 ET an01 ET an02) 'TITR' '[2D Plan cont.] Endommagement vs Temps' 'LEGE' 'SE' tdess ;
  1012. DESS (ev1 ET an11 ET an12) 'TITR' '[2D Plan cont.] Contrainte vs Deformation' 'LEGE' 'NO' tdess ;
  1013. DESS ev2 'TITR' '[2D Plan cont.] Reaction vs Deplacement' 'LEGE' 'SE' tdess ;
  1014. FINSI ;
  1015. * evolutions temporelles a tous les points de Gauss
  1016. ng = 4 ;
  1017. tleg = TABL ;
  1018. tleg . 1 = MOT 'MARQ CARR NOLI' ;
  1019. tleg . 2 = MOT 'MARQ LOSA NOLI' ;
  1020. tleg . 3 = MOT 'MARQ ROND NOLI' ;
  1021. tleg . 4 = MOT 'MARQ ETOI NOLI' ;
  1022. tleg . 'TITRE' = TABL ;
  1023. REPE b ng ;
  1024. tleg . 'TITRE' . &b = CHAI 'Calc_Pt_Gauss' ' ' &b ;
  1025. FIN b ;
  1026. * endommagement
  1027. evend = VIDE 'EVOLUTIO' ;
  1028. REPE b ng ;
  1029. evend = evend ET (EVOL 'ROSE' 'TEMP' t 'VARIABLES_INTERNES' 'D' 1 1 &b) ;
  1030. FIN b ;
  1031. *nh145313
  1032. tleg . (ng+1) = MOT 'MARQ CROI REGU' ;
  1033. tleg . 'TITRE' . (ng+1) = MOT 'Ref_Traction' ;
  1034. tleg . (ng+2) = MOT 'MARQ PLUS REGU' ;
  1035. tleg . 'TITRE' . (ng+2) = MOT 'Ref_Compression' ;
  1036. SI ITRAC1 ;
  1037. DESS (evend ET an01 ET an02) 'LEGE' 'SE' tleg 'TITR' '[2D Plan cont.] D vs Temps' ;
  1038. FINSI ;
  1039. * contrainte
  1040. evsmxx = VIDE 'EVOLUTIO' ;
  1041. REPE b ng ;
  1042. evsmxx = evsmxx ET (EVOL 'BLEU' 'TEMP' t 'CONTRAINTES' 'SMXX' 1 1 &b) ;
  1043. FIN b ;
  1044. *nh145313
  1045. ansmxx1 = EVOL 'TURQ' 'MANU' 'Temps' ltps_t 'SMXX' lsig1 ;
  1046. ansmxx2 = EVOL 'TURQ' 'MANU' 'Temps' ltps_c 'SMXX' lsig2 ;
  1047. SI ITRAC1 ;
  1048. DESS (evsmxx ET ansmxx1 ET ansmxx2) 'LEGE' 'NE' tleg 'TITR' '[2D Plan cont.] SMXX vs Temps' ;
  1049. FINSI ;
  1050. * deformation
  1051. evepxx = VIDE 'EVOLUTIO' ;
  1052. REPE b ng ;
  1053. evepxx = evepxx ET (EVOL 'VERT' 'TEMP' t 'DEFORMATIONS' 'EPXX' 1 1 &b) ;
  1054. FIN b ;
  1055. SI ITRAC1 ;
  1056. DESS evepxx 'LEGE' tleg 'TITR' '[2D Plan cont.] EPXX vs Temps' ;
  1057. FINSI ;
  1058. * deformee
  1059. REPE b3 (DIME tt) ;
  1060. tps1 = tt . (&b3 - 1) ;
  1061. * trace de la deformee (pour controle visuel)
  1062. def1 = DEFO mail (tu . (&b3 - 1)) 33. 'ROUG' ;
  1063. tit1 = CHAI '[2D Plan cont.] Deformee au temps' ' ' tps1 ;
  1064. SI ITRAC1 ;
  1065. * TRAC (def0 ET def1) 'TITR' tit1 ;
  1066. FINSI ;
  1067. FIN b3 ;
  1068. SI ITRAC1 ;
  1069. TRAC (def0 ET def1) 'TITR' tit1 ;
  1070. FINSI ;
  1071. * comparaison Calcul / Reference sur la contrainte moyenne
  1072. * Traction, courbes réduites
  1073. lepu1_red = PROG ;
  1074. lsig1_red = PROG ;
  1075. born_inf = EXTR lepu1 1 ;
  1076. born_sup = epst_t ;
  1077. REPE b_an11 (dime lepu1) ;
  1078. xi = EXTR lepu1 &b_an11 ;
  1079. yi = EXTR lsig1 &b_an11 ;
  1080. SI ((>EG xi born_inf) ET (&lt;EG xi born_sup)) ;
  1081. lepu1_red = lepu1_red et (PROG xi) ;
  1082. lsig1_red = lsig1_red et (PROG yi) ;
  1083. FINSI ;
  1084. FIN b_an11 ;
  1085. an11_red = EVOL 'TURQ' 'MANU' 'EPXX' lepu1_red 'SMXX' lsig1_red ;
  1086.  
  1087. leps_red = PROG ;
  1088. lsig_red = PROG ;
  1089. ltps_red = PROG ;
  1090. xp = 0. ;
  1091. REPE b_ev1 (dime leps) ;
  1092. xi = EXTR leps &b_ev1 ;
  1093. dx = xi - xp ;
  1094. yi = EXTR lsig &b_ev1 ;
  1095. ti = EXTR ltps &b_ev1 ;
  1096. SI ((>EG xi born_inf) ET (&lt;EG xi born_sup) ET (>EG dx 0)) ;
  1097. leps_red = leps_red et (PROG xi) ;
  1098. lsig_red = lsig_red et (PROG yi) ;
  1099. ltps_red = ltps_red et (PROG ti) ;
  1100. FINSI ;
  1101. xp = xi ;
  1102. FIN b_ev1 ;
  1103. ev1_red = EVOL 'ROUG' 'MANU' 'EPXX' leps_red 'SMXX' lsig_red ;
  1104.  
  1105. lsiga_red = 'IPOL' an11_red leps_red ;
  1106. ler1 = ABS (lsig_red - lsiga_red) / lsiga_red ;
  1107. eer1 = EVOL 'ORAN' 'MANU' 'Temps' ltps_red 'Ec.rel.SMXX' ler1 ;
  1108. dtps = (EXTR ltps_red (DIME ltps_red)) - (EXTR ltps_red 1) ;
  1109. mer1 = (INTG eer1) / dtps ;
  1110. tit1 = CHAI '[2D Plan cont.] Ecart rel. |Calc.-Ref.|/Ref. Contr. vs tps en traction, moy.int.|Ecart|' ' ' mer1 ;
  1111. SI ITRAC1 ;
  1112. DESS eer1 'TITR' tit1 ;
  1113. FINSI ;
  1114.  
  1115. * Compression, courbes réduites
  1116. lepu2_red = PROG ;
  1117. lsig2_red = PROG ;
  1118. born_inf = epsc_t ;
  1119. born_sup = EXTR lepu2 (DIME lepu2) ;
  1120. REPE b_an12 (dime lepu2) ;
  1121. xi = EXTR lepu2 &b_an12 ;
  1122. yi = EXTR lsig2 &b_an12 ;
  1123. SI ((&lt;EG xi born_inf) ET (>EG xi born_sup)) ;
  1124. lepu2_red = lepu2_red et (PROG xi) ;
  1125. lsig2_red = lsig2_red et (PROG yi) ;
  1126. FINSI ;
  1127. FIN b_an12 ;
  1128. an12_red = EVOL 'TURQ' 'MANU' 'EPXX' lepu2_red 'SMXX' lsig2_red ;
  1129.  
  1130. leps_red = PROG ;
  1131. lsig_red = PROG ;
  1132. ltps_red = PROG ;
  1133. xp = 0. ;
  1134. REPE b_ev1 (dime leps) ;
  1135. xi = EXTR leps &b_ev1 ;
  1136. dx = xi - xp ;
  1137. yi = EXTR lsig &b_ev1 ;
  1138. ti = EXTR ltps &b_ev1 ;
  1139. SI ((&lt;EG xi born_inf) ET (>EG xi born_sup)) ;
  1140. leps_red = leps_red et (PROG xi) ;
  1141. lsig_red = lsig_red et (PROG yi) ;
  1142. ltps_red = ltps_red et (PROG ti) ;
  1143. FINSI ;
  1144. xp = xi ;
  1145. FIN b_ev1 ;
  1146. ev1_red = EVOL 'ROUG' 'MANU' 'EPXX' leps_red 'SMXX' lsig_red ;
  1147.  
  1148. lsiga_red = 'IPOL' an12_red leps_red ;
  1149. ler2 = ABS ((lsig_red - lsiga_red) / lsiga_red) ;
  1150. eer2 = EVOL 'ORAN' 'MANU' 'Temps' ltps_red '|Ec.rel|SMXX' ler2 ;
  1151. dtps = (EXTR ltps_red (DIME ltps_red)) - (EXTR ltps_red 1) ;
  1152. mer2 = (INTG eer2) / dtps ;
  1153. tit2 = CHAI '[2D Plan cont.] Val.abs.Ec.rel.|(Calc-Ref)/Ref| Contr. vs tps en compression, moy.int.|Ecart|' ' ' mer2 ;
  1154. SI ITRAC1 ;
  1155. DESS eer2 'TITR' tit2 ;
  1156. FINSI ;
  1157. tdes1 = 'TABLE' ;
  1158. tdes1.'TITRE' = 'TABLE' ;
  1159. tdes1 . 1 = MOT 'MARQ CROI' ;
  1160. tdes1 . 'TITRE' . 1 = MOT 'Traction' ;
  1161. tdes1 . 2 = MOT 'MARQ PLUS' ;
  1162. tdes1 . 'TITRE' . 2 = MOT 'Compression' ;
  1163. tit1 = CHAI '[2D Plan cont.] |Ec.r|Contr. vs tps, moy.int.|Ec.r| en trac.' mer1 ' - compr.' mer2 ;
  1164. SI ITRAC1 ;
  1165. DESS (eer1 et eer2) 'LEGE' 'NE' tdes1 'TITR' tit1 ;
  1166. FINSI ;
  1167. OPTI ECHO 0 ;
  1168. SAUT 1 LIGN ;
  1169. MESS ' ******* C A S #3 : 2 D C O N T R A I N T E S P L A N E S ********';
  1170. SAUT 1 LIGN ;
  1171. SI ((MAXI mer1 mer2) < 1.E-6) ;
  1172. MESS ' Moy.int. Val.abs. Ecart relatif entre Calcul et Reference' ;
  1173. MESS ' - phase 1.Traction' ' ' mer1 ;
  1174. MESS ' - phase 2.Compression' ' ' mer2 ;
  1175. MESS ' - maximum des 2 phases' ' ' (MAXI mer1 mer2) ' < 1.E-06 => OK' ;
  1176. SAUT 1 LIGN ;
  1177. SINO ;
  1178. MESS ' Moy.int. Val.abs. Ecart relatif entre Calcul et Reference' ;
  1179. MESS ' - phase 1.Traction' ' ' mer1 ;
  1180. MESS ' - phase 2.Compression' ' ' mer2 ;
  1181. MESS ' - maximum des 2 phases' ' ' (MAXI mer1 mer2) ' > 1.E-06 => ECHEC' ;
  1182. IERR = VRAI ;
  1183. SAUT 1 LIGN ;
  1184. FINS ;
  1185. SAUT 1 LIGN ;
  1186. OPTI ECHO 1 ;
  1187. FINSI ;
  1188.  
  1189.  
  1190.  
  1191.  
  1192.  
  1193. ************ C A S #4 : 2 D A X I S Y M E T R I Q U E *************
  1194. SI (EXIS lcas 4) ;
  1195.  
  1196. ** Options generales
  1197. OPTI 'DIME' 2 'MODE' 'AXIS' 'ELEM' 'QUA4' ;
  1198.  
  1199. ** Maillage
  1200. p1 = 0. 0. ;
  1201. p2 = long 0. ;
  1202. sbas = DROI 1 p1 p2 ;
  1203. mail = sbas TRAN 1 (0. long) ;
  1204. shaut = mail COTE 3 ;
  1205. p3 = shaut POIN 'PROC' (0. long) ;
  1206. *nh145313
  1207. cadr1 = COUL ((0. 1.01) ET (1.05 1.01)) 'BLAN' ;
  1208. rep1 = @REPERE (-0.2 -0.2) (PROG 0.5 0.5) 'TURQ' ;
  1209. SI ITRAC1 ;
  1210. TRAC 'QUAL' (cadr1 ET rep1 ET mail ET (sbas COUL 'VERT') ET (shaut COUL 'ROUG')) 'TITR' '[2D Axi.] Maillage' ;
  1211. FINSI ;
  1212.  
  1213. ** Modele et caracteristiques materiau
  1214. mo = MODE mail 'MECANIQUE' 'ELASTIQUE' 'ENDOMMAGEMENT' 'MAZARS' ;
  1215. ma = MATE mo 'YOUN' you 'NU' nu 'KTR0' epd0 'ACOM' ac 'BCOM' bc 'ATRA' at 'BTRA' bt 'BETA' beta ;
  1216. zer = ZERO mo 'NOEUD' ;
  1217. un = zer + 1. ;
  1218. mes1 = INTG mo un 'SCAL' ;
  1219.  
  1220. ** Blocages
  1221. blbas = BLOQ 'UZ' sbas ;
  1222. blhaut = BLOQ 'UZ' shaut ;
  1223. bl = blbas ET blhaut ;
  1224.  
  1225. ** Chargements
  1226. dihaut = DEPI blhaut 1. ;
  1227. ec1 = EVOL 'MANU' (PROG 0. (0.5*inst_a) inst_a 1. )
  1228. (PROG 0. utmax 0. ucmax) ;
  1229. cha = CHAR 'DIMP' dihaut ec1 ;
  1230.  
  1231. ** Tracé des blocages et du chargement
  1232. re0 = @REPERE (-0.2 -0.2) (PROG 0.5 0.5) ;
  1233. mor = MODE re0 'MECANIQUE' 'BARR' ;
  1234. mar = MATE mor 'YOUN' 1. 'NU' 1. 'SECT' 1. ;
  1235. rir = RIGI mor mar ;
  1236. vf = VECT dihaut ' ' 'FLX' 'ROUG' ;
  1237. SI ITRAC1 ;
  1238. TRAC ((RIGI mo ma) ET blbas ET rir) vf 'NOLE' 'TITR' '[2D Axi.] Blocages et chargement' ;
  1239. FINSI ;
  1240.  
  1241. ** Resolution
  1242. t = TABL ;
  1243. t . 'MODELE' = mo ;
  1244. t . 'CARACTERISTIQUES' = ma ;
  1245. t . 'BLOCAGES_MECANIQUES' = bl ;
  1246. t . 'CHARGEMENT' = cha ;
  1247. t . 'TEMPS_CALCULES' = PROG 0. 'PAS' 3.E-3 (0.5*inst_a)
  1248. 'PAS' 3.E-3 inst_a
  1249. 'PAS' 1.E-2 1. ;
  1250. t . 'MOVA' = MOT 'D' ;
  1251. t . 'MES_SAUVEGARDES' = TABL ;
  1252. t . 'MES_SAUVEGARDES' . 'DEFTO' = VRAI ;
  1253. PASAPAS t ;
  1254.  
  1255. ** Post traitement
  1256. * courbes : endommagement moyen vs temps
  1257. * contrainte moyenne vs deformation moyenne
  1258. * force de reaction vs deplacement impose
  1259. tt = t . 'TEMPS' ;
  1260. tc = t . 'CONTRAINTES' ;
  1261. te = t . 'DEFORMATIONS' ;
  1262. tv = t . 'VARIABLES_INTERNES' ;
  1263. tu = t . 'DEPLACEMENTS' ;
  1264. tr = t . 'REACTIONS' ;
  1265. def0 = DEFO (cadr1 ET rep1 ET mail) (tu . 0) 0. ;
  1266. ltps = PROG ;
  1267. ltps_t = PROG ;
  1268. ltps_c = PROG ;
  1269. lend = PROG ;
  1270. lsig = PROG ;
  1271. leps = PROG ;
  1272. ldep = PROG ;
  1273. lrea = PROG ;
  1274. end_p = 0. ;
  1275. REPE b0 (DIME tt) ;
  1276. tps1 = tt . (&b0 - 1) ;
  1277. * Liste des instants : globale (ltps) de traction (ltps_t) de compression (ltps_c)
  1278. ltps = ltps ET tps1 ;
  1279. SI (&lt;EG tps1 inst_a) ;
  1280. ltps_t = ltps_t ET tps1 ;
  1281. SINON ;
  1282. ltps_c = ltps_c ET tps1 ;
  1283. FINSI ;
  1284. end1 = (INTG mo (tv . (&b0 - 1)) 'D') / mes1 ;
  1285. sig1 = (INTG mo (tc . (&b0 - 1)) 'SMZZ') / mes1 ;
  1286. eps1 = (INTG mo (te . (&b0 - 1)) 'EPZZ') / mes1 ;
  1287. u1 = EXTR (tu . (&b0 - 1)) 'UZ' p3 ;
  1288. rea1 = 0. ;
  1289. SI (NEG &b0 1) ;
  1290. rea1 = @TOTAL (tr . (&b0 - 1)) sbas 'FZ' ;
  1291. FINSI ;
  1292. lend = lend ET end1 ;
  1293. lsig = lsig ET sig1 ;
  1294. leps = leps ET eps1 ;
  1295. ldep = ldep ET u1 ;
  1296. lrea = lrea ET rea1 ;
  1297. * Endommagement de transition traction-compression end_t
  1298. dd1 = end1 - end_p ;
  1299. SI ((> end1 0.) ET (EGA dd1 0.)) ;
  1300. end_t = end1 ;
  1301. SINON ;
  1302. FINSI ;
  1303. end_p = end1 ;
  1304. FIN b0 ;
  1305. ev0 = EVOL 'ROUG' 'MANU' 'Temps' ltps 'D' lend ;
  1306. ev1 = EVOL 'ROUG' 'MANU' 'EPZZ' leps 'SMZZ' lsig ;
  1307. ev2 = EVOL 'ROUG' 'MANU' 'UZ' ldep 'FZ' lrea ;
  1308. *nh145313
  1309. ** Sol.Ana.Traction
  1310. ltps_t = ENLE (ENLE ltps_t (DIME ltps_t)) 1 ;
  1311. nb1 = DIME ltps_t ;
  1312. un1 = PROG nb1 * 1.D0 ;
  1313. lepd01 = PROG nb1 * epd0 ;
  1314. lat1 = PROG nb1 * at ;
  1315. * defo.unidim.
  1316. lepu1 = (IPOL ltps_t ec1) / long ;
  1317. * defo.eq.Mazars (eps.tild) traction = defo.unidim.
  1318. lepe1 = lepu1 ;
  1319. dt = un1 - ((epd0*(un1-lat1)/lepe1) + (at*(EXP(bt*(lepd01-lepe1))))) ;
  1320. lfiltr1 = LECT ;
  1321. REPE b1 ;
  1322. dt_i = EXTR dt &b1 ;
  1323. SI (EGA &b1 1) ;
  1324. dt_p = 0. ;
  1325. FINSI ;
  1326. ddt = dt_i - dt_p ;
  1327. SI ((ddt < 0.) OU (dt_i < 0.) OU (dt_i > 1.)) ;
  1328. lfiltr1 = lfiltr1 ET (LECT &b1) ;
  1329. FINSI ;
  1330. dt_p = dt_i ;
  1331. SI (EGA &b1 (DIME dt)) ;
  1332. QUIT b1 ;
  1333. FINSI ;
  1334. FIN b1 ;
  1335. ltps_t = ENLE ltps_t lfiltr1 ;
  1336. un1 = ENLE un1 lfiltr1 ;
  1337. lepu1 = ENLE lepu1 lfiltr1 ;
  1338. dt = ENLE dt lfiltr1 ;
  1339. lsig1 = (un1 - dt) * you * lepu1 ;
  1340. an01 = EVOL 'TURQ' 'MANU' 'Temps' ltps_t 'D' dt ;
  1341. tpst_t = IPOL end_t dt ltps_t ;
  1342. an11 = EVOL 'TURQ' 'MANU' 'EPXX' lepu1 'SMXX' lsig1 ;
  1343. sigt_t = IPOL tpst_t ltps_t lsig1 ;
  1344. epst_t = IPOL tpst_t ltps_t lepu1 ;
  1345.  
  1346. ** Sol.Ana.Compression
  1347. nb2 = DIME ltps_c ;
  1348. un2 = PROG nb2 * 1.D0 ;
  1349. lepd02 = PROG nb2 * epd0 ;
  1350. lac2 = PROG nb2 * ac ;
  1351. * defo.unidim.
  1352. lepu2 = (IPOL ltps_c ec1) / long ;
  1353. * defo.eq.Mazars (eps.tild) compression = racine(2)*nu*|defo.unidim.|
  1354. lepe2 = (2.**0.5) * nu * (ABS lepu2) ;
  1355. dc = un2 - ((epd0*(un2-lac2)/lepe2) + (ac*(EXP(bc*(lepd02-lepe2))))) ;
  1356. lfiltr2 = LECT ;
  1357. REPE b2 ;
  1358. dc_i = EXTR dc &b2 ;
  1359. SI (EGA &b2 1) ;
  1360. dc_p = 1. ;
  1361. FINSI ;
  1362. ddc = dc_i - dc_p ;
  1363. SI ((ddc < 0.) OU (dc_i < 0.) OU (dc_i > 1.)) ;
  1364. lfiltr2 = lfiltr2 ET (LECT &b2) ;
  1365. FINSI ;
  1366. dc_p = dc_i ;
  1367. SI (EGA &b2 (DIME dc)) ;
  1368. QUIT b2 ;
  1369. FINSI ;
  1370. FIN b2 ;
  1371. ltps_c = ENLE ltps_c lfiltr2 ;
  1372. un2 = ENLE un2 lfiltr2 ;
  1373. lepu2 = ENLE lepu2 lfiltr2 ;
  1374. dc = ENLE dc lfiltr2 ;
  1375. lsig2 = (un2 - dc) * you * lepu2 ;
  1376. an02 = EVOL 'TURQ' 'MANU' 'Temps' ltps_c 'D' dc ;
  1377. tpsc_t = IPOL end_t dc ltps_c ;
  1378. an12 = EVOL 'TURQ' 'MANU' 'EPXX' lepu2 'SMXX' lsig2 ;
  1379. sigc_t = IPOL tpsc_t ltps_c lsig2 ;
  1380. epsc_t = IPOL tpsc_t ltps_c lepu2 ;
  1381. SI ITRAC1 ;
  1382. DESS (ev0 ET an01 ET an02) 'TITR' '[2D Axi.] Endommagement vs Temps' 'LEGE' 'SE' tdess ;
  1383. DESS (ev1 ET an11 ET an12) 'TITR' '[2D Axi.] Contrainte vs Deformation' 'LEGE' 'NO' tdess ;
  1384. DESS ev2 'TITR' '[[2D Axi.] Reaction vs Deplacement' 'LEGE' 'SE' tdess ;
  1385. FINSI ;
  1386. * evolutions temporelles a tous les points de Gauss
  1387. ng = 4 ;
  1388. tleg = TABL ;
  1389. tleg . 1 = MOT 'MARQ CARR NOLI' ;
  1390. tleg . 2 = MOT 'MARQ LOSA NOLI' ;
  1391. tleg . 3 = MOT 'MARQ ROND NOLI' ;
  1392. tleg . 4 = MOT 'MARQ ETOI NOLI' ;
  1393. tleg . 'TITRE' = TABL ;
  1394. REPE b ng ;
  1395. tleg . 'TITRE' . &b = CHAI 'Calc_Pt_Gauss' ' ' &b ;
  1396. FIN b ;
  1397. * endommagement
  1398. evend = VIDE 'EVOLUTIO' ;
  1399. REPE b ng ;
  1400. evend = evend ET (EVOL 'ROSE' 'TEMP' t 'VARIABLES_INTERNES' 'D' 1 1 &b) ;
  1401. FIN b ;
  1402. *nh145313
  1403. tleg . (ng+1) = MOT 'MARQ CROI REGU' ;
  1404. tleg . 'TITRE' . (ng+1) = MOT 'Ref_Traction' ;
  1405. tleg . (ng+2) = MOT 'MARQ PLUS REGU' ;
  1406. tleg . 'TITRE' . (ng+2) = MOT 'Ref_Compression' ;
  1407. SI ITRAC1 ;
  1408. DESS (evend ET an01 ET an02) 'LEGE' 'SE' tleg 'TITR' '[2D Axi.] D vs Temps' ;
  1409. FINSI ;
  1410. * contrainte
  1411. evsmzz = VIDE 'EVOLUTIO' ;
  1412. REPE b ng ;
  1413. evsmzz = evsmzz ET (EVOL 'BLEU' 'TEMP' t 'CONTRAINTES' 'SMZZ' 1 1 &b) ;
  1414. FIN b ;
  1415. *nh145313
  1416. ansmzz1 = EVOL 'TURQ' 'MANU' 'Temps' ltps_t 'SMXX' lsig1 ;
  1417. ansmzz2 = EVOL 'TURQ' 'MANU' 'Temps' ltps_c 'SMXX' lsig2 ;
  1418. SI ITRAC1 ;
  1419. DESS (evsmzz ET ansmzz1 ET ansmzz2) 'LEGE' 'NE' tleg 'TITR' '[2D Axi.] SMZZ vs Temps' ;
  1420. FINSI ;
  1421. * deformation
  1422. evepzz = VIDE 'EVOLUTIO' ;
  1423. REPE b ng ;
  1424. evepzz = evepzz ET (EVOL 'VERT' 'TEMP' t 'DEFORMATIONS' 'EPZZ' 1 1 &b) ;
  1425. FIN b ;
  1426. SI ITRAC1 ;
  1427. DESS evepzz 'LEGE' tleg 'TITR' '[2D Axi.] EPZZ vs Temps' ;
  1428. FINSI ;
  1429. * deformee
  1430. REPE b2 (DIME tt) ;
  1431. tps1 = tt . (&b2 - 1) ;
  1432. * trace de la deformee (pour controle visuel)
  1433. def1 = DEFO mail (tu . (&b2 - 1)) 33. 'ROUG' ;
  1434. tit1 = CHAI '[2D Axi.] Deformee au temps' ' ' tps1 ;
  1435. SI ITRAC1 ;
  1436. * TRAC (def0 ET def1) 'TITR' tit1 ;
  1437. FINSI ;
  1438. FIN b2 ;
  1439. SI ITRAC1 ;
  1440. TRAC (def0 ET def1) 'TITR' tit1 ;
  1441. FINSI ;
  1442. * comparaison Calcul / Reference sur la contrainte moyenne
  1443. * Traction, courbes réduites
  1444. lepu1_red = PROG ;
  1445. lsig1_red = PROG ;
  1446. born_inf = EXTR lepu1 1 ;
  1447. born_sup = epst_t ;
  1448. REPE b_an11 (dime lepu1) ;
  1449. xi = EXTR lepu1 &b_an11 ;
  1450. yi = EXTR lsig1 &b_an11 ;
  1451. SI ((>EG xi born_inf) ET (&lt;EG xi born_sup)) ;
  1452. lepu1_red = lepu1_red et (PROG xi) ;
  1453. lsig1_red = lsig1_red et (PROG yi) ;
  1454. FINSI ;
  1455. FIN b_an11 ;
  1456. an11_red = EVOL 'TURQ' 'MANU' 'EPXX' lepu1_red 'SMXX' lsig1_red ;
  1457.  
  1458. leps_red = PROG ;
  1459. lsig_red = PROG ;
  1460. ltps_red = PROG ;
  1461. xp = 0. ;
  1462. REPE b_ev1 (dime leps) ;
  1463. xi = EXTR leps &b_ev1 ;
  1464. dx = xi - xp ;
  1465. yi = EXTR lsig &b_ev1 ;
  1466. ti = EXTR ltps &b_ev1 ;
  1467. SI (((EGA xi born_inf 1.E-10) OU (> xi born_inf)) ET (&lt;EG xi born_sup) ET (>EG dx 0)) ;
  1468. leps_red = leps_red et (PROG xi) ;
  1469. lsig_red = lsig_red et (PROG yi) ;
  1470. ltps_red = ltps_red et (PROG ti) ;
  1471. FINSI ;
  1472. xp = xi ;
  1473. FIN b_ev1 ;
  1474. ev1_red = EVOL 'ROUG' 'MANU' 'EPXX' leps_red 'SMXX' lsig_red ;
  1475.  
  1476. lsiga_red = 'IPOL' an11_red leps_red ;
  1477. ler1 = ABS (lsig_red - lsiga_red) / lsiga_red ;
  1478. eer1 = EVOL 'ORAN' 'MANU' 'Temps' ltps_red 'Ec.rel.SMXX' ler1 ;
  1479. dtps = (EXTR ltps_red (DIME ltps_red)) - (EXTR ltps_red 1) ;
  1480. mer1 = (INTG eer1) / dtps ;
  1481. tit1 = CHAI '[2D Axi.] Ecart rel. |Calc.-Ref.|/Ref. Contr. vs tps en traction, moy.int.|Ecart|' ' ' mer1 ;
  1482. SI ITRAC1 ;
  1483. DESS eer1 'TITR' tit1 ;
  1484. FINSI ;
  1485.  
  1486. * Compression, courbes réduites
  1487. lepu2_red = PROG ;
  1488. lsig2_red = PROG ;
  1489. born_inf = epsc_t ;
  1490. born_sup = EXTR lepu2 (DIME lepu2) ;
  1491. REPE b_an12 (dime lepu2) ;
  1492. xi = EXTR lepu2 &b_an12 ;
  1493. yi = EXTR lsig2 &b_an12 ;
  1494. SI ((&lt;EG xi born_inf) ET (>EG xi born_sup)) ;
  1495. lepu2_red = lepu2_red et (PROG xi) ;
  1496. lsig2_red = lsig2_red et (PROG yi) ;
  1497. FINSI ;
  1498. FIN b_an12 ;
  1499. an12_red = EVOL 'TURQ' 'MANU' 'EPXX' lepu2_red 'SMXX' lsig2_red ;
  1500.  
  1501. leps_red = PROG ;
  1502. lsig_red = PROG ;
  1503. ltps_red = PROG ;
  1504. xp = 0. ;
  1505. REPE b_ev1 (dime leps) ;
  1506. xi = EXTR leps &b_ev1 ;
  1507. dx = xi - xp ;
  1508. yi = EXTR lsig &b_ev1 ;
  1509. ti = EXTR ltps &b_ev1 ;
  1510. SI ((&lt;EG xi born_inf) ET (>EG xi born_sup)) ;
  1511. leps_red = leps_red et (PROG xi) ;
  1512. lsig_red = lsig_red et (PROG yi) ;
  1513. ltps_red = ltps_red et (PROG ti) ;
  1514. FINSI ;
  1515. xp = xi ;
  1516. FIN b_ev1 ;
  1517. ev1_red = EVOL 'ROUG' 'MANU' 'EPXX' leps_red 'SMXX' lsig_red ;
  1518.  
  1519. lsiga_red = 'IPOL' an12_red leps_red ;
  1520. ler2 = ABS ((lsig_red - lsiga_red) / lsiga_red) ;
  1521. eer2 = EVOL 'ORAN' 'MANU' 'Temps' ltps_red '|Ec.rel|SMXX' ler2 ;
  1522. dtps = (EXTR ltps_red (DIME ltps_red)) - (EXTR ltps_red 1) ;
  1523. mer2 = (INTG eer2) / dtps ;
  1524. tit2 = CHAI '[2D Axi.] Val.abs.Ec.rel.|(Calc-Ref)/Ref| Contr. vs tps en compression, moy.int.|Ecart|' ' ' mer2 ;
  1525. SI ITRAC1 ;
  1526. DESS eer2 'TITR' tit2 ;
  1527. FINSI ;
  1528. tdes1 = 'TABLE' ;
  1529. tdes1.'TITRE' = 'TABLE' ;
  1530. tdes1 . 1 = MOT 'MARQ CROI' ;
  1531. tdes1 . 'TITRE' . 1 = MOT 'Traction' ;
  1532. tdes1 . 2 = MOT 'MARQ PLUS' ;
  1533. tdes1 . 'TITRE' . 2 = MOT 'Compression' ;
  1534. tit1 = CHAI '[2D Axi.] |Ec.r|Contr. vs tps, moy.int.|Ec.r| en trac.' mer1 ' - compr.' mer2 ;
  1535. SI ITRAC1 ;
  1536. DESS (eer1 et eer2) 'LEGE' 'NE' tdes1 'TITR' tit1 ;
  1537. FINSI ;
  1538. OPTI ECHO 0 ;
  1539. SAUT 1 LIGN ;
  1540. MESS ' ************ C A S #4 : 2 D A X I S Y M E T R I Q U E *************';
  1541. SAUT 1 LIGN ;
  1542. SI ((MAXI mer1 mer2) < 1.E-6) ;
  1543. MESS ' Moy.int. Val.abs. Ecart relatif entre Calcul et Reference' ;
  1544. MESS ' - phase 1.Traction' ' ' mer1 ;
  1545. MESS ' - phase 2.Compression' ' ' mer2 ;
  1546. MESS ' - maximum des 2 phases' ' ' (MAXI mer1 mer2) ' < 1.E-06 => OK' ;
  1547. SAUT 1 LIGN ;
  1548. SINO ;
  1549. MESS ' Moy.int. Val.abs. Ecart relatif entre Calcul et Reference' ;
  1550. MESS ' - phase 1.Traction' ' ' mer1 ;
  1551. MESS ' - phase 2.Compression' ' ' mer2 ;
  1552. MESS ' - maximum des 2 phases' ' ' (MAXI mer1 mer2) ' > 1.E-06 => ECHEC' ;
  1553. IERR = VRAI ;
  1554. SAUT 1 LIGN ;
  1555. FINS ;
  1556. SAUT 1 LIGN ;
  1557. OPTI ECHO 1 ;
  1558. FINSI ;
  1559.  
  1560.  
  1561.  
  1562.  
  1563.  
  1564. *********** C A S #5 : 2 D P O U T R E A F I B R E ************
  1565. SI (EXIS lcas 5) ;
  1566.  
  1567. ** Options generales
  1568. OPTI 'DIME' 2 'MODE' 'PLAN' 'ELEM' 'QUA4' ;
  1569.  
  1570. ** Maillage
  1571. p1s = (-0.5 * epai) (-0.5 * epai) ;
  1572. p2s = (-0.5 * epai) ( 0.5 * epai) ;
  1573. l12s = DROI 1 p1s p2s ;
  1574. mails = l12s TRAN 1 (epai 0.) ;
  1575. p1 = 0. 0. ;
  1576. p2 = long 0. ;
  1577. mail = DROI 1 p1 p2 ;
  1578. mes1 = MESU mails ;
  1579. *nh145313
  1580. cadr1 = COUL ((-0.1 0.) ET (1. 0.)) 'BLAN' ;
  1581. rep1 = @REPERE (-0.2 -0.2) (PROG 0.2 0.2) 'TURQ' ;
  1582. SI ITRAC1 ;
  1583. TRAC 'QUAL' (rep1 ET (mails COUL 'VERT') ET (mail COUL 'ROUG')) 'TITR' '[2D PaF] Maillages de la Poutre et de sa Section' ;
  1584. FINSI ;
  1585.  
  1586. ** Modele et caracteristiques materiau
  1587. mos = MODE mails 'MECANIQUE' 'ELASTIQUE' 'PLASTIQUE' 'MAZARS' 'QUAS' ;
  1588. mas = MATE mos 'YOUN' you 'NU' nu 'KTR0' epd0 'ACOM' ac 'BCOM' bc 'ATRA' at 'BTRA' bt 'BETA' beta
  1589. 'ALPY' 1. ;
  1590. mo = MODE mail 'MECANIQUE' 'ELASTIQUE' 'SECTION' 'PLASTIQUE' 'SECTION' 'TIMO' ;
  1591. ma = MATE mo 'MODS' mos 'MATS' mas ;
  1592.  
  1593. ** Blocages
  1594. blgauche = BLOQ 'DEPL' 'ROTA' p1 ;
  1595. bldroite = BLOQ 'UX' p2 ;
  1596. bl = blgauche ET bldroite ;
  1597. *nh145313
  1598. bldroit2 = BLOQ 'ROTA' p2 ;
  1599. bl = bl ET bldroit2 ;
  1600.  
  1601. ** Chargements
  1602. didroite = DEPI bldroite 1. ;
  1603. ec1 = EVOL 'MANU' (PROG 0. (0.5*inst_a) inst_a 1. )
  1604. (PROG 0. utmax 0. ucmax) ;
  1605. cha = CHAR 'DIMP' didroite ec1 ;
  1606.  
  1607. ** Tracé des blocages et du chargement
  1608. re0 = @REPERE (-0.2 -0.2) (PROG 0.2 0.2) ;
  1609. mor = MODE re0 'MECANIQUE' 'BARR' ;
  1610. mar = MATE mor 'YOUN' 1. 'NU' 1. 'SECT' 1. ;
  1611. rir = RIGI mor mar ;
  1612. vf = VECT didroite 'FLX' ' ' 'ROUG' 0.1 ;
  1613. SI ITRAC1 ;
  1614. TRAC ((RIGI mo ma) ET blgauche ET rir) vf 'NOLE' 'TITR' '[2D PaF] Blocages et chargement' ;
  1615. FINSI ;
  1616.  
  1617. ** Resolution
  1618. t = TABL ;
  1619. t . 'MODELE' = mo ;
  1620. t . 'CARACTERISTIQUES' = ma ;
  1621. t . 'BLOCAGES_MECANIQUES' = bl ;
  1622. t . 'CHARGEMENT' = cha ;
  1623. t . 'TEMPS_CALCULES' = PROG 0. 'PAS' 3.E-3 (0.5*inst_a)
  1624. 'PAS' 3.E-3 inst_a
  1625. 'PAS' 1.E-2 1. ;
  1626. t . 'MES_SAUVEGARDES' = TABL ;
  1627. t . 'MES_SAUVEGARDES' . 'DEFTO' = VRAI ;
  1628. PASAPAS t ;
  1629.  
  1630. ** Post traitement
  1631. * courbes : endommagement moyen vs temps
  1632. * contrainte moyenne vs deformation moyenne
  1633. * force de reaction vs deplacement impose
  1634. * evolutions temporelles a tous les points de Gauss
  1635. ng = 4 ;
  1636. tleg = TABL ;
  1637. tleg . 1 = MOT 'MARQ CARR NOLI' ;
  1638. tleg . 2 = MOT 'MARQ LOSA NOLI' ;
  1639. tleg . 3 = MOT 'MARQ ROND NOLI' ;
  1640. tleg . 4 = MOT 'MARQ ETOI NOLI' ;
  1641. tleg . 'TITRE' = TABL ;
  1642. REPE b ng ;
  1643. tleg . 'TITRE' . &b = CHAI 'Calc_Pt_Gauss' ' ' &b ;
  1644. FIN b ;
  1645. *nh145313
  1646. tleg . (ng+1) = MOT 'MARQ CROI REGU' ;
  1647. tleg . 'TITRE' . (ng+1) = MOT 'Ref_Traction' ;
  1648. tleg . (ng+2) = MOT 'MARQ PLUS REGU' ;
  1649. tleg . 'TITRE' . (ng+2) = MOT 'Ref_Compression' ;
  1650. tt = t . 'TEMPS' ;
  1651. tv = t . 'VARIABLES_INTERNES' ;
  1652. tu = t . 'DEPLACEMENTS' ;
  1653. tr = t . 'REACTIONS' ;
  1654. def0 = DEFO (cadr1 ET rep1 ET mail) (tu . 0) 0. ;
  1655. ltps = PROG ;
  1656. ltps_t = PROG ;
  1657. ltps_c = PROG ;
  1658. lend1 = PROG ;
  1659. lend2 = PROG ;
  1660. lend3 = PROG ;
  1661. lend4 = PROG ;
  1662. lsig1 = PROG ;
  1663. lsig2 = PROG ;
  1664. lsig3 = PROG ;
  1665. lsig4 = PROG ;
  1666. leps1 = PROG ;
  1667. leps2 = PROG ;
  1668. leps3 = PROG ;
  1669. leps4 = PROG ;
  1670. ldep = PROG ;
  1671. lrea = PROG ;
  1672. end_p = 0. ;
  1673. REPE b0 (DIME tt) ;
  1674. tps1 = tt . (&b0 - 1) ;
  1675. * Liste des instants : globale (ltps) de traction (ltps_t) de compression (ltps_c)
  1676. ltps = ltps ET tps1 ;
  1677. SI (&lt;EG tps1 inst_a) ;
  1678. ltps_t = ltps_t ET tps1 ;
  1679. SINON ;
  1680. ltps_c = ltps_c ET tps1 ;
  1681. FINSI ;
  1682. SI (EGA &b0 1) ;
  1683. lend1 = lend1 ET 0. ;
  1684. lend2 = lend2 ET 0. ;
  1685. lend3 = lend3 ET 0. ;
  1686. lend4 = lend4 ET 0. ;
  1687. lsig1 = lsig1 ET 0. ;
  1688. lsig2 = lsig2 ET 0. ;
  1689. lsig3 = lsig3 ET 0. ;
  1690. lsig4 = lsig4 ET 0. ;
  1691. leps1 = leps1 ET 0. ;
  1692. leps2 = leps2 ET 0. ;
  1693. leps3 = leps3 ET 0. ;
  1694. leps4 = leps4 ET 0. ;
  1695. end1 = 0. ;
  1696. SINON ;
  1697. lend1 = lend1 ET (EXTR (EXTR (tv . (&b0 - 1)) 'VAIS' 1 1 1) 'VHNI' 1 1 1) ;
  1698. lend2 = lend2 ET (EXTR (EXTR (tv . (&b0 - 1)) 'VAIS' 1 1 1) 'VHNI' 1 1 2) ;
  1699. lend3 = lend3 ET (EXTR (EXTR (tv . (&b0 - 1)) 'VAIS' 1 1 1) 'VHNI' 1 1 3) ;
  1700. lend4 = lend4 ET (EXTR (EXTR (tv . (&b0 - 1)) 'VAIS' 1 1 1) 'VHNI' 1 1 4) ;
  1701. lsig1 = lsig1 ET (EXTR (EXTR (tv . (&b0 - 1)) 'VONS' 1 1 1) 'SMXX' 1 1 1) ;
  1702. lsig2 = lsig2 ET (EXTR (EXTR (tv . (&b0 - 1)) 'VONS' 1 1 1) 'SMXX' 1 1 2) ;
  1703. lsig3 = lsig3 ET (EXTR (EXTR (tv . (&b0 - 1)) 'VONS' 1 1 1) 'SMXX' 1 1 3) ;
  1704. lsig4 = lsig4 ET (EXTR (EXTR (tv . (&b0 - 1)) 'VONS' 1 1 1) 'SMXX' 1 1 4) ;
  1705. leps1 = leps1 ET (EXTR (EXTR (tv . (&b0 - 1)) 'VAIS' 1 1 1) 'VISX' 1 1 1) ;
  1706. leps2 = leps2 ET (EXTR (EXTR (tv . (&b0 - 1)) 'VAIS' 1 1 1) 'VISX' 1 1 2) ;
  1707. leps3 = leps3 ET (EXTR (EXTR (tv . (&b0 - 1)) 'VAIS' 1 1 1) 'VISX' 1 1 3) ;
  1708. leps4 = leps4 ET (EXTR (EXTR (tv . (&b0 - 1)) 'VAIS' 1 1 1) 'VISX' 1 1 4) ;
  1709. end1 = EXTR (EXTR (tv . (&b0 - 1)) 'VAIS' 1 1 1) 'VHNI' 1 1 1 ;
  1710. FINSI ;
  1711. u1 = EXTR (tu . (&b0 - 1)) 'UX' p2 ;
  1712. rea1 = EXTR (tr . (&b0 - 1)) 'FX' p1 ;
  1713. ldep = ldep ET u1 ;
  1714. lrea = lrea ET rea1 ;
  1715. * Endommagement de transition traction-compression end_t
  1716. dd1 = end1 - end_p ;
  1717. SI ((> end1 0.) ET (EGA dd1 0.)) ;
  1718. end_t = end1 ;
  1719. SINON ;
  1720. FINSI ;
  1721. end_p = end1 ;
  1722. FIN b0 ;
  1723. ev0 = (EVOL 'ROUG' 'MANU' 'Temps' ltps 'D' lend1) ET (EVOL 'ROUG' 'MANU' 'Temps' ltps 'D' lend2) ET
  1724. (EVOL 'ROUG' 'MANU' 'Temps' ltps 'D' lend3) ET (EVOL 'ROUG' 'MANU' 'Temps' ltps 'D' lend4) ;
  1725. ev1 = (EVOL 'ROUG' 'MANU' 'EPXX' leps1 'SMXX' lsig1) ET (EVOL 'ROUG' 'MANU' 'EPXX' leps2 'SMXX' lsig2) ET
  1726. (EVOL 'ROUG' 'MANU' 'EPXX' leps3 'SMXX' lsig3) ET (EVOL 'ROUG' 'MANU' 'EPXX' leps4 'SMXX' lsig4) ;
  1727. ev2 = EVOL 'ROUG' 'MANU' 'UX' ldep 'FX' lrea ;
  1728. *nh145313
  1729. ** Sol.Ana.Traction
  1730. ltps_t = ENLE (ENLE ltps_t (DIME ltps_t)) 1 ;
  1731. nb1 = DIME ltps_t ;
  1732. un1 = PROG nb1 * 1.D0 ;
  1733. lepd01 = PROG nb1 * epd0 ;
  1734. lat1 = PROG nb1 * at ;
  1735. * defo.unidim.
  1736. lepu1 = (IPOL ltps_t ec1) / long ;
  1737. * defo.eq.Mazars (eps.tild) traction = defo.unidim.
  1738. lepe1 = lepu1 ;
  1739. dt = un1 - ((epd0*(un1-lat1)/lepe1) + (at*(EXP(bt*(lepd01-lepe1))))) ;
  1740. lfiltr1 = LECT ;
  1741. REPE b1 ;
  1742. dt_i = EXTR dt &b1 ;
  1743. SI (EGA &b1 1) ;
  1744. dt_p = 0. ;
  1745. FINSI ;
  1746. ddt = dt_i - dt_p ;
  1747. SI ((ddt < 0.) OU (dt_i < 0.) OU (dt_i > 1.)) ;
  1748. lfiltr1 = lfiltr1 ET (LECT &b1) ;
  1749. FINSI ;
  1750. dt_p = dt_i ;
  1751. SI (EGA &b1 (DIME dt)) ;
  1752. QUIT b1 ;
  1753. FINSI ;
  1754. FIN b1 ;
  1755. ltps_t = ENLE ltps_t lfiltr1 ;
  1756. un1 = ENLE un1 lfiltr1 ;
  1757. lepu1 = ENLE lepu1 lfiltr1 ;
  1758. dt = ENLE dt lfiltr1 ;
  1759. asig1 = (un1 - dt) * you * lepu1 ;
  1760. an01 = EVOL 'TURQ' 'MANU' 'Temps' ltps_t 'D' dt ;
  1761. tpst_t = IPOL end_t dt ltps_t ;
  1762. an11 = EVOL 'TURQ' 'MANU' 'EPXX' lepu1 'SMXX' asig1 ;
  1763. sigt_t = IPOL tpst_t ltps_t asig1 ;
  1764. epst_t = IPOL tpst_t ltps_t lepu1 ;
  1765.  
  1766. ** Sol.Ana.Compression
  1767. nb2 = DIME ltps_c ;
  1768. un2 = PROG nb2 * 1.D0 ;
  1769. lepd02 = PROG nb2 * epd0 ;
  1770. lac2 = PROG nb2 * ac ;
  1771. * defo.unidim.
  1772. lepu2 = (IPOL ltps_c ec1) / long ;
  1773. * defo.eq.Mazars (eps.tild) compression = racine(2)*nu*|defo.unidim.|
  1774. lepe2 = (2.**0.5) * nu * (ABS lepu2) ;
  1775. dc = un2 - ((epd0*(un2-lac2)/lepe2) + (ac*(EXP(bc*(lepd02-lepe2))))) ;
  1776. lfiltr2 = LECT ;
  1777. REPE b2 ;
  1778. dc_i = EXTR dc &b2 ;
  1779. SI (EGA &b2 1) ;
  1780. dc_p = 1. ;
  1781. FINSI ;
  1782. ddc = dc_i - dc_p ;
  1783. SI ((ddc < 0.) OU (dc_i < 0.) OU (dc_i > 1.)) ;
  1784. lfiltr2 = lfiltr2 ET (LECT &b2) ;
  1785. FINSI ;
  1786. dc_p = dc_i ;
  1787. SI (EGA &b2 (DIME dc)) ;
  1788. QUIT b2 ;
  1789. FINSI ;
  1790. FIN b2 ;
  1791. ltps_c = ENLE ltps_c lfiltr2 ;
  1792. un2 = ENLE un2 lfiltr2 ;
  1793. lepu2 = ENLE lepu2 lfiltr2 ;
  1794. dc = ENLE dc lfiltr2 ;
  1795. asig2 = (un2 - dc) * you * lepu2 ;
  1796. an02 = EVOL 'TURQ' 'MANU' 'Temps' ltps_c 'D' dc ;
  1797. tpsc_t = IPOL end_t dc ltps_c ;
  1798. an12 = EVOL 'TURQ' 'MANU' 'EPXX' lepu2 'SMXX' asig2 ;
  1799. sigc_t = IPOL tpsc_t ltps_c asig2 ;
  1800. epsc_t = IPOL tpsc_t ltps_c lepu2 ;
  1801. SI ITRAC1 ;
  1802. DESS (ev0 ET an01 ET an02) 'LEGE' 'SE' tleg 'TITR' '[2D PaF] Endommagement vs Temps' ;
  1803. DESS (ev1 ET an11 ET an12) 'LEGE' 'NO' tleg 'TITR' '[2D PaF] Contrainte vs Deformation' ;
  1804. DESS ev2 'TITR' '[2D PaF] Reaction vs Deplacement' 'LEGE' 'SE' tdess ;
  1805. FINSI ;
  1806. * deformee
  1807. REPE b3 (DIME tt) ;
  1808. tps1 = tt . (&b3 - 1) ;
  1809. * trace de la deformee (pour controle visuel)
  1810. def1 = DEFO mail (tu . (&b3 - 1)) 33. 'ROUG' ;
  1811. tit1 = CHAI '[2D PaF] Deformee au temps' ' ' tps1 ;
  1812. SI ITRAC1 ;
  1813. * TRAC (def0 ET def1) 'TITR' tit1 ;
  1814. FINSI ;
  1815. FIN b3 ;
  1816. SI ITRAC1 ;
  1817. TRAC (def0 ET def1) 'TITR' tit1 ;
  1818. FINSI ;
  1819. * comparaison Calcul / Reference sur la contrainte moyenne
  1820. * Traction, courbes réduites
  1821. lepu1_red = PROG ;
  1822. asig1_red = PROG ;
  1823. born_inf = EXTR lepu1 1 ;
  1824. born_sup = epst_t ;
  1825. REPE b_an11 (dime lepu1) ;
  1826. xi = EXTR lepu1 &b_an11 ;
  1827. yi = EXTR asig1 &b_an11 ;
  1828. SI ((>EG xi born_inf) ET (&lt;EG xi born_sup)) ;
  1829. lepu1_red = lepu1_red et (PROG xi) ;
  1830. asig1_red = asig1_red et (PROG yi) ;
  1831. FINSI ;
  1832. FIN b_an11 ;
  1833. an11_red = EVOL 'TURQ' 'MANU' 'EPXX' lepu1_red 'SMXX' asig1_red ;
  1834.  
  1835. leps_red = PROG ;
  1836. lsig_red = PROG ;
  1837. ltps_red = PROG ;
  1838. xp = 0. ;
  1839. REPE b_ev1 (dime leps1) ;
  1840. xi = EXTR leps1 &b_ev1 ;
  1841. dx = xi - xp ;
  1842. yi = EXTR lsig1 &b_ev1 ;
  1843. ti = EXTR ltps &b_ev1 ;
  1844. SI ((>EG xi born_inf) ET (&lt;EG xi born_sup) ET (>EG dx 0)) ;
  1845. leps_red = leps_red et (PROG xi) ;
  1846. lsig_red = lsig_red et (PROG yi) ;
  1847. ltps_red = ltps_red et (PROG ti) ;
  1848. FINSI ;
  1849. xp = xi ;
  1850. FIN b_ev1 ;
  1851. ev1_red = EVOL 'ROUG' 'MANU' 'EPXX' leps_red 'SMXX' lsig_red ;
  1852.  
  1853. lsiga_red = 'IPOL' an11_red leps_red ;
  1854. ler1 = ABS (lsig_red - lsiga_red) / lsiga_red ;
  1855. eer1 = EVOL 'ORAN' 'MANU' 'Temps' ltps_red 'Ec.rel.SMXX' ler1 ;
  1856. dtps = (EXTR ltps_red (DIME ltps_red)) - (EXTR ltps_red 1) ;
  1857. mer1 = (INTG eer1) / dtps ;
  1858. tit1 = CHAI '[2D PaF] Ecart rel. |Calc.-Ref.|/Ref. Contr. vs tps en traction, moy.int.|Ecart|' ' ' mer1 ;
  1859. SI ITRAC1 ;
  1860. DESS eer1 'TITR' tit1 ;
  1861. FINSI ;
  1862.  
  1863. * Compression, courbes réduites
  1864. lepu2_red = PROG ;
  1865. asig2_red = PROG ;
  1866. born_inf = epsc_t ;
  1867. born_sup = EXTR lepu2 (DIME lepu2) ;
  1868. REPE b_an12 (dime lepu2) ;
  1869. xi = EXTR lepu2 &b_an12 ;
  1870. yi = EXTR asig2 &b_an12 ;
  1871. SI ((&lt;EG xi born_inf) ET (>EG xi born_sup)) ;
  1872. lepu2_red = lepu2_red et (PROG xi) ;
  1873. asig2_red = asig2_red et (PROG yi) ;
  1874. FINSI ;
  1875. FIN b_an12 ;
  1876. an12_red = EVOL 'TURQ' 'MANU' 'EPXX' lepu2_red 'SMXX' asig2_red ;
  1877.  
  1878. leps_red = PROG ;
  1879. lsig_red = PROG ;
  1880. ltps_red = PROG ;
  1881. xp = 0. ;
  1882. REPE b_ev1 (dime leps1) ;
  1883. xi = EXTR leps1 &b_ev1 ;
  1884. dx = xi - xp ;
  1885. yi = EXTR lsig1 &b_ev1 ;
  1886. ti = EXTR ltps &b_ev1 ;
  1887. SI ((&lt;EG xi born_inf) ET (>EG xi born_sup)) ;
  1888. leps_red = leps_red et (PROG xi) ;
  1889. lsig_red = lsig_red et (PROG yi) ;
  1890. ltps_red = ltps_red et (PROG ti) ;
  1891. FINSI ;
  1892. xp = xi ;
  1893. FIN b_ev1 ;
  1894. ev1_red = EVOL 'ROUG' 'MANU' 'EPXX' leps_red 'SMXX' lsig_red ;
  1895.  
  1896. lsiga_red = 'IPOL' an12_red leps_red ;
  1897. ler2 = ABS ((lsig_red - lsiga_red) / lsiga_red) ;
  1898. eer2 = EVOL 'ORAN' 'MANU' 'Temps' ltps_red '|Ec.rel|SMXX' ler2 ;
  1899. dtps = (EXTR ltps_red (DIME ltps_red)) - (EXTR ltps_red 1) ;
  1900. mer2 = (INTG eer2) / dtps ;
  1901. tit2 = CHAI '[2D PaF] Val.abs.Ec.rel.|(Calc-Ref)/Ref| Contr. vs tps en compression, moy.int.|Ecart|' ' ' mer2 ;
  1902. SI ITRAC1 ;
  1903. DESS eer2 'TITR' tit2 ;
  1904. FINSI ;
  1905. tdes1 = 'TABLE' ;
  1906. tdes1.'TITRE' = 'TABLE' ;
  1907. tdes1 . 1 = MOT 'MARQ CROI' ;
  1908. tdes1 . 'TITRE' . 1 = MOT 'Traction' ;
  1909. tdes1 . 2 = MOT 'MARQ PLUS' ;
  1910. tdes1 . 'TITRE' . 2 = MOT 'Compression' ;
  1911. tit1 = CHAI '[2D PaF] |Ec.r|Contr. vs tps, moy.int.|Ec.r| en trac.' mer1 ' - compr.' mer2 ;
  1912. SI ITRAC1 ;
  1913. DESS (eer1 et eer2) 'LEGE' 'NE' tdes1 'TITR' tit1 ;
  1914. FINSI ;
  1915. OPTI ECHO 0 ;
  1916. SAUT 1 LIGN ;
  1917. MESS ' *********** C A S #5 : 2 D P O U T R E A F I B R E ************';
  1918. SAUT 1 LIGN ;
  1919. SI ((MAXI mer1 mer2) < 1.E-6) ;
  1920. MESS ' Moy.int. Val.abs. Ecart relatif entre Calcul et Reference' ;
  1921. MESS ' - phase 1.Traction' ' ' mer1 ;
  1922. MESS ' - phase 2.Compression' ' ' mer2 ;
  1923. MESS ' - maximum des 2 phases' ' ' (MAXI mer1 mer2) ' < 1.E-06 => OK' ;
  1924. SAUT 1 LIGN ;
  1925. SINO ;
  1926. MESS ' Moy.int. Val.abs. Ecart relatif entre Calcul et Reference' ;
  1927. MESS ' - phase 1.Traction' ' ' mer1 ;
  1928. MESS ' - phase 2.Compression' ' ' mer2 ;
  1929. MESS ' - maximum des 2 phases' ' ' (MAXI mer1 mer2) ' > 1.E-06 => ECHEC' ;
  1930. IERR = VRAI ;
  1931. SAUT 1 LIGN ;
  1932. FINS ;
  1933. SAUT 1 LIGN ;
  1934. OPTI ECHO 1 ;
  1935. FINSI ;
  1936.  
  1937. ** Sortie sur Erreur 1152 en cas de non conformite
  1938. SI IERR ;
  1939. ERRE 1152 ;
  1940. ERRE 5 ;
  1941. FINSI ;
  1942.  
  1943.  
  1944.  
  1945.  
  1946.  
  1947. FIN ;
  1948.  
  1949.  
  1950.  
  1951.  
  1952.  

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