Télécharger metallurgie_05.dgibi

Retour à la liste

Numérotation des lignes :

  1. * fichier : metallurgie_05.dgibi
  2. ************************************************************************
  3. ************************************************************************
  4.  
  5. *__________________________________________________________________*
  6. * TEST METALLURGIE_05 *
  7. * *
  8. * CALCUL DES PROPORTIONS DE PHASE METALLURGIQUE *
  9. * *
  10. * Un MODELE thermo-metallurgique est cree et un diagramme TRC *
  11. * correspondant est cree *
  12. * *
  13. * Le modèle métallurgique est codé en GIBIANE *
  14. * - Procédure PARATHER : Mise a jour du matériaux THERMIQUE *
  15. * avec la proportion de phase *
  16. * - Procédure CHARTHER : Mise a jour des proportions de phase *
  17. * selon un schéma EULER 1 Implicite *
  18. * *
  19. * Le modèle métallurgique contient 5 phases ayant des cinétiques *
  20. * de transformation différentes *
  21. * - Metal de Base (MB) *
  22. * - Austénite *
  23. * - Martensite *
  24. * - Bainite *
  25. * - Ferrite *
  26. *__________________________________________________________________*
  27. * *
  28. * Appel a la procedure TRC.procedur pour obtenir un diagramme *
  29. * TRC du modèle métallurgique en question *
  30. *__________________________________________________________________*
  31. *
  32. 'OPTI' 'TRAC' PSC 'EPTR' 9 ;
  33.  
  34. OPTI DIME 2 ELEM 'TRI3';
  35.  
  36. TINI = 900. ;
  37. TFIN = 20. ;
  38.  
  39. * Calcul automatique de la liste des vitesses de refroidissement
  40. NBVI = 30 ;
  41. VIT1 = 250. ;
  42. VIT2 = 2. ;
  43. VLOG1 = 'LOG' VIT1;
  44. VLOG2 = 'LOG' VIT2;
  45.  
  46. PASLOG = (VLOG2 - VLOG1) / (NBVI - 1);
  47. LRELOG ='PROG' VLOG1 'PAS' PASLOG VLOG2;
  48. LISTREF='EXP' LRELOG;
  49.  
  50.  
  51. ************************************************************************
  52. * Pour faire des beaux DESSINS
  53. ************************************************************************
  54. * LISTMOTS contenant les couleurs
  55. LESCOUL = 'MOTS' 'VIOL' 'VERT' 'CYAN' 'BRIQ' 'BOUT' 'JAUN' 'OLIV'
  56. 'ORAN' 'ROUG' 'BLEU' 'BRUN' 'CARA' 'GRIS' 'NOIR' ;
  57. NBCOUL = 'DIME' LESCOUL;
  58.  
  59. * LISTMOTS contenant les marques dans DESS
  60. LESMARQ = 'MOTS' 'CROI' 'PLUS' 'MOIN' 'BARR' 'ETOI' 'CARR'
  61. 'LOSA' 'ROND' 'TRID' 'TRIU' 'TRIL' 'TRIR';
  62. NBMARQ = 'DIME' LESMARQ;
  63. ************************************************************************
  64.  
  65.  
  66. ************************************************************************
  67. * Debut de la procedure CHARTHER
  68. ************************************************************************
  69. 'DEBP' CHARTHER PRECED*'TABLE' tt*'FLOTTANT' ;
  70. ************************************************************************
  71. * PROCEDURE CHARTHER
  72. * - met a jour la fraction de PHASE dans le materiaux
  73. * Intégration numérique selon un schéma d'Euler d'ordre 1 avec la
  74. * TETA méthode.
  75. ************************************************************************
  76. ETAB = PRECED.'WTABLE' ;
  77. XTOLR = ETAB.'PRECISION' ;
  78. XZPREC =('VALE' 'PREC') * 100.D0 ;
  79.  
  80.  
  81. SI ('EXIS' PRECED 'PTOL') ;
  82. XTOLA = PRECED.'PTOL';
  83. SINO;
  84. XTOLA = XTOLR ;
  85. FINS;
  86. SI ('EXIS' PRECED 'NITERPHASE_MAX') ;
  87. NITMAX = PRECED.'NITERPHASE_MAX';
  88. SINO;
  89. NITMAX = 200 ;
  90. FINS;
  91. SI ('EXIS' PRECED 'IGNORE_NON_CONV') ;
  92. BIGNORE = PRECED.'IGNORE_NON_CONV';
  93. SINO;
  94. BIGNORE = FAUX ;
  95. FINS;
  96.  
  97. MODCOND = ETAB.'MOD_COND';
  98. MODRCOND = MODCOND;
  99. PARA0 ='VALE' 'PARA' ;
  100. SI ('EGA' ('TYPE' MODRCOND) 'TABLE');
  101. 'OPTI' 'PARA' VRAI;
  102. FINS;
  103.  
  104. * Récuperation du numero de PAS du calcul et du DT
  105. NPA ='DIME' PRECED.'TEMPS';
  106. DT = ETAB.'DT' ;
  107.  
  108. * Récuperation des proportions de phase en debut de pas et courant
  109. Phas1 = 'REDU' (PRECED.'PROPORTIONS_PHASES' .(NPA - 1)) MODRCOND;
  110. LISCOM = 'EXTR' Phas1 'COMP' ;
  111. Phas1 = 'REDU' Phas1 MODRCOND;
  112. SI (EXIS PRECED.'PROPORTIONS_PHASES' NPA ) ;
  113. Phas2 = 'REDU' (PRECED.'PROPORTIONS_PHASES' . NPA) MODRCOND ;
  114. SINO ;
  115. Phas2 = Phas1;
  116. FINS ;
  117.  
  118. TPS_1 = PRECED.'TEMPS'.(NPA - 1);
  119. TPS_2 = tt ;
  120.  
  121. T_CHPO1 ='EXCO' PRECED.'CONTINUATION'.'TEMPERATURES' 'T' 'SCAL' ;
  122. T_CHPO2 ='EXCO' ETAB .'THER_COURANT' 'T' 'SCAL' ;
  123. T_CHAM1 ='CHAN' 'CHAM' T_CHPO1 MODRCOND ;
  124. T_CHAM2 ='CHAN' 'CHAM' T_CHPO2 MODRCOND ;
  125.  
  126. TPOINT = (T_CHAM2 - T_CHAM1) / (TPS_2 - TPS_1);
  127. MTPOIN = -1.D0 * TPOINT;
  128. TPOINT1 ='CHAN' 'COMP' TPOINT 'TPOI';
  129.  
  130. LREAC = TPHASE . 'REACTIONS' ;
  131. TREAC = TPHASE . 'TYPE' ;
  132. NBREAC ='DIME' TREAC ;
  133. NBPHAS ='MAXI' LREAC ;
  134.  
  135. TPHASP ='TABL';
  136. REPE SURREAC NBREAC;
  137. IREAC = &SURREAC;
  138. TPHASP.IREAC ='REDU' TPHASE.IREAC MODRCOND ;
  139. FIN SURREAC;
  140.  
  141. * THETA :instant relatif sur le Sous-Pas pour sont tirés les paramètres
  142. THETA = 0.5D0 ;
  143.  
  144. TPS_I =((1.D0 - THETA)*TPS_1 ) + (THETA*TPS_2 );
  145. T_CHAM_I =((1.D0 - THETA)*T_CHAM1) + (THETA*T_CHAM2);
  146. ETATi =('CHAN' 'COMP' T_CHAM_I 'T') 'ET' TPOINT1;
  147.  
  148. * Convergence sur les proportions de phase
  149. REPE CONVERG NITMAX;
  150. ICONV = &CONVERG;
  151. Phas_I =((1.D0 - THETA)*Phas1 ) + (THETA*Phas2 );
  152. * 'MESS' ' ICONV=' ICONV;
  153.  
  154. Ai = 'REDU' ('VIDE' 'MCHAML') MODRCOND;
  155. REPE SURPAH NBPHAS;
  156. * Boucle sur toutes les phases
  157. IPHAS = &SURPAH;
  158.  
  159. REPE SURREAC NBREAC;
  160. * Boucle sur toutes les reactions possibles
  161. IREAC =&SURREAC;
  162. II ='EXTR' LREAC (2 * (IREAC - 1) + 1);
  163. JJ ='EXTR' LREAC (2 * IREAC );
  164.  
  165. SI (('EGA' IPHAS JJ) 'OU' ('NEG' IPHAS II));
  166. 'ITER' SURREAC;
  167. FINS;
  168.  
  169. CTYP ='EXTR' TREAC IREAC ;
  170. * 'MESS' ('CHAI' 'Reaction 'II '==>' JJ ' : ' CTYP);
  171.  
  172. NOMi ='EXTR' LISCOM II ;
  173. Pi1 ='EXCO' Phas1 NOMi 'SCAL';
  174. Pi ='EXCO' Phas_I NOMi 'SCAL';
  175.  
  176. NOMj ='EXTR' LISCOM JJ ;
  177. Pj1 ='EXCO' Phas1 NOMj 'SCAL';
  178. Pj ='EXCO' Phas_I NOMj 'SCAL';
  179.  
  180. * Instanciation des champs pour T et dT/dt donné
  181. CHPROPi ='VARI' 'NUAG' MODRCOND TPHASP.IREAC ETATi 'NOEUD';
  182.  
  183. SI ('EGA' CTYP 'LEBL');
  184. * Cas Leblond
  185. Pjeq ='EXCO' CHPROPi 'PEQ' 'SCAL';
  186. Tauij='EXCO' CHPROPi 'TAU' 'SCAL';
  187. Fij ='EXCO' CHPROPi 'F' 'SCAL';
  188. Kij = 1. * Pjeq / Tauij ;
  189. Kij2 = (1. - Pjeq) / Tauij ;
  190.  
  191. Aij = -1 * ((Kij * Pi) - (Kij2 * Pj)) * Fij ;
  192. Aij = Aij * (Aij 'MASQ' 'INFERIEUR' 0.D0) ;
  193. FINS;
  194.  
  195. SI ('EGA' CTYP 'KOMA');
  196. * Cas Koistinen-Marburger
  197. KM ='EXCO' CHPROPi 'KM' 'SCAL' ;
  198. MS ='EXCO' CHPROPi 'MS' 'SCAL' ;
  199.  
  200. MASQ1 ='MASQ' T_CHAM_I 'EGINFE' MS ;
  201. MASQ2 ='MASQ' TPOINT 'EGINFE' 0.D0 ;
  202. MASQ1 ='REDU' MASQ1 MODRCOND ;
  203. MASQ2 ='REDU' MASQ2 MODRCOND ;
  204. Kij = MASQ1 * KM ;
  205. Fij = MASQ2 * TPOINT ;
  206.  
  207. Aij = Kij * Fij * Pi ;
  208. FINS;
  209.  
  210. * Controle pour que Pi <= 1 >= 0
  211. SI ('EXIS' Ai NOMi);
  212. Aiprec = 'CHAN' 'COMP' ('EXCO' Ai NOMi) 'SCAL' ;
  213. SINO;
  214. Aiprec = 0.D0;
  215. FINS;
  216.  
  217. Aitest = Aiprec '+' Aij;
  218. Pitest = Pi1 '+' (DT * Aitest);
  219.  
  220. MASQiinf ='MASQ' Pitest 'INFERIEUR' 0.D0 ;
  221. MASQisup ='MASQ' Pitest 'SUPERIEUR' 1.D0 ;
  222. MASQiok ='MASQ' (MASQiinf + MASQisup) 'INFERIEUR' 0.5D0;
  223. MASQiinf ='REDU' MASQiinf MODRCOND ;
  224. MASQisup ='REDU' MASQisup MODRCOND ;
  225. MASQiok ='REDU' MASQiok MODRCOND ;
  226.  
  227. SI('MAXI' MASQiinf '>EG' 0.5);
  228. * Correction de Aij
  229. Aic = MASQiinf * (((XZPREC - Pi1)/DT)
  230. - Aitest);
  231. Aij = Aij '+' Aic;
  232. FINS;
  233.  
  234. SI('MAXI' MASQisup '>EG' 0.5);
  235. * Correction de Aij
  236. Aic = MASQisup * (((1.D0 - XZPREC - Pi1)/DT)
  237. - Aitest);
  238. Aij = Aij '+' Aic;
  239. FINS;
  240.  
  241. Ai = ( 'CHAN' 'COMP' Aij NOMi ) '+'
  242. (('CHAN' 'COMP' Aij NOMj) * -1.D0) '+'
  243. Ai;
  244. FIN SURREAC;
  245. FIN SURPAH;
  246.  
  247. * Intégration explicite sur le pas de temps
  248. Phas2p= Phas2; 'COMM' 'Iteration precedente pour convergence';
  249. Phas2 = Phas1 '+' (DT * Ai);
  250.  
  251. * Test sur la convergence absolue uniquement
  252. SI (ICONV > 1);
  253. DIFFABS = 'ABS' (Phas2 - Phas2p) ;
  254. DIFFI =('ABS' Phas2) - ('ABS' Phas2p) ;
  255. MASQI1 = 'MASQ' DIFFI 'SUPERIEUR' 0.D0 ;
  256. MASQI2 = 1.D0 - MASQI1 ;
  257. MASQI1 = 'REDU' MASQI1 MODRCOND ;
  258. MASQI2 = 'REDU' MASQI2 MODRCOND ;
  259. MAXD1 = 'ABS' ((Phas2 * MASQI1) + (Phas2p * MASQI2));
  260.  
  261. CRITNUM = DIFFABS - (MAXD1 * XZPREC);
  262. CRITREL = DIFFABS - (('ABS' Phas2p) * XTOLR );
  263. CRITABS = DIFFABS - XTOLA ;
  264. TOTO = 'MAXI' CRITNUM;
  265. TITI = 'MAXI' CRITREL;
  266. TATA = 'MAXI' CRITABS;
  267. MASQNUM ='MASQ' CRITNUM 'SUPERIEUR' 0.D0 ;
  268. MASQREL ='MASQ' CRITREL 'SUPERIEUR' 0.D0 ;
  269. MASQABS ='MASQ' CRITABS 'SUPERIEUR' 0.D0 ;
  270.  
  271. * 'MESS' 'COMV:' ICONV (MAXI CRITNUM) (MAXI CRITREL) (MAXI CRITABS);
  272. SI (('MAXI' (MASQNUM * MASQREL * MASQABS)) '<' 0.5D0);
  273. 'QUIT' CONVERG;
  274. FINS;
  275.  
  276. * Compteur MAX atteint
  277. SI(ICONV 'EGA' NITMAX);
  278. ERRI = 'MAXI' ('PROG'
  279. ('MAXI' CRITNUM) ('MAXI' CRITREL) ('MAXI' CRITABS));
  280. 'MESS' '*******************************************************';
  281. 'MESS' ' Comportement CHARTHER non converge';
  282. 'MESS' ' Comportement : ICONV=' ICONV 'ERRI =' ERRI;
  283. 'MESS' ('MAXI' CRITNUM) ('MAXI' CRITREL) ('MAXI' CRITABS) ;
  284. 'MESS' '*******************************************************';
  285. SI ('NON' BIGNORE);
  286. 'ERRE' 21;
  287. FINS;
  288. FINS;
  289. FINS;
  290. FIN CONVERG;
  291.  
  292. PRECED.'PROPORTIONS_PHASES'. NPA = 'REDU' Phas2 MODCOND;
  293.  
  294. ************************************************************************
  295. * Remplissage des indices de sortie : ADDI_MATRICE ET ADDI_SECOND
  296. ************************************************************************
  297. TAA ='TABL';
  298. * Actuellement aucun second membre ni aucune rigidite additionnelle
  299.  
  300. * Remise en place de la parallélisation comme au depart
  301. 'OPTI' 'PARA' PARA0 ;
  302. 'FINP' TAA;
  303. ************************************************************************
  304. * Fin de la procedure CHARTHER
  305. ************************************************************************
  306.  
  307. ************************************************************************
  308. * Debut de la procedure PARATHER
  309. ************************************************************************
  310. 'DEBP' PARATHER PRECED*'TABLE' TPS1*'FLOTTANT';
  311. ************************************************************************
  312. * PROCEDURE PARATHER :
  313. * DESCRIPTION :
  314. * -------------
  315. * Cette procedure permet de modifier le materiaux avant l'appel a
  316. * VARI 'NUAG' dans TRANSNON.
  317. * - Les composantes K, C et RHO sont une moyenne arithméthique
  318. * pondérée par la fraction de phase des Ki, Ci et RHOi
  319. * L'indice ETAB.'MAT_TOT' est remplacé
  320. *
  321. * ENTREES :
  322. * ---------
  323. * - PRECED : TABLE complete de PASAPAS
  324. * - TPS1 : Temps courant
  325. *
  326. * SORTIES :
  327. * ---------
  328. * - Aucune
  329. *
  330. ************************************************************************
  331. ETAB = PRECED.'WTABLE';
  332. MOD1 = ETAB.'MOD_TOT' ;
  333. T1 = ETAB.'THER_COURANT' ;
  334. T1 ='CHAN' 'CHAM' T1 MOD1 'RIGIDITE' 'CARACTERISTIQUES';
  335.  
  336. MAT_ORIG= ETAB.'MAT_TOT';
  337. COMPORIG='EXTR' MAT_ORIG 'COMP';
  338. NBCOMP ='DIME' COMPORIG;
  339.  
  340. MAT0 ='VIDE' 'MCHAML';
  341. REPE SURCOM NBCOMP;
  342. II = &SURCOM;
  343. LACOMP ='EXTR' COMPORIG II;
  344. SI(('NEG' LACOMP 'K' ) 'ET'
  345. ('NEG' LACOMP 'RHO') 'ET'
  346. ('NEG' LACOMP 'C' ));
  347. MAT0 = MAT0 'ET' ('EXCO' LACOMP MAT_ORIG);
  348. FINS;
  349. FIN SURCOM;
  350.  
  351. * Instanciation du matériaux de chaque phase
  352. MATPHAS ='REDU' MOD1 MATPHAS ;
  353. MAT2 ='VARI' 'NUAG' MOD1 MATPHAS T1 'RIGIDITE';
  354.  
  355. * On fait ensuite la moyenne qui nous interesse (Ponderation par la
  356. * proportion de phase)
  357. NPA ='DIME' PRECED.'TEMPS';
  358. SI ('EXIS' PRECED.'PROPORTIONS_PHASES' NPA ) ;
  359. MCHPHA = PRECED.'PROPORTIONS_PHASES' . NPA ;
  360. SINO ;
  361. MCHPHA = PRECED.'PROPORTIONS_PHASES' .(NPA - 1);
  362. PRECED.'PROPORTIONS_PHASES' . NPA = MCHPHA ;
  363. FINS ;
  364.  
  365. MCHPHA ='CHAN' 'RIGIDITE' MCHPHA MOD1 ;
  366. MCHPHA ='CHAN' 'TYPE' MCHPHA 'CARACTERISTIQUES' ;
  367. MOPROP1='EXTR' MCHPHA 'COMP' ;
  368. MOMAT2 ='EXTR' MAT2 'COMP' ;
  369.  
  370. MCHK ='CHAN' 'TYPE' ('VIDE' 'MCHAML') 'CARACTERISTIQUES' ;
  371. MCHR ='CHAN' 'TYPE' ('VIDE' 'MCHAML') 'CARACTERISTIQUES' ;
  372. MCHC ='CHAN' 'TYPE' ('VIDE' 'MCHAML') 'CARACTERISTIQUES' ;
  373.  
  374. * Boucle sur les phases
  375. NBPHA = 'DIME' MOPROP1;
  376. REPE SURP NBPHA;
  377. IP = &SURP ;
  378. PROPIP ='EXCO' MCHPHA ('EXTR' MOPROP1 IP) 'SCAL' ;
  379. * Moyenne sur les K
  380. IB = IP;
  381. MCHK = (PROPIP * ('EXCO' MAT2 ('EXTR' MOMAT2 IB) 'SCAL')) + MCHK ;
  382.  
  383. * Moyenne sur les RHO
  384. IB = IB + NBPHA;
  385. MCHR = (PROPIP * ('EXCO' MAT2 ('EXTR' MOMAT2 IB) 'SCAL')) + MCHR ;
  386.  
  387. * Moyenne sur les CP
  388. IB = IB + NBPHA;
  389. MCHC = (PROPIP * ('EXCO' MAT2 ('EXTR' MOMAT2 IB) 'SCAL')) + MCHC ;
  390. FIN SURP;
  391.  
  392. MCHK ='CHAN' 'COMP' 'K' MCHK ;
  393. MCHR ='CHAN' 'COMP' 'RHO' MCHR ;
  394. MCHC ='CHAN' 'COMP' 'C' MCHC ;
  395.  
  396. * REMPLACEMENT DU MATERIAUX
  397. ETAB.'MAT_TOT' = MCHK 'ET' MCHR 'ET' MCHC 'ET' MAT0 ;
  398.  
  399. 'FINP';
  400. ************************************************************************
  401. * Fin de la procedure PARATHER
  402. ************************************************************************
  403.  
  404. *MAILLAGE
  405. P1 = 0. 0. ;
  406. P2 = 1. 0. ;
  407. P3 = 0. 1. ;
  408.  
  409. MAILT = MANU 'TRI3' P1 P2 P3;
  410.  
  411. *MODELE
  412. MODTHE = MODE MAILT 'THERMIQUE' 'CONDUCTION' 'CONS' 'MAT1';
  413. MODTOT = MODTHE;
  414.  
  415. ************************************************************************
  416. * Definition de la metallurgie : DEBUT
  417. ************************************************************************
  418. * 1- Métal de base
  419. * 2- Martensite
  420. * 3- Bainite
  421. * 4- Ferrite
  422. * 5- Austénite
  423.  
  424. * Evolution des proprietes thermiques pour les phases pures
  425. MCHK = VIDE 'MCHAML';
  426. MCHRHO = VIDE 'MCHAML';
  427. MCHC = VIDE 'MCHAML';
  428. CTYP = MOT 'CARACTERISTIQUES';
  429. ********************
  430. * 1- Métal de base *
  431. ********************
  432. IPAHS = 1;
  433. CPHAS = CHAI 'K' IPAHS;
  434. LTKP1 = PROG 0 55 113 162 191 243 293 392
  435. 457 507 605 655 756 795 840 856
  436. 900 950 1000 1101 1202 1303 1400 1500
  437. 1502 1600 ;
  438. LKP1 = PROG 0.0376 0.0389 0.0401 0.0407 0.0407 0.0404 0.0398 0.038
  439. 0.0364 0.0352 0.0329 0.0317 0.0291 0.0273 0.0252 0.0248
  440. 0.0253 0.0261 0.027 0.0283 0.0299 0.0314 0.0328 0.0343
  441. 0.05 0.05;
  442. EVKP1 = EVOL 'MANU' 'T' LTKP1 CPHAS LKP1;
  443. MCHK = MCHK ET (MANU 'CHML' MODTHE CPHAS EVKP1 'TYPE' CTYP) ;
  444.  
  445. CPHAS = CHAI 'R' IPAHS;
  446. LTRHOP1= PROG 0 20 100 200 300 400
  447. 500 600 700 800 900 1440
  448. 2500 ;
  449. LRHOP1 = PROG 7852.D-9 7852.D-9 7815.D-9 7778.D-9 7741.D-9 7705.D-9
  450. 7668.D-9 7633.D-9 7595.D-9 7562.D-9 7527.D-9 7345.D-9
  451. 7011.D-9 ;
  452. EVRHOP1 = EVOL 'MANU' 'T' LTRHOP1 CPHAS LRHOP1;
  453. MCHRHO = MCHRHO ET (MANU 'CHML' MODTHE CPHAS EVRHOP1 'TYPE' CTYP) ;
  454.  
  455. CPHAS = CHAI 'C' IPAHS;
  456. LTCP1 = PROG 21 50 150 200 250 300 350 450 550
  457. 650 700 750 850 1000 1200 1300 1400 1440
  458. 1465 1490 1540 1590 1615 1640 2500 ;
  459. LCP1 = PROG 460.5 485.6 519.1 531.6 556.7 573.5 598.6 661.4 749.3
  460. 845.6 1431.6 950.2 900 845.6 800 815 840 850
  461. 1210 1840 2470 1840 1210 840 707 ;
  462. EVCP1 = EVOL 'MANU' 'T' LTCP1 CPHAS LCP1;
  463. MCHC = MCHC ET (MANU 'CHML' MODTHE CPHAS EVCP1 'TYPE' CTYP) ;
  464.  
  465. *****************
  466. * 2- Martensite *
  467. *****************
  468. IPAHS = 2;
  469. CPHAS = CHAI 'K' IPAHS;
  470. EVKP1 = EVOL 'MANU' 'T' LTKP1 CPHAS LKP1;
  471. MCHK = MCHK ET (MANU 'CHML' MODTHE CPHAS EVKP1 'TYPE' CTYP) ;
  472.  
  473. CPHAS = CHAI 'R' IPAHS;
  474. EVRHOP1 = EVOL 'MANU' 'T' LTRHOP1 CPHAS LRHOP1;
  475. MCHRHO = MCHRHO ET (MANU 'CHML' MODTHE CPHAS EVRHOP1 'TYPE' CTYP) ;
  476.  
  477. CPHAS = CHAI 'C' IPAHS;
  478. EVCP1 = EVOL 'MANU' 'T' LTCP1 CPHAS LCP1;
  479. MCHC = MCHC ET (MANU 'CHML' MODTHE CPHAS EVCP1 'TYPE' CTYP) ;
  480.  
  481. **************
  482. * 3- Bainite *
  483. **************
  484. IPAHS = 3;
  485. CPHAS = CHAI 'K' IPAHS;
  486. EVKP1 = EVOL 'MANU' 'T' LTKP1 CPHAS LKP1;
  487. MCHK = MCHK ET (MANU 'CHML' MODTHE CPHAS EVKP1 'TYPE' CTYP) ;
  488.  
  489. CPHAS = CHAI 'R' IPAHS;
  490. EVRHOP1 = EVOL 'MANU' 'T' LTRHOP1 CPHAS LRHOP1;
  491. MCHRHO = MCHRHO ET (MANU 'CHML' MODTHE CPHAS EVRHOP1 'TYPE' CTYP) ;
  492.  
  493. CPHAS = CHAI 'C' IPAHS;
  494. EVCP1 = EVOL 'MANU' 'T' LTCP1 CPHAS LCP1;
  495. MCHC = MCHC ET (MANU 'CHML' MODTHE CPHAS EVCP1 'TYPE' CTYP) ;
  496.  
  497. **************
  498. * 4- Ferrite *
  499. **************
  500. IPAHS = 4;
  501. CPHAS = CHAI 'K' IPAHS;
  502. EVKP1 = EVOL 'MANU' 'T' LTKP1 CPHAS LKP1;
  503. MCHK = MCHK ET (MANU 'CHML' MODTHE CPHAS EVKP1 'TYPE' CTYP) ;
  504.  
  505. CPHAS = CHAI 'R' IPAHS;
  506. EVRHOP1 = EVOL 'MANU' 'T' LTRHOP1 CPHAS LRHOP1;
  507. MCHRHO = MCHRHO ET (MANU 'CHML' MODTHE CPHAS EVRHOP1 'TYPE' CTYP) ;
  508.  
  509. CPHAS = CHAI 'C' IPAHS;
  510. EVCP1 = EVOL 'MANU' 'T' LTCP1 CPHAS LCP1;
  511. MCHC = MCHC ET (MANU 'CHML' MODTHE CPHAS EVCP1 'TYPE' CTYP) ;
  512.  
  513. ****************
  514. * 5- Austénite *
  515. ****************
  516. IPAHS = 5;
  517. CPHAS = CHAI 'K' IPAHS;
  518. LTKP5 = PROG 0 20 100 200 400 600 800 856
  519. 900 1000 1200 1500 1502 1600 ;
  520. LKP5 = PROG 0.0121 0.0124 0.0136 0.015 0.018 0.021 0.0239 0.0248
  521. 0.0254 0.0269 0.0298 0.0343 0.05 0.05;
  522. EVKP5 = EVOL 'MANU' 'T' LTKP5 CPHAS LKP5;
  523. MCHK = MCHK ET (MANU 'CHML' MODTHE CPHAS EVKP5 'TYPE' CTYP) ;
  524.  
  525. CPHAS = CHAI 'R' IPAHS;
  526. LTRHOP5= PROG 0 20 100 200 300 400
  527. 500 600 700 800 900 1440
  528. 2500 ;
  529. LRHOP5 = PROG 7852.D-9 7841.D-9 7794.D-9 7736.D-9 7680.D-9 7624.D-9
  530. 7569.D-9 7514.D-9 7458.D-9 7408.D-9 7356.D-9 7087.D-9
  531. 6613.D-9 ;
  532. EVRHOP5 = EVOL 'MANU' 'T' LTRHOP5 CPHAS LRHOP5;
  533. MCHRHO = MCHRHO ET (MANU 'CHML' MODTHE CPHAS EVRHOP5 'TYPE' CTYP);
  534.  
  535.  
  536. CPHAS = CHAI 'C' IPAHS;
  537. LTCP5 = PROG 21 50 150 200 250 300 350 475 575 675 800
  538. 950 1000 1100 1200 1300 1400 1440 1465 1490 1540 1590
  539. 1615 1640 2500 ;
  540. LCP5 = PROG 460.5 485.6 519.1 531.6 556.7 573.5 598.6 652 671 685 715
  541. 742 750 774 795 815 840 850 1210 1840 2470 1840
  542. 1210 840 707 ;
  543. EVCP5 = EVOL 'MANU' 'T' LTCP5 CPHAS LCP5;
  544. MCHC = MCHC ET (MANU 'CHML' MODTHE CPHAS EVCP5 'TYPE' CTYP) ;
  545.  
  546.  
  547. *MATERIAUX
  548. MATPHAS = MCHK 'ET' MCHRHO 'ET' MCHC ;
  549.  
  550.  
  551. * Parametres pour le changement de phase
  552. CTYP = MOT 'SCALAIRE';
  553. TPHASE = TABL;
  554.  
  555. * Liste des transformations existantes dans un LISTENTIE
  556. TPHASE . 'REACTIONS' = LECT 1 5 2 5 3 5 4 5 5 2 5 3 5 4;
  557. * Lire : 1 vers 5, 2 vers 5, 3 vers 5, 4 vers 5
  558. * 5 vers 2, 5 vers 3, 5 vers 4
  559.  
  560. TPHASE . 'TYPE' = MOTS 'LEBL' 'LEBL' 'LEBL' 'LEBL' 'KOMA' 'LEBL' 'LEBL';
  561.  
  562. *-----------------------------------------------------------------------
  563. IDREAC = 1; COMM '1 vers 5';
  564. * Leblond
  565. EVOPEQ = EVOL 'MANU' 'T' (PROG 716. 802. )
  566. 'PEQ' (PROG 0. 1. );
  567. EVOTAU = EVOL 'MANU' 'T' (PROG 716. 802. )
  568. 'TAU' (PROG 12. 0.5 );
  569. EVOF = EVOL 'MANU' 'TPOI'(PROG -1.D-6 0. )
  570. 'F' (PROG 0. 1. );
  571.  
  572. TPHASE . IDREAC = MANU 'CHML' MODTHE 'PEQ' EVOPEQ 'TAU' EVOTAU 'F' EVOF
  573. 'TYPE' CTYP 'NOEUD';
  574. *-----------------------------------------------------------------------
  575. IDREAC = 2; COMM '2 vers 5';
  576. * Leblond
  577. TPHASE . IDREAC = MANU 'CHML' MODTHE 'PEQ' EVOPEQ 'TAU' EVOTAU 'F' EVOF
  578. 'TYPE' CTYP 'NOEUD';
  579. *-----------------------------------------------------------------------
  580. IDREAC = 3; COMM '3 vers 5';
  581. * Leblond
  582. TPHASE . IDREAC = MANU 'CHML' MODTHE 'PEQ' EVOPEQ 'TAU' EVOTAU 'F' EVOF
  583. 'TYPE' CTYP 'NOEUD';
  584. *-----------------------------------------------------------------------
  585. IDREAC = 4; COMM '4 vers 5';
  586. * Leblond
  587. TPHASE . IDREAC = MANU 'CHML' MODTHE 'PEQ' EVOPEQ 'TAU' EVOTAU 'F' EVOF
  588. 'TYPE' CTYP 'NOEUD';
  589. *-----------------------------------------------------------------------
  590. IDREAC = 5; COMM '5 vers 2';
  591. * Koistinen-Marburger
  592. TPHASE . IDREAC = MANU 'CHML' MODTHE 'MS' 380. 'KM' 0.0247
  593. 'TYPE' CTYP 'NOEUD';
  594. *-----------------------------------------------------------------------
  595. IDREAC = 6; COMM '5 vers 3';
  596. * Leblond
  597. EVOPEQ = EVOL 'MANU' 'T' (PROG 375 380 405 600 )
  598. 'PEQ' (PROG 0. 1. 1. 0. );
  599. EVOTAU = EVOL 'MANU' 'T' (PROG 375 380)
  600. 'TAU' (PROG 1.D6 20 );
  601. EVOF = EVOL 'MANU' 'TPOI'(PROG -100. -80. -60. -50. -40. -30.
  602. -25. -20. -18. -15. -12. -10.
  603. -9. -5. -1. -0.05 0.D0
  604. 1.D-6)
  605. 'F' (PROG 0.005 1.573 2.857 3.417 3.982 4.583
  606. 4.833 5.26 5.472 6.033 7.675 11.4
  607. 18.45 17.1 0.328 0.00238 0.00238
  608. 0.D0 );
  609. TPHASE . IDREAC = MANU 'CHML' MODTHE 'PEQ' EVOPEQ 'TAU' EVOTAU 'F' EVOF
  610. 'TYPE' CTYP 'NOEUD';
  611. *-----------------------------------------------------------------------
  612. IDREAC = 7; COMM '5 vers 4';
  613. * Leblond
  614. EVOPEQ = EVOL 'MANU' 'T' (PROG 625 630 730 735 )
  615. 'PEQ' (PROG 0 1 1 0 );
  616. EVOTAU = EVOL 'MANU' 'T' (PROG 625 630 )
  617. 'TAU' (PROG 1.D6 5 );
  618. EVOF = EVOL 'MANU' 'TPOI'(PROG -8.5 -6.2 -4.7 0. 1.D-6)
  619. 'F' (PROG 0.001 0.13 1.5 1.5 0. );
  620. TPHASE . IDREAC = MANU 'CHML' MODTHE 'PEQ' EVOPEQ 'TAU' EVOTAU 'F' EVOF
  621. 'TYPE' CTYP 'NOEUD';
  622. *-----------------------------------------------------------------------
  623.  
  624. * Verification des donnees rentrees
  625. NBREAC = (DIME TPHASE . 'REACTIONS') / 2;
  626. NBTYPE = (DIME TPHASE . 'TYPE' ) ;
  627. NBINDI = (DIME TPHASE) ;
  628. SI ('NEG' NBREAC NBTYPE);
  629. OPTI ECHO 0;
  630. CHAI1 = CHAI 'Le Nombre de reaction (' NBREAC ') ';
  631. CHAI2 = CHAI 'ne correspond pas avec ';
  632. CHAI3 = CHAI 'la taille de la liste des noms (' NBTYPE ').';
  633. MESS CHAI1;
  634. MESS CHAI2;
  635. MESS CHAI3;
  636. OPTI ECHO 1;
  637. ERRE 21;
  638. FINS;
  639.  
  640. SI ('NEG' NBINDI (NBREAC + 2));
  641. OPTI ECHO 0;
  642. CHAI1 = CHAI 'Le Nombre de reaction (' NBREAC ') ';
  643. CHAI2 = CHAI 'ne correspond pas avec ';
  644. CHAI3 = CHAI 'le nombre de reactions donnees (' (NBINDI - 2) ').';
  645. MESS CHAI1;
  646. MESS CHAI2;
  647. MESS CHAI3;
  648. OPTI ECHO 1;
  649. ERRE 21;
  650. FINS;
  651. ************************************************************************
  652. * Definition de la metallurgie : FIN
  653. ************************************************************************
  654.  
  655. * Fabrication du diagramme TRC
  656. TRC MODTOT MATPHAS TPHASE TINI TFIN LISTREF ;
  657.  
  658. FIN;
  659.  
  660.  
  661.  
  662.  
  663.  

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