Télécharger metallurgie_13.dgibi

Retour à la liste

Numérotation des lignes :

  1. * fichier : metallurgie_13.dgibi
  2. ************************************************************************
  3. ************************************************************************
  4.  
  5. *__________________________________________________________________*
  6. * TEST METALLURGIE_13 *
  7. * *
  8. * CALCUL DE l'ERREUR ANALYTIQUE - CAST3M POUR LEBLOND *
  9. * Le calcul est fait pour differents pas de temps *
  10. * *
  11. * *
  12. * Le modele metallurgique est code en ESOPE (Cast3m) *
  13. *__________________________________________________________________*
  14. * *
  15. * Vitesse de refroidissement : 10 C/s *
  16. * - Transformation (type Leblond) de l'autenite *
  17. * en bainite seulement *
  18. *__________________________________________________________________*
  19. * *
  20. * On trace la courbe de l'erreur en fonction du pas de temps, *
  21. * sur une echelle log-log *
  22. *__________________________________________________________________*
  23. *
  24. 'OPTI' 'TRAC' PSC 'EPTR' 10 ;
  25. IDESS = VRAI ;
  26.  
  27. OPTI DIME 2 ELEM 'TRI3';
  28.  
  29. P1 = 0. 0. ;
  30. P2 = 1. 0. ;
  31. P3 = 0. 1. ;
  32.  
  33. MAILT = MANU 'TRI3' P1 P2 P3;
  34.  
  35. LISTPHA = MOTS 'AUST' 'BAIN' ;
  36. LISTREAC = MOTS 'AUST' ;
  37. LISTPROD = MOTS 'BAIN' ;
  38. LISTTYPE = MOTS 'LEBL' ;
  39. NOMCONS = '16MND5';
  40.  
  41. MODCP1 = MODE MAILT 'METALLURGIE' 'PHASES' LISTPHA
  42. 'REACTIFS' LISTREAC
  43. 'PRODUITS' LISTPROD
  44. 'TYPE' LISTTYPE
  45. 'CONS' NOMCONS ;
  46.  
  47. TINI = 600. ;
  48. TFIN = 405. ;
  49.  
  50.  
  51. PEQ1 = EVOL 'MANU' 'T' (PROG 375 380 405 600 )
  52. 'PEQ' (PROG 0. 1. 1. 0. );
  53.  
  54. F1 = 'EVOL' 'MANU' 'TPOI' (PROG -100 -80 -60 -50 -40 -30 -25 -20 -18 -15 -12 -10 -9 -5 -1 -0.05 0 1.D-6)
  55. 'F' (PROG 0.005 1.573 2.857 3.417 3.982 4.583 4.833 5.26 5.472 6.033 7.675 11.4 18.45 17.1 0.328 0.00238 0.00238 0) ;
  56.  
  57. TAU1 = 20. ;
  58.  
  59. *Declaration de la vitesse de refroidissement : en Degres/s
  60. DT_vit = -10. ;
  61.  
  62. *Calcul de la duree du refroidissement :
  63. DUREE = -1. * (TINI - TFIN) / DT_vit ;
  64.  
  65. *Declaration du Temps initial :
  66. TEMPINI = 1. ;
  67. *Calcul du Temps final :
  68. TEMPFIN = TEMPINI + DUREE ;
  69. *Calcul du pas de temps en fonction de la vitesse de refroidissement :
  70. NBPAST = 8.D0 ;
  71. LDTini = 'LOG' (-10000.D0 / DT_vit) ;
  72. LDTfin = 'LOG' (-0.001D0 / DT_vit) ;
  73. PASLOG = (LDTfin - LDTini) / (NBPAST - 1);
  74. LISTLOG ='PROG' LDTini 'PAS' PASLOG LDTfin;
  75. LISTPAS='EXP' LISTLOG;
  76.  
  77.  
  78. ERR_TAB = 'PROG' ;
  79. PAS_TAB = 'PROG' ;
  80. EVO_ERR = 'TABL' ;
  81. EVO_ANA = 'TABL' ;
  82. EVO_CAL = 'TABL' ;
  83.  
  84. *Boucle sur les differents taille de pas de temps :
  85.  
  86. MATCPa = 'MATE' MODCP1 'TAU1' TAU1 ;
  87. REPE BOU_PAS (DIME LISTPAS) ;
  88.  
  89. PAS = &BOU_PAS ;
  90.  
  91. DTPS = 'EXTR' LISTPAS PAS ;
  92.  
  93. LTCAL ='PROG' TEMPINI 'PAS' DTPS TEMPFIN ;
  94. T = TINI + (DT_vit * (LTCAL - TEMPINI));
  95. DTEMP =('EXTR' T 2) - ('EXTR' T 1);
  96.  
  97. ALPHA = 1. ;
  98. * Initialisation de CHE1 : proportions de phases initiales :
  99. CTYP = 'CHAI' 'VARIABLES_INTERNES' ;
  100. CHE1 ='MANU' 'CHML' MODCP1 'AUST' ALPHA
  101. 'MART' 0.
  102. 'BAIN' 0.
  103. 'FERR' 0.
  104. 'MB ' 0.
  105. 'TYPE' CTYP 'NOEUD' ;
  106.  
  107. PROPi ='PROG' ALPHA ;
  108.  
  109. F1L ='IPOL' DT_vit F1 ;
  110. MATCPb = MATCPa 'ET' ('MATE' MODCP1 'F1' F1L) ;
  111.  
  112. CHETPS0 ='MANU' 'CHML' MAILT 'TEMP' TEMPINI ;
  113. CHETPS1 = CHETPS0 '+' DTPS ;
  114.  
  115. CHT0 ='MANU' 'CHML' MAILT 'T' TINI ;
  116. CHT1 = CHT0 + DTEMP ;
  117.  
  118.  
  119. nbpas = (DIME LTCAL) - 1;
  120. REPE CTEMP nbpas;
  121. * On calcule la temperature debut de pas et la temperature fin de pas :
  122. T0 = EXTR T &CTEMP ;
  123. T1 = EXTR T (&CTEMP + 1) ;
  124.  
  125. * On determine les differents parametres materiaux :
  126. PEQ11L = 'IPOL' T0 PEQ1 ;
  127. PEQ12L = 'IPOL' T1 PEQ1 ;
  128.  
  129. * On definit le Materiaux debut de pas et le materiaux fin de pas :
  130. MATCP1 = MATCPb 'ET' ('MATE' MODCP1 'PEQ1' PEQ11L) ;
  131. MATCP2 = MATCPb 'ET' ('MATE' MODCP1 'PEQ1' PEQ12L) ;
  132.  
  133. * Pour destruction
  134. CHDET0 = CHETPS0 ;
  135. CHDET1 = CHETPS1 ;
  136. CHDET2 = CHT0 ;
  137. CHDET3 = CHT1 ;
  138. LRDET0 = PROPi ;
  139. CHEDET = CHE1 ;
  140.  
  141. CHE1 ='COMP' MODCP1 (CHE1 'ET' CHETPS0 'ET' CHT0 'ET' MATCP1 ) ( CHETPS1 'ET' CHT1 'ET' MATCP2 ) ;
  142.  
  143. * Extraction pour tracer :
  144. PiEvol ='EXTR' CHE1 'AUST' 1 1 1;
  145. PROPi = PROPi 'ET' PiEvol ;
  146.  
  147. CHETPS0 = CHETPS0 '+' DTPS ;
  148. CHETPS1 = CHETPS0 '+' DTPS ;
  149.  
  150. CHT0 = CHT0 '+' DTEMP ;
  151. CHT1 = CHT0 '+' DTEMP ;
  152.  
  153. * Destruction
  154. DETR CHDET0;
  155. DETR CHDET1;
  156. DETR CHDET2;
  157. DETR CHDET3;
  158. DETR LRDET0;
  159. DETR CHEDET;
  160.  
  161. FIN CTEMP;
  162.  
  163. * Evolution calculee :
  164. EVO = 'EVOL' 'NOIR' 'MANU' 'TEMP' LTCAL 'PROP' PROPi ;
  165. EVO_CAL . PAS = EVO ;
  166.  
  167. * Evolution analytique :
  168. PANALY ='EXP' ( -1 * F1L * (LTCAL - TEMPINI) / TAU1 ) ;
  169. PANALY = (F1L * (TEMPFIN - LTCAL)) + (TAU1 * (1 - PANALY )) ;
  170. PANALY = PANALY / ( F1L * (TEMPFIN - TEMPINI) ) ;
  171. EVOANA ='EVOL' 'VERT' 'MANU' 'TEMP' LTCAL 'AUST' PANALY;
  172. EVO_ANA . PAS = EVOANA ;
  173.  
  174. * Erreur absolue entre analytique et calculee :
  175. ERRABS = 'ABS' (PANALY '-' PROPi) ;
  176. EVOERR = 'EVOL' 'ROUG' 'MANU' 'TEMP' LTCAL 'ERREUR' ERRABS ;
  177. EVO_ERR . PAS = EVOERR ;
  178.  
  179. NORMERR = 'MAXI' ERRABS ;
  180. ERR_TAB = ERR_TAB 'ET' NORMERR ;
  181. PAS_TAB = PAS_TAB 'ET' DTPS ;
  182.  
  183. FIN BOU_PAS;
  184.  
  185.  
  186.  
  187. *Post-traitement :
  188. 'SI' IDESS ;
  189.  
  190. REPE BOU_PAS (DIME LISTPAS) ;
  191. PAS = &BOU_PAS ;
  192. EVOERR = EVO_ERR . PAS ;
  193. DTPS = 'EXTR' LISTPAS PAS ;
  194. TITRE = 'CHAI' 'Erreur pour le pas de temps : ' DTPS ;
  195. DESS EVOERR 'GRIL' 'TIRC' 'GRIS'
  196. 'TITR' TITRE ;
  197.  
  198. EVO = EVO_CAL . PAS ;
  199. EVOANA = EVO_ANA . PAS ;
  200. TITRE = 'CHAI' 'LEBLOND - calcul pour le pas de temps : ' DTPS ;
  201. TL = TABL ;
  202. TL . 2 = 'TIRR' ;
  203. TL . 'TITRE' = TABL ;
  204. TL . 'TITRE' . 1 = 'Evolution calculee' ;
  205. TL . 'TITRE' . 2 = 'Evolution analytique' ;
  206.  
  207. 'SI' ( DTPS '>' 1.D0 ) ;
  208. TL . 1 = 'MARQ ROND NOLI' ;
  209. 'SINO' ;
  210. TL . 1 = 'TIRR' ;
  211. 'FINS' ;
  212.  
  213. DESS (EVO 'ET' EVOANA) 'GRIL' 'TIRC' 'GRIS' 'TITR' TITRE 'LEGE' TL ;
  214. FIN BOU_PAS;
  215.  
  216. TDESS = 'TABL';
  217. TDESS . 1 = 'CHAI' ('MARQ ROND');
  218. ERRPAS = 'EVOL' 'ROUG' 'MANU' 'PAS' PAS_TAB 'ERREUR' ERR_TAB;
  219. TITRE = 'CHAI' 'Evolution de l erreur en fonction du pas de temps' ;
  220. DESS ERRPAS 'LOGX' 'LOGY'
  221. 'GRIL' 'TIRC' 'GRIS'
  222. 'TITR' TITRE
  223. 'LEGE' TDESS;
  224.  
  225. 'FINSI' ;
  226.  
  227. *Emission d'une erreur GIBIANE si l'erreur analytique - cast3m est trop grande :
  228. REPE BOU_ERR (DIME LISTPAS) ;
  229.  
  230. PAS = &BOU_ERR ;
  231. DTPS = 'EXTR' LISTPAS PAS ;
  232. NORMERR = 'EXTR' ERR_TAB PAS ;
  233. Tol1 = 1.D-2 * (DTPS ** 2) ; COMM 'Valeur fixee en 2018 par Thibault LINDECKER';
  234.  
  235. MESS (CHAI ' Erreur : ' NORMERR ' | Tolerence : ' Tol1);
  236. SI (NORMERR >EG Tol1);
  237. MESS 'Erreur dans le calcul de la proportion d AUSTENITE';
  238. ERRE 5;
  239. FINS;
  240.  
  241. FIN BOU_ERR;
  242.  
  243. 'TEMP' 'IMPR';
  244.  
  245. fin;
  246.  
  247.  
  248.  
  249.  
  250.  

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