Télécharger simtrc.dgibi

Retour à la liste

Numérotation des lignes :

  1. * fichier : simtrc.dgibi
  2. ************************************************************************
  3. ************************************************************************
  4. SAUT PAGE ;
  5. complet = vrai ;
  6. GRAPH = 'F' ;
  7. *********************************************************************
  8. * simtrc.dgibi *
  9. * Simulation du trc avec l'operateur comp *
  10. * Prise en compte de la concentration en carbone (cte) *
  11. * version initiale : Martinez le 30/07/98 *
  12. *********************************************************************
  13. * mettre complet = vrai pour generer le trc du 16MND5
  14. **** Parametres du calcul :
  15. **** Vitesse de refroidissement
  16. *
  17. lis_ref1 = prog -0.05 -0.1 -0.15 -0.2 -0.3 -0.5 -1. -2. -3. -4. -5.
  18. -6. -7. -8. -9. -10. -12. -15. -18. -20. -25. -30.
  19. -40. -50. -60. -80. -100. -400. ;
  20. lis_ref1 = prog -0.05 -0.1 -0.3 -0.4 -0.5 -1. -2. -3. -4. -5. -7. -10.
  21. -15. -25. -35. -40. -60. -80. -150. ;
  22. lis_ref2 = prog -0.07 -0.11 -0.18 -0.23 -0.4 -0.57 -1.3 -2.8 -3.1
  23. -4.2 -5.5 -6.4 -7.3 -8.7 -9.9 -10.01 -12.3 -15.5
  24. -19. -23. -26. -34. -45. -57. -61. -88. -300. -390. ;
  25. lis_ref = lis_ref1 ;
  26. *
  27. **** Delta Temperature
  28. d_tempe = 2. ;
  29. *
  30. ******** INITIALISATION DU DEPOUILLEMENT ***************************
  31. *
  32. dfer = 100. ;
  33. dbai = 100. ;
  34. dmar = 100. ;
  35. ffer = 100. ;
  36. fbai = 100. ;
  37. fmar = 100. ;
  38. tdf = 1. ; tff = 1. ;
  39. tdb = 1. ; tfb = 1. ;
  40. tdm = 1. ; tfm = 1. ;
  41. lis_dfer = prog ;
  42. lis_dbai = prog ;
  43. lis_dmar = prog ;
  44. lis_tdf = prog ;
  45. lis_tdb = prog ;
  46. lis_tdm = prog ;
  47. lis_ffer = prog ;
  48. lis_fbai = prog ;
  49. lis_tff = prog ;
  50. lis_tfb = prog ;
  51. lis_refr = prog ;
  52. lis_pfer = prog ;
  53. lis_pbai = prog ;
  54. lis_pmar = prog ;
  55. *
  56. **** LECTURE DES DONNEES DU DIAGRAMME TRC **************************
  57. *
  58. DTRC_1 = nuage 'TP'*flottant 'ZFF'*flottant 'ZFB'*flottant
  59. 'TDF'*flottant 'TFF'*flottant 'TDB'*flottant 'TFB'*flottant
  60. -0.05 0.67 0.33 769. 644. 548. 395.
  61. -0.1 0.45 0.55 752. 644.0 566.0 395.0
  62. -0.3 0.16 0.84 714.0 639.0 588.0 395.0
  63. -0.4 0.06 0.94 700.0 659.0 591.0 395.0
  64. -0.5 0. 1. 700.0 690.0 593.0 395.0
  65. -1.0 0. 0.96 700.0 690. 600.0 395.0
  66. -2.0 0. 0.91 700.0 690.0 588.0 395.0 ;
  67. DTRC_1 = DTRC_1 et (nuage 'TP'*flottant 'ZFF'*flottant 'ZFB'*flottant
  68. 'TDF'*flottant 'TFF'*flottant 'TDB'*flottant 'TFB'*flottant
  69. -3.0 0. 0.87 700.0 390.0 581.0 396.0
  70. -4.0 0.0 0.69 700.0 690.0 573.0 396.0
  71. -5.0 0.0 0.55 700.0 690.0 568.0 398.0
  72. -7.0 0.0 0.46 700.0 690.0 559.0 400.0
  73. -10.0 0.0 0.34 700.0 690.0 543.0 402.0
  74. -15.0 0.0 0.22 700.0 690.0 525.0 405.0
  75. -25.0 0.0 0.05 700.0 690.0 498.0 415.0) ;
  76. DTRC_1 = DTRC_1 et (nuage 'TP'*flottant 'ZFF'*flottant 'ZFB'*flottant
  77. 'TDF'*flottant 'TFF'*flottant 'TDB'*flottant 'TFB'*flottant
  78. -35.0 0.0 0. 710.0 700.0 430.0 425.0
  79. -40.0 0.0 0. 710.0 700.0 430.0 425.0
  80. -60.0 0.0 0. 710.0 700.0 430.0 425.0
  81. -80.0 0.0 0.0 710.0 700.0 430.0 425.0
  82. -150.0 0.0 0.0 710.0 700.0 430.0 425.0 );
  83. *
  84. * Chauffage (modele de leblond)
  85. *
  86. DTCH_1 = nuage
  87. 'COMP' 'TE' 730.0 750.0 770.0 790.0 810.0 830.0 840.0 860.0
  88. 880.0 900.0
  89. 'COMP' 'CK' 0.0 0.22 0.53 1.05 2.02 4.55 5.6 7.37 10.77 20.0
  90. 'COMP' 'CL' 1.0 0.97 0.94 0.87 0.76 0.45 0.0 0.0 0.0 0.0 ;
  91.  
  92. **** LECTURE DU MAILLAGE *******************************************
  93. *
  94. opti dime 2 elem qua8 mode axis ;
  95. elmat = table ;
  96. piece = table ;
  97. a00 = 0. 0. ;
  98. a01 = 0.01 0. ;
  99. a02 = 0.01 0.01 ;
  100. a03 = 0. 0.01 ;
  101. d1 = droi 1 a00 a01 ;
  102. d2 = droi 1 a01 a02 ;
  103. d3 = droi 1 a02 a03 ;
  104. d4 = droi 1 a03 a00 ;
  105. l_ext = (d1 et d2 et d3) ;
  106. tot = dalle d1 d2 d3 d4 plan ;
  107. *
  108. ******** DEFINITION D'UN MODELE *************************************
  109. *
  110. p_mode1 = mode tot 'THERMIQUE' 'ISOTROPE' 'CONS' me1 ;
  111. si faux ;
  112. p_mode2 = mode tot 'TAILGRAI' 'ISOTROPE' 'CONS' me2 ;
  113. p_mode3 = mode tot 'DIFFUSION' 'CONS' carb1 ;
  114. finsi ;
  115.  
  116. momic_1 = mode tot melange cerem ;
  117. mamic_1 = mate momic_1
  118. * changement de type de certaines donnees
  119. 'AC1' 730. 'AR1' 760. 'MS0' 422.
  120. 'BETA' -0.0307 'AC' 9146. 'AA' 37.5 'ZS' 0. 'TPLM' -0.5 'CARB' 0.0074
  121. 'ACAR' 540. 'DG0' 0.00001 'AGRA' 11200.
  122. 'TIHT' 1000. 'TFHT' 200. 'DTHT' 2. 'NHTR' DTRC_1 'NLEB' DTCH_1
  123. 'MS' 400. ;
  124.  
  125. phamic_1 = manu chml momic_1 'AUST' 1. 'FERR' 0. 'BAIN' 0. 'MART' 0.
  126. 'RIGIDITE' ;
  127. *********************************************************************
  128. ******** BOUCLE SUR LES HISTOIRES THERMIQUES ************************
  129. *********************************************************************
  130. *
  131. n_bou1 = dime lis_ref ;
  132. repeter bou_1 n_bou1 ;
  133. *
  134. ******** CHARGEMENT THERMIQUE **************************************
  135. *
  136. t0tempe = 1000.0 ;
  137. t1tempe = 100.0 ;
  138. *
  139. t_chtem = manu CHPO tot 1 'T' 1. ;
  140. t0chtem = t0tempe * t_chtem ;
  141. *
  142. app_fer = 0 ;
  143. app_bai = 0 ;
  144. app_mar = 0 ;
  145. *
  146. ******** INITIALISATION *********************************
  147. *
  148. si faux ;
  149. chcarb = manu 'CHML' p_mode3 'ACC' 0.0074 'TYPE' 'ACTIVITE' ;
  150. chdg = manu 'CHML' p_mode2 'DG' 10.e-6 'TYPE' 'GRAIN' ;
  151. finsi ;
  152. p_table = table ;
  153. p_table.'TEMPERATURES' = table ;
  154. p_table.'MATPHASES' = table ;
  155. p_table.'TRC' = table ;
  156. *
  157. p_table.TEMPERATURES.0 = t0chtem ;
  158. p_table.MATPHASES.0 = mamic_1 et phamic_1 ;
  159. lma_1 = extr p_table.MATPHASES.0 comp ;
  160. *
  161. lis_tps=prog ;
  162. lis_te =prog ;
  163. lis_pa =prog ;
  164. lis_pf =prog ;
  165. lis_pb =prog ;
  166. lis_pm =prog ;
  167. *
  168. *
  169. *********************************************************************
  170. ******** BOUCLE SUR LE TEMPS ****************************************
  171. *********************************************************************
  172. *
  173. t_point = extr lis_ref &bou_1 ;
  174. *
  175. t0temps = 0. ;
  176. t1temps = (t1tempe - t0tempe) / t_point ;
  177. atpnt = ABS t_point ;
  178. deltt = d_tempe / atpnt ;
  179. n_bou2 = enti((t1temps - t0temps) / deltt) + 1 ;
  180. *
  181. t_ps = t0temps - deltt ;
  182. *
  183. mess '=============================================================' ;
  184. mess '=============================================================' ;
  185. mess ' Vitesse de refroidissement : ' t_point ;
  186. *
  187. repeter bou_2 n_bou2 ;
  188. *
  189. chdtps1 = manu chml momic_1 'DTPS' deltt ;
  190. chtemp0 = manu chml tot temp t_ps ;
  191. chtemp1 = manu chml tot temp (t_ps + deltt) ;
  192. t_ps = t_ps + deltt ;
  193. p_table.temperatures.&bou_2 = p_table.temperatures.(&bou_2-1) +
  194. (t_chtem * t_point * deltt) ;
  195. n1 = (dime p_table.temperatures) - 1 ;
  196. si (n1 > 0) ;
  197. cot1 = p_table.temperatures.&bou_2 ;
  198. cot0 = p_table.temperatures.(&bou_2-1) ;
  199. dt1 = cot1 - cot0 ;
  200. dtp1 = dt1 / deltt ;
  201. max_dt = maxi dt1 ;
  202. cht1 = chan 'CHAM' cot1 tot ;
  203. cht0 = chan 'CHAM' cot0 tot ;
  204. chp0 = p_table.'MATPHASES'.(&bou_2-1) ;
  205. chtp1 = chan cham dtp1 tot ;
  206. htab1 = p_table.'TRC' ;
  207.  
  208. cho1 = comp momic_1 (cht0 et chtemp0 et chp0 et chdtps1)
  209. (cht1 et chtemp1) ;
  210.  
  211. chp1 = exco cho1 lma_1 ;
  212.  
  213. p_table.'MATPHASES'.&bou_2 = chp1 ;
  214. finsi ;
  215. *=====================================================================
  216. **** verification des temperatures de debut et de fin de chgt de phase
  217. *=====================================================================
  218. *
  219. p_fe0 = maxi (exco 'FERR' chp0) ;
  220. p_ba0 = maxi (exco 'BAIN' chp0) ;
  221. p_au = maxi (exco 'AUST' chp1) ;
  222. p_fe = maxi (exco 'FERR' chp1) ;
  223. p_ba = maxi (exco 'BAIN' chp1) ;
  224. p_ma = maxi (exco 'MART' chp1) ;
  225. t_app = maxi (exco T cot1) ;
  226. tr_ma = maxi (exco chp1 MS) ;
  227. *
  228. lis_tps= lis_tps et (prog t_ps) ;
  229. lis_te = lis_te et (prog t_app) ;
  230. lis_pa = lis_pa et (prog p_au) ;
  231. lis_pf = lis_pf et (prog p_fe) ;
  232. lis_pb = lis_pb et (prog p_ba) ;
  233. lis_pm = lis_pm et (prog p_ma) ;
  234. *
  235. **** Temperatures d'apparition :ferrite, bainite et martensite
  236. *
  237. si (p_fe > 0.001) ;
  238. si (app_fer EGA 0) ;
  239. app_fer = 1 ;
  240. t_app = maxi (exco T cot1) ;
  241. dfer = t_app ;
  242. tdf = t_ps ;
  243. finsi ;
  244. finsi ;
  245. si (p_ba > 0.001) ;
  246. si (app_bai EGA 0) ;
  247. app_bai = 1 ;
  248. t_app = maxi (exco T cot1) ;
  249. dbai = t_app ;
  250. tdb = t_ps ;
  251. finsi ;
  252. finsi ;
  253. si (p_ma > 0.001) ;
  254. si (app_mar EGA 0) ;
  255. app_mar = 1 ;
  256. t_app = maxi (exco T cot1) ;
  257. dmar = t_app ;
  258. tdm = t_ps ;
  259. finsi ;
  260. finsi ;
  261. *
  262. **** Temperatures de fin de transformation de ferrite et bainite
  263. *
  264. si (app_fer EGA 1) ;
  265. d_fe = p_fe - p_fe0 ;
  266. si (d_fe < 0.000001) ;
  267. app_fer = 2 ;
  268. t_app = maxi (exco T cot1) ;
  269. ffer = t_app ;
  270. tff = t_ps ;
  271. finsi ;
  272. finsi ;
  273. si (app_bai EGA 1) ;
  274. d_ba = p_ba - p_ba0 ;
  275. si (d_ba < 0.000001) ;
  276. app_bai = 2 ;
  277. t_app = maxi (exco T cot1) ;
  278. fbai = t_app ;
  279. tfb = t_ps ;
  280. finsi ;
  281. finsi ;
  282. *
  283.  
  284. si ((non complet) et (&bou_2 > 150)) ;
  285. quitter bou_2 ;
  286. finsi ;
  287. fin bou_2 ;
  288. *
  289. lis_dfer = lis_dfer et (prog dfer) ;
  290. lis_dbai = lis_dbai et (prog dbai) ;
  291. lis_dmar = lis_dmar et (prog dmar) ;
  292. lis_tdf = lis_tdf et (prog tdf) ;
  293. lis_tdb = lis_tdb et (prog tdb) ;
  294. lis_tdm = lis_tdm et (prog tdm) ;
  295. *
  296. lis_ffer = lis_ffer et (prog ffer) ;
  297. lis_fbai = lis_fbai et (prog fbai) ;
  298. lis_tff = lis_tff et (prog tff) ;
  299. lis_tfb = lis_tfb et (prog tfb) ;
  300. *
  301. **** presentation des resultats ***************************************
  302. *
  303. mess 'ferrite' dfer ffer ;
  304. mess 'bainite' dbai fbai ;
  305. mess '==========================================================' ;
  306. *
  307. *
  308. n_f = (dime p_table.MATPHASES) - 1 ;
  309. ch4 = p_table.MATPHASES.n_f ;
  310. **** austenite
  311. p_au = maxi (exco 'AUST' ch4) ;
  312. **** ferrite
  313. p_fe = maxi (exco 'FERR' ch4) ;
  314. **** bainite
  315. p_ba = maxi (exco 'BAIN' ch4) ;
  316. **** martensite
  317. p_ma = maxi (exco 'MART' ch4) ;
  318. **** Verification des proportions *****************************
  319. p_tot = p_au + p_fe + p_ba + p_ma ;
  320. *
  321. mess ' INTG des fractions volumiques : ' p_tot ;
  322. 'SI' ('ABS' (p_tot - 1) > 1d-8) ; 'ERRE' 5; 'FINSI';
  323. mess '===============================================================';
  324. mess 'Tpoint %austenite %ferrite %bainite %martensite';
  325. mess t_point p_au p_fe p_ba p_ma ;
  326. *
  327. si (non complet) ;
  328. quitter bou_1 ;
  329. finsi ;
  330. fin bou_1 ;
  331. *
  332. ************************************************************************
  333. ******** TRACE DU TRC **************************************************
  334. ************************************************************************
  335. *
  336. ev_dfer = evol bleu manu TPS lis_tdf T lis_dfer ;
  337. ev_dbai = evol vert manu TPS lis_tdb T lis_dbai ;
  338. ev_dmar = evol manu TPS lis_tdm T lis_dmar ;
  339. ev_ffer = evol bleu manu TPS lis_tff T lis_ffer ;
  340. ev_fbai = evol vert manu TPS lis_tfb T lis_fbai ;
  341. *
  342. tabdess = table;
  343. tabdess . 1 = 'MARQ TRIA NOLI' ;
  344. tabdess . 2 = 'MARQ LOSA NOLI' ;
  345. tabdess . 3 = 'MARQ CARR NOLI' ;
  346. tabdess . 4 = 'MARQ TRIA NOLI' ;
  347. tabdess . 5 = 'MARQ LOSA NOLI' ;
  348. tabdess . 'TITRE' = table ;
  349. tabdess . 'TITRE' . 1 = MOT 'ferrite' ;
  350. tabdess . 'TITRE' . 2 = MOT 'bainite' ;
  351. tabdess . 'TITRE' . 3 = MOT 'martensite' ;
  352. tabdess . 'TITRE' . 4 = MOT 'ferrite' ;
  353. tabdess . 'TITRE' . 5 = MOT 'bainite' ;
  354. *
  355. 'SI' ('EGA' GRAPH 'O') ;
  356. dess (ev_dfer et ev_dbai et ev_dmar et ev_ffer et ev_fbai) 'LOGX'
  357. LEGE TITX 'temps' TITY 'temperature' tabdess ;
  358. 'FINSI' ;
  359. *
  360. *
  361. si (non complet) ;
  362. p_au0 = .65196 ;
  363.  
  364.  
  365. RESI=ABS((p_au-p_au0)/p_au0);
  366.  
  367.  
  368.  
  369. SI(RESI &lt;EG 1E-2);
  370. ERRE 0;
  371. SINO;
  372. ERRE 5;
  373. FINSI;
  374.  
  375. sinon ;
  376. p_au0 = 5.09126E-05 ; p_ma0 = 0.99995 ;
  377. RES_au=ABS((p_au-p_au0)/p_au0);
  378. RES_ma=ABS((p_ma-p_ma0)/p_ma0);
  379. SI((RES_au &lt;EG 1E-2) et (RES_ma &lt;EG 1E-2));
  380. ERRE 0;
  381. SINO;
  382. ERRE 5;
  383. FINSI;
  384.  
  385. finsi ;
  386.  
  387. fin;
  388.  
  389.  
  390.  
  391.  
  392.  
  393.  
  394.  
  395.  
  396.  
  397.  
  398.  

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