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

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