Télécharger metallurgie_01.dgibi

Retour à la liste

Numérotation des lignes :

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

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