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

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