Télécharger gurson3.dgibi

Retour à la liste

Numérotation des lignes :

  1. * fichier : gurson3.dgibi
  2. ************************************************************************
  3. ************************************************************************
  4. *****************************************************
  5. * *
  6. * TEST DE VALIDATION DE LA LOI *
  7. * D'ENDOMMAGEMENT DUCTILE DE *
  8. * GURSON TVERGAARD *
  9. * *
  10. * TEST: *
  11. * UN BARREAU EST CHARGE EN TRACTION *
  12. * LE CHARGEMENT EST DES DEPLACEMENTS IMPOSES *
  13. * CALCUL EN MASSIF 3D *
  14. * *
  15. * MAILLAGE: *
  16. * UN BARREAU DE SECTION CARREE DE .5 M SUR .01 M *
  17. * 50 ELEMENTS *
  18. * *
  19. *****************************************************
  20. *
  21. opti echo 1 ;
  22. * ajout de option epsilon lineaire pour la precision des test!
  23. OPTION epsilon lineaire;
  24. *
  25. 'DEBPROC' PLGURS mat0*'MCHAML' mod0*'MMODEL' eps0*'MCHAML'
  26. sig0*'FLOTTANT' def0*'FLOTTANT'
  27. def00*'FLOTTANT'
  28. bet0*'FLOTTANT' beta0*'FLOTTANT'
  29. sig00*'FLOTTANT' xm0*'FLOTTANT'
  30. fc0*'FLOTTANT' trepp*'FLOTTANT' ;
  31. *
  32. youn1 = 'EXTR' ( 'EXCO' mat0 'YOUN' 'SCAL' ) 'SCAL' 1 1 1 ;
  33. xnu0 = 'EXTR' ( 'EXCO' mat0 'NU' 'SCAL' ) 'SCAL' 1 1 1 ;
  34. XG0 = youn1 / ( 2. * ( 1. + xnu0 ) ) ;
  35. XK0 = youn1 / ( 3. * ( 1. - ( 2. * xnu0 ) ) ) ;
  36. XQ0 = 'EXTR' ( 'EXCO' mat0 'Q' 'SCAL' ) 'SCAL' 1 1 1 ;
  37. XFC0 = 'EXTR' ( 'EXCO' mat0 'FC' 'SCAL' ) 'SCAL' 1 1 1 ;
  38. XFU0 = 'EXTR' ( 'EXCO' mat0 'FU' 'SCAL' ) 'SCAL' 1 1 1 ;
  39. XFF0 = 'EXTR' ( 'EXCO' mat0 'FF' 'SCAL' ) 'SCAL' 1 1 1 ;
  40. XSNS0 = 'EXTR' ( 'EXCO' mat0 'SNS' 'SCAL' ) 'SCAL' 1 1 1 ;
  41. XSNE0 = 'EXTR' ( 'EXCO' mat0 'SNE' 'SCAL' ) 'SCAL' 1 1 1 ;
  42. XGIG0 = 'EXTR' ( 'EXCO' mat0 'SIGN' 'SCAL' ) 'SCAL' 1 1 1 ;
  43. XEPS0 = 'EXTR' ( 'EXCO' mat0 'EPSN' 'SCAL' ) 'SCAL' 1 1 1 ;
  44. *
  45. *
  46. * Résolution par dichotomie
  47. *
  48. eps_x = ( 'MAXI' ( 'EXCO' eps0 'EPXX' ) ) ;
  49. eps_y = ( 'MAXI' ( 'EXCO' eps0 'EPYY' ) ) ;
  50. eps_z = ( 'MAXI' ( 'EXCO' eps0 'EPZZ' ) ) ;
  51. treps0 = eps_x + eps_y + eps_z ;
  52. rho = 1. / ( 1. + treps0 ) ;
  53. *
  54. del0 = ( XFU0 - XFC0 ) / ( XFF0 - XFC0 ) ;
  55. *
  56. conv0 = 1. ;
  57. eps_x = eps_x - ( treps0 / 3. ) ;
  58. sigt0 = 2. * XG0 * eps_x ;
  59. sigt0 = sigt0 + ( ( 1. - fc0 ) * XK0 * treps0 ) ;
  60. *
  61. 'SI' ( fc0 'EGA' 0. ) ;
  62. nmax0 = 1 ;
  63. 'SINON' ;
  64. nmax0 = 100 ;
  65. 'FINSI' ;
  66. *
  67. 'SI' ( sigt0 '>' sig00 ) ;
  68. *
  69. * On plastifie
  70. *
  71. x0 = treps0 ;
  72. x2 = x0 ;
  73. exp0 = ( ( 1. - fc0 ) * ( 'EXP' ( -1. * x2 ) ) ) ;
  74. sm0 = exp0 * XK0 * ( (( 'EXP' ( -1. * x2 ) ) / rho ) - 1. ) ;
  75. sx0 = 2. * sm0 ;
  76. f0 = 1. - ( ( 1. - fc0 ) * ( 'EXP' ( -1. * x2 ) ) ) ;
  77. 'SI' ( f0 '<' XFC0 ) ;
  78. f1 = f0 ;
  79. 'SINON' ;
  80. f1 = XFC0 + ( del0 * ( f0 - XFC0 ) ) ;
  81. 'FINSI' ;
  82. x20 = def00 ;
  83. yl0 = sig00 * ( ( 1. + ( beta0 * x20 ) ) ** xm0 ) ;
  84. g0 = 2. * XQ0 * f1 * ( 'COSH' ( 3. * sx0 / ( 4. * yl0 ) ) ) ;
  85. g0 = 1. + ( XQ0 * XQ0 * f1 * f1 ) - g0 ;
  86. y2 = ( sx0 * sx0 * 9. / 4. ) ;
  87. y2 = y2 - ( yl0 * yl0 * g0 ) ;
  88. y0 = y2 ;
  89. 'SI' ( y0 '>' 0. ) ;
  90. *
  91. x0 = trepp ;
  92. x2 = x0 ;
  93. exp0 = ( ( 1. - fc0 ) * ( 'EXP' ( -1. * x2 ) ) ) ;
  94. sm0 = exp0 * XK0 * ( (( 'EXP' ( -1. * x2 ) ) / rho ) - 1. ) ;
  95. sx0 = 2. * sm0 ;
  96. f0 = 1. - ( ( 1. - fc0 ) * ( 'EXP' ( -1. * x2 ) ) ) ;
  97. 'SI' ( f0 '<' XFC0 ) ;
  98. f1 = f0 ;
  99. 'SINON' ;
  100. f1 = XFC0 + ( del0 * ( f0 - XFC0 ) ) ;
  101. 'FINSI' ;
  102. x20 = def00 ;
  103. yl0 = sig00 * ( ( 1. + ( beta0 * x20 ) ) ** xm0 ) ;
  104. g0 = 2. * XQ0 * f1 * ( 'COSH' ( 3. * sx0 / ( 4. * yl0 ) ) ) ;
  105. g0 = 1. + ( XQ0 * XQ0 * f1 * f1 ) - g0 ;
  106. y2 = ( sx0 * sx0 * 9. / 4. ) ;
  107. y2 = y2 - ( yl0 * yl0 * g0 ) ;
  108. y0 = y2 ;
  109. *
  110. 'SI' ( y0 '>' 0. ) ;
  111. 'REPETER' bloc01 ;
  112. i01 = &bloc01 ;
  113. x0 = x0 * ( 1. - 1.E-4 ) ;
  114. x2 = x0 ;
  115. exp0 = ( ( 1. - fc0 ) * ( 'EXP' ( -1. * x2 ) ) ) ;
  116. sm0 = exp0 * XK0 * ( (( 'EXP' ( -1. * x2 ) ) / rho ) - 1. ) ;
  117. sx0 = 2. * sm0 ;
  118. f0 = 1. - ( ( 1. - fc0 ) * ( 'EXP' ( -1. * x2 ) ) ) ;
  119. 'SI' ( f0 '<' XFC0 ) ;
  120. f1 = f0 ;
  121. 'SINON' ;
  122. f1 = XFC0 + ( del0 * ( f0 - XFC0 ) ) ;
  123. 'FINSI' ;
  124. x20 = def00 ;
  125. yl0 = sig00 * ( ( 1. + ( beta0 * x20 ) ) ** xm0 ) ;
  126. g0 = 2. * XQ0 * f1 * ( 'COSH' ( 3. * sx0 / ( 4. * yl0 ) ) ) ;
  127. g0 = 1. + ( XQ0 * XQ0 * f1 * f1 ) - g0 ;
  128. y2 = ( sx0 * sx0 * 9. / 4. ) ;
  129. y2 = y2 - ( yl0 * yl0 * g0 ) ;
  130. y0 = y2 ;
  131. *
  132. 'SI' ( y0 '<' 0. ) ;
  133. 'QUITTER' bloc01 ;
  134. 'FINSI' ;
  135. 'SI' ( i01 '>' 1000 ) ;
  136. 'MESS' ' Inversion necessaire non realisee ' ;
  137. 'QUITTER' bloc01 ;
  138. 'FINSI' ;
  139. *
  140. 'FIN' bloc01 ;
  141. 'FINSI' ;
  142. *
  143. 'MESS' ' Inversion d origine ' i01 ;
  144. *
  145. 'FINSI' ;
  146. *
  147. x1 = 'LOG' ( ( 1. - fc0 ) / ( 1. - bet0 ) ) ;
  148. x1 = ( ( 'ABS' x1 ) + x1 ) / 2. ;
  149. x2 = x1 ;
  150. exp0 = ( ( 1. - fc0 ) * ( 'EXP' ( -1. * x2 ) ) ) ;
  151. sm0 = exp0 * XK0 * ( (( 'EXP' ( -1. * x2 ) ) / rho ) - 1. ) ;
  152. sx0 = 2. * sm0 ;
  153. f0 = 1. - ( ( 1. - fc0 ) * ( 'EXP' ( -1. * x2 ) ) ) ;
  154. 'SI' ( f0 '<' XFC0 ) ;
  155. f1 = f0 ;
  156. 'SINON' ;
  157. f1 = XFC0 + ( del0 * ( f0 - XFC0 ) ) ;
  158. 'FINSI' ;
  159. x20 = def00 ;
  160. yl0 = sig00 * ( ( 1. + ( beta0 * x20 ) ) ** xm0 ) ;
  161. g0 = 2. * XQ0 * f1 * ( 'COSH' ( 3. * sx0 / ( 4. * yl0 ) ) ) ;
  162. g0 = 1. + ( XQ0 * XQ0 * f1 * f1 ) - g0 ;
  163. y2 = ( sx0 * sx0 * 9. / 4. ) ;
  164. y2 = y2 - ( yl0 * yl0 * g0 ) ;
  165. y1 = y2 ;
  166. *
  167. *
  168. err0 = ( 'ABS' ( y1 - y0 ) ) * 1.E-10 ;
  169. *mess ' err0 y0 y1 = ' err0 y0 y1 ;
  170. *mess ' x0 x1 = ' x0 x1 ;
  171. iter0 = 0 ;
  172. *
  173. 'REPETER' bloc00 ;
  174. *
  175. iter0 = iter0 + 1 ;
  176. x2 = ( x0 + x1 ) / 2. ;
  177. exp0 = ( ( 1. - fc0 ) * ( 'EXP' ( -1. * x2 ) ) ) ;
  178. *exp0 = exp0 * XK0 / XG0 * ( treps0 - x2 ) ;
  179. sm0 = exp0 * XK0 * ( (( 'EXP' ( -1. * x2 ) ) / rho ) - 1. ) ;
  180. sx0 = 2. * sm0 ;
  181. *exp0 = exp0 * XK0 / XG0 * ( (( 'EXP' ( -1. * x2 ) ) / rho ) - 1. ) ;
  182. *exp0 = eps_x - exp0 ;
  183. *sx0 = 2. * XG0 * ( eps_x - exp0 ) ;
  184. f0 = 1. - ( ( 1. - fc0 ) * ( 'EXP' ( -1. * x2 ) ) ) ;
  185. 'SI' ( f0 '<' XFC0 ) ;
  186. f1 = f0 ;
  187. 'SINON' ;
  188. f1 = XFC0 + ( del0 * ( f0 - XFC0 ) ) ;
  189. 'FINSI' ;
  190. x20 = def00 ;
  191. yl0 = sig00 * ( ( 1. + ( beta0 * x20 ) ) ** xm0 ) ;
  192. g0 = 2. * XQ0 * f1 * ( 'COSH' ( 3. * sx0 / ( 4. * yl0 ) ) ) ;
  193. g0 = 1. + ( XQ0 * XQ0 * f1 * f1 ) - g0 ;
  194. y2 = ( sx0 * sx0 * 9. / 4. ) ;
  195. y2 = y2 - ( yl0 * yl0 * g0 ) ;
  196. *
  197. *
  198. 'SI' ( y2 '>' err0 ) ;
  199. x1 = x2 ;
  200. 'SINON' ;
  201. 'SI' ( y2 '<' ( -1. * err0 ) ) ;
  202. x0 = x2 ;
  203. 'SINON' ;
  204. *
  205. * On a gagné
  206. *
  207. sig1 = 3. * sm0 ;
  208. epsp_x = eps_x - ( sig1 / ( 2. * XG0 ) ) ;
  209. def1 = ( x2 / 3. ) + epsp_x ;
  210. recal0 = faux ;
  211. 'SI' recal0 ;
  212. *
  213. * Calcul de la def. plast.
  214. *
  215. x0 = eps_x ;
  216. x3 = x0 ;
  217. sx0 = 2. * XG0 * ( eps_x - x3 ) ;
  218. sig_x = 3. * sx0 / 2. ;
  219. g0 = 2. * XQ0 * f1 * ( 'COSH' ( sig_x / ( 2. * yl0 ) ) ) ;
  220. g0 = 1. + ( XQ0 * XQ0 * f1 * f1 ) - g0 ;
  221. y2 = sig_x - yl0 * ( g0 ** .5 ) ;
  222. y0 = y2 ;
  223. *
  224. x1 = 0. ;
  225. x3 = x1 ;
  226. sx0 = 2. * XG0 * ( eps_x - x3 ) ;
  227. sig_x = 3. * sx0 / 2. ;
  228. g0 = 2. * XQ0 * f1 * ( 'COSH' ( sig_x / ( 2. * yl0 ) ) ) ;
  229. g0 = 1. + ( XQ0 * XQ0 * f1 * f1 ) - g0 ;
  230. y2 = sig_x - yl0 * ( g0 ** .5 ) ;
  231. y1 = y2 ;
  232. *
  233. err1 = 'ABS' ( y0 - y1 ) * 1.E-4 ;
  234. 'REPETER' bloc02 ;
  235. i02 = &bloc02 ;
  236. x3 = ( x1 + x0 ) / 2. ;
  237. sx0 = 2. * XG0 * ( eps_x - x3 ) ;
  238. sig_x = 3. * sx0 / 2. ;
  239. g0 = 2. * XQ0 * f1 * ( 'COSH' ( sig_x / ( 2. * yl0 ) ) ) ;
  240. g0 = 1. + ( XQ0 * XQ0 * f1 * f1 ) - g0 ;
  241. y2 = sig_x - yl0 * ( g0 ** .5 ) ;
  242. 'SI' ( y2 '>' err1 ) ;
  243. x1 = x3 ;
  244. 'SINON' ;
  245. 'SI' ( y2 '<' err1 ) ;
  246. x0 = x3 ;
  247. 'SINON' ;
  248. def1 = x3 + ( x2 / 3. ) ;
  249. 'QUITTER' bloc02 ;
  250. 'FINSI' ;
  251. 'FINSI' ;
  252. *
  253. 'SI' ( i02 '>' 100 ) ;
  254. 'MESS' ' Mauvais calcul de la def. plast. ' ;
  255. 'QUITTER' bloc02 ;
  256. 'FINSI' ;
  257. *
  258. 'FIN' bloc02 ;
  259. 'FINSI' ;
  260. bet1 = f0 ;
  261. def01 = x20 ;
  262. 'MESS' ' Dichotomie converge:' iter0 ' itérations ' ;
  263. 'QUITTER' bloc00 ;
  264. *
  265. 'FINSI' ;
  266. 'FINSI' ;
  267. *
  268. 'SI' ( iter0 '>' nmax0 ) ;
  269. 'MESS' ' Pas de convergence dans la dichotomie ' ;
  270. conv0 = -1. ;
  271. 'QUITTER' bloc00 ;
  272. 'FINSI' ;
  273. *
  274. 'FIN' bloc00 ;
  275. *
  276. 'SINON' ;
  277. *
  278. * On reste élastique
  279. *
  280. sig1 = sigt0 ;
  281. def1 = 0. ;
  282. bet1 = fc0 ;
  283. def01 = 0. ;
  284. *
  285. 'FINSI' ;
  286. *
  287. *
  288. 'FINPROC' sig1 def1 bet1 def01 conv0 ;
  289. *
  290. *
  291. *================================================================
  292. *
  293. *
  294. opti echo 0 dime 3 elem cub8 ;
  295. graph0 = faux ;
  296. errt0 = faux ;
  297. *
  298. *
  299. * Maillage
  300. *
  301. l1 = .5 ;
  302. l2 = .01 ;
  303. l3 = .01 ;
  304. n1 = 50 ;
  305. n2 = 1 ;
  306. n3 = 1 ;
  307. p1 = 0. 0. 0. ;
  308. p2 = l1 0. 0. ;
  309. p3 = l1 l2 0. ;
  310. p4 = 0. l2 0. ;
  311. p5 = 0. 0. l3 ;
  312. p6 = l1 0. l3 ;
  313. p7 = l1 l2 l3 ;
  314. p8 = 0. l2 l3 ;
  315. d1 = d p1 n3 p5 ;
  316. d2 = d p5 n2 p8 ;
  317. d3 = d p8 n3 p4 ;
  318. d4 = d p4 n2 p1 ;
  319. sur1 = 'DALL' d1 d2 d3 d4 ;
  320. d5 = d p2 n3 p6 ;
  321. d6 = d p6 n2 p7 ;
  322. d7 = d p7 n3 p3 ;
  323. d8 = d p3 n2 p2 ;
  324. sur2 = 'DALL' d5 d6 d7 d8 ;
  325. vol1 = sur1 'VOLU' n1 sur2 ;
  326. 'SI' graph0 ;
  327. 'TITR' ' Maillage du test de validation' ;
  328. 'TRAC' vol1 ;
  329. 'FINSI' ;
  330. *
  331. * Deplacement maximal
  332. *
  333. depmax = .2 ;
  334. *
  335. * Courbe d'ecrouissage
  336. *
  337. beta0 = 125. ;
  338. sig0 = 410.E6 ;
  339. xm = .1 ;
  340. youn0 = 2.1E11 ;
  341. epsp0 = 'PROG' 0. ;
  342. deb0 = 'PROG' 0. ;
  343. epsmax0 = 2. * depmax / l1 ;
  344. pas0 = epsmax0 / 50 ;
  345. pas1 = pas0 / 10. ;
  346. epsmax1 = ( epsmax0 / 10. ) ;
  347. epsp1 = ( 'PROG' 0. 'PAS' pas1 epsmax1 ) 'ET'
  348. ( 'PROG' ( epsmax1 + pas0 ) 'PAS' pas0 epsmax0 ) ;
  349. *epsp1 = 'PROG' 0. 'PAS' pas0 epsmax0 ;
  350. dim00 = 'DIME' epsp1 ;
  351. un = 'PROG' dim00 '*' 1. ;
  352. Y0 = sig0 ;
  353. epsp2 = beta0 * epsp1 ;
  354. epsp3 = epsp2 + un ;
  355. epsp31 = log epsp3 ;
  356. epsp32 = epsp31 * xm ;
  357. epsp4 = exp epsp32 ;
  358. Y1 = Y0 * epsp4 ;
  359. *
  360. epsp1 = epsp0 'ET' epsp1 ;
  361. Y1 = deb0 'ET' Y1 ;
  362. epsp2 = epsp1 + ( Y1 / youn0 ) ;
  363. trac00 = 'EVOL' 'MANU' 'defo' epsp1 'sigm' Y1 ;
  364. *
  365. * Modele de calcul
  366. *
  367. trac0 = 'EVOL' 'MANU' 'defo' epsp2 'sigm' Y1 ;
  368. 'SI' graph0 ;
  369. 'DESS' trac0 'TITR' ' Courbe de traction' ;
  370. 'FINSI' ;
  371. mod0 = 'MODE' vol1 'MECANIQUE' 'ELASTIQUE' 'ISOTROPE'
  372. 'PLASTIQUE_ENDOM' 'GURSON2' ;
  373. SIG00 = youn0 / 500. ;
  374. fc0 = 0.01 ;
  375. mat0 = 'MATE' mod0 'YOUN' youn0 'NU' 0.3
  376. 'TRAC' trac0 'Q' 1.5 'FU' ( 1. / 1.5 ) 'FF' 0.25 'FC' 0.15
  377. 'FNS0' 0.00 'FNE0' 0.0 'SNS' ( .1 * SIG00 ) 'SNE' .1
  378. 'SIGN' ( 2.2 * SIG00 ) 'EPSN' .8 'F0' fc0 'SRMA' 1. ;
  379. *
  380. * Fraction de cavités initiale
  381. *
  382. q01 = 'MANU' 'CHML' mod0 'VHWF' fc0 'TYPE' 'VARINTER' 'STRESSES' ;
  383. q00 = 'ZERO' mod0 'VARINTER' ;
  384. qq00 = q00 + q01 ;
  385. *
  386. * Conditions aux limites
  387. *
  388. cl1 = 'BLOQ' sur1 'UX' ;
  389. cl2 = 'BLOQ' sur2 'UX' ;
  390. cl3 = 'BLOQ' p1 'UX' 'UY' 'UZ' ;
  391. cl4 = 'BLOQ' p5 'UX' 'UY' ;
  392. cl5 = 'BLOQ' p4 'UX' 'UZ' ;
  393. cl0 = cl1 'ET' cl2 'ET' cl3 'ET' cl4 'ET' cl5 ;
  394. *
  395. * Temps du calcul
  396. *
  397. dt0 = 50. ;
  398. tfin0 = 1000. ;
  399. *
  400. * Chargement
  401. *
  402. dep1 = 'DEPI' cl2 depmax ;
  403. ev0 = 'EVOL' 'MANU' temps ( 'PROG' 0. tfin0 ) y ( 'PROG' 0. 1. ) ;
  404. cha0 = 'CHAR' 'DIMP' dep1 ev0 ;
  405. *
  406. *
  407. *
  408. * Resolution par PASAPAS
  409. *---------------------------------------
  410. *
  411. ta1 = 'TABLE' ;
  412. ta1 .'MODELE' = mod0 ;
  413. ta1 .'CARACTERISTIQUES' = mat0 ;
  414. ta1 .'BLOCAGES_MECANIQUES' = cl0 ;
  415. ta1 .'CHARGEMENT' = cha0 ;
  416. ta1 .'VARIABLES_INTERNES' = 'TABLE' ;
  417. ta1 .'VARIABLES_INTERNES'. 0 = qq00 ;
  418. ta1 .'TEMPS_CALCULES' = ( 'PROG' 0. 'PAS' dt0 tfin0) ;
  419. *
  420. TMASAU=table;
  421. ta1 . 'MES_SAUVEGARDES'=TMASAU;
  422. TMASAU .'DEFTO'=VRAI;
  423. TMASAU .'DEFIN'=VRAI;
  424. ta1.'PROCESSEURS'= 'AUTOMATIQUE';
  425. PASAPAS ta1 ;
  426. *
  427. *
  428. * Post-traitement
  429. *-----------------------------------------
  430. *
  431. * Quelques donnees du calcul
  432. *
  433. mat0 = ta1 .'CARACTERISTIQUES' ;
  434. youn1 = 'EXTR' ( 'EXCO' mat0 'YOUN' 'SCAL' ) 'SCAL' 1 1 1 ;
  435. xnu0 = 'EXTR' ( 'EXCO' mat0 'NU' 'SCAL' ) 'SCAL' 1 1 1 ;
  436. G0 = youn1 / ( 2. * ( 1. + xnu0 ) ) ;
  437. XQ0 = 'EXTR' ( 'EXCO' mat0 'Q' 'SCAL' ) 'SCAL' 1 1 1 ;
  438. XFC0 = 'EXTR' ( 'EXCO' mat0 'FC' 'SCAL' ) 'SCAL' 1 1 1 ;
  439. XFU0 = 'EXTR' ( 'EXCO' mat0 'FU' 'SCAL' ) 'SCAL' 1 1 1 ;
  440. XFF0 = 'EXTR' ( 'EXCO' mat0 'FF' 'SCAL' ) 'SCAL' 1 1 1 ;
  441. XSNS0 = 'EXTR' ( 'EXCO' mat0 'SNS' 'SCAL' ) 'SCAL' 1 1 1 ;
  442. XSNE0 = 'EXTR' ( 'EXCO' mat0 'SNE' 'SCAL' ) 'SCAL' 1 1 1 ;
  443. XGIG0 = 'EXTR' ( 'EXCO' mat0 'SIGN' 'SCAL' ) 'SCAL' 1 1 1 ;
  444. XEPS0 = 'EXTR' ( 'EXCO' mat0 'EPSN' 'SCAL' ) 'SCAL' 1 1 1 ;
  445. *
  446. * Post-traitement
  447. *-----------------------------------------
  448. *
  449. sigx1 = 'PROG' 0. ;
  450. sigx2 = 'PROG' 0. ;
  451. depx1 = 'PROG' 0. ;
  452. depx2 = 'PROG' 0. ;
  453. sig_1 = 'PROG' 0. ;
  454. def_1 = 'PROG' 0. ;
  455. bet_1 = 'PROG' fc0 ;
  456. eps_1 = 'PROG' 0. ;
  457. sig_th1 = 'PROG' 0. ;
  458. def_th1 = 'PROG' 0. ;
  459. bet_th1 = 'PROG' fc0 ;
  460. eps_th1 = 'PROG' 0. ;
  461. err_s1 = 'PROG' 0. ;
  462. err_b1 = 'PROG' 0. ;
  463. err_e1 = 'PROG' 0. ;
  464. err_m1 = 'PROG' 0. ;
  465. sig1 = 0. ;
  466. def1 = 0. ;
  467. bet1 = 0. ;
  468. def01 = 0. ;
  469. *
  470. dim0 = 'DIME' ta1 .'TEMPS' - 1 ;
  471. mod0 = ta1 .'MODELE' ;
  472. eps_el0 = sig0 / youn1 ;
  473. mess ' eps_el0 = ' eps_el0 ;
  474. 'REPETER' bloc1 dim0 ;
  475. i1 = &bloc1 ;
  476. temp0 = ta1 .'TEMPS'.i1 ;
  477. mat0 = ta1 .'CARACTERISTIQUES' ;
  478. depl0 = ta1 .'DEPLACEMENTS'.i1 ;
  479. sigm0 = ta1 .'CONTRAINTES'.i1 ;
  480. depeq0 = ta1 .'VARIABLES_INTERNES'.i1 ;
  481. def0 = ta1 .'DEFORMATIONS_INELASTIQUES'.i1 ;
  482. sigx0 = 'MAXI' ( 'VMIS' mod0 sigm0 ) ;
  483. sigx00 = 'MINI' ( 'VMIS' mod0 sigm0 ) ;
  484. depx00 = 'MINI' ( 'EXCO' depeq0 'EPSE' 'SCAL' ) ;
  485. epsp0 = 'MAXI' ( 'EXCO' depeq0 'EPSE' 'SCAL' ) ;
  486. bet_0 = 'MAXI' ( 'EXCO' depeq0 'VHWF' 'SCAL' ) ;
  487. sig_00 = 'EXCO' sigm0 'SMXX' 'SCAL' ;
  488. sig_0 = 'EXTR' sig_00 'SCAL' 1 1 1 ;
  489. def_00 = 'EXCO' def0 'EIXX' 'SCAL' ;
  490. def_0 = 'EXTR' def_00 'SCAL' 1 1 1 ;
  491. eps_00 = 'EXCO' depeq0 'EPSM' 'SCAL' ;
  492. eps_0 = 'EXTR' eps_00 'SCAL' 1 1 1 ;
  493. *
  494. * trace de la deformation plastique
  495. *
  496. epp_x = ( 'EXCO' def0 'EIXX' 'SCAL' ) ;
  497. epp_y = ( 'EXCO' def0 'EIYY' 'SCAL' ) ;
  498. epp_z = ( 'EXCO' def0 'EIZZ' 'SCAL' ) ;
  499. trepp = epp_x + epp_y + epp_z ;
  500. trepp0 = 'MAXI' trepp ;
  501. *
  502. sigx1 = sigx1 'ET' ( 'PROG' sigx0 ) ;
  503. sigx2 = sigx2 'ET' ( 'PROG' sigx00 ) ;
  504. depx1 = depx1 'ET' ( 'PROG' epsp0 ) ;
  505. depx2 = depx2 'ET' ( 'PROG' depx00 ) ;
  506. sig_1 = sig_1 'ET' ( 'PROG' sig_0 ) ;
  507. def_1 = def_1 'ET' ( 'PROG' def_0 ) ;
  508. bet_1 = bet_1 'ET' ( 'PROG' bet_0 ) ;
  509. eps_1 = eps_1 'ET' ( 'PROG' eps_0 ) ;
  510. *
  511. * deformations totales
  512. *
  513. eps0 = 'EPSI' mod0 depl0 ;
  514. eps_x = 'MAXI' ( 'EXCO' eps0 'EPXX' ) ;
  515. *
  516. * Calcul de la solution théorique
  517. *
  518. yl0 = sig0 * ( ( 1. + ( beta0 * eps_0 ) ) ** xm ) ;
  519. 'SI' ( bet_0 '<' XFC0 ) ;
  520. f1 = bet_0 ;
  521. 'SINON' ;
  522. f1 = XFC0 + ( del0 * ( bet_0 - XFC0 ) ) ;
  523. 'FINSI' ;
  524. gold = 2. * XQ0 * f1 * ( 'COSH' ( sig_0 / ( 2. * yl0 ) ) ) ;
  525. gold = ( ( XQ0 * f1 ) * ( XQ0 * f1 ) ) - gold ;
  526. gold = gold + 1. ;
  527. *
  528. sig_th0 def_th0 bet_th0 eps_th0 conv0 =
  529. PLGURS mat0 mod0 eps0 sig1 def1 eps_0 bet1
  530. beta0 sig0 xm fc0 trepp0 ;
  531. *
  532. 'SI' ( conv0 '<' 0. ) ;
  533. 'QUITTER' bloc1 ;
  534. 'FINSI' ;
  535. *
  536. sig1 = sig_th0 ;
  537. def1 = def_th0 ;
  538. bet1 = bet_th0 ;
  539. def01 = eps_th0 ;
  540. *
  541. yl0 = sig0 * ( ( 1. + ( beta0 * eps_th0 ) ) ** xm ) ;
  542. 'SI' ( bet_th0 '<' XFC0 ) ;
  543. f1 = bet_th0 ;
  544. 'SINON' ;
  545. f1 = XFC0 + ( del0 * ( bet_th0 - XFC0 ) ) ;
  546. 'FINSI' ;
  547. gold = 2. * XQ0 * f1 * ( 'COSH' ( sig_th0 / ( 2. * yl0 ) ) ) ;
  548. gold = ( ( XQ0 * f1 ) * ( XQ0 * f1 ) ) - gold ;
  549. gold = gold + 1. ;
  550. *
  551. def_th1 = def_th1 'ET' ( 'PROG' def_th0 ) ;
  552. sig_th1 = sig_th1 'ET' ( 'PROG' sig_th0 ) ;
  553. bet_th1 = bet_th1 'ET' ( 'PROG' bet_th0 ) ;
  554. eps_th1 = eps_th1 'ET' ( 'PROG' eps_th0 ) ;
  555. *
  556. 'SI' graph0 ;
  557. 'MESS' ' deformation totale imposee ' eps_x ;
  558. 'MESS' ' deformation plastique theorique' def_th0 ;
  559. 'MESS' ' deformation plastique calculee ' def_0 ;
  560. 'MESS' ' contrainte théorique ' sig_th0 ;
  561. 'MESS' ' contrainte calculee ' sig_0 ;
  562. 'MESS' ' Cavité théorique ' bet_th0 ;
  563. 'MESS' ' Cavité calcule ' bet_0 ;
  564. 'FINSI' ;
  565. *
  566. * Calcul d'erreur
  567. *
  568. 'SI' ( def_0 '>' ( 1.E-1 * eps_el0 ) ) ;
  569. err_e0 = ( def_th0 - def_0 ) / def_0 ;
  570. err_e0 = 'ABS' err_e0 ;
  571. err_e0 = err_e0 * 100. ;
  572. 'SINON' ;
  573. err_e0 = 0. ;
  574. 'FINSI' ;
  575. 'SI' ( sig_0 '>' 0. ) ;
  576. err_s0 = ( sig_th0 - sig_0 ) / sig_0 ;
  577. err_s0 = 'ABS' err_s0 ;
  578. err_s0 = err_s0 * 100. ;
  579. 'SINON' ;
  580. err_s0 = 0. ;
  581. 'FINSI' ;
  582. 'SI' ( bet_0 '>' 1.E-5 ) ;
  583. err_b0 = ( bet_th0 - bet_0 ) / bet_0 ;
  584. err_b0 = 'ABS' err_b0 ;
  585. err_b0 = err_b0 * 100. ;
  586. 'SINON' ;
  587. err_b0 = 0. ;
  588. 'FINSI' ;
  589. 'SI' ( eps_0 '>' ( 1.E-1 * eps_el0 ) ) ;
  590. err_m0 = ( eps_th0 - eps_0 ) / eps_0 ;
  591. err_m0 = 'ABS' err_m0 ;
  592. err_m0 = err_m0 * 100. ;
  593. 'SINON' ;
  594. err_m0 = 0. ;
  595. 'FINSI' ;
  596. *
  597. * Gestion des erreurs
  598. *
  599. *'SI' ( err_e0 '>' 8.E-2 ) ;
  600. * errt0 = vrai ;
  601. *'FINSI' ;
  602. 'SI' ( err_s0 '>' .15 ) ;
  603. errt0 = vrai ;
  604. 'FINSI' ;
  605. 'SI' ( err_b0 '>' 4.E-2 ) ;
  606. errt0 = vrai ;
  607. 'FINSI' ;
  608. *'SI' ( err_m0 '>' 8.E-2 ) ;
  609. * errt0 = vrai ;
  610. *'FINSI' ;
  611. *
  612. err_e1 = err_e1 'ET' ( 'PROG' err_e0 ) ;
  613. err_s1 = err_s1 'ET' ( 'PROG' err_s0 ) ;
  614. err_b1 = err_b1 'ET' ( 'PROG' err_b0 ) ;
  615. err_m1 = err_m1 'ET' ( 'PROG' err_m0 ) ;
  616. *
  617. 'MESS' ' Fin du calcul de restitution, temps ' temp0 ;
  618. 'MESS' ' ' ;
  619. *
  620. 'FIN' bloc1 ;
  621. *
  622. * Trace
  623. *
  624. 'SI' graph0 ;
  625. trac1 = 'EVOL' 'ROUG' 'MANU' 'epsp' depx1 'sigm' sigx1 ;
  626. TAB = 'TABLE' ;
  627. TAB.1 = 'MARQ CARR REGU ' ;
  628. TAB.2 = 'MARQ TRIA ' ;
  629. TAB.'TITRE' = 'TABLE' ;
  630. TAB.'TITRE'. 1 = MOT 'CALC' ;
  631. TAB.'TITRE'. 2 = MOT 'TRACTION' ;
  632. 'DESSIN' ( trac1 'ET' trac00 )
  633. 'TITR' 'Contraintes - Deformation plastique'
  634. 'LEGE' TAB ;
  635. trac2 = 'EVOL' 'ROUG' 'MANU' 'epsp' depx2 'sigm' sigx2 ;
  636. TAB = 'TABLE' ;
  637. TAB.1 = 'MARQ CARR REGU ' ;
  638. TAB.2 = 'MARQ TRIA REGU ' ;
  639. TAB.'TITRE' = 'TABLE' ;
  640. TAB.'TITRE'. 1 = MOT 'MAXI' ;
  641. TAB.'TITRE'. 2 = MOT 'MINI' ;
  642. 'DESSIN' ( trac1 'ET' trac2 )
  643. 'TITR' 'Comparaison mini - maxi de la contrainte equivalente '
  644. 'LEGE' TAB ;
  645. trac3 = 'EVOL' 'ROUG' 'MANU' 'epsp' def_th1 'sigm' sig_th1 ;
  646. trac4 = 'EVOL' 'ROUG' 'MANU' 'epsp' def_1 'sigm' sig_1 ;
  647. TAB = 'TABLE' ;
  648. TAB.1 = 'MARQ CARR REGU ' ;
  649. TAB.2 = 'MARQ TRIA REGU ' ;
  650. TAB.'TITRE' = 'TABLE' ;
  651. TAB.'TITRE'. 1 = MOT 'THEORIE' ;
  652. TAB.'TITRE'. 2 = MOT 'CALCUL' ;
  653. 'DESSIN' ( trac3 'ET' trac4 )
  654. 'TITR' 'Comparaison calcul theorie '
  655. 'LEGE' TAB ;
  656. trac5 = 'EVOL' 'ROUG' 'MANU' 'epsp' def_th1 'erreur%' err_s1 ;
  657. trac6 = 'EVOL' 'ROUG' 'MANU' 'epsp' def_th1 'erreur%' err_e1 ;
  658. TAB = 'TABLE' ;
  659. TAB.1 = 'MARQ CARR REGU ' ;
  660. TAB.2 = 'MARQ TRIA REGU ' ;
  661. TAB.'TITRE' = 'TABLE' ;
  662. TAB.'TITRE'. 1 = MOT 'CONTRAINTE' ;
  663. TAB.'TITRE'. 2 = MOT 'DEFORMATION' ;
  664. 'DESSIN' ( trac5 'ET' trac6 )
  665. 'TITR' ' Evolution des erreurs '
  666. 'LEGE' TAB ;
  667. trac7 = 'EVOL' 'ROUG' 'MANU' 'epsp' def_th1 'erreur%' err_b1 ;
  668. TAB = 'TABLE' ;
  669. TAB.1 = 'MARQ CARR REGU ' ;
  670. TAB.'TITRE' = 'TABLE' ;
  671. TAB.'TITRE'. 1 = MOT 'ENDOMMAGEMENT' ;
  672. 'DESSIN' trac7
  673. 'TITR' ' Evolution des erreurs '
  674. 'LEGE' TAB ;
  675. TAB = 'TABLE' ;
  676. TAB.1 = 'MARQ CARR REGU ' ;
  677. TAB.2 = 'MARQ TRIA ' ;
  678. TAB.'TITRE' = 'TABLE' ;
  679. TAB.'TITRE'. 1 = MOT 'THEORIE' ;
  680. TAB.'TITRE'. 2 = MOT 'TRACTION' ;
  681. 'DESSIN' ( trac3 'ET' trac00 )
  682. 'TITR' 'Comparaison theorie traction '
  683. 'LEGE' TAB ;
  684. trac10 = 'EVOL' 'ROUG' 'MANU' 'epsp' def_th1 'frac' bet_1 ;
  685. trac11 = 'EVOL' 'ROUG' 'MANU' 'epsp' def_th1 'frac' bet_th1 ;
  686. TAB = 'TABLE' ;
  687. TAB.1 = 'MARQ CARR REGU ' ;
  688. TAB.2 = 'MARQ TRIA REGU ' ;
  689. TAB.'TITRE' = 'TABLE' ;
  690. TAB.'TITRE'. 1 = MOT 'CALCUL' ;
  691. TAB.'TITRE'. 2 = MOT 'THEORIE' ;
  692. 'DESSIN' ( trac10 'ET' trac11 )
  693. 'TITR' 'Comparaison endommagement theorique et calcule '
  694. 'LEGE' TAB ;
  695. TAB = 'TABLE' ;
  696. TAB.1 = 'MARQ CARR REGU ' ;
  697. *TAB.2 = ' ' ;
  698. TAB.'TITRE' = 'TABLE' ;
  699. TAB.'TITRE'. 1 = MOT 'ENDOMMAGEE' ;
  700. *TAB.'TITRE'. 2 = MOT 'TRACTION' ;
  701. 'DESSIN' ( trac4 'ET' trac00 )
  702. 'TITR' 'Comparaison calcul traction '
  703. 'LEGE' TAB ;
  704. 'FINSI' ;
  705.  
  706. MESS 'Critere de Validation :' err_s0 err_b0;
  707. MESS 'Valeur seuil :' 0.15 4.D-2;
  708. 'SI' errt0 ;
  709. 'ERRE' 5 ;
  710. 'SINON' ;
  711. 'ERRE' 0 ;
  712. 'FINSI' ;
  713. *
  714. 'FIN' ;
  715.  
  716.  
  717.  
  718.  

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