Télécharger pakzad2.dgibi

Retour à la liste

Numérotation des lignes :

  1. * fichier : pakzad2.dgibi
  2. ************************************************************************
  3. ************************************************************************
  4. ******************************************************************
  5. * *
  6. * Modèle de PAKZAD: argile *
  7. * *
  8. * Un cube d'argile de 50 cm de cote est soumis à des *
  9. * deplacements imposes de 2.5cm sur 3 de ses faces. *
  10. * L'état de contraintes est volumique. *
  11. * *
  12. * Ce calcul est réalisé dans le domaine saturé de l'argile *
  13. * (succion nulle) *
  14. * *
  15. * Ce calcul illustre l'écrouissage de la surface de *
  16. * gonflement de l'argile *
  17. * *
  18. ******************************************************************
  19.  
  20. opti echo 0 dime 3 elem cub8 ;
  21. graph0 = faux ;
  22. elast0 = faux ;
  23. *
  24. * Booléen de test de la surface de gonflement
  25. * compr0 = vrai : en charge
  26. * compr0 = faux : en décharge
  27. *
  28. compr0 = vrai ;
  29. *
  30. * Maillage : un cube soumis à un déplacement
  31. * isotrope
  32. *
  33. n1 = 1 ;
  34. n2 = 1 ;
  35. n3 = 1 ;
  36. l1 = .5 ;
  37. l2 = .5 ;
  38. l3 = .5 ;
  39. p1 = 0. 0. 0. ;
  40. p2 = l1 0. 0. ;
  41. p3 = l1 l2 0. ;
  42. p4 = 0. l2 0. ;
  43. d1 = d p1 n1 p2 ;
  44. d2 = d p2 n2 p3 ;
  45. d3 = d p3 n1 p4 ;
  46. d4 = d p4 n2 p1 ;
  47. sur1 = 'DALL' d1 d2 d3 d4 'PLAN' ;
  48. mail0 = sur1 'VOLU' n3 'TRAN' ( 0. 0. l3 ) ;
  49. *
  50. coo1 coo2 coo3 = 'COOR' mail0 ;
  51. *
  52. sur1 = coo3 'POIN' 'EGSUPE' l3 ;
  53. sur2 = coo2 'POIN' 'EGSUPE' l2 ;
  54. sur3 = coo1 'POIN' 'EGSUPE' l1 ;
  55. sur4 = coo1 'POIN' 'EGINFE' 0. ;
  56. sur5 = coo2 'POIN' 'EGINFE' 0. ;
  57. sur6 = coo3 'POIN' 'EGINFE' 0. ;
  58. *
  59. *mail0 = sur1 'ET' sur2 'ET' sur3 'ET' sur4 'ET'
  60. * sur5 'ET' sur6 'ET' mail0 ;
  61. 'ELIM' mail0 1.E-5 ;
  62. 'SI' graph0 ;
  63. 'TITR' ' Maillage ' ;
  64. 'TRAC' mail0 ;
  65. 'FINSI' ;
  66. *
  67. * Initialisations diverses
  68. *
  69. 'SI' compr0 ;
  70. depm0 = -.05 ;
  71. 'SINON' ;
  72. depm0 = .05 ;
  73. 'FINSI' ;
  74. tfin0 = 10. ;
  75. dt0 = tfin0 / 10. ;
  76. EV0 = 'EVOL' 'MANU' temps ( 'PROG' 0. tfin0 ) y ( 'PROG' 0. 1. ) ;
  77. tem0 = 'PROG' 0. 'PAS' dt0 tfin0 ;
  78. *
  79. * modèle et matériau
  80. *
  81. youn0 = 2.1E11 ;
  82. nu0 = .3 ;
  83. xn0 = 1. ;
  84. xka0 = 83. ;
  85. xga0 = 37. ;
  86. patm0 = 1.E5 ;
  87. xpc0 = 10.E6 ;
  88. xm0 = 0.86 ;
  89. xbeta0 = 18.E-2 ;
  90. xa0 = .2E6 ;
  91. xpref0 = 0. ;
  92. xs0 = .5E6 ;
  93. xm1 = .3 ;
  94. xm2 = 1.5 ;
  95. xm3 = 1.5 ;
  96. xbsec0 = 14. ;
  97. xtau0 = 0.00 ;
  98. succ0 = 0. ;
  99. xp1 = 6.E6 ;
  100. *
  101. 'SI' elast0 ;
  102. mod0 = 'MODE' mail0 'MECANIQUE' 'ELASTIQUE' ;
  103. mat0 = 'MATE' mod0 'YOUN' youn0 'NU' nu0 ;
  104. 'SINON' ;
  105. mod0 = 'MODE' mail0 'MECANIQUE' 'ELASTIQUE'
  106. 'PLASTIQUE' 'PAKZAD' ;
  107. mat0 = 'MATE' mod0 'YOUN' youn0 'NU' nu0
  108. 'N' xn0 'KA' xka0 'GA' xga0 'PATM' patm0
  109. 'PC0' xpc0 'M' xm0 'BETA' xbeta0 'A0' xa0
  110. 'PREF' xpref0 'S0' xs0 'M1' xm1 'M2' xm2
  111. 'M3' xm3 'BSEC' xbsec0 'TAU' xtau0 ;
  112. 'FINSI' ;
  113. *
  114. *
  115. 'SI' elast0 ;
  116. 'MESS' ' Calcul élastique' ;
  117. 'SINON' ;
  118. 'MESS' ' Calcul sur le modèle argileux PAKZAD ' ;
  119. *
  120. * Variables internes initiales
  121. *
  122. q01 = 'MANU' 'CHML' mod0 'SUCC' succ0
  123. 'PDEC' xp1 'PREC' xp1
  124. 'TYPE' 'VARINTER' 'STRESSES' ;
  125. q00 = 'ZERO' mod0 'VARINTER' ;
  126. qq00 = q00 + q01 ;
  127. *
  128. * Contraintes initiales
  129. *
  130. p01 = 'MANU' 'CHML' mod0 'SMXX' ( -1. * xp1 ) 'SMYY' ( -1. * xp1 )
  131. 'SMZZ' ( -1. * xp1 ) 'SMXY' 0. 'SMXZ' 0. 'SMYZ' 0.
  132. 'TYPE' 'CONTRAINTES' 'STRESSES' ;
  133. *
  134. 'FINSI' ;
  135. *
  136. * Conditions aux limites
  137. *
  138. cl1 = 'BLOQ' sur1 'UZ' ;
  139. cl2 = 'BLOQ' sur2 'UY' ;
  140. cl3 = 'BLOQ' sur3 'UX' ;
  141. cl4 = 'BLOQ' sur4 'UX' ;
  142. cl5 = 'BLOQ' sur5 'UY' ;
  143. cl6 = 'BLOQ' sur6 'UZ' ;
  144. cl0 = cl1 'ET' cl2 'ET' cl3 'ET' cl4 'ET'
  145. cl5 'ET' cl6 ;
  146. *
  147. * Chargement
  148. *
  149. dep1 = 'DEPI' cl1 depm0 ;
  150. dep2 = 'DEPI' cl2 depm0 ;
  151. dep3 = 'DEPI' cl3 depm0 ;
  152. cha1 = 'CHAR' 'DIMP' dep1 EV0 ;
  153. cha2 = 'CHAR' 'DIMP' dep2 EV0 ;
  154. cha3 = 'CHAR' 'DIMP' dep3 EV0 ;
  155. cha0 = cha1 'ET' cha2 'ET' cha3 ;
  156. *
  157. * Appel à PASAPAS
  158. *
  159. ta1 = 'TABLE' ;
  160. ta1 .'MODELE' = mod0 ;
  161. ta1 .'CARACTERISTIQUES' = mat0 ;
  162. ta1 .'CHARGEMENT' = cha0 ;
  163. ta1 .'BLOCAGES_MECANIQUES' = cl0 ;
  164. ta1 .'HYPOTHESE_DEFORMATIONS'='LINEAIRE' ;
  165. 'SI' ( 'NON' elast0 ) ;
  166. ta1 .'VARIABLES_INTERNES' = 'TABLE' ;
  167. ta1 .'VARIABLES_INTERNES'. 0 = qq00 ;
  168. ta1 .'CONTRAINTES' = 'TABLE' ;
  169. ta1 .'CONTRAINTES'. 0 = p01 ;
  170. 'FINSI' ;
  171. ta1 .'TEMPS_CALCULES' = tem0 ;
  172. *
  173. TMASAU=table;
  174. ta1 . 'MES_SAUVEGARDES'=TMASAU;
  175. TMASAU .'DEFTO'=VRAI;
  176. TMASAU .'DEFIN'=VRAI;
  177. PASAPAS ta1 ;
  178. *
  179. 'SI' elast0 ;
  180. *
  181. * Post traitement
  182. *
  183. dim0 = 'DIME' ta1 .'TEMPS' - 1 ;
  184. sigm0 = ta1 .'CONTRAINTES'. dim0 ;
  185. depl0 = ta1 .'DEPLACEMENTS'. dim0 ;
  186. list sigm0 ;
  187. *
  188. sigxx = 'EXCO' sigm0 'SMXX' 'SCAL' ;
  189. sigyy = 'EXCO' sigm0 'SMYY' 'SCAL' ;
  190. sigzz = 'EXCO' sigm0 'SMZZ' 'SCAL' ;
  191. pres0 = -1. * ( sigxx + sigyy + sigzz ) / 3. ;
  192. *
  193. def1 = 'DEFO' mail0 depl0 1. 'ROUG' ;
  194. def0 = 'DEFO' mail0 depl0 0. ;
  195. *
  196. 'SI' graph0 ;
  197. 'TITR' ' Deformee ' ;
  198. 'TRAC' ( def1 'ET' def0 ) ;
  199. 'FINSI' ;
  200. *
  201. *
  202. 'SINON' ;
  203. *
  204. *
  205. dim0 = ( 'DIME' ta1 .'TEMPS' ) - 1 ;
  206. err0 = 1.E-3 ;
  207. err1 = faux ;
  208. *
  209. xka0 = 'MAXI' ( 'EXCO' mat0 'KA' 'SCAL' ) ;
  210. xpc0 = 'MAXI' ( 'EXCO' mat0 'PC0' 'SCAL' ) ;
  211. xtau0 = 'MAXI' ( 'EXCO' mat0 'TAU' 'SCAL' ) ;
  212. xbeta0 = 'MAXI' ( 'EXCO' mat0 'BETA' 'SCAL' ) ;
  213. xpref0 = 'MAXI' ( 'EXCO' mat0 'PREF' 'SCAL' ) ;
  214. xa0 = 'MAXI' ( 'EXCO' mat0 'A0' 'SCAL' ) ;
  215. *
  216. depl0 = ta1 .'DEPLACEMENTS'. dim0 ;
  217. sigm0 = ta1 .'CONTRAINTES'. dim0 ;
  218. var0 = ta1 .'VARIABLES_INTERNES'. dim0 ;
  219. *
  220. sigxx = 'EXCO' sigm0 'SMXX' 'SCAL' ;
  221. sigyy = 'EXCO' sigm0 'SMYY' 'SCAL' ;
  222. sigzz = 'EXCO' sigm0 'SMZZ' 'SCAL' ;
  223. pres0 = -1. * ( sigxx + sigyy + sigzz ) / 3. ;
  224. *
  225. def1 = 'DEFO' depl0 mail0 1. 'ROUG' ;
  226. def0 = 'DEFO' depl0 mail0 0. ;
  227. 'SI' graph0 ;
  228. 'TITR' ' Deformee ' ;
  229. 'TRAC' ( def1 'ET' def0 ) ;
  230. 'FINSI' ;
  231. *
  232. xp1 = xp1 + succ0 ;
  233. pres1 = 'PROG' xp1 ;
  234. lpres1 = 'PROG' ( 'LOG' xp1 ) ;
  235. treps1 = 'PROG' 0. ;
  236. pc1 = 'PROG' xpc0 ;
  237. trepp1 = 'PROG' 0. ;
  238. p_th0 = xp1 ;
  239. pres2 = 'PROG' p_th0 ;
  240. lpres2 = 'PROG' ( 'LOG' p_th0 ) ;
  241. tr_th0 = 0. ;
  242. trepp2 = 'PROG' tr_th0 ;
  243. succ1 = 'PROG' succ0 ;
  244. err_1 = 'PROG' 0. ;
  245. vm1 = 'PROG' 0. ;
  246. *
  247. plast0 = faux ;
  248. 'REPETER' bloc0 dim0 ;
  249. i0 = &bloc0 ;
  250. 'MESS' ' Calcul de restitution au pas ' i0 ;
  251. *
  252. depl0 = ta1 .'DEPLACEMENTS'. i0 ;
  253. sigm0 = ta1 .'CONTRAINTES'. i0 ;
  254. var0 = ta1 .'VARIABLES_INTERNES'. i0 ;
  255. def0 = ta1 .'DEFORMATIONS_INELASTIQUES'. i0 ;
  256. vm0 = 'VMIS' sigm0 mod0 ;
  257. *
  258. xka0 = 'MAXI' ( 'EXCO' mat0 'KA' 'SCAL' ) ;
  259. xbet1 = 'MAXI' ( 'EXCO' mat0 'BETA' 'SCAL' ) ;
  260. xpref0 = 'MAXI' ( 'EXCO' mat0 'PREF' 'SCAL' ) ;
  261. xpc0 = 'MAXI' ( 'EXCO' mat0 'PC0' 'SCAL' ) ;
  262. *
  263. vm1 = vm1 'ET' ( 'PROG' ( 'MAXI' vm0 ) ) ;
  264. *
  265. sigxx = 'EXCO' sigm0 'SMXX' 'SCAL' ;
  266. sigyy = 'EXCO' sigm0 'SMYY' 'SCAL' ;
  267. sigzz = 'EXCO' sigm0 'SMZZ' 'SCAL' ;
  268. pres0 = 'MAXI' ( -1. * ( sigxx + sigyy + sigzz ) / 3. ) ;
  269. *
  270. eps0 = 'EPSI' mod0 depl0 'LINE' ;
  271. epxx = 'EXCO' eps0 'EPXX' 'SCAL' ;
  272. epyy = 'EXCO' eps0 'EPYY' 'SCAL' ;
  273. epzz = 'EXCO' eps0 'EPZZ' 'SCAL' ;
  274. treps0 = 'MAXI' ( -1. * ( epxx + epyy + epzz ) ) ;
  275. treps0 = -3. * depm0 * i0 / ( dim0 * l1 ) ;
  276. *
  277. pc0 = 'MAXI' ( 'EXCO' var0 'VPCS' 'SCAL' ) ;
  278. *
  279. defxx = 'EXCO' def0 'EIXX' 'SCAL' ;
  280. defyy = 'EXCO' def0 'EIYY' 'SCAL' ;
  281. defzz = 'EXCO' def0 'EIZZ' 'SCAL' ;
  282. trepp0 = 'MAXI' ( -1. * ( defxx + defyy + defzz ) ) ;
  283. *
  284. pres1 = pres1 'ET' ( 'PROG' pres0 ) ;
  285. lpres1 = lpres1 'ET' ( 'PROG' ( 'LOG' pres0 ) ) ;
  286. treps1 = treps1 'ET' ( 'PROG' treps0 ) ;
  287. pc1 = pc1 'ET' ( 'PROG' pc0 ) ;
  288. trepp1 = trepp1 'ET' ( 'PROG' trepp0 ) ;
  289. *
  290. succ0 = 'MAXI' ( 'EXCO' var0 'SUCC' 'SCAL' ) ;
  291. succ1 = succ1 'ET' ( 'PROG' succ0 ) ;
  292. *
  293. *
  294. * Solution analytique
  295. *
  296. xpc00 = xpc0 ;
  297. 'SI' compr0 ;
  298. xbeta1 = xbeta0 * ( 1. + ( xpref0 / p_th0 ) ) ;
  299. xbeta1 = xbeta1 * 2. * xpc00 / ( 3. * xp1 ) ;
  300. treps00 = -1. / xka0 * ( 'LOG' ( ( xa0 + xa0 + xp1 ) / xp1 ) ) ;
  301. 'SINON' ;
  302. xbeta1 = xbeta0 * ( 1. + ( xpref0 / p_th0 ) ) ;
  303. treps00 = -1. / xka0 * ( 'LOG' ( ( xp1 - xa0 - xa0 ) / xp1 ) ) ;
  304. 'FINSI' ;
  305. treps0 = -1. * treps0 ;
  306. tr_th0 = -1. * tr_th0 ;
  307. p_test0 = xp1 * ( 'EXP' ( -1. * xka0 * treps0 ) ) ;
  308. 'SI' ( ( ( 'ABS' ( p_test0 - xp1 )) / 2. ) '>' xa0 ) ;
  309. 'SI' plast0 ;
  310. tr0 = xka0 * treps0 / ( i0 * ( xka0 + xbeta1 ) ) ;
  311. tr_th0 = tr_th0 + tr0 ;
  312. 'SINON' ;
  313. tr_th0 = xka0 * ( treps0 - treps00 ) / ( xka0 + xbeta1 ) ;
  314. 'FINSI' ;
  315. p_th0 = xp1 * ( 'EXP' ( -1. * xka0 * ( treps0 - tr_th0 ) ) ) ;
  316. plast0 = vrai ;
  317. 'SINON' ;
  318. plast0 = faux ;
  319. tr_th0 = 0. ;
  320. p_th0 = p_test0 ;
  321. 'FINSI' ;
  322. tr_th0 = -1. * tr_th0 ;
  323. *
  324. trepp2 = trepp2 'ET' ( 'PROG' tr_th0 ) ;
  325. pres2 = pres2 'ET' ( 'PROG' p_th0 ) ;
  326. lpres2 = lpres2 'ET' ( 'PROG' ( 'LOG' p_th0 ) ) ;
  327. *
  328. * Erreur sur les contraintes
  329. *
  330. err_0 = ( ( 'ABS' ( p_th0 - pres0 ) ) / pres0 ) * 100. ;
  331. err_1 = err_1 'ET' ( 'PROG' err_0 ) ;
  332. 'SI' ( err_0 '>' err0 ) ;
  333. err1 = vrai ;
  334. 'FINSI' ;
  335. *
  336. 'FIN' bloc0 ;
  337. *
  338. * Traces
  339. *
  340. 'SI' graph0 ;
  341. evol1 = 'EVOL' 'MANU' 'trace' treps1 'pression' pres1 ;
  342. evol2 = 'EVOL' 'MANU' 'trace' treps1 'VPCS' pc1 ;
  343. evol3 = 'EVOL' 'MANU' 'trace' trepp1 'pression' pres1 ;
  344. evol4 = 'EVOL' 'MANU' 'trace' trepp2 'pression' pres2 ;
  345. evol31 = 'EVOL' 'MANU' 'trace' treps1 'pression' pres1 ;
  346. evol41 = 'EVOL' 'MANU' 'trace' treps1 'pression' pres2 ;
  347. evol32 = 'EVOL' 'MANU' 'trace' treps1 'pression' lpres1 ;
  348. evol42 = 'EVOL' 'MANU' 'trace' treps1 'pression' lpres2 ;
  349. evol43 = 'EVOL' 'MANU' 'trace' trepp1 'pression' lpres2 ;
  350. evol5 = 'EVOL' 'MANU' 'trace' treps1 'succion' succ1 ;
  351. evol6 = 'EVOL' 'MANU' 'trace' treps1 'Erreur en %' err_1 ;
  352. evol7 = 'EVOL' 'MANU' 'trace' treps1 ' VM ' vm1 ;
  353. TAB = 'TABLE' ;
  354. TAB. 1 = 'MARQ PLUS ' ;
  355. TAB. 2 = 'MARQ CROI ' ;
  356. TAB.'TITRE' = 'TABLE' ;
  357. TAB.'TITRE'. 1 = MOT 'PRESSION' ;
  358. TAB.'TITRE'. 2 = MOT 'PC' ;
  359. 'DESS' ( evol1 'ET' evol2 )
  360. 'TITR' ' Trace de la deformation, pression '
  361. 'LEGE' TAB ;
  362. TAB = 'TABLE' ;
  363. TAB. 1 = 'MARQ PLUS ' ;
  364. TAB. 2 = 'MARQ CROI ' ;
  365. TAB.'TITRE' = 'TABLE' ;
  366. TAB.'TITRE'. 1 = MOT 'CALCUL' ;
  367. TAB.'TITRE'. 2 = MOT 'THEORIE' ;
  368. 'DESS' ( evol3 'ET' evol4 )
  369. 'TITR' ' Comparaison calcul-theorie '
  370. 'LEGE' TAB ;
  371. 'DESS' ( evol3 'ET' evol4 ) 'LOGY'
  372. 'TITR' ' Comparaison calcul-theorie '
  373. 'LEGE' TAB ;
  374. TAB = 'TABLE' ;
  375. TAB. 1 = 'MARQ PLUS ' ;
  376. TAB. 2 = 'MARQ CROI ' ;
  377. TAB.'TITRE' = 'TABLE' ;
  378. TAB.'TITRE'. 1 = MOT 'CALCUL' ;
  379. TAB.'TITRE'. 2 = MOT 'THEORIE' ;
  380. 'DESS' ( evol31 'ET' evol41 )
  381. 'TITR' ' Comparaison calcul-theorie '
  382. 'LEGE' TAB ;
  383. TAB = 'TABLE' ;
  384. TAB. 1 = 'MARQ PLUS ' ;
  385. TAB. 2 = 'MARQ CROI ' ;
  386. TAB.'TITRE' = 'TABLE' ;
  387. TAB.'TITRE'. 1 = MOT 'CALCUL' ;
  388. TAB.'TITRE'. 2 = MOT 'THEORIE' ;
  389. 'DESS' ( evol32 'ET' evol42 )
  390. 'TITR' ' Comparaison calcul-theorie ; Courbes log '
  391. 'LEGE' TAB ;
  392. 'DESS' evol43 'TITR' ' Courbes Log ' ;
  393. TAB = 'TABLE' ;
  394. TAB. 1 = 'MARQ PLUS ' ;
  395. TAB.'TITRE' = 'TABLE' ;
  396. TAB.'TITRE'. 1 = MOT 'SUCCION' ;
  397. 'DESS' ( evol5 )
  398. 'TITR' ' Succion '
  399. 'LEGE' TAB ;
  400. 'DESS' evol6 'TITR' ' Erreur sur les contraintes en %' ;
  401. TAB = 'TABLE' ;
  402. TAB. 1 = 'MARQ PLUS ' ;
  403. TAB. 2 = 'MARQ CROI ' ;
  404. TAB.'TITRE' = 'TABLE' ;
  405. TAB.'TITRE'. 1 = MOT 'CALCUL' ;
  406. TAB.'TITRE'. 2 = MOT 'THEORIE' ;
  407. 'DESS' ( evol1 'ET' evol41 ) 'LOGY' 'TITR' ' Pression - Deformation '
  408. 'LEGE' TAB ;
  409. 'DESS' evol7 'TITR' ' VM' ;
  410. 'FINSI' ;
  411. *
  412. *
  413. 'SI' err1 ;
  414. 'ERRE' 5 ;
  415. 'SINON' ;
  416. 'ERRE' 0 ;
  417. 'FINSI' ;
  418. *
  419. *
  420. *
  421. 'FIN' ;
  422. 'FINSI' ;
  423. *
  424.  
  425.  
  426.  
  427.  
  428.  
  429.  
  430.  
  431.  
  432.  
  433.  
  434.  
  435.  
  436.  
  437.  
  438.  
  439.  
  440.  

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