Télécharger metallurgie_12.dgibi

Retour à la liste

Numérotation des lignes :

  1. * fichier : metallurgie_12.dgibi
  2. ************************************************************************
  3. ************************************************************************
  4.  
  5. *__________________________________________________________________*
  6. * TEST METALLURGIE_12 *
  7. * *
  8. * CALCUL DE l'ERREUR ANALYTIQUE - CAST3M POUR KOISTINEN *
  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 : 250 C/s *
  16. * - Transformation (type Koistinen-Marburger) de l'autenite *
  17. * en martensite 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' 'MART' ;
  36. LISTREAC = MOTS 'AUST' ;
  37. LISTPROD = MOTS 'MART' ;
  38. LISTTYPE = MOTS 'KOIS' ;
  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 = 900. ;
  48. TFIN = 20. ;
  49.  
  50. MS1 = 380. ;
  51. KM1 = 0.0247 ;
  52.  
  53. MATCP1 = 'MATE' MODCP1 'MS1' MS1 'KM1' KM1 ;
  54.  
  55. *Declaration de la vitesse de refroidissement : en Degres/s
  56. DT_vit = -250. ;
  57.  
  58. *Calcul de la duree du refroidissement :
  59. DUREE = -1. * (TINI - TFIN) / DT_vit ;
  60.  
  61. *Declaration du Temps initial :
  62. TEMPINI = 1. ;
  63. *Calcul du Temps final :
  64. TEMPFIN = TEMPINI + DUREE ;
  65.  
  66. *Calcul du pas de temps en fonction de la vitesse de refroidissement :
  67.  
  68. NBPAST = 14.D0 ;
  69. LDTini = 'LOG' (-100000.D0 / DT_vit) ;
  70. LDTfin = 'LOG' (-10.D0 / DT_vit) ;
  71. PASLOG = (LDTfin - LDTini) / (NBPAST - 1.D0);
  72. LISTLOG='PROG' LDTini 'PAS' PASLOG LDTfin;
  73. LISTPAS1='EXP' LISTLOG;
  74.  
  75. NBPAST = 4.D0 ;
  76. LDTini = 'LOG' (-10.D0 / DT_vit) ;
  77. LDTfin = 'LOG' (-0.01D0 / DT_vit) ;
  78. PASLOG = (LDTfin - LDTini) / (NBPAST - 1.D0);
  79. LISTLOG='PROG' LDTini 'PAS' PASLOG LDTfin;
  80. LISTPAS2='EXP' LISTLOG;
  81.  
  82. LISTPAS = LISTPAS1 'ET' LISTPAS2 ;
  83.  
  84.  
  85.  
  86. ERR_TAB = 'PROG' ;
  87. PAS_TAB = 'PROG' ;
  88. EVO_ERR = 'TABL' ;
  89. EVO_ANA = 'TABL' ;
  90. EVO_CAL = 'TABL' ;
  91.  
  92.  
  93. *Boucle sur les differents taille de pas de temps :
  94. REPE BOU_PAS (DIME LISTPAS) ;
  95.  
  96. PAS = &BOU_PAS ;
  97.  
  98. DTPS = 'EXTR' LISTPAS PAS ;
  99.  
  100. LTCAL ='PROG' TEMPINI 'PAS' DTPS TEMPFIN ;
  101. T = TINI + (DT_vit * (LTCAL - TEMPINI));
  102.  
  103. ALPHA = 1. ;
  104. * Initialisation de CHE1 : proportions de phases initiales :
  105. CTYP = 'CHAI' 'VARIABLES_INTERNES' ;
  106. CHE1 ='MANU' 'CHML' MODCP1 'AUST' ALPHA
  107. 'MART' 0.
  108. 'TYPE' CTYP 'NOEUD' ;
  109.  
  110. PROP = 'PROG' ALPHA ;
  111.  
  112. nbpas = (DIME LTCAL) - 1;
  113. REPE CTEMP nbpas;
  114.  
  115. * On recupere le temps debut de pas et le temps fin de pas :
  116. temp0 = EXTR LTCAL &CTEMP ;
  117. temp1 = EXTR LTCAL (&CTEMP + 1);
  118. CHETPS0 = 'MANU' 'CHML' MAILT 'TEMP' temp0 ;
  119. CHETPS1 = 'MANU' 'CHML' MAILT 'TEMP' temp1 ;
  120. * On recupere la temperature debut de pas et la temperature fin de pas :
  121. T0 = EXTR T &CTEMP ;
  122. T1 = EXTR T (&CTEMP + 1) ;
  123. CHT0 = 'MANU' 'CHML' MAILT 'T' T0 ;
  124. CHT1 = 'MANU' 'CHML' MAILT 'T' T1 ;
  125.  
  126.  
  127. CHE1 = COMP MODCP1 (CHE1 'ET' CHETPS0 'ET' CHT0 'ET' MATCP1 ) ( CHETPS1 'ET' CHT1 'ET' MATCP1 ) ;
  128.  
  129. * Extraction pour tracer :
  130. Pi ='EXCO' CHE1 AUST 'AUST';
  131. PiEvol ='EXTR' Pi AUST 1 1 1;
  132. PROP = PROP 'ET' PiEvol ;
  133.  
  134. FIN CTEMP;
  135.  
  136.  
  137. * Evolution calculee :
  138. EVO = 'EVOL' 'NOIR' 'MANU' 'TEMP' LTCAL 'AUSTENITE' PROP;
  139. EVO_CAL . PAS = EVO ;
  140.  
  141. * Evolution analytique :
  142. TBORN = BORN T 'MAXI' MS1;
  143. PANALY = EXP (-1. * KM1 * (MS1 - TBORN)) ;
  144. PANALY = BORN PANALY 'MAXI' ALPHA ;
  145. EVOANA = 'EVOL' 'VERT' 'MANU' 'TEMP' LTCAL 'AUSTENITE' PANALY ;
  146. EVO_ANA . PAS = EVOANA ;
  147.  
  148. * Erreur absolue entre analytique et calculee :
  149. ERRABS = 'ABS' (PANALY '-' PROP) ;
  150. EVOERR = 'EVOL' 'ROUG' 'MANU' 'TEMP' LTCAL 'ERREUR' ERRABS ;
  151. EVO_ERR . PAS = EVOERR ;
  152.  
  153. NORMERR = 'MAXI' ERRABS ;
  154. ERR_TAB = ERR_TAB 'ET' NORMERR ;
  155. PAS_TAB = PAS_TAB 'ET' DTPS ;
  156.  
  157. FIN BOU_PAS;
  158.  
  159.  
  160.  
  161. *Post-traitement :
  162. 'SI' IDESS ;
  163.  
  164. REPE BOU_PAS (DIME LISTPAS) ;
  165. PAS = &BOU_PAS ;
  166. EVOERR = EVO_ERR . PAS ;
  167. DTPS = 'EXTR' LISTPAS PAS ;
  168. TITRE = 'CHAI' 'Erreur pour le pas de temps : ' DTPS ;
  169. DESS EVOERR 'GRIL' 'TIRC' 'GRIS'
  170. 'TITR' TITRE ;
  171.  
  172. EVO = EVO_CAL . PAS ;
  173. EVOANA = EVO_ANA . PAS ;
  174. TITRE = 'CHAI' 'KOISTINEN-MARBURGER - calcul pour le pas de temps : ' DTPS ;
  175. TL = TABL ;
  176. TL . 2 = 'TIRR' ;
  177. TL . 'TITRE' = TABL ;
  178. TL . 'TITRE' . 1 = 'Evolution calculee' ;
  179. TL . 'TITRE' . 2 = 'Evolution analytique' ;
  180.  
  181. 'SI' ( DTPS '>' 0.01D0 ) ;
  182. TL . 1 = 'MARQ ROND NOLI' ;
  183. 'SINO' ;
  184. TL . 1 = 'TIRR' ;
  185. 'FINS' ;
  186.  
  187. DESS (EVO 'ET' EVOANA) 'GRIL' 'TIRC' 'GRIS' 'TITR' TITRE 'LEGE' TL ;
  188. FIN BOU_PAS;
  189.  
  190.  
  191. TDESS = 'TABL';
  192. TDESS . 1 ='CHAI' ('MARQ ROND');
  193. ERRPAS = 'EVOL' 'ROUG' 'MANU' 'PAS' PAS_TAB 'ERREUR' ERR_TAB;
  194. TITRE = 'CHAI' 'Evolution de l erreur en fonction du pas de temps' ;
  195. DESS ERRPAS 'LOGX' 'LOGY'
  196. 'GRIL' 'TIRC' 'GRIS'
  197. 'TITR' TITRE
  198. 'LEGE' TDESS;
  199.  
  200. 'FINSI' ;
  201.  
  202. *Emission d'une erreur GIBIANE si l'erreur analytique - cast3m est trop grande :
  203. REPE BOU_ERR (DIME LISTPAS) ;
  204.  
  205. PAS = &BOU_ERR ;
  206. DTPS = 'EXTR' LISTPAS PAS ;
  207. NORMERR = 'EXTR' ERR_TAB PAS ;
  208. Tol1 = 1.5D0 * DTPS * DTPS; COMM 'Valeur fixee en 2018 par Thibault LINDECKER';
  209.  
  210. MESS (CHAI ' Erreur : ' NORMERR ' | Tolerence : ' Tol1);
  211. SI (NORMERR >EG Tol1);
  212. MESS 'Erreur dans le calcul de la proportion d AUSTENITE';
  213. ERRE 5;
  214. FINS;
  215.  
  216. FIN BOU_ERR;
  217.  
  218. fin;
  219.  
  220.  
  221.  

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