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

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