Télécharger pakzad1.dgibi

Retour à la liste

Numérotation des lignes :

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

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