Télécharger fabbadd1.dgibi

Retour à la liste

Numérotation des lignes :

  1. * fichier : fabbadd1.dgibi
  2.  
  3. OPTI ECHO 0 ;
  4. OPTI ELEM 'CUB8' ;
  5.  
  6. GRAPH = FAUX ; COMM 'Affichage graphiques' ;
  7. XINFO = FAUX ; COMM 'Affichage infos' ;
  8.  
  9. SI GRAPH ;
  10. OPTI TRAC 'X' ;
  11. SINO ;
  12. OPTI TRAC 'PSC' ;
  13. FINS;
  14.  
  15. ************************************************************************
  16. * Debut du jeu de donnees fabbrication additive SLM
  17. *
  18. * OPTIONS GENERALES
  19. * - 3D
  20. *
  21. * THERMIQUE
  22. * - Source de chaleur volumique (Goldak) dépendant du temps (CHARTHER)
  23. * avec trajectoire personnalisee (ligne polygonale)
  24. * - Conduction dans la matière
  25. * - Convection les bords
  26. * - Proprietes matériaux qui dépendent de T
  27. * - Trois matériaux : poudre, piece et substrat
  28. * - Le "métal poudre" et le "métal piece" fondent à T > Tliq
  29. * - Les elements sont ajoutés couche par couche
  30. * - Changement modèle "poudre" > modele "piece"
  31. * dès qu'ils ont fondus une 1ère fois (PERSO2)
  32. *
  33. * Auteur : H. POMMIER harry.pommier@cea.fr
  34. * Historique version :
  35. * V0 version initiale 20/06/2018, Cast3M 2018
  36. ************************************************************************
  37.  
  38. ****PROCEDURES
  39.  
  40. 'DEBP' DUREE X*'LISTREELS' Y*'LISTREELS' VIT*'FLOTTANT' ;
  41. ****************************************************************
  42. * PROCEDURE DUREE : Calcul la duree du lasage d'une couche en
  43. * fonction de la vitesse et de la trajectoire
  44. * Entrees
  45. *X liste de coordonnees X en [m]
  46. *Y liste de coordonnees Y en [m]
  47. *VIT vitesse du procede en [m/s]
  48. *
  49. * Sortie
  50. *TPSLASA temps total de lasage pour parcourir
  51. * la trajectoire a la vitesse VIT
  52. *****************************************************************
  53.  
  54. TPSLASA = 0. ;
  55. REPE BOUC0 ((DIME X) - 1);
  56. I = &BOUC0 ;
  57.  
  58. X0 = EXTR X I ;
  59. X1 = EXTR X (I+1) ;
  60. Y0 = EXTR Y I ;
  61. Y1 = EXTR Y (I+1) ;
  62.  
  63. LLOC = '**'('+'('**'(X1 - X0) 2) ('**' (Y1 - Y0) 2)) 0.5 ;
  64. TPSLASA = '+' TPSLASA ('/' LLOC VIT) ;
  65. FIN BOUC0 ;
  66.  
  67. FINP TPSLASA ;
  68.  
  69. *******************************************
  70. * PROCEDURE CHARTHER
  71.  
  72. DEBP charther FAPASAP*'TABLE' tt*'FLOTTANT' ;
  73. TAA = TABLE ; ETAB = PRECED.'WTABLE' ;
  74.  
  75. SI XINFO ;
  76. MESS 'Debut procedure CHARTHER' ;
  77. FINS ;
  78.  
  79. ncou = FAPASAP.'MES_DATA'.'COUCHE' ;
  80. tpsfin = FAPASAP.'MES_DATA'.'TPSFIN' ;
  81. tpslasa = FA.'PROCEDE'.'TEMPS_LASAGE' ;
  82. ttloc = '-' tt ('*' ('-' ncou 1) tpsfin) ;
  83. mesmod = FAPASAP.'MODELE' ;
  84. modloc = EXTR mesmod 'CONS' 'COND' ;
  85.  
  86. **CHARGEMENT
  87. SI (ttloc '<EG' tpslasa) ;
  88.  
  89. *Parametres
  90. progx = FA.'PROCEDE'.'TRAJECTOIRE'.'PROGX' ;
  91. progy = FA.'PROCEDE'.'TRAJECTOIRE'.'PROGY' ;
  92. vit = FA.'PROCEDE'.'VITESSE' ;
  93. tpsintc = FA.'PROCEDE'.'TEMPS_INTERCOUCHE' ;
  94. epcou = FA.'PROCEDE'.'EPAISSEUR_COU' ;
  95.  
  96. *Position source
  97. posloc vecloc pavan = POSOU
  98. ttloc progx progy vit ncou epcou ;
  99. theta = ACOS (COOR 1 vecloc) ;
  100. SI ((COOR 2 vecloc) '<' 0.) ;
  101. theta = '*' -1. theta ;
  102. FINS;
  103.  
  104. SI XINFO ;
  105. MESS 'Couche : ' ncou '/' NBCOU ' Avancement lasage de la couche :' pavan '%' ;
  106. vx vy vz = COOR vecloc ;
  107. MESS 'Angle source :' theta 'Direction (x,y) :' '('vx','vy')' ;
  108. dx dy dz = COOR posloc ;
  109. MESS 'Position source (x,y,z) :' '('dx','dy','dz')' ;
  110. FINS ;
  111.  
  112. *Para source
  113. Q = FA.'PROCEDE'.'SOURCE'.'Q' ;
  114. A = FA.'PROCEDE'.'SOURCE'.'A' ;
  115. B = FA.'PROCEDE'.'SOURCE'.'B' ;
  116. Cf = FA.'PROCEDE'.'SOURCE'.'Cf' ;
  117. Cr = FA.'PROCEDE'.'SOURCE'.'Cr' ;
  118. eta = FA.'PROCEDE'.'SOURCE'.'ETA' ;
  119. Qeff = '*' Q eta ;
  120. psour = PROG Qeff A B Cf Cr ;
  121. pvol = SOUGOLDH modloc psour posloc theta ttloc tpslasa ;
  122. charso = SOUR modloc pvol ;
  123.  
  124. *Correction puissance
  125. SI (ttloc '&lt;EG' tpslasa);
  126. Qeff = maxi (resu charso) ;
  127. SI XINFO ;
  128. MESS (CHAINE 'Puissance source initiale' Qeff ' W') ;
  129. FINS ;
  130. para1 = EXTR Psour 1 ;
  131. para1 = '*' para1 ('/' para1 Qeff) ;
  132. para2 = EXTR Psour 2 ;
  133. para3 = EXTR Psour 3 ;
  134. para4 = EXTR Psour 4 ;
  135. para5 = EXTR Psour 5 ;
  136. Psour = PROG para1 para2 para3 para4 para5 ;
  137. pvol = SOUGOLDH modloc psour posloc theta ttloc tpslasa ;
  138. charso = SOUR modloc pvol ;
  139. Qcor = maxi (resu charso) ;
  140. SI XINFO ;
  141. MESS (CHAINE 'Puissance source corrigee' Qcor ' W') ;
  142. FINS ;
  143. SINO ;
  144. charso = '*' 0. charso ;
  145. FINS ;
  146.  
  147. SINO ;
  148. prefroi = '/' ('-' ttloc tpslasa) FA.'PROCEDE'.'TEMPS_INTERCOUCHE' ;
  149. prefroi = '*' prefroi 100. ; COMM 'Avancement temps intercouche' ;
  150. MESS 'Couche : ' ncou '/' NBCOU ' Temporisation intercouche :' prefroi '%' ;
  151. pvol = MANU 'CHPO' (EXTR modloc 'MAILLAGE') 1 'SCAL' 0. 'NATU' 'DIFFUS' ;
  152. charso = SOUR modloc pvol ;
  153. FINS ;
  154.  
  155. TAA.'ADDI_SECOND' = charso ;
  156.  
  157. SI XINFO ;
  158. MESS 'Fin procedure CHARTHER' ;
  159. MESS 'Calcul thermique...' ;
  160. FINS ;
  161. FINP TAA ;
  162.  
  163. ************************************************************************
  164. * PROCEDURE POSOU : Calcul la position de la source et le vecteur directeur
  165. * en fonction du temps, de la trajection (progx, progy), de la vitesse,
  166. * du numero de la couche actuelle et de l epaisseur d une couche
  167. ************************************************************************
  168.  
  169. DEBP POSOU ;
  170.  
  171. ARGU TT*'FLOTTANT' ;
  172. ARGU PROGX*'LISTREEL' ;
  173. ARGU PROGY*'LISTREEL' ;
  174. ARGU VIT*'FLOTTANT' ;
  175. ARGU NCOU*'ENTIER' ;
  176. ARGU EPCOU*'FLOTTANT' ;
  177.  
  178.  
  179. TABDT = TABLE ; COMM 'Table des duree des segments' ;
  180. TABDTCUM = TABLE ; COMM 'Table des duree cumulees des segments' ;
  181. TABDL = TABLE ; COMM 'Table des longueurs des segments' ;
  182. TABDLCUM = TABLE ; COMM 'Table des longueurs cumulees des segments' ;
  183. TABDTCUM. 0 = 0. ;
  184. TABDLCUM. 0 = 0. ;
  185. flag = VRAI ;
  186.  
  187. NBOUC0 = '-' (DIME PROGX) 1 ;
  188. REPE BOUC0 NBOUC0 ;
  189. I = &BOUC0 ;
  190. X0 = EXTR PROGX I ;
  191. X1 = EXTR PROGX (I+1) ;
  192. Y0 = EXTR PROGY I ;
  193. Y1 = EXTR PROGY (I+1) ;
  194. TABDL.I = '**'('+'('**'(X1 - X0) 2) ('**' (Y1 - Y0) 2)) 0.5 ;
  195. TABDLCUM.I = TABDL. I + TABDLCUM.(I-1) ;
  196. TABDT.I = ('/' TABDL.I VIT) ;
  197. TABDTCUM.I = TABDT. I + TABDTCUM.(I-1) ;
  198. SI ((TT '&lt;EG' TABDTCUM.I) ET flag) ;
  199. K = I ; COMM 'Le laser se trouve sur le segment K du trajet' ;
  200. X0 = EXTR PROGX K ;
  201. X1 = EXTR PROGX (K+1) ;
  202. Y0 = EXTR PROGY K ;
  203. Y1 = EXTR PROGY (K+1) ;
  204. tt2 = '-' tt TABDTCUM.(K-1) ;
  205. ratio = '/' tt2 TABDT.K ;
  206. vecseg = (X1 - X0) (Y1 - Y0) 0. ;
  207. vec0 = '/' ((X1 - X0) (Y1 - Y0) 0.) TABDL.K ;
  208. x= '+' X0 (COOR ('*' vecseg ratio) 1) ;
  209. y= '+' Y0 (COOR ('*' vecseg ratio) 2) ;
  210. z = '*' ncou epcou ;
  211. pos0 = x y z ;
  212. flag = FAUX ;
  213. FINS ;
  214. FIN BOUC0 ;
  215.  
  216. LLASA = TABDLCUM.NBOUC0 ; COMM 'Longueur totale du lasage' ;
  217. TPSLASA = TABDTCUM.NBOUC0 ; COMM 'Duree totale du lasage' ;
  218.  
  219. *Pourcentage du trajet total realise
  220. SI (tt '<' TPSLASA) ;
  221. pavan = '*' ('/' tt TPSLASA) 100 ;
  222. SINO ;
  223. pavan = 100. ;
  224. FINS ;
  225.  
  226. FINP pos0 vec0 pavan ;
  227.  
  228. *****************************************************
  229. * PROCEDURE SOUGOLDH
  230.  
  231. *Auteur : H. POMMIER harry.pommier@cea.fr
  232. *Historique version :
  233. *Modification pour PASAPAS H. POMMIER 06-2018
  234. *Description : source equivalente Goldak adaptee pour PASAPAS
  235. *Entrées :
  236. *mo_sou Modele
  237. *p_sour Liste des parametres de la source
  238. *pos_sou Position de la source (x,y,z)
  239. *theta angle de rotation autour de axe Z
  240. *ttloc ttloc du calcul EF
  241. *tpslasa ttloc de lasage
  242. *(x : direction soudage, z : normale piece)
  243. *Sortie :
  244. *CHPO_SOM Champs Points de puissance volumique
  245.  
  246. DEBP SOUGOLDH mo_sou*'MMODEL' p_sour*'LISTREEL' pos_sou*'POINT'
  247. theta*'FLOTTANT' ttloc*'FLOTTANT' tpslasa*'FLOTTANT';
  248.  
  249. xglo yglo zglo = COOR (EXTR mo_sou 'MAILLAGE') ;
  250. *** repere local(xs,ys,zs)
  251. xsou ysou zsou = COOR pos_sou ;
  252. xxloc = xglo - xsou ;
  253. yyloc = yglo - ysou ;
  254. zzloc = zglo - zsou ;
  255.  
  256. *** Rotation de theta1 autour de l'axe des Y
  257. *** puis rotation de theta2 autour de l'axe du nouvel axe des Z
  258. cos0 = COS theta ;
  259. sin0 = SIN theta ;
  260.  
  261. xloc = (xxloc*cos0) + (yyloc*sin0) ;
  262. yloc = (yyloc*cos0) - (xxloc*sin0) ;
  263. zloc = zzloc ;
  264.  
  265. Q = EXTR p_sour 1 ;
  266. a = EXTR p_sour 2 ;
  267. b = EXTR p_sour 3 ;
  268. Cf = EXTR p_sour 4 ;
  269. Cr = EXTR p_sour 5 ;
  270.  
  271. *** * contribution de la source en y et z
  272. cy = EXP ( (-3./(a**2.)) * (yloc * yloc) ) ;
  273. cz = EXP ( (-3./(b**2.)) * (zloc * zloc) ) ;
  274.  
  275. *** * on calcule la source en avant du front
  276. fil_av = xloc MASQ egsupe (-1.e-10) ;
  277. fil_ar = fil_av MASQ inferieur (1.e-6) ;
  278. Rf = 2. / (1. + ( Cr / Cf ) ) ;
  279. Rr = 2. - Rf ;
  280. cx_av = EXP ( ( -3. / ( Cf ** 2. ) ) * (xloc * xloc) ) ;
  281. *cx_av = '*' cx_av (Rf / Cf) ;
  282. cx_av = fil_av * cx_av ;
  283. cx_ar = EXP ( ( -3. / ( Cr ** 2. ) ) * (xloc * xloc) ) ;
  284. *cx_ar = '*' cx_ar ('/' Rr Cr) ;
  285. cx_ar = fil_ar * cx_ar ;
  286. cx = cx_av + cx_ar ;
  287. Pi1 = (3.14159265358979**1.5) ;
  288. qmax = (6 * (3.**0.5) * Rf * Q) / (Pi1 * Cf * a * b) ;
  289. *qmax = (6 * (3.**0.5) * Q) / (Pi1 * a * b) ;
  290. fil_z = zloc MASQ 'EGINFE' ( 0. ) ;
  291. cz = cz * fil_z ;
  292. CHPO_SOM = qmax * cx * cy * cz ;
  293.  
  294. SI (ttloc '>' tpslasa);
  295. CHPO_SOM = '*' CHPO_SOM 0. ;
  296. FINS ;
  297.  
  298. FINP CHPO_SOM ;
  299.  
  300.  
  301. ************************************************************************
  302. * PROCEDURE PERSO2 : Apres la THERMIQUE dans TRANSNON
  303. * MAJ le MODELE et le MATERIAU THERMIQUE : POUDRE -> PIECE
  304. * ATTENTION : La temperature a jour est dans l'indice WTAB.'THER_COURANT'
  305. * harry.pommier@cea.fr 29/06/2018
  306. ************************************************************************
  307. DEBP PERSO2 TAB1*'TABLE' ;
  308.  
  309. SI XINFO ;
  310. MESS 'Debut procedure PERSO2' ;
  311. FINS ;
  312.  
  313. NCOU = TAB1.'MES_DATA'.'COUCHE' ;
  314.  
  315. tfusion = TAB1.'MES_DATA'.'T_LIQUIDUS' ;
  316. WTAB = TAB1.'WTABLE' ;
  317.  
  318. NB_PAS = (DIME TAB1.'MES_MODEL') ;
  319. NB_PAS2 = (DIME TAB1.'TEMPS') ;
  320.  
  321. MODTHER = WTAB.'MO_TOTAL' ;
  322. MODCOND= EXTR MODTHER 'COMP' 'CONDUCTION' ;
  323. MAILTHER = EXTR MODTHER 'MAILLAGE' ;
  324. MAILCOND = EXTR MODCOND 'MAILLAGE' ;
  325. MATTOT = TAB1.'CARACTERISTIQUES' ;
  326.  
  327. *Recuperation des elements liquides dans la poudre
  328. CHATEMP = CHAN 'CHAM' WTAB.'THER_COURANT' MODCOND 'TEMPERATURES' ;
  329. ELEMSUP = ELEM CHATEMP 'SUPE' tfusion 'STRICTEMENT' ;
  330.  
  331.  
  332. **********
  333. * Transformation du MODELE POUDRE en PIECE
  334. **********
  335.  
  336. MAILFON = TAB1.'MAILLAGE_FONDU'.(NB_PAS - 1) ;
  337. MAILPOUI = DIFF MAILFON FA.'MAILLAGE'.'POUDRE_INI' ;
  338. ELNEW = INTE ELEMSUP MAILPOUI ;
  339.  
  340.  
  341. *MAJ modele
  342. SI ((NBEL ELNEW) '>EG' 1) ;
  343. TAB1.'MAILLAGE_FONDU'.NB_PAS =
  344. TAB1.'MAILLAGE_FONDU'.(NB_PAS-1) ET ELNEW ;
  345. TAB1.'MAILLAGE_FONDU2'.NB_PAS2 = TAB1.'MAILLAGE_FONDU'.NB_PAS ;
  346. MAILCOUC = FA.'MAILLAGE'.'COUCHE_CUM'.NCOU ;
  347. MAILPOUI = DIFF TAB1.'MAILLAGE_FONDU'.NB_PAS MAILCOUC ;
  348.  
  349. MAILPOU = MAILPOUI ET
  350. (DIFF FA.'MAILLAGE'.'COUCHE_CUM'.NCOU
  351. FA.'MAILLAGE'.'POUDRE_INI') ;
  352. FA.'MAILLAGE'.'POUDRE' = MAILPOU ;
  353.  
  354. MODTHEPO = REDU FA.'MODELE'.'POUDRE_INI' MAILPOUI ;
  355. FA.'MODELE'.'POUDRE' = MODTHEPO ;
  356. MODTHEPI = MODE MAILFON 'THERMIQUE' 'CONDUCTION' 'CONS' 'COND' ;
  357. FA.'MODELE'.'PIECE' = MODTHEPI ;
  358. MODTHESU = FA.'MODELE'.'SUBSTRAT' ;
  359. FA.'MODELE'.'TOTAL' =
  360. MODTHEPO ET MODTHEPI ET MODTHESU ET MODCONV ;
  361.  
  362. MATHEPO = REDU FA.'MATERIAUX'.'POUDRE_INI' MODTHEPO ;
  363. EVK = FA.'MATERIAUX'.'PARA_PIECE'.'EVK' ;
  364. EVRHO = FA.'MATERIAUX'.'PARA_PIECE'.'EVRHO' ;
  365. EVCP = FA.'MATERIAUX'.'PARA_PIECE'.'EVCP' ;
  366. MATHEPI = MATE MODTHEPI 'K' EVK 'RHO' EVRHO 'C' EVCP ;
  367. MATHESU = FA.'MATERIAUX'.'SUBSTRAT' ;
  368. FA.'MATERIAUX'.'POUDRE' = MATHEPO ;
  369. FA.'MATERIAUX'.'PIECE' = MATHEPI ;
  370. FA.'MATERIAUX'.'TOTAL' =
  371. MATHEPO ET MATHEPI ET MATHESU ET MATCONV ;
  372.  
  373. *Mise a jour de WTAB pour le PAS suivant
  374. WTAB.'MOD_MEC' = FA.'MODELE'.'TOTAL' ;
  375. WTAB.'MAT_MEC' = FA.'MATERIAUX'.'TOTAL' ;
  376. WTAB.'MO_TOT' = FA.'MODELE'.'TOTAL' ;
  377. WTAB.'MA_TOT' = FA.'MATERIAUX'.'TOTAL' ;
  378.  
  379. *Indice obligatoire a renseigner car PAS_ETAT travaille sur MO_TOTAL
  380. WTAB.'MO_TOTAL' = FA.'MODELE'.'TOTAL' ;
  381. WTAB.'MA_TOTAL' = FA.'MATERIAUX'.'TOTAL' ;
  382.  
  383. * Enregistrement des modeles
  384. TAB1.'MES_MODEL'.NB_PAS = WTAB.'MO_TOTAL' ;
  385. TAB1.'MES_MODEL2'.NB_PAS2 = TAB1.'MES_MODEL'.NB_PAS ;
  386. TAB1.'MODELE' = WTAB.'MO_TOTAL' ;
  387. TAB1.'CARACTERISTIQUES' = FA.'MATERIAUX'.'TOTAL' ;
  388. SINO ;
  389.  
  390. *Recuperation depuis le PAS precedent
  391. TAB1.'MES_MODEL'.NB_PAS = TAB1.'MES_MODEL'.(NB_PAS-1) ;
  392. TAB1.'MAILLAGE_FONDU'.NB_PAS = TAB1.'MAILLAGE_FONDU'.(NB_PAS-1) ;
  393. TAB1.'MES_MODEL2'.NB_PAS2 = TAB1.'MES_MODEL'.NB_PAS ;
  394. TAB1.'MAILLAGE_FONDU2'.NB_PAS2 = TAB1.'MAILLAGE_FONDU'.NB_PAS ;
  395. FINS;
  396.  
  397. SI XINFO ;
  398. MESS 'Fin procedure PERSO2' ;
  399. FINS ;
  400.  
  401. FINP TAB1;
  402.  
  403. ***********************************************************************
  404. ***********************************************************************
  405. ***********************************************************************
  406. ***********************************************************************
  407. ***********************************************************************
  408. ****MAILLAGE
  409.  
  410. *Maillage murs (carre) et plateau (substrat), fabrication addictive, procede SLM
  411. *Auteur : H. POMMIER harry.pommier@cea.fr
  412. *Historique version :
  413. *V0 version initiale 18/06/2018, Cast3M 2018
  414.  
  415.  
  416.  
  417. POEIL1 = 0. 0. 10. ;
  418. POEIL2 = 10. -10. 10. ;
  419.  
  420. **********
  421. *PARAMETRES (on travaille en [m])
  422. **********
  423. *Dimensions
  424. r0 = 1.e-3 ; COMM 'Rayon du plateau substrat en [m]' ;
  425. a0 = 1.e-3 ; COMM 'Cote du carre en [m]' ;
  426. a1 = '/' a0 2. ; COMM 'Demi cote du carre en [m]' ;
  427. efin = 100.e-6 ; COMM 'Largeur de la zone de maillage fin (cordon de lasage) [m]' ;
  428. egros = 50.e-6 ; COMM 'Largeur de la zone de transition (de part et d autre du lasage) [m]' ;
  429. h0 = 0.12e-3 ; COMM 'Hauteur de la piece' ;
  430. ep = 100.e-6 ; COMM 'Epaisseur du plateau' ;
  431.  
  432. *Taille elements
  433. mfin = 50.e-6 ; COMM 'Taille elements fins, cordon de lasage' ;
  434. mmoy = 100.e-6 ; COMM 'Taille elements transitions, voisinage cordon de lasage' ;
  435. mgros = 500.e-6 ; COMM 'Taille elements grossiers, loin du cordon de lasage' ;
  436. epcou = 50.e-6 ; COMM 'Epaisseur d une couche' ;
  437.  
  438. **********
  439. *POINTS
  440. **********
  441. PO = 0. 0. 0. ; COMM 'Origine au centre du plateau' ;
  442. sqrt22 = ('/' ('**' 2. 0.5) 2) ; COMM 'Racine de 2 sur 2' ;
  443. sqrt22i = ('*' sqrt22 -1.) ; COMM 'Moins racine de 2 sur 2' ;
  444. PD1 = ('*' r0 sqrt22) ('*' r0 sqrt22i) 0. ;
  445. PD2 = ('*' r0 sqrt22) ('*' r0 sqrt22) 0. ;
  446. PD3 = ('*' r0 sqrt22i) ('*' r0 sqrt22) 0. ;
  447. PD4 = ('*' r0 sqrt22i) ('*' r0 sqrt22i) 0. ;
  448. *Carre 1
  449. aloc = '-' a1 ('+' ('/' efin 2.) egros) ; COMM 'demi largeur du carre courant' ;
  450. aloco = '*' aloc -1. ; COMM 'oppose de aloc' ;
  451. PC11 = aloc aloco 0. ;
  452. PC12 = aloc aloc 0. ;
  453. PC13 = aloco aloc 0. ;
  454. PC14 = aloco aloco 0. ;
  455. *Carre 2
  456. aloc = '-' a1 ('/' efin 2.) ; COMM 'demi largeur du carre courant' ;
  457. aloco = '*' aloc -1. ; COMM 'oppose de aloc' ;
  458. PC21 = aloc aloco 0. ;
  459. PC22 = aloc aloc 0. ;
  460. PC23 = aloco aloc 0. ;
  461. PC24 = aloco aloco 0. ;
  462. *Carre 3
  463. aloc = '+' a1 ('/' efin 2.) ; COMM 'demi largeur du carre courant' ;
  464. aloco = '*' aloc -1. ; COMM 'oppose de aloc' ;
  465. PC31 = aloc aloco 0. ;
  466. PC32 = aloc aloc 0. ;
  467. PC33 = aloco aloc 0. ;
  468. PC34 = aloco aloco 0. ;
  469. *Carre 4
  470. aloc = '+' a1 ('+' ('/' efin 2.) egros) ; COMM 'demi largeur du carre courant' ;
  471. aloco = '*' aloc -1. ; COMM 'oppose de aloc' ;
  472. PC41 = aloc aloco 0. ;
  473. PC42 = aloc aloc 0. ;
  474. PC43 = aloco aloc 0. ;
  475. PC44 = aloco aloco 0. ;
  476.  
  477.  
  478.  
  479. **********
  480. *DROITES
  481. **********
  482. *Carre 1
  483. D11 = DROI PC11 PC12 'DINI' mgros 'DFIN' mgros ;
  484. D12 = DROI PC12 PC13 'DINI' mgros 'DFIN' mgros ;
  485. D13 = DROI PC13 PC14 'DINI' mgros 'DFIN' mgros ;
  486. D14 = DROI PC14 PC11 'DINI' mgros 'DFIN' mgros ;
  487. *Carre 2
  488. D21 = DROI PC21 PC22 'DINI' mfin 'DFIN' mfin ;
  489. D22 = DROI PC22 PC23 'DINI' mfin 'DFIN' mfin ;
  490. D23 = DROI PC23 PC24 'DINI' mfin 'DFIN' mfin ;
  491. D24 = DROI PC24 PC21 'DINI' mfin 'DFIN' mfin ;
  492. *Carre 3
  493. D31 = DROI PC31 PC32 'DINI' mfin 'DFIN' mfin ;
  494. D32 = DROI PC32 PC33 'DINI' mfin 'DFIN' mfin ;
  495. D33 = DROI PC33 PC34 'DINI' mfin 'DFIN' mfin ;
  496. D34 = DROI PC34 PC31 'DINI' mfin 'DFIN' mfin ;
  497. *Carre 4
  498. D41 = DROI PC41 PC42 'DINI' mgros 'DFIN' mgros ;
  499. D42 = DROI PC42 PC43 'DINI' mgros 'DFIN' mgros ;
  500. D43 = DROI PC43 PC44 'DINI' mgros 'DFIN' mgros ;
  501. D44 = DROI PC44 PC41 'DINI' mgros 'DFIN' mgros ;
  502. *Cercle exterieur
  503. C12 = CERC 'DINI' mgros 'DFIN' mgros 'CENTR' PD1 PO PD2 ;
  504. C23 = CERC 'DINI' mgros 'DFIN' mgros 'CENTR' PD2 PO PD3 ;
  505. C34 = CERC 'DINI' mgros 'DFIN' mgros 'CENTR' PD3 PO PD4 ;
  506. C41 = CERC 'DINI' mgros 'DFIN' mgros 'CENTR' PD4 PO PD1 ;
  507.  
  508. *Diagonales
  509. D01 = DROI PO PC11 'DINI' mgros 'DFIN' mmoy ;
  510. D02 = DROI PO PC12 'DINI' mgros 'DFIN' mmoy ;
  511. D03 = DROI PO PC13 'DINI' mgros 'DFIN' mmoy ;
  512. D04 = DROI PO PC14 'DINI' mgros 'DFIN' mmoy ;
  513. *Connexion carre 1 carre 2
  514. D121 = DROI PC11 PC21 'DINI' mmoy 'DFIN' mfin ;
  515. D122 = DROI PC12 PC22 'DINI' mmoy 'DFIN' mfin ;
  516. D123 = DROI PC13 PC23 'DINI' mmoy 'DFIN' mfin ;
  517. D124 = DROI PC14 PC24 'DINI' mmoy 'DFIN' mfin ;
  518. *Connexion carre 2 carre 3
  519. D231 = DROI PC21 PC31 'DINI' mfin 'DFIN' mfin ;
  520. D232 = DROI PC22 PC32 'DINI' mfin 'DFIN' mfin ;
  521. D233 = DROI PC23 PC33 'DINI' mfin 'DFIN' mfin ;
  522. D234 = DROI PC24 PC34 'DINI' mfin 'DFIN' mfin ;
  523. *Connexion carre 3 carre 4
  524. D341 = DROI PC31 PC41 'DINI' mfin 'DFIN' mmoy ;
  525. D342 = DROI PC32 PC42 'DINI' mfin 'DFIN' mmoy ;
  526. D343 = DROI PC33 PC43 'DINI' mfin 'DFIN' mmoy ;
  527. D344 = DROI PC34 PC44 'DINI' mfin 'DFIN' mmoy ;
  528. *Connexion carre 4 cercle exterieur
  529. D401 = DROI PC41 PD1 'DINI' mmoy 'DFIN' mgros ;
  530. D402 = DROI PC42 PD2 'DINI' mmoy 'DFIN' mgros ;
  531. D403 = DROI PC43 PD3 'DINI' mmoy 'DFIN' mgros ;
  532. D404 = DROI PC44 PD4 'DINI' mmoy 'DFIN' mgros ;
  533.  
  534.  
  535. **********
  536. *SURFACES
  537. **********
  538. *Interieur carre 1
  539. S1 = SURF (D01 ET D11 ET D02) 'PLANE' ;
  540. S2 = SURF (D02 ET D12 ET D03) 'PLANE' ;
  541. S3 = SURF (D03 ET D13 ET D04) 'PLANE' ;
  542. S4 = SURF (D04 ET D14 ET D01) 'PLANE' ;
  543. *Entre carre 1 et carre 2
  544. S5 = SURF (D11 ET D121 ET D21 ET D122) 'PLANE' ;
  545. S6 = SURF (D12 ET D122 ET D22 ET D123) 'PLANE' ;
  546. S7 = SURF (D13 ET D123 ET D23 ET D124) 'PLANE' ;
  547. S8 = SURF (D14 ET D124 ET D24 ET D121) 'PLANE' ;
  548. *Entre carre 2 et carre 3
  549. S9 = SURF (D21 ET D231 ET D31 ET D232) 'PLANE' ;
  550. S10 = SURF (D22 ET D232 ET D32 ET D233) 'PLANE' ;
  551. S11 = SURF (D23 ET D233 ET D33 ET D234) 'PLANE' ;
  552. S12 = SURF (D24 ET D234 ET D34 ET D231) 'PLANE' ;
  553. *Entre carre 3 et carre 4
  554. S13 = SURF (D31 ET D341 ET D41 ET D342) 'PLANE' ;
  555. S14 = SURF (D32 ET D342 ET D42 ET D343) 'PLANE' ;
  556. S15 = SURF (D33 ET D343 ET D43 ET D344) 'PLANE' ;
  557. S16 = SURF (D34 ET D344 ET D44 ET D341) 'PLANE' ;
  558. *Entre carre 3 et cercle exterieur
  559. S17 = SURF (D41 ET D401 ET C12 ET D402) 'PLANE' ;
  560. S18 = SURF (D42 ET D402 ET C23 ET D403) 'PLANE' ;
  561. S19 = SURF (D43 ET D403 ET C34 ET D404) 'PLANE' ;
  562. S20 = SURF (D44 ET D404 ET C41 ET D401) 'PLANE' ;
  563.  
  564. *Assemblage des zones
  565. SLASA = (S9 ET S10 ET S11 ET S12) COUL 'ROUG' ;
  566. STRAN = (S5 ET S6 ET S7 ET S8 ET
  567. S13 ET S14 ET S15 ET S16) COUL 'VERT' ;
  568. SLOIN = (S1 ET S2 ET S3 ET S4 ET
  569. S17 ET S18 ET S19 ET S20) COUL 'BLEU' ;
  570. STOT = SLASA ET STRAN ET SLOIN ;
  571.  
  572. SI XINFO ;
  573. MESS 'Nombre elements par couche :' (NBEL STOT) ;
  574. FINS;
  575.  
  576. **********
  577. *VOLUMES
  578. **********
  579. *Maillage du plateau
  580. MAILPLAT = (STOT VOLU 'DINI' mfin 'DFIN' mgros
  581. 'TRAN' (0. 0. ('*' ep -1.))) COUL 'VERT' ;
  582.  
  583. *Maillage couche par couche
  584. nbcou = '/' h0 epcou ; COMM 'Nombre de couche' ;
  585. nbcou = ENTI 'TRONCATURE' nbcou ;
  586. SI XINFO ;
  587. MESS 'Nombre de couches : ' nbcou ;
  588. FINS ;
  589.  
  590. *Premiere couche
  591. COULASA = (SLASA VOLU 1
  592. 'TRAN' (0. 0. epcou)) COUL 'ROUG' ;
  593. COUTRAN = (STRAN VOLU 1
  594. 'TRAN' (0. 0. epcou)) COUL 'ORAN' ;
  595. COULOIN = (SLOIN VOLU 1
  596. 'TRAN' (0. 0. epcou)) COUL 'JAUN' ;
  597.  
  598.  
  599. TABM = TABLE ;
  600. TABM.'plateau' = MAILPLAT ;
  601. TABM.'lasage' = TABLE ;
  602. TABM.'transition' = TABLE ;
  603. TABM.'loin' = TABLE ;
  604. TABM.'couche' = TABLE ;
  605. TABM.'lasage'. 1 = COULASA ;
  606. TABM.'transition'. 1 = COUTRAN ;
  607. TABM.'loin'. 1 = COULOIN ;
  608. MAILLASA = TABM.'lasage'. 1 ;
  609. MAILTRAN = TABM.'transition'. 1 ;
  610. MAILLOIN = TABM.'loin'. 1 ;
  611. REPE BOUC0 ('-' nbcou 1) ;
  612. I = ('+' &BOUC0 1) ;
  613. TABM.'lasage'.I = COULASA 'PLUS' (0. 0. ('*' (I-1) epcou)) ;
  614. MAILLASA = MAILLASA ET TABM.'lasage'.I ;
  615. TABM.'transition'.I = COUTRAN 'PLUS' (0. 0. ('*' (I-1) epcou)) ;
  616. MAILTRAN = MAILTRAN ET TABM.'transition'.I ;
  617. TABM.'loin'.I = COULOIN 'PLUS' (0. 0. ('*' (I-1) epcou)) ;
  618. MAILLOIN = MAILLOIN ET TABM.'loin'.I ;
  619. TABM.'couche'.I =
  620. (TABM.'lasage'.I) ET (TABM.'transition'.I) ET (TABM.'loin'.I) ;
  621. FIN BOUC0 ;
  622.  
  623.  
  624. MAILTOT = MAILLASA ET MAILTRAN ET MAILLOIN ET MAILPLAT ;
  625. ELIM MAILTOT 1.e-7 ;
  626.  
  627. SI XINFO ;
  628. NB = NBEL MAILTOT ;
  629. MESS 'Nombre elements :' NB ;
  630. FINS ;
  631.  
  632. **********
  633. *GRAPH
  634. **********
  635. SI GRAPH ;
  636. TRAC POEIL1 STOT ;
  637. TRAC 'FACE' 'CACHE' POEIL2 (MAILPLAT ET MAILLASA) ;
  638. TRAC 'FACE' 'CACHE' POEIL2 MAILTOT ;
  639. FINS ;
  640.  
  641. **********
  642. *TRAJECTOIRE LASAGE
  643. **********
  644. PROGX = PROG (-1. * a1) a1 ;
  645. PROGY = PROG (-1. * a1) (-1. * a1) ;
  646.  
  647.  
  648. **********
  649. *SAUV
  650. **********
  651. TABM.'EPAISSEUR_COU' = epcou ;
  652. *OPTI SAUV 'maillage_murs_FA_SLM.sauv' ;
  653. *SAUV TABM MAILTOT MAILLASA MAILTRAN MAILLOIN PROGX PROGY ;
  654.  
  655. ***********************************************************************
  656. ***********************************************************************
  657. ***********************************************************************
  658. ***********************************************************************
  659. ***********************************************************************
  660.  
  661. *Calcul thermique murs (carre) et plateau (substrat), fabrication addictive, procede SLM
  662. *Modele thermique conduction 3D
  663. *Trois matériaux :
  664. * poudre
  665. * piece
  666. * substrat
  667. *Procede SLM
  668. *Le métal poudre et le métal continu fondent à T>Tliq
  669. *Les elements sont ajoutés couche par couche
  670.  
  671.  
  672. *****Restitution maillage
  673. *OPTI REST 'maillage_murs_FA_SLM.sauv' ;
  674. *REST ;
  675. NBCOU = DIME TABM.'lasage' ; COMM 'Nombre de couches' ;
  676.  
  677.  
  678. **********
  679. *PARAMETRES
  680. **********
  681. T_INI = 20. ; COMM 'Temperature initiale' ;
  682. T_CONV = T_INI ;
  683. T_LIQ = 1400. ; COMM 'Temperature liquidus' ;
  684.  
  685. *Construction de la TABLE Fabrication Additive pour stocker l etude
  686. FA = TABLE ;
  687. ****MAILLAGE
  688. FA.'MAILLAGE' = TABLE ;
  689. FA.'MAILLAGE'.'COUCHE' = TABLE ; COMM 'Couche unitaire' ;
  690. FA.'MAILLAGE'.'COUCHE_CUM' = TABLE ; COMM 'Couches cumulees' ;
  691. FA.'MAILLAGE'.'TOTAL_CUM' = TABLE ; COMM 'Couche + substrat' ;
  692. FA.'MAILLAGE'.'POUDRE' = VIDE 'MAILLAGE' ;
  693. FA.'MAILLAGE'.'SUBSTRAT' = VIDE 'MAILLAGE' ;
  694. FA.'MAILLAGE'.'TOTAL' = VIDE 'MAILLAGE' ;
  695.  
  696. ****MATERIAUX
  697. FA.'CONSTITUANT' = TABLE ;
  698. FA.'CONSTITUANT'.'SUBSTRAT' = MOT '316L' ;
  699. FA.'CONSTITUANT'.'PIECE' = MOT '316L' ;
  700. FA.'CONSTITUANT'.'POROSITE' = 0.2 ;
  701. ****PROCEDE
  702. FA.'PROCEDE' = TABLE ;
  703. FA.'PROCEDE'.'VITESSE' = 300.e-3 ; COMM 'Vitesse en [m/s]' ;
  704. FA.'PROCEDE'.'TEMPS_INTERCOUCHE' = 0.5 ; COMM 'en [s]' ;
  705. FA.'PROCEDE'.'EPAISSEUR_COU' = TABM.'EPAISSEUR_COU' ;
  706. *Sources possibles : 'GOLDAK' ,
  707. FA.'PROCEDE'.'SOURCE' = TABLE ;
  708. FA.'PROCEDE'.'SOURCE'.'TYPE' = MOT 'GOLDAK' ;
  709.  
  710. SI ('EGA' (FA.'PROCEDE'.'SOURCE'.'TYPE') (MOT 'GOLDAK')) ;
  711. FA.'PROCEDE'.'SOURCE'.'ETA' = 1. ; COMM 'Rendement' ;
  712. FA.'PROCEDE'.'SOURCE'.'Q' = 50. ;
  713. FA.'PROCEDE'.'SOURCE'.'A' = 100.e-6 ;
  714. FA.'PROCEDE'.'SOURCE'.'B' = 100.e-6 ;
  715. FA.'PROCEDE'.'SOURCE'.'Cf' = 100.e-6 ;
  716. FA.'PROCEDE'.'SOURCE'.'Cr' = 100.e-6 ;
  717. FINS ;
  718.  
  719. *Trajectoire
  720. FA.'PROCEDE'.'TRAJECTOIRE' = TABLE ;
  721. FA.'PROCEDE'.'TRAJECTOIRE'.'PROGX' = PROGX ;
  722. FA.'PROCEDE'.'TRAJECTOIRE'.'PROGY' = PROGY ;
  723.  
  724. ****TEMPS CALCULES
  725. TPSLASA = DUREE
  726. FA.'PROCEDE'.'TRAJECTOIRE'.'PROGX'
  727. FA.'PROCEDE'.'TRAJECTOIRE'.'PROGY'
  728. (FA.'PROCEDE'.'VITESSE') ;
  729. FA.'PROCEDE'.'TEMPS_LASAGE' = TPSLASA ;
  730. TPSPAS1 = 1.e-4 ; COMM 'Pas de calcul pendant le lasage en [s]' ;
  731. TPSPAS2 = 2.e-1 ; COMM 'Pas de calcul pendant le refroidissement en [s]' ;
  732. TPSFIN = '+' TPSLASA FA.'PROCEDE'.'TEMPS_INTERCOUCHE' ;
  733. *Temps calcules
  734. LTCAL = PROG
  735. TPSPAS1 'PAS' TPSPAS1 TPSLASA 'PAS' TPSPAS2 TPSFIN ;
  736. *Temps sauves
  737. TPSPAS11 = 1.e-3 ;COMM 'Pas de sauvegarde pendant le lasage en [s]' ;
  738. TPSPAS22 = 2.e-1 ;COMM 'Pas de sauvegarde pendant le refroidissement en [s]' ;
  739. LTSAUV = PROG
  740. TPSPAS11 'PAS' TPSPAS11 TPSLASA 'PAS' TPSPAS22 TPSFIN ;
  741.  
  742. FA.'TEMPS_CALCULES' = TABLE ;
  743. FA.'TEMPS_SAUVES' = TABLE ;
  744. REPE BOUCT NBCOU ;
  745. K = &BOUCT ;
  746. FA.'TEMPS_CALCULES'.K = ('*' TPSFIN (K-1)) '+' LTCAL ;
  747. FA.'TEMPS_SAUVES'.K = ('*' TPSFIN (K-1)) '+' LTSAUV ;
  748. FIN BOUCT ;
  749.  
  750. **********
  751. *IMPORTATION MAILLAGE
  752. **********
  753. *Substrat
  754. FA.'MAILLAGE'.'SUBSTRAT' = TABM.'plateau' ;
  755.  
  756. *Couches de poudre
  757. FA.'MAILLAGE'.'COUCHE_CUM'. 0 = VIDE 'MAILLAGE' ;
  758. FA.'MAILLAGE'.'TOTAL_CUM'. 0 = VIDE 'MAILLAGE' ;
  759. REPE BLOC1 NBCOU ;
  760. I = &BLOC1 ;
  761. list I ;
  762. FA.'MAILLAGE'.'COUCHE'.I =
  763. (TABM.'lasage'.I ET TABM.'transition'.I ET TABM.'loin'.I) ;
  764. FA.'MAILLAGE'.'COUCHE_CUM'.I = FA.'MAILLAGE'.'COUCHE_CUM'.(I-1)
  765. ET FA.'MAILLAGE'.'COUCHE'.I ;
  766.  
  767. FA.'MAILLAGE'.'TOTAL_CUM'.I = FA.'MAILLAGE'.'COUCHE_CUM'.I
  768. ET FA.'MAILLAGE'.'SUBSTRAT' ;
  769. FIN BLOC1 ;
  770. FA.'MAILLAGE'.'POUDRE' = FA.'MAILLAGE'.'COUCHE_CUM'.NBCOU ;
  771. FA.'MAILLAGE'.'POUDRE_INI' = FA.'MAILLAGE'.'POUDRE' ;
  772. *Maillage total
  773. FA.'MAILLAGE'.'TOTAL' = FA.'MAILLAGE'.'SUBSTRAT' ET FA.'MAILLAGE'.'POUDRE' ;
  774.  
  775. SI GRAPH ;
  776. TRAC 'FACE' 'CACHE' FA.'MAILLAGE'.'TOTAL' ;
  777. FINS ;
  778.  
  779.  
  780. **********
  781. *MODELES
  782. **********
  783. FA.'MODELE' = TABLE ;
  784. FA.'MODELE'.'SUBSTRAT' = VIDE 'MMODEL' ;
  785. FA.'MODELE'.'POUDRE' = VIDE 'MMODEL' ;
  786. FA.'MODELE'.'PIECE' = VIDE 'MMODEL' ;
  787. FA.'MODELE'.'CONVECTION' = VIDE 'MMODEL' ;
  788. FA.'MODELE'.'MAILLAGE_CONV' = VIDE 'MAILLAGE' ;
  789. FA.'MODELE'.'TOTAL' = VIDE 'MMODEL' ;
  790.  
  791. *Substrat
  792. MAILTHSU = FA.'MAILLAGE'.'SUBSTRAT' ;
  793. MODTHESU = MODE MAILTHSU 'THERMIQUE' 'CONDUCTION' 'CONS' 'COND' ;
  794. FA.'MODELE'.'SUBSTRAT' = MODTHESU ;
  795.  
  796. *Poudre
  797. MAILTHPO = FA.'MAILLAGE'.'POUDRE' ;
  798. MODTHEPO = MODE MAILTHPO 'THERMIQUE' 'CONDUCTION' 'CONS' 'COND' ;
  799. FA.'MODELE'.'POUDRE' = MODTHEPO ;
  800. FA.'MODELE'.'POUDRE_INI' = MODTHEPO ;
  801. *Piece
  802. MAILTHPI = VIDE 'MAILLAGE' ;
  803. MODTHEPI = MODE MAILTHPI 'THERMIQUE' 'CONDUCTION' 'CONS' 'COND' ;
  804. FA.'MODELE'.'PIECE' = MODTHEPI ;
  805.  
  806. *Total
  807. FA.'MODELE'.'TOTAL' =
  808. MODTHESU ET MODTHEPO ET MODTHEPI ;
  809.  
  810.  
  811. **********
  812. *MATERIAUX
  813. **********
  814. FA.'MATERIAUX' = TABLE ;
  815. FA.'MATERIAUX'.'PARA_PIECE' = TABLE ;
  816. FA.'MATERIAUX'.'SUBSTRAT' = VIDE 'MCHAML' ;
  817. FA.'MATERIAUX'.'POUDRE' = VIDE 'MCHAML' ;
  818. FA.'MATERIAUX'.'PIECE' = VIDE 'MCHAML' ;
  819. FA.'MATERIAUX'.'TOTAL' = VIDE 'MCHAML' ;
  820.  
  821.  
  822.  
  823. *Lecture des MATERIAUX ('316L','16MND5')
  824.  
  825. NOMCONS = FA.'CONSTITUANT'.'SUBSTRAT' ;
  826.  
  827. *Lecture des parametres dans la bibliotheque
  828.  
  829. *NOMDATA = CHAI 'Materiaux/' NOMCONS '/' NOMCONS'_Rho.csv' ;
  830. TTMP = TABL ;
  831. TTMP. 1 = PROG 20 200 400 600 800 1000 1200 1400 1500 3000 ;
  832. TTMP. 2 = PROG 8.0e3 7.93e3 7.84e3 7.75e3 7.65e3 7.55e3
  833. 7.45e3 7.35e3 7.30e3 7.30e3 ;
  834. EVRHO = EVOL MANU 'T' (TTMP. 1) 'RHO' (TTMP. 2) ;
  835.  
  836. *NOMDATA = CHAI 'Materiaux/' NOMCONS '/' NOMCONS'_k.csv' ;
  837. TTMP = TABL ;
  838. TTMP. 1 = PROG 20 100 200 300 400 500 600 700 800 900 1000
  839. 1200 1400 3000 ;
  840. TTMP. 2 = PROG 0.0147e3 0.0158e3 0.0172e3 0.0186e3 0.02e3
  841. 0.0211e3 0.0222e3 0.0232e3 0.0241e3 0.0248e3 0.0255e3
  842. 0.0269e3 0.0283e3 0.0283e3 ;
  843. EVK = EVOL MANU 'T' (TTMP. 1) 'K' (TTMP. 2) ;
  844.  
  845. *NOMDATA = CHAI 'Materiaux/' NOMCONS '/' NOMCONS'_Cp.csv' ;
  846. TTMP = TABL ;
  847. TTMP. 1 = PROG 20 100 200 300 400 600 800 1000 1200 1500 3000 ;
  848. TTMP. 2 = PROG 450 490 525 545 560 580 625 660 670 690 690 ;
  849. EVCP = EVOL MANU 'T' (TTMP. 1) 'C' (TTMP. 2) ;
  850.  
  851. SI GRAPH ;
  852. DESS EVRHO TITR 'Masse Volumique' ;
  853. DESS EVK TITR 'Conductivite Thermique' ;
  854. DESS EVCP TITR 'Chaleur Specifique' ;
  855. FINS ;
  856.  
  857. MATHESU = MATE MODTHESU 'K' EVK 'RHO' EVRHO 'C' EVCP ;
  858. FA.'MATERIAUX'.'SUBSTRAT' = MATHESU ;
  859.  
  860. *Sauvegarde pour utilisation dans PERSO2
  861. FA.'MATERIAUX'.'PARA_PIECE'.'EVK' = EVK ;
  862. FA.'MATERIAUX'.'PARA_PIECE'.'EVRHO' = EVRHO ;
  863. FA.'MATERIAUX'.'PARA_PIECE'.'EVCP' = EVCP ;
  864.  
  865. SI ('NEG' FA.'CONSTITUANT'.'SUBSTRAT' FA.'CONSTITUANT'.'PIECE') ;
  866. *NOMDATA = CHAI 'Materiaux/' NOMCONS '/' NOMCONS'_Rho.csv' ;
  867. TTMP = TABL ;
  868. TTMP. 1 = PROG 20 200 400 600 800 1000 1200 1400 1500 3000 ;
  869. TTMP. 2 = PROG 8.0e3 7.93e3 7.84e3 7.75e3 7.65e3 7.55e3
  870. 7.45e3 7.35e3 7.30e3 7.30e3 ;
  871. EVRHO = EVOL MANU 'T' (TTMP. 1) 'RHO' (TTMP. 2) ;
  872.  
  873. *NOMDATA = CHAI 'Materiaux/' NOMCONS '/' NOMCONS'_k.csv' ;
  874. TTMP = TABL ;
  875. TTMP. 1 = PROG 20 100 200 300 400 500 600 700 800 900 1000
  876. 1200 1400 3000 ;
  877. TTMP. 2 = PROG 0.0147e3 0.0158e3 0.0172e3 0.0186e3 0.02e3
  878. 0.0211e3 0.0222e3 0.0232e3 0.0241e3 0.0248e3 0.0255e3
  879. 0.0269e3 0.0283e3 0.0283e3 ;
  880. EVK = EVOL MANU 'T' (TTMP. 1) 'K' (TTMP. 2) ;
  881.  
  882. *NOMDATA = CHAI 'Materiaux/' NOMCONS '/' NOMCONS'_Cp.csv' ;
  883. TTMP = TABL ;
  884. TTMP. 1 = PROG 20 100 200 300 400 600 800 1000 1200 1500 3000 ;
  885. TTMP. 2 = PROG 450 490 525 545 560 580 625 660 670 690 690 ;
  886. EVCP = EVOL MANU 'T' (TTMP. 1) 'C' (TTMP. 2) ;
  887.  
  888. SI GRAPH ;
  889. DESS EVRHO TITR 'Masse Volumique' ;
  890. DESS EVK TITR 'Conductivite Thermique' ;
  891. DESS EVCP TITR 'Chaleur Specifique' ;
  892. FINS ;
  893. FINS ;
  894.  
  895. MATHEPI = MATE MODTHEPI 'K' EVK 'RHO' EVRHO 'C' EVCP ;
  896. FA.'MATERIAUX'.'PIECE' = MATHEPI ;
  897. FA.'MATERIAUX'.'PIECE_INI' = MATHEPI ;
  898. *Sauvegarde pour utilisation dans PERSO2
  899. FA.'MATERIAUX'.'PARA_PIECE'.'EVK' = EVK ;
  900. FA.'MATERIAUX'.'PARA_PIECE'.'EVRHO' = EVRHO ;
  901. FA.'MATERIAUX'.'PARA_PIECE'.'EVCP' = EVCP ;
  902.  
  903. *Les proprietes de la poudre sont proportionnelle a sa porosite 'porop'
  904. porop = FA.'CONSTITUANT'.'POROSITE' ;
  905. EVK = '*' ('-' 1. porop) EVK ;
  906. EVRHO = '*' ('-' 1. porop) EVRHO ;
  907. EVCP = '*' ('-' 1. porop) EVCP ;
  908. MATHEPO = MATE MODTHEPO 'K' EVK 'RHO' EVRHO 'C' EVCP ;
  909. FA.'MATERIAUX'.'POUDRE' = MATHEPO ;
  910. FA.'MATERIAUX'.'POUDRE_INI' = MATHEPO ;
  911.  
  912. FA.'MATERIAUX'.'TOTAL' = MATHESU ET MATHEPO ET MATHEPI ;
  913.  
  914. **********
  915. *PASAPAS - Calcul thermique transitoire
  916. **********
  917.  
  918. I = 1 ; COMM 'Indice de la couche en cours' ;
  919.  
  920. *REDU du calcul thermique sur la couche actuelle
  921. MODCOU = REDU FA.'MODELE'.'POUDRE' FA.'MAILLAGE'.'COUCHE_CUM'. 1 ;
  922. MODCOND = MODTHESU ET MODCOU ET MODTHEPI ;
  923. MATCOU = REDU FA.'MATERIAUX'.'POUDRE' FA.'MAILLAGE'.'COUCHE_CUM'. 1 ;
  924. MATCOND = MATHESU ET MATCOU ET MATHEPI ;
  925. MAILCONV = ENVE (EXTR (MODTHESU ET MODCOU) 'MAILLAGE') ;
  926.  
  927. *Convection
  928. MODCONV = MODE MAILCONV 'THERMIQUE' 'CONVECTION' 'CONS' 'CONV' ;
  929. MATCONV = MATE MODCONV 'H' 10. ;
  930. CONV1 = CONV MODCONV MATCONV 'T' T_CONV ;
  931. EVO1 = EVOL 'MANU' (PROG 0. 1.e10) (PROG 1. 1.) ;
  932. CHACONV = CHAR 'Q' CONV1 EVO1 ;
  933. CHARTOT = CHACONV ;
  934.  
  935. *Ajout convection au modele
  936. MODTOT = MODCOND ET MODCONV ;
  937. MATTOT = MATCOND ET MATCONV ;
  938.  
  939.  
  940. *Initialisation
  941. MAILTHER= EXTR MODCOND 'MAILLAGE' ;
  942. CHPTINI = MANU 'CHPO' MAILTHER 1 'T' T_INI 'NATU' 'DIFFUS' ;
  943. MAILFON = VIDE 'MAILLAGE' ;
  944.  
  945. *Declaration de la table PASAPAS
  946. FAPASAP = TABLE ;
  947. FAPASAP.'MODELE' = MODTOT ;
  948. FAPASAP.'CARACTERISTIQUES' = MATTOT ;
  949. FAPASAP.'CHARGEMENT' = CHARTOT ;
  950. FAPASAP.'TEMPS_CALCULES' = LTCAL ;
  951. *FAPASAP.'TEMPS_SAUVES' = LTSAUV ;
  952.  
  953. FAPASAP.'TEMPS' = TABLE ;
  954. FAPASAP.'TEMPERATURES' = TABLE ;
  955. FAPASAP.'MES_MODEL' = TABLE ;
  956. FAPASAP.'MAILLAGE_FONDU' = TABLE ;
  957. FAPASAP.'MES_MODEL2' = TABLE ;
  958. FAPASAP.'MAILLAGE_FONDU2' = TABLE ;
  959.  
  960. FAPASAP.'TEMPS'. 0 = 0. ;
  961. FAPASAP.'TEMPERATURES'. 0 = CHPTINI ;
  962. FAPASAP.'MES_MODEL'. 0 = MODTOT ;
  963. FAPASAP.'MES_MODEL2'. 0 = MODTOT ;
  964. FAPASAP.'MAILLAGE_FONDU'. 0 = MAILFON ;
  965. FAPASAP.'MAILLAGE_FONDU2'. 0 = MAILFON ;
  966. *MES_MODEL2 et MAILLAGE_FONDU2 sont enregistres en synchronisation avec 'TEMPS'
  967.  
  968. FAPASAP.'PROCEDURE_PERSO2' = VRAI ;
  969. FAPASAP.'PROCEDURE_CHARTHER' = VRAI ;
  970.  
  971. FAPASAP.'PRECISION' = 1.e-1 ; COMM 'Pour rapidite' ;
  972.  
  973. FAPASAP.'PROCESSEURS' = 'MOT' 'AUTOMATIQUE' ;
  974.  
  975. FAPASAP.'MES_DATA' = TABLE ;
  976. FAPASAP.'MES_DATA'.'COUCHE' = 1 ;
  977. FAPASAP.'MES_DATA'.'TPSFIN' = TPSFIN ;
  978. FAPASAP.'MES_DATA'.'T_LIQUIDUS' = T_LIQ ;
  979.  
  980. *Boucle sur les couches (un PASAPAS par couche)
  981. REPE BOUCPAS NBCOU ;
  982. I = &BOUCPAS ;
  983.  
  984. SI XINFO ;
  985. MESS 'DEBUT CALCUL LA COUCHE :' I ;
  986. FINS ;
  987.  
  988.  
  989. PASAPAS FAPASAP ;
  990.  
  991.  
  992. SI XINFO ;
  993. MESS 'FIN CALCUL LA COUCHE :' I ;
  994. FINS ;
  995.  
  996. MENA 'OBLI' ;
  997. *nomfic = CHAI 'RESU/COUCHE_' I '.sauv' ;
  998. *OPTI SAUV nomfic ;
  999. *SAUV FAPASAP TABM FA ;
  1000. *Pour gagner de la place sur le disque (commande linux)
  1001. *SI (I '>' 2) ;
  1002. *comclean = CHAI 'rm RESU/COUCHE_' (I-2) '.sauv*' ;
  1003. *EXTE comclean ;
  1004. *FINS ;
  1005.  
  1006. SI (I '<' NBCOU) ;
  1007.  
  1008. *On ajoute le MODELE et le MATERIAUX de la couche suivante
  1009. NB_PAS = DIME FAPASAP.'TEMPS' ;
  1010. MODCOUI = REDU (EXTR FA.'MODELE'.'POUDRE_INI' 'CONS' 'COND')
  1011. FA.'MAILLAGE'.'COUCHE'.(I+1) ;
  1012.  
  1013. MODCOND = EXTR FAPASAP.'MODELE' 'CONS' 'COND' ;
  1014. MODCOND2 = MODCOND ET MODCOUI ;
  1015. MAILCONV = ENVE (EXTR MODCOND2 'MAILLAGE') ;
  1016. MODCONV = MODE MAILCONV 'THERMIQUE' 'CONVECTION' 'CONS' 'CONV' ;
  1017. MODTOT = MODCOND2 ET MODCONV ;
  1018.  
  1019. *On ajoute le materiau
  1020. MATLAST = REDU FA.'MATERIAUX'.'TOTAL' MODCOND ;
  1021. MATCOND = MATLAST ET (REDU FA.'MATERIAUX'.'POUDRE_INI' MODCOUI) ;
  1022. MATCONV = MATE MODCONV 'H' 10. ;
  1023. MATTOT = MATCOND ET MATCONV ;
  1024.  
  1025.  
  1026. *Chargement convection
  1027. CONV1 = CONV MODCONV MATCONV 'T' T_CONV ;
  1028. EVO1 = EVOL 'MANU' (PROG 0. 1.e10) (PROG 1. 1.) ;
  1029. CHACONV = CHAR 'Q' CONV1 EVO1 ;
  1030.  
  1031. *Actualisation chargement
  1032. CHARTOT = CHACONV ;
  1033.  
  1034. *Ajout de la nouvelle couche à temperature T_INI
  1035. CHPTLAST = FAPASAP.'TEMPERATURES'.(NB_PAS-1) ;
  1036. MAILNEW = FA.'MAILLAGE'.'COUCHE'.(I+1) ;
  1037. CHPTNEW = MANU 'CHPO' MAILNEW 1 'T' T_INI 'NATU' 'DIFFUS' ;
  1038.  
  1039. MAIL1 = EXTR CHPTLAST 'MAILLAGE' ;
  1040. MAIL2 = EXTR CHPTNEW 'MAILLAGE' ;
  1041. MAILSEP = INTE MAIL1 MAIL2 ;
  1042.  
  1043. MAIL11 = DIFF MAIL1 MAILSEP ;
  1044. MAIL22 = DIFF MAIL2 MAILSEP ;
  1045.  
  1046. *Il faut faire une hypothese sur la temperature sur la surface frontiere la couche precedente et la nouvelle
  1047. *On fait hypothese que cette couche est a la temperature nouvelle couche
  1048. CHPTLAST = REDU CHPTLAST MAIL11 ;
  1049. CHPTINI = CHPTLAST ET CHPTNEW ;
  1050. CHPTINI = REDU CHPTINI (EXTR MODTOT 'MAILLAGE') ;
  1051.  
  1052. *On actualise la table PASAPAS
  1053. FAPASAP.'MODELE' = MODTOT ;
  1054. FAPASAP.'CARACTERISTIQUES' = MATTOT ;
  1055. FAPASAP.'CHARGEMENT' = CHARTOT ;
  1056. FAPASAP.'TEMPS_CALCULES' = FA.'TEMPS_CALCULES'.(I+1) ;
  1057. *FAPASAP.'TEMPS_SAUVES' = FA.'TEMPS_SAUVES'.(I+1) ;
  1058. FAPASAP.'TEMPERATURES'.(NB_PAS-1) = CHPTINI ;
  1059. FAPASAP.'MES_MODEL'.(NB_PAS-1) = MODTOT ;
  1060. FAPASAP.'MES_DATA'.'COUCHE' = (I+1) ;
  1061.  
  1062. FINS ;
  1063. FIN BOUCPAS ;
  1064.  
  1065. SI GRAPH ;
  1066. N = DIME FAPASAP.'MAILLAGE_FONDU' ;
  1067. MAILF = FAPASAP.'MAILLAGE_FONDU'.(N-1) ;
  1068. TRAC FACE CACHE (MAILPLAT ET MAILF) ;
  1069. FINS ;
  1070.  
  1071. FIN ;
  1072.  
  1073.  
  1074.  
  1075.  
  1076.  
  1077.  
  1078.  
  1079.  
  1080.  
  1081.  
  1082.  
  1083.  
  1084.  

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