Télécharger metallurgie_03.dgibi

Retour à la liste

Numérotation des lignes :

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

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