Télécharger metallurgie_06.dgibi

Retour à la liste

Numérotation des lignes :

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

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