Télécharger ohno_cis2.dgibi

Retour à la liste

Numérotation des lignes :

  1. * fichier : ohno_cis2.dgibi
  2. ************************************************************************
  3. ************************************************************************
  4. complet = faux;
  5. *
  6. *************************************************
  7. * pour calcul complet mettre complet à : vrai;
  8. ***************************************************
  9. **************************************************
  10. * *
  11. * TEST DE VALIDATION D'UNE LOI DE COMPORTEMENT *
  12. * -------------------------------------------- *
  13. * DE MATERIAU *
  14. * ----------- *
  15. * *
  16. * LOI DE COMPORTEMENT VISCOPLASTIQUE DE: *
  17. * OHNO ( CHABOCHE MODIFIE OHNO ) *
  18. * *
  19. * COMPARAISON DE CALCULS SUR DES ELEMENTS: *
  20. * - MASSIF 2D ( MFR=1 ) *
  21. * ( DEFORMATIONS PLANES ) *
  22. * AVEC UN RESULTAT ANALYTIQUE *
  23. * *
  24. * STRUCTURE : UNE PLAQUE CARREE *
  25. * - COTE : .1 M *
  26. * - EPAISSEUR : 5.E-4 M *
  27. * *
  28. * CHARGEMENT : DEPLACEMENTS IMPOSES *
  29. * CISAILLEMENT PUR *
  30. * *
  31. **************************************************
  32. *
  33. opti echo 0 ;
  34. *
  35. 'DEBPROC' VISOHNO ta1*'TABLE' i0*'ENTIER'
  36. sigx01*'FLOTTANT' gam0*'FLOTTANT'
  37. R01*'FLOTTANT'
  38. epsp01*'FLOTTANT'
  39. gamp01*'FLOTTANT'
  40. Xx11*'FLOTTANT'
  41. Xx21*'FLOTTANT' ;
  42. *
  43. * Résolution des lois viscoplastiques de OHNO dans
  44. * le cas unidirectionnel
  45. *
  46. mat0 = ta1 .'CARACTERISTIQUES' ;
  47. mod0 = ta1 .'MODELE' ;
  48. q00 = 0. ;
  49. rac0 = ( 3. ) ** ( .5 ) ;
  50. *
  51. youn0 = 'MAXI' ( 'EXCO' mat0 'YOUN' ) ;
  52. xnu0 = 'MAXI' ( 'EXCO' mat0 'NU' ) ;
  53. G0 = youn0 / ( 2. * ( 1. + xnu0 ) ) ;
  54. n0 = 'MAXI' ( 'EXCO' mat0 'N' ) ;
  55. kk0 = 'MAXI' ( 'EXCO' mat0 'KK' ) ;
  56. k00 = 'MAXI' ( 'EXCO' mat0 'K0' ) ;
  57. alfk0 = 'MAXI' ( 'EXCO' mat0 'ALFK0' ) ;
  58. alfr0 = 'MAXI' ( 'EXCO' mat0 'ALFR0' ) ;
  59. alf0 = 'MAXI' ( 'EXCO' mat0 'ALF' ) ;
  60. a10 = 'MAXI' ( 'EXCO' mat0 'A1' ) ;
  61. c10 = 'MAXI' ( 'EXCO' mat0 'C1' ) ;
  62. bet10 = 'MAXI' ( 'EXCO' mat0 'BET1' ) ;
  63. r10 = 'MAXI' ( 'EXCO' mat0 'R1' ) ;
  64. a20 = 'MAXI' ( 'EXCO' mat0 'A2' ) ;
  65. c20 = 'MAXI' ( 'EXCO' mat0 'C2' ) ;
  66. bet20 = 'MAXI' ( 'EXCO' mat0 'BET2' ) ;
  67. r20 = 'MAXI' ( 'EXCO' mat0 'R2' ) ;
  68. phi0 = 'MAXI' ( 'EXCO' mat0 'PHI' ) ;
  69. b0 = 'MAXI' ( 'EXCO' mat0 'B' ) ;
  70. gama0 = 'MAXI' ('EXCO' mat0 'GAMA' ) ;
  71. m0 = 'MAXI' ( 'EXCO' mat0 'M' ) ;
  72. qmax0 = 'MAXI ' ( 'EXCO' mat0 'QMAX' ) ;
  73. qsta0 = 'MAXI' ( 'EXCO' mat0 'QSTA' ) ;
  74. mu0 = 'MAXI' ( 'EXCO' mat0 'MU' ) ;
  75. eta0 = 'MAXI' ( 'EXCO' mat0 'ETA' ) ;
  76. exp10 = 'MAXI' ( 'EXCO' mat0 'EXP1' ) ;
  77. exp20 = 'MAXI' ( 'EXCO' mat0 'EXP2' ) ;
  78. *
  79. depl0 = ta1 .'DEPLACEMENTS'.( i0 - 1 ) ;
  80. temp1 = ta1 .'TEMPS'.i0 ;
  81. temp0 = ta1 .'TEMPS'.( i0 - 1 ) ;
  82. temp01 = temp0 ;
  83. gam_old = 'MAXI' ( 'EXCO' ( 'EPSI' mod0 depl0 ) 'GAXY' ) ;
  84. *
  85. niter0 = 100 ;
  86. dt0 = ( temp1 - temp0 ) / niter0 ;
  87. sigx00 = sigx01 ;
  88. R00 = R01 ;
  89. epsp00 = epsp01 ;
  90. gamp00 = gamp01 ;
  91. Xx10 = Xx11 ;
  92. Xx20 = Xx21 ;
  93. *
  94. * Incrément de contrainte test
  95. *
  96. spt0 = G0 * ( gam0 - gam_old ) / ( temp1 - temp0 ) ;
  97. *mess ' sigx00 R00 gamp00 Xx10 Xx20=' sigx00 R00 gamp00 Xx10 Xx20 ;
  98. *
  99. 'REPETER' bloc0 niter0 ;
  100. *
  101. * Initialisation du calcul pour un pas de temps
  102. *
  103. temp01 = temp01 + dt0 ;
  104. depsx9 = 0. ;
  105. dXx8 = 0. ;
  106. dXx9 = 0. ;
  107. dr9 = 0. ;
  108. sigx0 = sigx00 ;
  109. R0 = R00 ;
  110. epsp0 = epsp00 ;
  111. gamp0 = gamp00 ;
  112. Xx1 = Xx10 ;
  113. Xx2 = Xx20 ;
  114. *
  115. 'REPETER' bloc1 2 ;
  116. i1 = &bloc1 ;
  117. *
  118. * Memoire en déformation inélastique
  119. *
  120. qq = eta0 * epsp0 ;
  121. geta0 = ( 1. - eta0 ) * gamp0 / 2. ;
  122. Q0 = qmax0 -
  123. ( ( qmax0 - q00 ) *
  124. ( 'EXP' ( -2. * mu0 * qq ) ) ) ;
  125. QR = Q0 - ( qsta0 * ( 1. - ( ( ( qmax0 - Q0 ) / qmax0 ) ** 2. ) ) ) ;
  126. RR0 = alfr0 * R0 ;
  127. KR0 = k00 + ( alfk0 * R0 ) ;
  128. * mess ' qq, Q0, QR, RR0, KR0=' qq Q0 QR RR0 KR0 ;
  129. *
  130. * Critère
  131. *
  132. Xx0 = Xx1 + Xx2 ;
  133. F0 = rac0 * ( sigx0 - Xx0 ) ;
  134. F0 = F0 - RR0 - kk0 ;
  135. *
  136. * Ecrouissages
  137. *
  138. 'SI' ( F0 '>' 0. ) ;
  139. depsx0 = ( F0 / KR0 ) ** ( n0 ) ;
  140. depsx1 = alf0 * ( ( F0 / KR0 ) ** ( n0 + 1. ) ) ;
  141. depsx1 = 'EXP' ( depsx1 ) ;
  142. depsx0 = depsx0 * depsx1 * dt0 ;
  143. 'SINON' ;
  144. depsx0 = 0. ;
  145. 'FINSI' ;
  146. * mess ' depsx0 F0 = ' depsx0 F0 ;
  147. dr0 = b0 * ( Q0 - R0 ) * depsx0 ;
  148. dr1 = gama0 * ( ( 'ABS' ( QR - R0 ) ) ** ( m0 - 1. ) ) ;
  149. dr1 = dr1 * ( QR - R0 ) ;
  150. dr0 = dr0 + ( dr1 * dt0 ) ;
  151. phi = phi0 + ( ( 1. - phi0 ) * ( 'EXP' ( -1. * b0 * epsp0 ) ) ) ;
  152. X1lim = a10 / phi ;
  153. X2lim = a20 / phi ;
  154. dXx1 = 2. * a10 * c10 * rac0 * depsx0 / 6. ;
  155. dXx1 = dXx1 -
  156. ( c10 * Xx1 * depsx0 * phi *
  157. ( ( Xx1 * rac0 / X1lim ) ** ( exp10 ) ) ) ;
  158. * dXx1 = dXx1 - ( c10 * Xx1 * depsx0 * phi ) ;
  159. dXx1 = dXx1 -
  160. ( ( ( Xx1 * rac0 / bet10 ) ** ( r10 - 1. ) ) * Xx1 * dt0 ) ;
  161. dXx2 = 2. * a20 * c20 * depsx0 * rac0 / 6. ;
  162. dXx2 = dXx2 -
  163. ( c20 * Xx2 * depsx0 * phi *
  164. ( ( Xx2 * rac0 / X2lim ) ** ( exp20 ) ) ) ;
  165. * dXx2 = dXx2 - ( c20 * Xx2 * depsx0 * phi ) ;
  166. dXx2 = dXx2 -
  167. ( ( ( Xx2 * rac0 / bet20 ) ** ( r20 - 1. ) ) * Xx2 * dt0 ) ;
  168. * mess ' dr0 phi dXx1 dXx2 i1 =' dr0 phi dXx1 dXx2 i1 ;
  169. *
  170. * Somme ( Runge-Kutta )
  171. *
  172. dr0 = ( dr0 + dr9 ) / i1 ;
  173. depsx0 = ( depsx0 + depsx9 ) / i1 ;
  174. dXx1 = ( dXx1 + dXx8 ) / i1 ;
  175. dXx2 = ( dXx2 + dXx9 ) / i1 ;
  176. dr9 = dr0 ;
  177. depsx9 = depsx0 ;
  178. dXx8 = dXx1 ;
  179. dXx9 = dXx2 ;
  180. * mess ' dr0 depsx0 dXx1 dXx2 i1 =' dr0 depsx0 dXx1 dXx2 i1 ;
  181. *
  182. * Calcul des grandeurs actuelles
  183. *
  184. R0 = R00 + dr0 ;
  185. epsp0 = epsp00 + depsx0 ;
  186. gamp0 = gamp00 + ( depsx0 * rac0 ) ;
  187. Xx1 = Xx10 + dXx1 ;
  188. Xx2 = Xx20 + dXx2 ;
  189. sigx0 = sigx00 + ( dt0 * spt0 )
  190. - ( G0 * depsx0 * rac0 ) ;
  191. * mess ' R00 epsx00 Xx10 Xx20 sigx00 =' R00 epsx00 Xx10 Xx20 sigx00 ;
  192. * mess ' R0 epsx0 Xx1 Xx2 sigx0 =' R0 epsx0 Xx1 Xx2 sigx0 ;
  193. *
  194. 'FIN' bloc1 ;
  195. *
  196. * Mise à jour des valeurs
  197. *
  198. R00 = R0 ;
  199. epsp00 = epsp0 ;
  200. gamp00 = gamp0 ;
  201. geta0 = ( 1. - eta0 ) * gamp0 / 2. ;
  202. Xx10 = Xx1 ;
  203. Xx20 = Xx2 ;
  204. sigx00 = sigx0 ;
  205. *
  206. 'FIN' bloc0 ;
  207. *
  208. 'MESS' ' Temps final ' temp01 temp1 ;
  209. *
  210. 'FINP' sigx00 R00
  211. epsp0 Xx10 Xx20 gamp0 geta0 ;
  212. *
  213. *---------------------------------------------------------------
  214. *
  215. *
  216. *
  217. opti echo 0 dime 2 elem qua4 ;
  218. *
  219. * Maillage
  220. *
  221. p1 = 0. 0. ;
  222. p2 = 1. 0. ;
  223. p3 = 1. 1. ;
  224. p4 = 0. 1. ;
  225. li1 = d p1 1 p2 ;
  226. li2 = d p2 1 p3 ;
  227. li3 = d p3 1 p4 ;
  228. li4 = d p4 1 p1 ;
  229. mail1 = 'SURF' ( li1 'ET' li2 'ET' li3 'ET' li4 ) 'PLAN' ;
  230. *trace mail1 ;
  231. *
  232. * Modele
  233. *
  234. mod0 = 'MODE' mail1 'MECANIQUE' 'ELASTIQUE' 'ISOTROPE'
  235. 'VISCOPLASTIQUE' 'OHNO' ;
  236. mat0 = 'MATE' mod0 'YOUN' 2.1E11 'NU' .3
  237. 'N' 24 'KK' 10.E6 'K0' 116.E6 'ALFK' 1.5 'ALFR' .35 'ALF' 2.E6
  238. 'A1' 67.5E6 'C1' 1300 'BET1' 4807E6 'R1' 4 'A2' 80.6 'C2' 45
  239. 'BET2' 58480.E6 'R2' 4 'PHI' 1.
  240. 'B' 12 'GAMA' 2.E-7 'M' 2
  241. 'QMAX' 455.E6 'QSTA' 200.E6 'MU' 19 'ETA' 0.50
  242. 'EXP1' 2. 'EXP2' 2. ;
  243. *
  244. * Conditions aux limites
  245. *
  246. cl1 = 'BLOQ' li1 'UX' 'UY' ;
  247. cl2 = 'BLOQ' li3 'UY' ;
  248. cl3 = 'BLOQ' li3 'UX' ;
  249. cl0 = cl1 'ET' cl2 'ET' cl3 ;
  250. *
  251. * Chargement
  252. *
  253. dep0 = 'DEPI' cl3 .02 ;
  254. ev0 = 'EVOL' 'MANU' temps ( 'PROG' 0. 1000. ) y ( 'PROG' 0. 1. ) ;
  255. cha0 = 'CHAR' 'DIMP' dep0 ev0 ;
  256. *
  257. dt0 = 50. ;
  258. tfin0 = 1000. ;
  259. *
  260. * Appel à PASAPAS
  261. *
  262. ta1 = 'TABLE' ;
  263. ta1 .'MODELE' = mod0 ;
  264. ta1 .'CARACTERISTIQUES' = mat0 ;
  265. ta1 .'CHARGEMENT' = cha0 ;
  266. ta1 .'BLOCAGES_MECANIQUES' = cl0 ;
  267. ta1 .'TEMPS_CALCULES' = ( 'PROG' 0. 'PAS' dt0 tfin0 ) ;
  268. *
  269. TMASAU=table;
  270. ta1 . 'MES_SAUVEGARDES'=TMASAU;
  271. TMASAU .'DEFTO'=VRAI;
  272. TMASAU .'DEFIN'=VRAI;
  273. PASAPAS ta1 ;
  274. *
  275. * Post traitement
  276. *
  277. dim0 = 'DIME' ( ta1 .'TEMPS' ) ;
  278. epsp00 = 0. ;
  279. sig_th00 = 0. ;
  280. gam_th00 = 0. ;
  281. R01 = 0. ;
  282. Xx11 = 0. ;
  283. Xx21 = 0. ;
  284. sigxy1 = 'PROG' 0. ;
  285. gaxy1 = 'PROG' 0. ;
  286. sig_th1 = 'PROG' 0. ;
  287. gam_th1 = 'PROG' 0. ;
  288. geta_th1 = 'PROG' 0. ;
  289. err_e1 = 'PROG' 0. ;
  290. err_s1 = 'PROG' 0. ;
  291. err_g1 = 'PROG' 0. ;
  292. geta1 = 'PROG' 0. ;
  293. geta_th1 = 'PROG' 0. ;
  294. si ( non complet);
  295. sig_th1 = 'PROG' 0.
  296. 5.38355E+07 7.29298E+07 8.20911E+07 8.42023E+07 8.49050E+07
  297. 8.54619E+07 8.60243E+07 8.66075E+07 8.72124E+07
  298. 8.78385E+07 8.84848E+07 8.91505E+07 8.98349E+07
  299. 9.05371E+07 9.12565E+07 9.19923E+07 9.27438E+07
  300. 9.35104E+07 9.42912E+07 9.50858E+07 ;
  301. gam_th1 = 'PROG' 0.
  302. 3.33465E-04 1.09706E-03 1.98363E-03 2.95750E-03 3.94880E-03
  303. 4.94190E-03 5.93494E-03 6.92772E-03 7.92023E-03
  304. 8.91248E-03 9.90447E-03 1.08962E-02 1.18878E-02
  305. 1.28791E-02 1.38702E-02 1.48610E-02 1.58517E-02
  306. 1.68423E-02 1.78326E-02 1.88227E-02;
  307. geta_th1 = 'PROG' 0.
  308. 8.33663E-05 2.74265E-04 4.95909E-04 7.39374E-04
  309. 9.87199E-04 1.23547E-03 1.48373E-03 1.73193E-03 1.98006E-03
  310. 2.22812E-03 2.47612E-03 2.72406E-03 2.97194E-03 3.21977E-03
  311. 3.46754E-03 3.71526E-03 3.96294E-03 4.21056E-03 4.45815E-03
  312. 4.70569E-03;
  313. finsi;
  314. *
  315. bool0 = faux ;
  316. 'REPETER' bloc0 ( dim0 - 1 ) ;
  317. i0 = &bloc0 ;
  318. depl0 = ta1 .'DEPLACEMENTS'. i0 ;
  319. sigm0 = ta1 .'CONTRAINTES'. i0 ;
  320. eps0 = 'EPSI' mod0 depl0 ;
  321. def0 = ta1 .'DEFORMATIONS_INELASTIQUES'. i0 ;
  322. var0 = ta1 .'VARIABLES_INTERNES'. i0 ;
  323. *
  324. sigxy0 = 'MAXI' ( 'EXCO' sigm0 'SMXY' ) ;
  325. gaxy0 = 'MAXI' ( 'EXCO' def0 'GIXY' ) ;
  326. gam0 = 'MAXI' ( 'EXCO' eps0 'GAXY' ) ;
  327. geta0 = 'MAXI' ( 'EXCO' var0 'GPXY' ) ;
  328. *
  329. gaxy1 = gaxy1 'ET' ( 'PROG' gaxy0 ) ;
  330. sigxy1 = sigxy1 'ET' ( 'PROG' sigxy0 ) ;
  331. geta1 = geta1 'ET' ( 'PROG' geta0 ) ;
  332. *
  333. si complet;
  334. sig_th0 R00 epsp0 Xx10 Xx20 gam_th0 geta_th0 = VISOHNO
  335. ta1 i0 sig_th00 gam0 R01 epsp00 gam_th00 Xx11 Xx21 ;
  336. *
  337. sig_th00 = sig_th0 ;
  338. R01 = R00 ;
  339. epsp00 = epsp0 ;
  340. gam_th00 = gam_th0 ;
  341. Xx11 = Xx10 ;
  342. Xx21 = Xx20 ;
  343. *
  344. sig_th1 = sig_th1 'ET' ( 'PROG' sig_th0 ) ;
  345. gam_th1 = gam_th1 'ET' ( 'PROG' gam_th0 ) ;
  346. geta_th1 = geta_th1 'ET' ( 'PROG' geta_th0 ) ;
  347. sinon;
  348. sig_th0 = extr sig_th1 ( i0 + 1);
  349. gam_th0 = extr gam_th1 ( i0 + 1);
  350. geta_th0= extr geta_th1 ( i0 + 1);
  351. finsi;
  352. *
  353. *'MESS' ' Gama theorique=' gam_th0 ;
  354. *'MESS' ' Gama calculé =' gaxy0 ;
  355. *'MESS' ' sig theorique =' sig_th0 ;
  356. *'MESS' ' sig calcule =' sigxy0 ;
  357. *
  358. * Erreurs
  359. *
  360. 'SI' ( gaxy0 'NEG' 0. ) ;
  361. err_e0 = ( 'ABS' ( gam_th0 - gaxy0 ) ) / gaxy0 ;
  362. err_e0 = err_e0 * 100. ;
  363. 'SINON' ;
  364. err_e0 = 0. ;
  365. 'FINSI' ;
  366. 'SI' ( sigxy0 'NEG' 0. ) ;
  367. err_s0 = ( 'ABS' ( sig_th0 - sigxy0 ) ) / sigxy0 ;
  368. err_s0 = err_s0 * 100. ;
  369. 'SINON' ;
  370. err_s0 = 0. ;
  371. 'FINSI' ;
  372. *mess ' err_e0 , err_s0 =' err_e0 err_s0 ;
  373. err_e1 = err_e1 'ET' ( 'PROG' err_e0 ) ;
  374. err_s1 = err_s1 'ET' ( 'PROG' err_s0 ) ;
  375. 'SI' ( geta0 '>' 0. ) ;
  376. err_g0 = ( 'ABS' ( geta_th0 - geta0 ) ) / geta0 ;
  377. err_g0 = err_g0 * 100. ;
  378. 'SINON' ;
  379. err_g0 = 0. ;
  380. 'FINSI' ;
  381. err_g1 = err_g1 'ET' ( 'PROG' err_g0 ) ;
  382. *mess ' err_g0,geta0 , geta_th0 = ' err_g0 geta0 geta_th0 ;
  383. 'SI' ( ( ( err_e0 '>' 1.E-2 ) 'OU' ( err_s0 '>' 1.E-2 ) ) 'OU'
  384. ( err_g0 '>' 1.E-2 ) ) ;
  385. bool0 = vrai ;
  386. 'FINSI' ;
  387. *
  388. 'FIN' bloc0 ;
  389. *
  390. 'SI' ( bool0 'EGA' vrai ) ;
  391. 'ERRE' 5 ;
  392. 'SINON' ;
  393. 'ERRE' 0 ;
  394. 'FINSI' ;
  395. * Traces
  396. *
  397. trac1 = 'EVOL' 'MANU' 'gama' gaxy1 'sigm' sigxy1 ;
  398. trac2 = 'EVOL' 'MANU' 'gama' gam_th1 'sigm' sig_th1 ;
  399. TAB = 'TABLE' ;
  400. TAB. 1 = 'MARQ PLUS ' ;
  401. TAB. 2 = 'MARQ CROI ' ;
  402. TAB.'TITRE' = 'TABLE' ;
  403. TAB.'TITRE'. 1 = MOT 'THEORIE' ;
  404. TAB.'TITRE'. 2 = MOT 'CALCUL' ;
  405. *'DESSIN' ( trac2 'ET' trac1 )
  406. *'TITR' ' Comparaison theorie calcul'
  407. *'LEGE' TAB ;
  408. trac3 = 'EVOL' 'MANU' 'gama' gaxy1 'erreur_%' err_e1 ;
  409. trac4 = 'EVOL' 'MANU' 'gama' gaxy1 'erreur_%' err_s1 ;
  410. TAB = 'TABLE' ;
  411. TAB. 1 = 'MARQ PLUS ' ;
  412. TAB. 2 = 'MARQ CROI ' ;
  413. TAB.'TITRE' = 'TABLE' ;
  414. TAB.'TITRE'. 1 = MOT 'GAMA' ;
  415. TAB.'TITRE'. 2 = MOT 'CONTRAINTE' ;
  416. *'DESSIN' ( trac3 'ET' trac4 )
  417. *'TITR' ' Evolution des erreurs en %'
  418. *'LEGE' TAB ;
  419. trac5 = 'EVOL' 'MANU' 'gama' gaxy1 'erreur_%' err_g1 ;
  420. trac6 = 'EVOL' 'MANU' 'gama' gaxy1 'geta' geta_th1 ;
  421. trac7 = 'EVOL' 'MANU' 'gama' gaxy1 'geta' geta1 ;
  422. 'SI' ( geta0 '>' 0. ) ;
  423. TAB = 'TABLE' ;
  424. TAB. 1 = 'MARQ PLUS ' ;
  425. TAB. 2 = 'MARQ CROI ' ;
  426. TAB.'TITRE'= 'TABLE' ;
  427. TAB.'TITRE'. 1 = MOT 'THEORIE' ;
  428. TAB.'TITRE'. 2 = MOT 'CALCUL' ;
  429. *'DESSIN' ( trac6 'ET' trac7 )
  430. *'TITR' ' Geta calcul theorie'
  431. *'LEGE' TAB ;
  432. *'DESSIN' trac5 'TITR' ' Erreur sur geta en %' ;
  433. 'FINSI' ;
  434.  
  435. list sig_th1;
  436. list gam_th1;
  437. list geta_th1;
  438. *
  439. *
  440. 'FIN' ;
  441.  
  442.  
  443.  
  444.  
  445.  
  446.  
  447.  
  448.  
  449.  
  450.  
  451.  
  452.  
  453.  

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