Télécharger soudage3.dgibi

Retour à la liste

Numérotation des lignes :

  1. * fichier : soudage3.dgibi
  2. OPTI ECHO 0 ;
  3. OPTI TRAC 'PSC' ;
  4. GRAPH = FAUX ;
  5. ************************************************************************
  6. * Debut du jeu de donnees de soudage multipasse H. Pommier 12/03/2017
  7. *
  8. * OPTIONS GENERALES
  9. * - 3D
  10. * - Grande Deformations
  11. *
  12. * THERMIQUE
  13. * - Source de chaleur volumique (Goldak) dépendant du temps
  14. * - Conduction dans la matière
  15. * - Convection les bords hors cordon de soudure
  16. * - Proprietes matériaux qui dépendent de T
  17. *
  18. * MECANIQUE
  19. * - Dilatation thermique
  20. * - Proprietes matériaux qui dépendent de T
  21. * - Materiaux ELASTIQUE "mou" dans les zones inactives
  22. * - Matériaux elastoplastique dans les zones actives
  23. * - Perte des proprietés mecaniques à l'état liquide (PERSO1)
  24. * - Activation des élèments dès qu'ils ont fondus une 1ère fois(PERSO2)
  25. *
  26. ************************************************************************
  27.  
  28. ***PROCEDURES
  29.  
  30. 'DEBP' PERSO1 TAB1*'TABLE' ;
  31. ************************************************************************
  32. * PROCEDURE PERSO1 : Apres la MECANIQUE dans PASAPAS
  33. * - Annnule la deformation plastique cumulee
  34. * - Annnule la deformation inelastique
  35. * lorsque les elements sont à l'etat Liquide (T > Tfusion)
  36. ************************************************************************
  37.  
  38. NB_PAS = (DIME TAB1. 'TEMPS') ;
  39.  
  40. WTAB = TAB1.'WTABLE' ;
  41. MODMECA = EXTR WTAB.'MO_TOTAL' 'FORM' 'MECANIQUE' ;
  42. MODTHER = EXTR WTAB.'MO_TOTAL' 'FORM' 'THERMIQUE' ;
  43. MODTCOND= EXTR MODTHER 'COMP' 'CONDUCTION';
  44.  
  45. EIDITH = REDU TAB1.'ESTIMATION'.'DEFORMATIONS_INELASTIQUES' MODMECA ;
  46. EPSETH = REDU TAB1.'ESTIMATION'.'VARIABLES_INTERNES' MODMECA ;
  47.  
  48. * Recuperation des ELEMENTS LIQUIDES dans le Champs de TEMPERATURE
  49. CHPTEMP = TAB1.'ESTIMATION'.'TEMPERATURES';
  50. CHATEMP = CHAN 'CHAM' CHPTEMP MODMECA 'SCALAIRE' ;
  51. ELEMSUP = ELEM CHATEMP 'SUPE' T_FUSION 'STRI' ;
  52.  
  53. SI ((NBEL ELEMSUP) '>' 0 );
  54. MODSUP = REDU MODMECA ELEMSUP ;
  55. MODINF = REDU MODMECA (DIFF (EXTR MODMECA 'MAIL' ) ELEMSUP) ;
  56.  
  57. * Deformations inelastiques
  58. LMOTS2 = EXTR EIDITH 'COMP' ;
  59. CHELNEW = VIDE 'MCHAML' ;
  60. CHELCAL = EIDITH ;
  61. REPE ICOMP (DIME LMOTS2);
  62. MOT4 = EXTR LMOTS2 &ICOMP ;
  63. CHELSUP= MANU 'CHML' MODSUP MOT4 0.D0
  64. 'TYPE' 'DEFORMATIONS_INELASTIQUES' 'STRESSES' ;
  65. CHELNEW= CHELNEW ET CHELSUP ;
  66. FIN ICOMP;
  67. CHELINF= REDU CHELCAL MODINF ;
  68. EIDITH = CHELNEW 'ET' CHELINF ;
  69.  
  70. * Variables internes
  71. LMOTS2 = EXTR EPSETH 'COMP' ;
  72. CHELNEW = VIDE 'MCHAML' ;
  73. CHELCAL = EPSETH ;
  74. REPE ICOMP (DIME LMOTS2);
  75. MOT4 = EXTR LMOTS2 &ICOMP ;
  76. CHELSUP= MANU 'CHML' MODSUP MOT4 0.D0
  77. 'TYPE' 'VARIABLES_INTERNES' 'STRESSES' ;
  78. CHELNEW= CHELNEW ET CHELSUP ;
  79. FIN ICOMP;
  80. CHELINF= REDU CHELCAL MODINF ;
  81. EPSETH = CHELNEW 'ET' CHELINF ;
  82. * Mise a jour dans la TABLE
  83. TAB1.'ESTIMATION'.'DEFORMATIONS_INELASTIQUES' = EIDITH ;
  84. TAB1.'ESTIMATION'.'VARIABLES_INTERNES' = EPSETH ;
  85. FINS;
  86.  
  87. 'FINP' TAB1;
  88.  
  89. 'DEBP' PERSO2 TAB1*'TABLE' ;
  90. ************************************************************************
  91. * PROCEDURE PERSO2 : Apres la THERMIQUE dans TRANSNON
  92. * - met a jour le MODELE et le MATERIAU MECANIQUE : DEGRADEES -> NOMINALES
  93. * - met a jour la TEMPERATURE_REFERENCE pour les elements fondus
  94. * - ATTENTION : La temperature a jour est dans l'indice WTAB.'THER_COURANT'
  95. ************************************************************************
  96.  
  97. MPASSE = 'CHAI' 'PERSO_2 : PASSE numero ' I ;
  98.  
  99. WTAB = TAB1 . 'WTABLE' ;
  100.  
  101. NB_PAS = (DIME TAB1.'TEMPS') ;
  102.  
  103. MODMECA = EXTR WTAB.'MO_TOTAL' 'FORM' 'MECANIQUE' ;
  104. MODTHER = EXTR WTAB.'MO_TOTAL' 'FORM' 'THERMIQUE' ;
  105. MODTCOND= EXTR MODTHER 'COMP' 'CONDUCTION';
  106.  
  107. MAIMECA = EXTR MODMECA 'MAILLAGE' ;
  108.  
  109. MATTOT = TAB1.'CARACTERISTIQUES' ;
  110.  
  111. MAIPASS = EXTR SOUDAGE.'MODELE'.'APPORT'.'MECANIQUE'.'DEGRADE'. I
  112. 'MAILLAGE' ;
  113. MOMECNT = SOUDAGE.'MODELE' .'APPORT'.'MECANIQUE'.'NOMINAL'.'TOTAL';
  114. MOMECDT = SOUDAGE.'MODELE' .'APPORT'.'MECANIQUE'.'DEGRADE'.'TOTAL';
  115.  
  116. MODPIECE= SOUDAGE.'MODELE'.'PIECE'.'MECANIQUE'.'TOTAL' ;
  117. MAIPIECE= EXTR MODPIECE 'MAILLAGE' ;
  118.  
  119. MAILNTOT= EXTR MOMECNT'MAILLAGE' ;
  120. MODTHAP = SOUDAGE.'MODELE'.'APPORT'.'THERMIQUE'. I ;
  121.  
  122. * Recuperation des ELEMENTS LIQUIDES dans le Champs de TEMPERATURE
  123. CHATEMP = CHAN 'CHAM' WTAB.'THER_COURANT' MODMECA 'TEMPERATURES' ;
  124. CHATEMP = BORN CHATEMP 'T' 'MINI' T_INIT ;
  125. ELEMSUP = ELEM CHATEMP 'SUPE' T_FUSION 'LARGEMENT' ;
  126.  
  127. ************************************************************************
  128. * Traitement du MODELE NOMINAL / DEGRAGE
  129. ************************************************************************
  130. ELEMOUT = INTE (DIFF MAIMECA MAIPASS) ELEMSUP ;
  131. ELSUPAS = DIFF ELEMSUP ELEMOUT ;
  132.  
  133. * Construction du MAILLAGE des ELEMENTS actifs nouveaux
  134. MAILINI = TAB1 .'MAILLAGE_ACTIF'. (NB_PAS-1) ;
  135. MAILPOT = INTE MAIPASS ELSUPAS ;
  136. MAILINT = INTE MAILPOT MAILINI ;
  137. MAILADDI= (DIFF ELSUPAS MAILINT) COUL BLEU ;
  138. MAILNOMI= MAILINI ET MAILADDI ;
  139.  
  140. BTEST = FAUX;
  141.  
  142. * Mise a jour du MODELE et du MATERIAUX si on a des ELEMENTS ADDITIONNELS
  143. SI ((NBEL MAILADDI) '>' 0);
  144. MODNOMI = REDU MOMECNT MAILNOMI ;
  145. MODMECA = MODPIECE ;
  146. MAILDEGR= DIFF MAILNTOT MAILNOMI ;
  147. MODMECA = MODMECA ET MODNOMI ;
  148.  
  149. SI ((NBEL MAILDEGR) '>' 0);
  150. MODMECA = MODMECA ET (REDU MOMECDT MAILDEGR);
  151. FINS;
  152.  
  153. MATMECA = REDU MATTOT MODMECA ;
  154.  
  155. * Mise a jour dans la TABLE pour le PAS suivant
  156. WTAB. 'MOD_MEC' = MODMECA ;
  157. WTAB. 'MAT_MEC' = MATMECA ;
  158.  
  159. WTAB. 'MO_TOT' = MODMECA ;
  160. WTAB. 'MA_TOT' = MATMECA ;
  161.  
  162. * Indice obligatoire a renseigner car PAS_ETAT travaille sur MO_TOTAL
  163. WTAB. 'MO_TOTAL' = MODMECA ET MODTHER ;
  164. WTAB. 'MA_TOTAL' = MATMECA ET MATTHER ;
  165.  
  166. * Enregistrement du MAILLAGE_ACTIF
  167. TAB1.'MAILLAGE_ACTIF'. NB_PAS = MAILNOMI ;
  168. TAB1.'MES_MODEL' . NB_PAS = WTAB. 'MO_TOTAL' ;
  169. *ajout HP 14/04/2017
  170. TAB1.'MODELE' = WTAB. 'MO_TOTAL' ;
  171.  
  172. BTEST = VRAI;
  173. SINO;
  174. SI (NON (EXIS TAB1.'MAILLAGE_ACTIF' NB_PAS));
  175. * Recuperation depuis le PAS precedent
  176. TAB1.'MAILLAGE_ACTIF'. NB_PAS = MAILINI ;
  177. TAB1.'MES_MODEL' . NB_PAS = TAB1.'MES_MODEL'.(NB_PAS-1) ;
  178. FINS;
  179. FINS;
  180.  
  181. ************************************************************************
  182. * Traitement des ELEMENTS FONDUS
  183. ************************************************************************
  184. * Construction du MAILLAGE des ELEMENTS fondus nouveaux
  185. MAILOK =(DIFF MAIMECA MAILNTOT) 'ET' MAILNOMI ;
  186. MODOK = REDU MODMECA MAILOK ;
  187. CHATEMP = CHAN 'CHAM' WTAB.'THER_COURANT' MODMECA 'TEMPERATURES' ;
  188. CHATEMP = REDU CHATEMP MODOK ;
  189. ELEMSUP = ELEM CHATEMP 'SUPE' T_FUSION 'LARGEMENT' ;
  190. MAILINI = TAB1.'MAILLAGE_FONDU'. (NB_PAS-1) ;
  191. MAILINT = INTE ELEMSUP MAILINI ;
  192. MAILADDI=(DIFF ELEMSUP MAILINT) COUL BLEU ;
  193.  
  194. * Recalcul de 'TEMPERATURE_REFERENCE' sur le nouveau modele
  195. SI ((NBEL MAILADDI) '>' 0 );
  196. MAILFOND = MAILINI ET MAILADDI ;
  197. MAILNORM = DIFF MAIMECA MAILFOND ;
  198. MODFOND = REDU MODMECA MAILFOND ;
  199. MODNORM = REDU MODMECA MAILNORM ;
  200. CHATEMP = CHAN 'CHAM' WTAB.'THER_COURANT' MODMECA 'TEMPERATURES' ;
  201. TREFSUP = BORN (REDU CHATEMP MODFOND) 'T' 'MINI' T_FUSION ;
  202. TREFDIF = MANU 'CHML' MODNORM 'T' T_INIT 'TYPE' 'TEMPERATURES' ;
  203. WTAB.'TEMPERATURE_REFERENCE' = TREFSUP 'ET' TREFDIF ;
  204. WTAB.'ETAT_REF' ='MOT' 'INCONNU' ;
  205.  
  206. * Enregistrement du MAILLAGE_ACTIF du MODELE et du MAILLAGE_FONDU
  207. TAB1.'MAILLAGE_FONDU'. NB_PAS = MAILFOND ;
  208. SINO;
  209. * Recuperation depuis le PAS precedent
  210. TAB1.'MAILLAGE_FONDU'. NB_PAS = MAILINI ;
  211.  
  212. * Ajout HP 18/04/2017
  213. * Diminution TREF jusqua temperature fusion 1400 au refroidissement
  214. * Construction du MAILLAGE des ELEMENTS refroidis
  215. SI ((NBEL TAB1.'MAILLAGE_FONDU'. NB_PAS) '>EG' 1) ;
  216. *MODRE est le modele meca reduit au modele fondu
  217. MODRE = REDU MODMECA (TAB1.'MAILLAGE_FONDU'. NB_PAS) ;
  218. *CHTRE est le champ par elem des temperatures de MODRE
  219. CHTRE = CHAN 'CHAM' WTAB.'THER_COURANT' MODRE 'TEMPERATURES' ;
  220. *ELEMRE est l ensemble des elements du maillage fondu
  221. *dont CHTRE est strict inf a Tfus
  222. ELEMRE = ELEM CHTRE 'INFE' T_FUSION 'STRI' ;
  223. *MODRE est le modele meca reduit a ELEMRE, ie a l ensemble des elements
  224. *du maillage fondu dont la temp est strict inf a Tfus
  225. MODRE = REDU MODMECA ELEMRE ;
  226. *TREFRE est le champ par elements de Tfus sur MODRE
  227. TREFRE = MANU 'CHML' MODRE 'T' T_FUSION 'TYPE' 'TEMPERATURES' ;
  228. *MTREFF est le maillage fondu comprenant uniquement les elements
  229. *dont la temp est sup ou eg a Tfus
  230. MTREFF = DIFF (TAB1.'MAILLAGE_FONDU'. NB_PAS) ELEMRE ;
  231. *MODTOL est le modele meca reduit aux elements du maillage fondu
  232. *de T >= Tfus
  233. MODTOL = REDU MODMECA MTREFF ;
  234. OLDTREF = REDU (WTAB.'TEMPERATURE_REFERENCE') MODTOL ;
  235. MAIL0 = EXTR MODMECA 'MAILLAGE' ;
  236. MAIL1 = DIFF MAIL0 (TAB1.'MAILLAGE_FONDU'. NB_PAS) ;
  237. MOD0 = REDU MODMECA MAIL1 ;
  238. TREF0 = MANU 'CHML' MOD0 'T' T_INIT 'TYPE' 'TEMPERATURES' ;
  239. WTAB.'TEMPERATURE_REFERENCE' =
  240. (OLDTREF 'ET' TREFRE) ET TREF0 ;
  241. FINS;
  242. * Fin ajout HP 18/04/2017
  243. FINS;
  244. 'FINP' TAB1;
  245.  
  246. ************************************************************************
  247. * NOM : SOUGOLD0
  248. * DESCRIPTION : Source normalisée GOLDAK
  249. *
  250. * LANGAGE : GIBIANE-CAST3M
  251. * AUTEUR : Olivier ASSERIN (CEA/DEN/DM2S/SEMT/LTA)
  252. * mél : olivier.asserin@cea.fr
  253. ************************************************************************
  254. * VERSION : v1, 17/07/2008, version initiale
  255. * HISTORIQUE : modification pour PASAPAS H. POMMIER 02-2017
  256. * HISTORIQUE :
  257. * HISTORIQUE :
  258. ************************************************************************
  259. ************************************************************************
  260. DEBP SOUGOLD0 mo_sou*'MMODEL' P_Sour*'LISTREEL' pos_sou*'POINT'
  261. theta1*'FLOTTANT' wd*'FLOTTANT' tt*'FLOTTANT' dirs*'LISTREEL' ;
  262. xglo yglo zglo = 'COORDONNEE' ( EXTR mo_sou 'MAILLAGE' ) ;
  263. *** repere local(xs,ys,zs)
  264. xsou ysou zsou = COOR pos_sou ;
  265. xxloc = xglo - xsou ;
  266. yyloc = yglo - ysou ;
  267. zzloc = zglo - zsou ;
  268.  
  269. *** Rotation de theta1 autour de l'axe des X
  270. *** puis rotation de theta2 autour de l'axe du nouvel axe des Z
  271. cos1 = COS theta1 ;
  272. sin1 = SIN theta1 ;
  273. theta2 = '*' (ACOS (EXTR dirs 1)) (SIGN (EXTR dirs 2)) ;
  274. theta2 = 0. ;
  275. cos2 = COS theta2 ;
  276. sin2 = SIN theta2 ;
  277.  
  278. xloc = (cos2*xxloc)+((cos1*sin2)*yyloc)+((sin1*sin2)*zzloc) ;
  279. yloc = ((-1.*sin2)*xxloc)+(cos1*(cos2*yyloc))+((sin1*cos2)*zzloc) ;
  280. zloc = ((-1.*sin1)*yyloc)+(cos1*zzloc) ;
  281.  
  282. Q = EXTR P_Sour 1 ;
  283. a = EXTR P_Sour 2 ;
  284. b = EXTR P_Sour 3 ;
  285. Cf = EXTR P_Sour 4 ;
  286. Cr = EXTR P_Sour 5 ;
  287. *** * contribution de la source en y et z
  288. cy = EXP ( (-3./(a**2.)) * (yloc * yloc) ) ;
  289. cz = EXP ( (-3./(b**2.)) * (zloc * zloc) ) ;
  290. *** * on calcule la source en avant du front
  291. fil_av = xloc MASQ egsupe (-1.e-10) ;
  292. fil_ar = fil_av MASQ inferieur (1.e-6) ;
  293. cx_av = EXP ( ( -3. / ( Cf ** 2. ) ) * (xloc * xloc) ) ;
  294. cx_ar = EXP ( ( -3. / ( Cr ** 2. ) ) * (xloc * xloc) ) ;
  295. cx_av = fil_av * cx_av ;
  296. cx_ar = fil_ar * cx_ar ;
  297. cx = cx_av + cx_ar ;
  298. Rf = 2. / (1. + ( Cr / Cf ) ) ;
  299. Pi1 = (3.14159265358979**1.5) ;
  300. qmax = (6 * (3.**0.5) * Rf * Q) / (Pi1 * Cf * a * b) ;
  301. cz2 = zloc MASQ 'EGINFE' ( 0. ) ;
  302. CHPO_SOM = qmax * cx * cy * cz ;
  303.  
  304. SI (tt '>' wd) ;
  305.  
  306. CHPO_SOM = '*' CHPO_SOM 0. ;
  307. FINSI ;
  308. FINP CHPO_SOM ;
  309.  
  310. ************************************************************
  311. *********CHARTHER
  312. DEBP charther HTAB*'TABLE' tt*'FLOTTANT' ;
  313. TAA=TABLE ; ETAB=PRECED.'WTABLE' ;
  314.  
  315. modther = EXTR HTAB.'MES_MODEL'. 0 'FORM' 'MECANIQUE' ;
  316.  
  317. *position source
  318. xsu = '*' ('-' tt ('*' (I-1) tfin)) vit0 ;
  319. vecp = xsu 0. 0. ;
  320. pos_sou = 'PLUS' SOUDAGE.'CHARGEMENT'.'XYZ'. I vecp ;
  321. ang_sou = 0. ;
  322. dirs = PROG 0. 0. 1. ;
  323. pvol = SOUGOLD0 modther P_sour pos_sou ang_sou wdur tt dirs ;
  324.  
  325. **Correction puissance
  326. Puivo = CHAN 'CHAM' pvol modcond ;
  327. qvol = (INTG modcond Puivo) ;
  328. qsours = qvol ;
  329. facteur = 1. ;
  330. QVol0 = EXTR P_sour 1 ;
  331. QSurf0 = 0. ;
  332. SI (qsours 'NEG' 0.) ;
  333. puiseff = '/' ('+' QVol0 QSurf0) facteur ;
  334. rfsour = qvol ;
  335. cf = '/' puiseff qsours ;
  336. pvol = '*' pvol cf ;
  337. Puivo2 = CHAN 'CHAM' pvol modcond ;
  338. qvol2 = (INTG modcond Puivo2) ;
  339. qsours2 = qvol2 ;
  340. FINS ;
  341.  
  342. *CHARGEMENT
  343. charsou = SOUR pvol modcond ;
  344.  
  345. * sortie du second membre
  346. TAA . 'ADDI_SECOND' = charsou ;
  347.  
  348. FINP TAA;
  349.  
  350. ************************************************************************
  351. ************************************************************************
  352. ************************************************************************
  353. ************************************************************************
  354. ************************************************************************
  355. **************DEBUT MISE EN DONNES
  356. ************************************************************************
  357. ************************************************************************
  358. * OPTIONS GENERALES DU CALCUL
  359. OPTI ELEM 'CUB8' ;
  360.  
  361. *GEOMETRIE
  362. N = 1 ; COMM 'Nombre de couche' ;
  363. P = 1 ; COMM 'Nombre de passe par couche' ;
  364. *Construction carre elementaire
  365. l0 = 0.005 ; COMM 'cote carre' ;
  366. nl0 = 2 ;
  367. vtran = ('*' nl0 l0) 0. 0. ; COMM 'longueur plaque' ;
  368. vit0 = 0.001 ; COMM 'Vitesse soudage' ;
  369. tfin = 3600. ; COMM 'Temps final' ;
  370. wdur = '/' ('*' ('-' nl0 1) l0) vit0 ;
  371.  
  372.  
  373. ************************************************************************
  374. * PARAMETRES DU SOUDAGE *
  375. ************************************************************************
  376. N_PIECE = 1 ;
  377. N_PASSE = '*' N P ;
  378. T_INIT = 20. ;
  379. TAREF = -273.15 ;
  380. T_CONV = T_INIT ;
  381. T_FUSION = 1400. ;
  382.  
  383. Q = 2000. ;
  384. a = 0.005 ;
  385. b = 0.005 ;
  386. Cf = 0.005 ;
  387. Cr = 0.01 ;
  388. P_sour = PROG Q a b Cf Cr ;
  389.  
  390. * Construction de la TABLE SOUDAGE pour stocker l'etude
  391. SOUDAGE = TABL ;
  392. SOUDAGE.'CONSTITUANTS' = TABL ;
  393. SOUDAGE.'CONSTITUANTS'.'PIECE' = TABL ;
  394. SOUDAGE.'CONSTITUANTS'.'APPORT' = TABL ;
  395.  
  396. * Creation de la TABLE des CONSTITUANTS
  397. SOUDAGE. 'CONSTITUANTS'. 'PIECE'. 1 = MOT '316L' ;
  398.  
  399. 'REPETER' INDICE N_PASSE ;
  400. I = &INDICE ;
  401. SOUDAGE.'CONSTITUANTS'.'APPORT'.I = MOT '316L' ;
  402. 'FIN' INDICE ;
  403.  
  404. * Creation de la TABLE des sequences de la source
  405. SOUDAGE. 'CHARGEMENT' = TABL ;
  406. SOUDAGE. 'CHARGEMENT'.'MECANIQUE' = TABL ;
  407. SOUDAGE. 'CHARGEMENT'.'THERMIQUE' = TABL ;
  408. SOUDAGE . 'TEMPS_CALCULES' = TABL ;
  409. SOUDAGE . 'TEMPS_SAUVES' = TABL ;
  410.  
  411. 'REPETER' INDICE N_PASSE ;
  412. I = &INDICE ;
  413. pas1 = 0.5 ;
  414. pas2 = 5. ;
  415. pas3 = 500. ;
  416. ltcal = PROG pas1 'PAS' pas1 wdur 'PAS' pas2
  417. ('+' wdur 60.) 'PAS' pas3 tfin ;
  418. SOUDAGE.'TEMPS_CALCULES'. I = tfin '*' (I-1) '+' ltcal ;
  419. 'FIN' INDICE ;
  420.  
  421. ************************************************************************
  422. * MAILLAGES *
  423. ************************************************************************
  424. *Tables pour couleur passes
  425. TABCOUL1 = TABLE;
  426. TABCOUL2 = TABLE;
  427. TABCOUL1.1 = ROSE ;
  428. TABCOUL1.2 = VERT ;
  429. TABCOUL1.3 = JAUN ;
  430. TABCOUL1.4 = OCEA ;
  431. TABCOUL1.5 = ROSE ;
  432. TABCOUL1.6 = TURQ ;
  433. TABCOUL1.7 = ROUG ;
  434. TABCOUL1.8 = BLEU ;
  435. TABCOUL1.9 = TURQ ;
  436. TABCOUL1.10 = AZUR ;
  437. TABCOUL1.11 = ORAN ;
  438. TABCOUL1.12 = ROUG ;
  439. ***************************************
  440.  
  441. d0 = 0.0025 ;
  442. P1 = 0. 0. 0. ;
  443. P2 = 0. ('*' l0 -1.) 0. ;
  444. P3 = 0. ('*' l0 -1.) l0 ;
  445. P4 = 0. 0. l0 ;
  446.  
  447. L12 = DROI P1 P2 'DINI' d0 'DFIN' d0 ;
  448. L23 = DROI P2 P3 'DINI' d0 'DFIN' d0 ;
  449. L34 = DROI P3 P4 'DINI' d0 'DFIN' d0 ;
  450. L41 = DROI P4 P1 'DINI' d0 'DFIN' d0 ;
  451.  
  452. S1 = DALL L12 L23 L34 L41 ;
  453. MAILP = VIDE 'MAILLAGE' ;
  454.  
  455. TMAIL = 'TABLE' ;
  456. *PASSES
  457. K = 1 ;
  458. REPE BLOCN N ;
  459. I = '-' &BLOCN 1 ;
  460. REPE BLOCP P ;
  461. J = '-' &BLOCP 1 ;
  462.  
  463. NPASSE = CHAI 'PASSE_' K ;
  464. ****COUL
  465. 'REPETER' BCOUL ('*' N P) ;
  466. H = &BCOUL;
  467. HH = '+' (@MOD H 12) 1 ;
  468. TABCOUL2.H = TABCOUL1.HH ;
  469. 'FIN' BCOUL ;
  470. ****
  471. JJ = '*' J -1. ;
  472. SPASSE =
  473. (S1 'PLUS' (0. ('*' l0 JJ) ('*' l0 I))) COUL TABCOUL2.K ;
  474. TMAIL.NPASSE = SPASSE VOLU 'DINI' d0 'DFIN' d0 'TRAN' vtran ;
  475. MAILP = MAILP ET TMAIL.NPASSE ;
  476. K = '+' K 1 ;
  477. FIN BLOCP ;
  478. FIN BLOCN;
  479.  
  480. *PIECE
  481. MPIECE1 = VIDE 'MAILLAGE' ;
  482. MPIECE1 = MPIECE1 ET (S1 'PLUS' (0. ('*' l0 2.) ('*' l0 -1.)))
  483. COUL 'ROUG' ;
  484. MPIECE1 = MPIECE1 ET (S1 'PLUS' (0. ('*' l0 1.) ('*' l0 -1.)))
  485. COUL 'ROUG' ;
  486. MPIECE1 = MPIECE1 ET (S1 'PLUS' (0. ('*' l0 2.) ('*' l0 -2.)))
  487. COUL 'ROUG' ;
  488. MPIECE1 = MPIECE1 ET (S1 'PLUS' (0. ('*' l0 1.) ('*' l0 -2.)))
  489. COUL 'ROUG' ;
  490.  
  491. vec0 = 0. ('*' l0 (('*' (P + 1) -1.))) ('*' l0 -1.);
  492. MPIECE1 = MPIECE1 ET (S1 'PLUS' vec0) COUL 'ROUG' ;
  493. vec0 = 0. ('*' l0 (('*' P -1.))) ('*' l0 -1.) ;
  494. MPIECE1 = MPIECE1 ET (S1 'PLUS' vec0) COUL 'ROUG' ;
  495. vec0 = 0. ('*' l0 (('*' (P + 1) -1.))) ('*' l0 -2.) ;
  496. MPIECE1 = MPIECE1 ET (S1 'PLUS' vec0) COUL 'ROUG' ;
  497. vec0 = 0. ('*' l0 (('*' P -1.))) ('*' l0 -2.) ;
  498. MPIECE1 = MPIECE1 ET (S1 'PLUS' vec0) COUL 'ROUG' ;
  499.  
  500.  
  501. REPE BLOCN N ;
  502. I = '-' &BLOCN 1 ;
  503. vec0 = 0. l0 ('*' l0 I) ;
  504. MPIECE1 = MPIECE1 ET (S1 'PLUS' vec0) COUL 'ROUG' ;
  505. vec0 = 0. ('*' l0 2) ('*' l0 I) ;
  506. MPIECE1 = MPIECE1 ET (S1 'PLUS' vec0) COUL 'ROUG' ;
  507.  
  508. vec0 = 0. ('*' l0 ('*' (P + 1) -1.)) ('*' l0 I) ;
  509. MPIECE1 = MPIECE1 ET (S1 'PLUS' vec0) COUL 'ROUG' ;
  510. vec0 = 0. ('*' l0 ('*' P -1.)) ('*' l0 I) ;
  511. MPIECE1 = MPIECE1 ET (S1 'PLUS' vec0) COUL 'ROUG' ;
  512. FIN BLOCN;
  513.  
  514. REPE BLOCP P ;
  515. J = '-' &BLOCP 1 ;
  516. vec0 = 0. ('*' ('*' l0 J) -1.) ('*' l0 -1) ;
  517. MPIECE1 = MPIECE1 ET (S1 'PLUS' vec0) COUL 'ROUG' ;
  518. vec0 = 0. ('*' ('*' l0 J) -1.) ('*' l0 -2) ;
  519. MPIECE1 = MPIECE1 ET (S1 'PLUS' vec0) COUL 'ROUG' ;
  520. FIN BLOCP ;
  521. MPIECE1 = MPIECE1 VOLU 'DINI' d0 'DFIN' d0 'TRAN' vtran ;
  522. MAIL1 = MAILP ET MPIECE1 ;
  523.  
  524. ELIM MAIL1 1.e-6 ;
  525. AXES = @repere (0. 0. 0.) ('PROG' 0.05 0.05 0.05) 'BLAN' ;
  526.  
  527. SI GRAPH ;
  528. MESS (CHAI 'Nombre elements : ' (NBEL MAILP) );
  529. TRAC FACE CACHE (MAIL1 ET MPIECE1 ET AXES) ;
  530. FINS ;
  531.  
  532. * Creation de la TABLE des MAILLAGES
  533. SOUDAGE. 'MAILLAGE' = 'TABL' ;
  534. SOUDAGE. 'MAILLAGE'. 'APPORT' = 'TABL' ;
  535. SOUDAGE. 'MAILLAGE'. 'PIECE' = 'TABL' ;
  536.  
  537. * Creation de la TABLE des MAILLAGES
  538. mail0 = ENVE MAIL1 ;
  539. SOUDAGE.'MAILLAGE'.'PIECE'. 1 = MPIECE1 ;
  540. MAILT = SOUDAGE.'MAILLAGE'.'PIECE'. 1 ;
  541.  
  542. * PASSES MECA
  543. 'REPETER' INDICE N_PASSE ;
  544. I = &INDICE ;
  545. NOMP = CHAI 'PASSE_' I ;
  546. PASSTEMP = TMAIL.NOMP ;
  547. SOUDAGE.'MAILLAGE'.'APPORT'. I = PASSTEMP ;
  548. MAILT = MAILT 'ET' (SOUDAGE.'MAILLAGE'.'APPORT'. I) ;
  549. 'FIN' INDICE ;
  550.  
  551. SOUDAGE.'MAILLAGE'.'MTOT' = MAILT ;
  552.  
  553. * Verification que toutes les parties ont ete renseignees
  554. SI ((DIME SOUDAGE. 'MAILLAGE' . 'PIECE') NEG N_PIECE );
  555. MESS ' Toutes les PIECES n ont pas de MAILLAGE';
  556. ERRE 5;
  557. FINSI;
  558.  
  559. SI ((DIME SOUDAGE. 'MAILLAGE' . 'APPORT') < N_PASSE );
  560. MESS ' Tous les APPORTS n ont pas de MAILLAGE';
  561. ERRE 5;
  562. FINSI;
  563.  
  564.  
  565. SI ((DIME SOUDAGE. 'CONSTITUANTS'. 'PIECE') NEG N_PIECE );
  566. MESS ' Toutes les PIECES n ont pas de CONSTITUANT';
  567. ERRE 5;
  568. FINSI;
  569.  
  570. SI ((DIME SOUDAGE. 'CONSTITUANTS'. 'APPORT') < N_PASSE );
  571. MESS ' Tous les APPORTS n ont pas de CONSTITUANT';
  572. ERRE 5;
  573. FINSI;
  574.  
  575. SOUDAGE.'CHARGEMENT'.'XYZ' = 'TABL' ;
  576. ****Position soudage
  577. K = 1 ;
  578. REPE BLOCN N ;
  579. I = &BLOCN ;
  580. REPE BLOCP P ;
  581. J = &BLOCP ;
  582. yloc = -0.5 * l0 * (2 * J - 1) ;
  583. zloc = '*' l0 I ;
  584.  
  585. posloc = ('/' l0 2.) yloc zloc ;
  586. SOUDAGE.'CHARGEMENT'.'XYZ'. K = posloc ;
  587. K = '+' K 1 ;
  588. FIN BLOCP ;
  589. FIN BLOCN;
  590.  
  591. ************************************************************************
  592. * MODELES *
  593. ************************************************************************
  594. SOUDAGE.'MODELE' = TABLE;
  595. SOUDAGE.'MODELE'.'PIECE' = TABLE;
  596. SOUDAGE.'MODELE'.'PIECE' .'MECANIQUE' = TABLE;
  597. SOUDAGE.'MODELE'.'PIECE' .'THERMIQUE' = TABLE;
  598.  
  599. SOUDAGE.'MODELE'.'APPORT' = TABLE;
  600. SOUDAGE.'MODELE'.'APPORT'.'MECANIQUE' = TABLE;
  601. SOUDAGE.'MODELE'.'APPORT'.'MECANIQUE'.'DEGRADE' = TABLE;
  602. SOUDAGE.'MODELE'.'APPORT'.'MECANIQUE'.'NOMINAL' = TABLE;
  603. SOUDAGE.'MODELE'.'APPORT'.'THERMIQUE' = TABLE;
  604.  
  605. SOUDAGE.'MODELE'.'THERMIQUE' = TABLE;
  606.  
  607. * PIECES a souder
  608. SOUDAGE.'MODELE'.'PIECE'.'MECANIQUE'.'TOTAL' = VIDE 'MMODEL' ;
  609. SOUDAGE.'MODELE'.'PIECE'.'THERMIQUE'.'TOTAL' = VIDE 'MMODEL' ;
  610. REPE INDICE (DIME (SOUDAGE. 'MAILLAGE'. 'PIECE')) ;
  611. I=&INDICE ;
  612. MAILMECA = SOUDAGE.'MAILLAGE'.'PIECE'. I ;
  613. MAILTHER = MAILMECA ;
  614.  
  615. * MODELE MECANIQUE ET THERMIQUE
  616. CONSTI = CHAI 'PE' I ;
  617.  
  618. MOMEC = MODE MAILMECA 'MECANIQUE' 'ELASTIQUE' 'ISOTROPE'
  619. 'PLASTIQUE' 'ISOTROPE'
  620. * 'TRI6' 'Q8RI'
  621. * 'TRI3' 'Q4RI'
  622. 'CONS' CONSTI ;
  623.  
  624. MOTHE = MODE MAILTHER 'THERMIQUE' 'CONDUCTION'
  625. 'CONS' 'THER' ;
  626.  
  627. SOUDAGE.'MODELE'.'PIECE'.'MECANIQUE'. I = MOMEC ;
  628. SOUDAGE.'MODELE'.'PIECE'.'THERMIQUE'. I = MOTHE ;
  629.  
  630. SOUDAGE.'MODELE'.'PIECE'.'MECANIQUE'.'TOTAL' =
  631. SOUDAGE.'MODELE'.'PIECE'.'MECANIQUE'.'TOTAL' ET MOMEC ;
  632. SOUDAGE.'MODELE'.'PIECE'.'THERMIQUE'.'TOTAL' =
  633. SOUDAGE.'MODELE'.'PIECE'.'THERMIQUE'.'TOTAL' ET MOTHE ;
  634. FIN INDICE;
  635.  
  636.  
  637.  
  638. * APPORTS durant les differentes passes
  639. SOUDAGE.'MODELE'.'APPORT'.'MECANIQUE'.'DEGRADE'.'TOTAL'= VIDE 'MMODEL';
  640. SOUDAGE.'MODELE'.'APPORT'.'MECANIQUE'.'NOMINAL'.'TOTAL'= VIDE 'MMODEL';
  641. SOUDAGE.'MODELE'.'APPORT'.'THERMIQUE'.'TOTAL' = VIDE 'MMODEL';
  642. REPE INDICE (DIME (SOUDAGE. 'MAILLAGE'. 'APPORT')) ;
  643. I=&INDICE ;
  644. MAILMECA = SOUDAGE.'MAILLAGE'.'APPORT'. I ;
  645. MAILTHER = MAILMECA ;
  646.  
  647. * MODELE MECANIQUE ET THERMIQUE
  648. CONSTI = CHAI 'PD' ;
  649. MOMECD = MODE MAILMECA 'MECANIQUE' 'ELASTIQUE' 'ISOTROPE'
  650. * 'TRI6' 'Q8RI'
  651. * 'TRI3' 'Q4RI'
  652. 'CONS' CONSTI ;
  653.  
  654. CONSTI = CHAI 'PN' ;
  655. MOMECN = MODE MAILMECA 'MECANIQUE' 'ELASTIQUE' 'ISOTROPE'
  656. 'PLASTIQUE' 'ISOTROPE'
  657. * 'TRI6' 'Q8RI'
  658. * 'TRI3' 'Q4RI'
  659. 'CONS' CONSTI ;
  660.  
  661. MOTHE = MODE MAILTHER 'THERMIQUE' 'CONDUCTION' 'CONS' 'THER' ;
  662.  
  663. SOUDAGE.'MODELE'.'APPORT'.'MECANIQUE'.'DEGRADE'. I = MOMECD ;
  664. SOUDAGE.'MODELE'.'APPORT'.'MECANIQUE'.'NOMINAL'. I = MOMECN ;
  665. SOUDAGE.'MODELE'.'APPORT'.'THERMIQUE'. I = MOTHE ;
  666.  
  667. SOUDAGE.'MODELE'.'APPORT'.'MECANIQUE'.'DEGRADE'.'TOTAL' =
  668. SOUDAGE.'MODELE'.'APPORT'.'MECANIQUE'.'DEGRADE'.'TOTAL' ET MOMECD ;
  669. SOUDAGE.'MODELE'.'APPORT'.'MECANIQUE'.'NOMINAL'.'TOTAL' =
  670. SOUDAGE.'MODELE'.'APPORT'.'MECANIQUE'.'NOMINAL'.'TOTAL' ET MOMECN ;
  671. SOUDAGE.'MODELE'.'APPORT'.'THERMIQUE'.'TOTAL' =
  672. SOUDAGE.'MODELE'.'APPORT'.'THERMIQUE'.'TOTAL' ET MOTHE ;
  673. FIN INDICE;
  674.  
  675.  
  676. * CONVECTION : Construction Automatique du CONTOUR demande
  677. LCONT1 = ENVE (EXTR SOUDAGE.'MODELE'.'PIECE'. 'THERMIQUE'.'TOTAL'
  678. 'MAILLAGE') ;
  679.  
  680. LCONT2 = ENVE (EXTR SOUDAGE.'MODELE'.'APPORT'.'THERMIQUE'.'TOTAL'
  681. 'MAILLAGE') ;
  682. INTER1 = INTE LCONT1 LCONT2 ;
  683. LEXTT = DIFF LCONT1 INTER1 ;
  684. SI GRAPH ;
  685. TRAC LEXTT ;
  686. FINS;
  687. MOCONV = MODE LEXTT 'THERMIQUE' 'CONVECTION' 'CONS' 'CONVECTION';
  688. SOUDAGE.'MODELE'.'APPORT'.'THERMIQUE'.'TOTAL' =
  689. SOUDAGE.'MODELE'.'APPORT'.'THERMIQUE'.'TOTAL' ET MOCONV ;
  690.  
  691. ************************************************************************
  692. * MATERIAUX *
  693. ************************************************************************
  694. *Procédure pour calculer YOUN à partir d'une évolution
  695. 'DEBP' CALYO EV1*EVOLUTION;
  696. X1 = EXTR EV1 'ABSC' ;
  697. Y1 = EXTR EV1 'ORDO' ;
  698. YOU1 = '/' (EXTR Y1 2) (EXTR X1 2) ;
  699. 'FINP' YOU1 ;
  700. ******************************************
  701.  
  702. SOUDAGE.'MATERIAUX' = TABLE;
  703. SOUDAGE.'MATERIAUX'.'PIECE' = TABLE;
  704. SOUDAGE.'MATERIAUX'.'PIECE' .'MECANIQUE' = TABLE;
  705. SOUDAGE.'MATERIAUX'.'PIECE' .'THERMIQUE' = TABLE;
  706.  
  707. SOUDAGE.'MATERIAUX'.'APPORT' = TABLE;
  708. SOUDAGE.'MATERIAUX'.'APPORT'.'MECANIQUE' = TABLE;
  709. SOUDAGE.'MATERIAUX'.'APPORT'.'MECANIQUE'.'DEGRADE' = TABLE;
  710. SOUDAGE.'MATERIAUX'.'APPORT'.'MECANIQUE'.'NOMINAL' = TABLE;
  711. SOUDAGE.'MATERIAUX'.'APPORT'.'THERMIQUE' = TABLE;
  712.  
  713. SOUDAGE.'MATERIAUX'.'THERMIQUE' = TABLE;
  714.  
  715. * Lecture des MATERIAUX de la bibliotheque
  716. * BIBLIOTHEQUE disponible : '316L' '16MND5'
  717.  
  718. * Initialisation du CONSTITUANT precedent
  719. NOMCONSP = 'NONDEFIN';
  720.  
  721. * PIECES a souder
  722. SOUDAGE.'MATERIAUX'.'PIECE'.'MECANIQUE'.'TOTAL' = VIDE 'MCHAML';
  723. SOUDAGE.'MATERIAUX'.'PIECE'.'THERMIQUE'.'TOTAL' = VIDE 'MCHAML';
  724. REPE INDICE (DIME (SOUDAGE. 'MAILLAGE'. 'PIECE'));
  725. I=&INDICE;
  726. NOMCONS = SOUDAGE. 'CONSTITUANTS'. 'PIECE' . I ;
  727.  
  728. * Chargement des proprietes materiaux que si le constituant change
  729. NOMCONSP = NOMCONS;
  730.  
  731. * Lecture des proprietes dans la bibliotheque
  732. * NOMDATA = CHAI 'Materiaux/' NOMCONS '/' NOMCONS'_E.csv' ;
  733. * TTMP = LIRE 'CSV' NOMDATA ;
  734. TTMP = TABL ;
  735. TTMP. 1 = PROG 20. 200. 300. 400. 500. 600.
  736. 700. 800. 900. 1000. 1500. 3000. ;
  737. TTMP. 2 = PROG 197e9 184e9 176e9 168e9
  738. 160e9 151e9 142e9 130e9 108e9 81e9 1e9 1e9 ;
  739. EVYOUN = EVOL MANU 'T' (TTMP. 1) 'YOUN' (TTMP. 2) ;
  740. MAXIT = MAXI (TTMP. 1) ;
  741.  
  742.  
  743. * NOMDATA = CHAI 'Materiaux/' NOMCONS '/' NOMCONS'_Nu.csv' ;
  744. * TTMP = LIRE 'CSV' NOMDATA ;
  745. TTMP = TABL ;
  746. TTMP. 1 = PROG 25 100 200 400 500 600 700 800
  747. 900 1000 1100 1200 1300 1390 1420 1450 3000 ;
  748. TTMP. 2 = PROG 0.296 0.298 0.304 0.315 0.32
  749. 0.323 0.326 0.33 0.336 0.339 0.346 0.349 0.353 0.353 0.353 0.353 0.353 ;
  750. DIMNU = DIME TTMP. 1 ;
  751. VALNU = TTMP. 2 ;
  752. EVNU = EVOL MANU 'T' (TTMP. 1) 'NU' (TTMP. 2) ;
  753.  
  754. * NOMDATA = CHAI 'Materiaux/' NOMCONS '/' NOMCONS'_Rho.csv' ;
  755. * TTMP = LIRE 'CSV' NOMDATA ;
  756. TTMP = TABL ;
  757. TTMP. 1 = PROG 20 200 400 600 800 1000 1200 1400 1500 3000 ;
  758. TTMP. 2 = PROG 8.0e3 7.93e3 7.84e3 7.75e3 7.65e3 7.55e3
  759. 7.45e3 7.35e3 7.30e3 7.30e3 ;
  760. EVRHO = EVOL MANU 'T' (TTMP. 1) 'RHO' (TTMP. 2) ;
  761.  
  762. * NOMDATA = CHAI 'Materiaux/' NOMCONS '/' NOMCONS'_Limite_Elas.csv' ;
  763. * TTMP = LIRE 'CSV' NOMDATA ;
  764. TTMP = TABL ;
  765. TTMP. 1 = PROG 20 200 300 400 500 600 700 800 900 1000 1500 3000 ;
  766. TTMP. 2 = PROG 287e6 198e6 172e6 157e6 152e6 145e6 136e6
  767. 127e6 115e6 79e6 5e6 1e6 ;
  768. EVSIGY = EVOL MANU 'T' (TTMP. 1) 'R0' (TTMP. 2) ;
  769.  
  770. * NOMDATA = CHAI 'Materiaux/' NOMCONS '/' NOMCONS'_Epsi_Th.csv' ;
  771. * TTMP = LIRE 'CSV' NOMDATA ;
  772. TTMP = TABL ;
  773. TTMP. 1 = PROG 0 100 200 300 400 500 600 700 800 900 1000 1100
  774. 1200 1420 1460 3000 ;
  775. TTMP. 2 = PROG -3.17e-4 0.0013 0.003 0.0048 0.0066 0.0086 0.0106
  776. 0.0126 0.0147 0.0168 0.019 0.0212 0.0235 0.029 0.0298 0.0298 ;
  777. EVDEFT = EVOL MANU 'T' (TTMP. 1) 'EPTH' (TTMP. 2) ;
  778. LALPHA = TTMP. 2 / (TTMP. 1 - TAREF) ;
  779. EVALPHA = EVOL MANU 'T' (TTMP. 1) 'ALPH' LALPHA ;
  780.  
  781. * NOMDATA = CHAI 'Materiaux/' NOMCONS '/' NOMCONS'_Ecrou_T.csv' ;
  782. * TTMP1 = LIRE 'CSV' NOMDATA ;
  783. TTMP1 = TABL ;
  784. TTMP1. 1 = PROG 20 200 300 400 500 600 700 800 900 1000 1500 3000 ;
  785. * NOMDATA = CHAI 'Materiaux/'NOMCONS'/'NOMCONS'_Ecrou_Cont_Def.csv ' ;
  786. * TTMP2 = LIRE 'CSV' NOMDATA ;
  787. TTMP2 = TABL ;
  788. TTMP2. 1 = PROG 0. 0.01 0.05 0.2 1. 2. ;
  789. TTMP2. 2 = PROG 0 28e6 132e6 274e6 913e6 1369e6 ;
  790. TTMP2. 3 = PROG 0 33e6 136e6 272e6 802e6 1203e6 ;
  791. TTMP2. 4 = PROG 0 29e6 135e6 279e6 728e6 1092e6 ;
  792. TTMP2. 5 = PROG 0 29e6 137e6 278e6 442e6 663e6 ;
  793. TTMP2. 6 = PROG 0 27e6 130e6 267e6 398e6 597e6 ;
  794. TTMP2. 7 = PROG 0 25e6 117e6 242e6 355e6 532e6 ;
  795. TTMP2. 8 = PROG 0 25e6 76e6 204e6 264e6 396e6 ;
  796. TTMP2. 9 = PROG 0 25e6 72e6 167e6 223e6 334e6 ;
  797. TTMP2. 10 = PROG 0 22e6 46e6 54e6 65e6 97e6 ;
  798. TTMP2. 11 = PROG 0 3e6 18e6 21e6 26e6 39e6 ;
  799. TTMP2. 12 = PROG 0 2e6 3e6 4e6 5e6 6e6 ;
  800. TTMP2. 13 = PROG 0 1e6 2e6 3e6 4e6 5e6 ;
  801.  
  802. EVTOT = VIDE 'EVOLUTION';
  803. LTEMPER = VIDE 'LISTREEL' ;
  804. LYOU2 = VIDE 'LISTREEL' ;
  805. LYOU3 = VIDE 'LISTREEL' ;
  806. REPE ITEMPER (DIME TTMP1. 1);
  807. J=&ITEMPER;
  808. TEMPER = EXTR (TTMP1 . 1) J;
  809. LTEMPER= LTEMPER ET TEMPER ;
  810.  
  811. * Interpolation du module de YOUNG et SIGY a la temperature TEMPER
  812. YOUNIPOL = IPOL TEMPER EVYOUN;
  813. SIGYIPOL = IPOL TEMPER EVSIGY;
  814. LYOU2 = LYOU2 ET YOUNIPOL ;
  815.  
  816. * Calcul de EPSIY a partir de YOUNIPOL et SIGYIPOL
  817. EPSIY = SIGYIPOL / YOUNIPOL;
  818.  
  819. * Construction de la courbe de traction Complete pour Cast3M
  820. LESPI = (PROG 0.) ET ((TTMP2. 1) + EPSIY );
  821. LSIGM = (PROG 0.) ET ((TTMP2. (J+1)) + SIGYIPOL);
  822. EVTRAC= EVOL MANU 'EPS' LESPI 'CONT' LSIGM ;
  823. EVTOT = EVTOT ET EVTRAC;
  824. LYOU3 = LYOU3 ET (CALYO EVTRAC) ;
  825.  
  826. * Construction du NUAGE qui associe une EVOLUTION a une TEMPERATURE
  827. SI (J EGA 1);
  828. NUATRAC = NUAGE 'COMP' 'T ' TEMPER
  829. 'COMP' 'TRAC' EVTRAC ;
  830. SINO;
  831. NUATRAC = NUATRAC ET (NUAGE 'COMP' 'T ' TEMPER
  832. 'COMP' 'TRAC' EVTRAC ) ;
  833. FINS;
  834. FIN ITEMPER;
  835.  
  836. EVYOUN = EVOL MANU 'T' LTEMPER 'YOUN' LYOU3 ;
  837.  
  838. * Parametres thermiques
  839. * NOMDATA = CHAI 'Materiaux/' NOMCONS '/' NOMCONS'_k.csv';
  840. * TTMP = LIRE 'CSV' NOMDATA;
  841. TTMP = TABL ;
  842. TTMP. 1 = PROG 20 100 200 300 400 500 600 700 800 900 1000
  843. 1200 1400 3000 ;
  844. TTMP. 2 = PROG 0.0147e3 0.0158e3 0.0172e3 0.0186e3 0.02e3
  845. 0.0211e3 0.0222e3 0.0232e3 0.0241e3 0.0248e3 0.0255e3
  846. 0.0269e3 0.0283e3 0.0283e3 ;
  847. EVK = EVOL MANU 'T' (TTMP. 1) 'K' (TTMP. 2);
  848.  
  849. * NOMDATA = CHAI 'Materiaux/' NOMCONS '/' NOMCONS'_Cp.csv';
  850. * TTMP = LIRE 'CSV' NOMDATA;
  851. TTMP = TABL ;
  852. TTMP. 1 = PROG 20 100 200 300 400 600 800 1000 1200 1500 3000 ;
  853. TTMP. 2 = PROG 450 490 525 545 560 580 625 660 670 690 690 ;
  854. EVCP = EVOL MANU 'T' (TTMP. 1) 'C' (TTMP. 2);
  855.  
  856. SI GRAPH ;
  857. DESS EVYOUN TITR 'Module de YOUNG';
  858. DESS EVNU TITR 'Coefficient de POISSON';
  859. DESS EVRHO TITR 'Masse Volumique';
  860. DESS EVSIGY TITR 'Limite Elastique';
  861. DESS EVALPHA TITR 'Coefficient de dilatation Thermique';
  862. DESS EVTOT TITR 'Courbe de Traction a differentes temperatures';
  863. DESS EVK TITR 'Conductivite Thermique';
  864. DESS EVCP TITR 'Chaleur Specifique';
  865. FINS;
  866.  
  867.  
  868. * MATERIAUX MECANIQUE ET THERMIQUE
  869. MOMEC = SOUDAGE.'MODELE'.'PIECE'.'MECANIQUE'. I ;
  870. MOTHE = SOUDAGE.'MODELE'.'PIECE'.'THERMIQUE'. I ;
  871.  
  872. MAMEC = MATE MOMEC 'YOUN' EVYOUN 'NU' EVNU 'RHO' EVRHO 'ALPH' EVALPHA
  873. 'TRAC' NUATRAC ;
  874.  
  875. SOUDAGE.'MATERIAUX'.'PIECE'.'MECANIQUE'. I = MAMEC ;
  876.  
  877. MATHE = MATE MOTHE 'K' EVK 'RHO' EVRHO 'C' EVCP ;
  878. SOUDAGE.'MATERIAUX'.'PIECE'.'THERMIQUE'. I = MATHE ;
  879.  
  880. SOUDAGE.'MATERIAUX'.'PIECE'.'MECANIQUE'.'TOTAL' =
  881. SOUDAGE.'MATERIAUX'.'PIECE'.'MECANIQUE'.'TOTAL' ET MAMEC ;
  882. SOUDAGE.'MATERIAUX'.'PIECE'.'THERMIQUE'.'TOTAL' =
  883. SOUDAGE.'MATERIAUX'.'PIECE'.'THERMIQUE'.'TOTAL' ET MATHE ;
  884.  
  885. FIN INDICE;
  886.  
  887. MOMECT = SOUDAGE.'MODELE'.'PIECE'.'MECANIQUE'.'TOTAL';
  888.  
  889. ***********************************************************************
  890. * APPORTS durant les differentes passes
  891. SOUDAGE.'MATERIAUX'.'APPORT'.'MECANIQUE'.'DEGRADE'.'TOTAL'=
  892. VIDE 'MCHAML';
  893. SOUDAGE.'MATERIAUX'.'APPORT'.'MECANIQUE'.'NOMINAL'.'TOTAL'=
  894. VIDE 'MCHAML';
  895. SOUDAGE.'MATERIAUX'.'APPORT'.'THERMIQUE'.'TOTAL' =
  896. VIDE 'MCHAML';
  897. REPE INDICE (DIME (SOUDAGE. 'MAILLAGE'. 'APPORT'));
  898. I=&INDICE;
  899. NOMCONS = SOUDAGE. 'CONSTITUANTS'. 'APPORT' . I ;
  900. * Chargement des proprietes materiaux que si le constituant change
  901. NOMCONSP = NOMCONS;
  902.  
  903. * Lecture des proprietes dans la bibliotheque
  904. * NOMDATA = CHAI 'Materiaux/' NOMCONS '/' NOMCONS'_E.csv' ;
  905. * TTMP = LIRE 'CSV' NOMDATA ;
  906. TTMP = TABL ;
  907. TTMP. 1 = PROG 20. 200. 300. 400. 500. 600.
  908. 700. 800. 900. 1000. 1500. 3000. ;
  909. TTMP. 2 = PROG 197e9 184e9 176e9 168e9
  910. 160e9 151e9 142e9 130e9 108e9 81e9 1e9 1e9 ;
  911. EVYOUN = EVOL MANU 'T' (TTMP. 1) 'YOUN' (TTMP. 2) ;
  912. MAXIT = MAXI (TTMP. 1) ;
  913.  
  914.  
  915. * NOMDATA = CHAI 'Materiaux/' NOMCONS '/' NOMCONS'_Nu.csv' ;
  916. * TTMP = LIRE 'CSV' NOMDATA ;
  917. TTMP = TABL ;
  918. TTMP. 1 = PROG 25 100 200 400 500 600 700 800
  919. 900 1000 1100 1200 1300 1390 1420 1450 3000 ;
  920. TTMP. 2 = PROG 0.296 0.298 0.304 0.315 0.32
  921. 0.323 0.326 0.33 0.336 0.339 0.346 0.349 0.353 0.353 0.353 0.353 0.353 ;
  922. DIMNU = DIME TTMP. 1 ;
  923. VALNU = TTMP. 2 ;
  924. EVNU = EVOL MANU 'T' (TTMP. 1) 'NU' (TTMP. 2) ;
  925.  
  926. * NOMDATA = CHAI 'Materiaux/' NOMCONS '/' NOMCONS'_Rho.csv' ;
  927. * TTMP = LIRE 'CSV' NOMDATA ;
  928. TTMP = TABL ;
  929. TTMP. 1 = PROG 20 200 400 600 800 1000 1200 1400 1500 3000 ;
  930. TTMP. 2 = PROG 8.0e3 7.93e3 7.84e3 7.75e3 7.65e3 7.55e3
  931. 7.45e3 7.35e3 7.30e3 7.30e3 ;
  932. EVRHO = EVOL MANU 'T' (TTMP. 1) 'RHO' (TTMP. 2) ;
  933.  
  934. * NOMDATA = CHAI 'Materiaux/' NOMCONS '/' NOMCONS'_Limite_Elas.csv' ;
  935. * TTMP = LIRE 'CSV' NOMDATA ;
  936. TTMP = TABL ;
  937. TTMP. 1 = PROG 20 200 300 400 500 600 700 800 900 1000 1500 3000 ;
  938. TTMP. 2 = PROG 287e6 198e6 172e6 157e6 152e6 145e6 136e6
  939. 127e6 115e6 79e6 5e6 1e6 ;
  940. EVSIGY = EVOL MANU 'T' (TTMP. 1) 'R0' (TTMP. 2) ;
  941.  
  942. * NOMDATA = CHAI 'Materiaux/' NOMCONS '/' NOMCONS'_Epsi_Th.csv' ;
  943. * TTMP = LIRE 'CSV' NOMDATA ;
  944. TTMP = TABL ;
  945. TTMP. 1 = PROG 0 100 200 300 400 500 600 700 800 900 1000 1100
  946. 1200 1420 1460 3000 ;
  947. TTMP. 2 = PROG -3.17e-4 0.0013 0.003 0.0048 0.0066 0.0086 0.0106
  948. 0.0126 0.0147 0.0168 0.019 0.0212 0.0235 0.029 0.0298 0.0298 ;
  949. EVDEFT = EVOL MANU 'T' (TTMP. 1) 'EPTH' (TTMP. 2) ;
  950. LALPHA = TTMP. 2 / (TTMP. 1 - TAREF) ;
  951. EVALPHAN = EVOL MANU 'T' (TTMP. 1) 'ALPH' LALPHA ;
  952.  
  953. * NOMDATA = CHAI 'Materiaux/' NOMCONS '/' NOMCONS'_Ecrou_T.csv' ;
  954. * TTMP1 = LIRE 'CSV' NOMDATA ;
  955. TTMP1 = TABL ;
  956. TTMP1. 1 = PROG 20 200 300 400 500 600 700 800 900 1000 1500 3000 ;
  957. * NOMDATA = CHAI 'Materiaux/'NOMCONS'/'NOMCONS'_Ecrou_Cont_Def.csv ' ;
  958. * TTMP2 = LIRE 'CSV' NOMDATA ;
  959. TTMP2 = TABL ;
  960. TTMP2. 1 = PROG 0. 0.01 0.05 0.2 1. 2. ;
  961. TTMP2. 2 = PROG 0 28e6 132e6 274e6 913e6 1369e6 ;
  962. TTMP2. 3 = PROG 0 33e6 136e6 272e6 802e6 1203e6 ;
  963. TTMP2. 4 = PROG 0 29e6 135e6 279e6 728e6 1092e6 ;
  964. TTMP2. 5 = PROG 0 29e6 137e6 278e6 442e6 663e6 ;
  965. TTMP2. 6 = PROG 0 27e6 130e6 267e6 398e6 597e6 ;
  966. TTMP2. 7 = PROG 0 25e6 117e6 242e6 355e6 532e6 ;
  967. TTMP2. 8 = PROG 0 25e6 76e6 204e6 264e6 396e6 ;
  968. TTMP2. 9 = PROG 0 25e6 72e6 167e6 223e6 334e6 ;
  969. TTMP2. 10 = PROG 0 22e6 46e6 54e6 65e6 97e6 ;
  970. TTMP2. 11 = PROG 0 3e6 18e6 21e6 26e6 39e6 ;
  971. TTMP2. 12 = PROG 0 2e6 3e6 4e6 5e6 6e6 ;
  972. TTMP2. 13 = PROG 0 1e6 2e6 3e6 4e6 5e6 ;
  973.  
  974. EVTOT = VIDE 'EVOLUTION' ;
  975. LTEMPER = VIDE 'LISTREEL' ;
  976. LYOU2 = VIDE 'LISTREEL' ;
  977. LYOU3 = VIDE 'LISTREEL' ;
  978.  
  979. REPE ITEMPER (DIME TTMP1. 1) ;
  980. J=&ITEMPER ;
  981. TEMPER = EXTR (TTMP1 . 1) J;
  982. LTEMPER= LTEMPER ET TEMPER ;
  983.  
  984. * Interpolation du module de YOUNG et SIGY a la temperature TEMPER
  985. YOUNIPOL = IPOL TEMPER EVYOUN;
  986. SIGYIPOL = IPOL TEMPER EVSIGY;
  987. LYOU2 = LYOU2 ET YOUNIPOL ;
  988.  
  989. * Calcul de EPSIY a partir de YOUNIPOL et SIGYIPOL
  990. EPSIY = SIGYIPOL / YOUNIPOL;
  991.  
  992. * Construction de la courbe de traction Complete pour Cast3M
  993. LESPI = (PROG 0.) ET ((TTMP2. 1) + EPSIY ) ;
  994. LSIGM = (PROG 0.) ET ((TTMP2. (J+1)) + SIGYIPOL) ;
  995. EVTRAC= EVOL MANU 'EPSI' LESPI 'CONT' LSIGM ;
  996. EVTOT = EVTOT ET EVTRAC ;
  997. LYOU3 = LYOU3 ET (CALYO EVTRAC) ;
  998.  
  999. * Construction du NUAGE qui associe une EVOLUTION a une TEMPERATURE
  1000. SI (J EGA 1);
  1001. NUATRACN = NUAGE 'COMP' 'T ' TEMPER
  1002. 'COMP' 'TRAC' EVTRAC ;
  1003. SINO;
  1004. NUATRACN = NUATRACN ET (NUAGE 'COMP' 'T ' TEMPER
  1005. 'COMP' 'TRAC' EVTRAC ) ;
  1006. FINS;
  1007. FIN ITEMPER;
  1008.  
  1009. EVYOUN = EVOL MANU 'T' LTEMPER 'YOUN' LYOU3 ;
  1010.  
  1011. * Parametres thermiques
  1012. * NOMDATA = CHAI 'Materiaux/' NOMCONS '/' NOMCONS'_k.csv';
  1013. * TTMP = LIRE 'CSV' NOMDATA;
  1014. TTMP = TABL ;
  1015. TTMP. 1 = PROG 20 100 200 300 400 500 600 700 800 900 1000
  1016. 1200 1400 3000 ;
  1017. TTMP. 2 = PROG 0.0147e3 0.0158e3 0.0172e3 0.0186e3 0.02e3
  1018. 0.0211e3 0.0222e3 0.0232e3 0.0241e3 0.0248e3 0.0255e3
  1019. 0.0269e3 0.0283e3 0.0283e3 ;
  1020. EVK = EVOL MANU 'T' (TTMP. 1) 'K' (TTMP. 2);
  1021.  
  1022. * NOMDATA = CHAI 'Materiaux/' NOMCONS '/' NOMCONS'_Cp.csv';
  1023. * TTMP = LIRE 'CSV' NOMDATA;
  1024. TTMP = TABL ;
  1025. TTMP. 1 = PROG 20 100 200 300 400 600 800 1000 1200 1500 3000 ;
  1026. TTMP. 2 = PROG 450 490 525 545 560 580 625 660 670 690 690 ;
  1027. EVCP = EVOL MANU 'T' (TTMP. 1) 'C' (TTMP. 2);
  1028.  
  1029. SI GRAPH ;
  1030. DESS EVYOUN TITR 'Module de YOUNG Nominal';
  1031. DESS EVNU TITR 'Coefficient de POISSON';
  1032. DESS EVRHO TITR 'Masse Volumique';
  1033. DESS EVSIGY TITR 'Limite Elastique';
  1034. DESS EVALPHAN TITR 'Coefficient de dilatation Thermique';
  1035. DESS EVTOT TITR 'Courbe de Traction a differentes temperatures';
  1036. DESS EVK TITR 'Conductivite Thermique';
  1037. DESS EVCP TITR 'Chaleur Specifique';
  1038. FINS;
  1039.  
  1040. * MATERIAUX MECANIQUE ET THERMIQUE
  1041. MOMECD= SOUDAGE.'MODELE'.'APPORT'.'MECANIQUE'.'DEGRADE'. I ;
  1042. MOMECN= SOUDAGE.'MODELE'.'APPORT'.'MECANIQUE'.'NOMINAL'. I ;
  1043. MOTHE = SOUDAGE.'MODELE'.'APPORT'.'THERMIQUE'. I ;
  1044. YOUND = EXTR LYOU3 (DIME LTEMPER);
  1045. NUD = EXTR VALNU DIMNU;
  1046.  
  1047. MAMECD= MATE MOMECD 'YOUN' YOUND 'NU' NUD 'ALPH' 0.D0 ;
  1048. MAMECN= MATE MOMECN 'YOUN' EVYOUN 'NU' EVNU 'ALPH' EVALPHAN
  1049. 'TRAC' NUATRACN ;
  1050. MATHE = MATE MOTHE 'K' EVK 'RHO' EVRHO 'C' EVCP ;
  1051.  
  1052. SOUDAGE.'MATERIAUX'.'APPORT'.'MECANIQUE'.'DEGRADE'. I = MAMECD ;
  1053. SOUDAGE.'MATERIAUX'.'APPORT'.'MECANIQUE'.'NOMINAL'. I = MAMECN ;
  1054. SOUDAGE.'MATERIAUX'.'APPORT'.'THERMIQUE'. I = MATHE ;
  1055.  
  1056. SOUDAGE.'MATERIAUX'.'APPORT'.'THERMIQUE'.'TOTAL' =
  1057. SOUDAGE.'MATERIAUX'.'APPORT'.'THERMIQUE'.'TOTAL' ET MATHE;
  1058.  
  1059. SOUDAGE.'MATERIAUX'.'APPORT'.'MECANIQUE'.'DEGRADE'.'TOTAL' =
  1060. SOUDAGE.'MATERIAUX'.'APPORT'.'MECANIQUE'.'DEGRADE'.'TOTAL' ET MAMECD;
  1061.  
  1062. SOUDAGE.'MATERIAUX'.'APPORT'.'MECANIQUE'.'NOMINAL'.'TOTAL' =
  1063. SOUDAGE.'MATERIAUX'.'APPORT'.'MECANIQUE'.'NOMINAL'.'TOTAL' ET MAMECN;
  1064. FIN INDICE;
  1065.  
  1066. MOMECDT = SOUDAGE.'MODELE'.'APPORT'.'MECANIQUE'.'DEGRADE'.'TOTAL';
  1067. MOMECNT = SOUDAGE.'MODELE'.'APPORT'.'MECANIQUE'.'NOMINAL'.'TOTAL';
  1068. MOTHT = SOUDAGE.'MODELE'.'APPORT'.'THERMIQUE'.'TOTAL';
  1069.  
  1070. SOUDAGE.'MATERIAUX'.'APPORT'.'THERMIQUE'.'TOTAL' = REDU
  1071. SOUDAGE.'MATERIAUX'.'APPORT'.'THERMIQUE'.'TOTAL' MOTHT;
  1072.  
  1073. SOUDAGE.'MATERIAUX'.'APPORT'.'MECANIQUE'.'DEGRADE'.'TOTAL' = REDU
  1074. SOUDAGE.'MATERIAUX'.'APPORT'.'MECANIQUE'.'DEGRADE'.'TOTAL' MOMECDT;
  1075.  
  1076. SOUDAGE.'MATERIAUX'.'APPORT'.'MECANIQUE'.'NOMINAL'.'TOTAL' = REDU
  1077. SOUDAGE.'MATERIAUX'.'APPORT'.'MECANIQUE'.'NOMINAL'.'TOTAL' MOMECNT;
  1078.  
  1079. * Materiaux pour la CONVECTION
  1080. MACONV = MATE MOCONV 'H' 23.e-6 ;
  1081.  
  1082. ************************************************************************
  1083. * BLOCAGES PERMANENTS *
  1084. ************************************************************************
  1085. SOUDAGE.'BLOCAGES' = 'TABL';
  1086. SOUDAGE.'BLOCAGES'.'PERMANENT' = 'TABL';
  1087.  
  1088. * BLOCAGES MECANIQUES
  1089. zblo = '*' l0 -2. ;
  1090. pt0 = MPIECE1 POIN 'PLAN' (0. 0. zblo )
  1091. (1. 0. zblo ) (0. 1. zblo ) 1.e-4 ;
  1092. BLOQ0 = 'BLOQ' pt0 'UX' 'UY' 'UZ' ;
  1093. SOUDAGE.'BLOCAGES'.'PERMANENT'.'MECANIQUE' = BLOQ0 ;
  1094.  
  1095. ************************************************************************
  1096. * CHARGEMENT *
  1097. ************************************************************************
  1098.  
  1099. * CHARGEMENT Thermique : Source de chaleur dans l'APPORT
  1100.  
  1101. REPE INDICE N_PASSE ;
  1102. * Boucle sur toutes les PASSES
  1103. I=&INDICE;
  1104. MOD1 = SOUDAGE.'MODELE' .'APPORT'.'THERMIQUE'. I ;
  1105. MAIL = SOUDAGE.'MAILLAGE'.'APPORT'. I ;
  1106. EVO1 = EVOL 'MANU' (PROG 0. 1.D10) (PROG 1. 1.) ;
  1107. CHTCONV = MANU 'CHPO' LEXTT 1 'T' T_CONV ;
  1108. CHA1= CHAR 'TECO' CHTCONV EVO1 ;
  1109. SOUDAGE. 'CHARGEMENT'.'THERMIQUE'. I = CHA1 ;
  1110. FIN INDICE ;
  1111.  
  1112. * Chargement Thermique : FLUX pour la CONVECTION et RAYO
  1113. EVO1 = EVOL 'MANU' (PROG 0. 1.D10) (PROG 1. 1.) ;
  1114. CHTCONV = MANU 'CHPO' LEXTT 1 'T' T_CONV ;
  1115. CHACONV= CHAR 'TECO' CHTCONV EVO1 ;
  1116.  
  1117. ************************************************************************
  1118. * PASAPAS *
  1119. ************************************************************************
  1120.  
  1121. * Assemblage des MODELES, CARACTERISTIQUES, BLOCAGES, CHARGEMENTS
  1122. MODMECA0 = SOUDAGE.'MODELE' .'PIECE' .'MECANIQUE' .'TOTAL' ET
  1123. SOUDAGE.'MODELE' .'APPORT'.'MECANIQUE'.'DEGRADE'.'TOTAL' ;
  1124.  
  1125. MATMECA0 = SOUDAGE.'MATERIAUX'.'PIECE' .'MECANIQUE' .'TOTAL' ET
  1126. SOUDAGE.'MATERIAUX'.'APPORT'.'MECANIQUE'.'DEGRADE'.'TOTAL' ET
  1127. SOUDAGE.'MATERIAUX'.'APPORT'.'MECANIQUE'.'NOMINAL'.'TOTAL' ;
  1128. MODTHER0 = SOUDAGE.'MODELE' .'PIECE' .'THERMIQUE' .'TOTAL' ;
  1129. MATTHER0 = SOUDAGE.'MATERIAUX'.'PIECE' .'THERMIQUE' .'TOTAL' ET
  1130. SOUDAGE.'MATERIAUX'.'APPORT' .'THERMIQUE' .'TOTAL';
  1131.  
  1132.  
  1133. * Ajout de la CONVECTION
  1134. MODTHER = MODTHER0 ET MOCONV ;
  1135. MATTHER = MATTHER0 ET MACONV ;
  1136. MATTOT = MATMECA0 ET MATTHER ;
  1137.  
  1138. * BLOCAGES PERMANENTS
  1139. BLOMECA0 = SOUDAGE.'BLOCAGES'.'PERMANENT'.'MECANIQUE';
  1140. BLOTOT = BLOMECA0 ;
  1141.  
  1142. I = 1;
  1143. * Chargement Thermique de la PASSE 1
  1144. CHARTOT = SOUDAGE.'CHARGEMENT'.'THERMIQUE'. 1 ;
  1145. * On ajoute le MODELE et le MATERIAUX THERMIQUE de l'APPORT
  1146. MODTHER = MODTHER ET SOUDAGE.'MODELE' .'APPORT'.'THERMIQUE'. 1;
  1147. MODTOT = MODMECA0 ET MODTHER ;
  1148.  
  1149. * Initialisations des CHAMPS
  1150. *Les CHPOINTS
  1151. MAILTHER= EXTR MODTHER 'MAILLAGE' ;
  1152. MAILMECA= EXTR MODMECA0 'MAILLAGE';
  1153. CHPTINI = MANU 'CHPO' MAILTHER 1 'T' T_INIT 'NATU' 'DIFFUS' ;
  1154. DEPLINI = MANU 'CHPO' MAILMECA 3
  1155. 'UX' 0. 'UY' 0. 'UZ' 0. 'NATU' 'DIFFUS';
  1156. REACINI = VIDE 'CHPOINT';
  1157.  
  1158. *Les MCHAML
  1159. CONTINI = ZERO MODMECA0 'CONTRAIN' ;
  1160. VINTINI = ZERO MODMECA0 'VARINTER' ;
  1161. DEININI = ZERO MODMECA0 'DEFINELA' ;
  1162.  
  1163. *Definition de TEMPERATURE_REFERENCE et TALPHA_REFERENCE
  1164. TREF = MANU 'CHML' MODMECA0 'T' T_INIT 'TYPE' 'TEMPERATURES' ;
  1165. MAILACT = VIDE 'MAILLAGE' ;
  1166. MAILFON = VIDE 'MAILLAGE' ;
  1167.  
  1168. * Declaration de la TABLE avant PASAPAS
  1169. TPASAP ='TABL' ;
  1170. TPASAP.'MODELE' = MODTOT ;
  1171. TPASAP.'CARACTERISTIQUES' = MATTOT ;
  1172. TPASAP.'BLOCAGES_MECANIQUES' = BLOTOT ;
  1173. TPASAP.'CHARGEMENT' = CHARTOT ;
  1174. TPASAP.'TEMPS_CALCULES' = ltcal ;
  1175. *TPASAP.'TEMPS_SAUVES' = ;
  1176. TPASAP.'TEMPS' ='TABL' ;
  1177. TPASAP.'TEMPERATURES' ='TABL' ;
  1178. TPASAP.'DEPLACEMENTS' ='TABL' ;
  1179. TPASAP.'CONTRAINTES' ='TABL' ;
  1180. TPASAP.'REACTIONS' ='TABL' ;
  1181. TPASAP.'VARIABLES_INTERNES' ='TABL' ;
  1182. TPASAP.'DEFORMATIONS_INELASTIQUES' ='TABL' ;
  1183. TPASAP.'MES_MODEL' ='TABL' ;
  1184. TPASAP.'MAILLAGE_ACTIF' ='TABL' ;
  1185. TPASAP.'MAILLAGE_FONDU' ='TABL' ;
  1186. TPASAP.'MES_SAUVEGARDES' ='TABL' ;
  1187. TPASAP.'MES_DATA' ='TABL' ;
  1188. TPASAP.'MES_DATA'.'TREF' ='TABL' ;
  1189. TPASAP.'MES_DATA'.'TAREF' ='TABL' ;
  1190. TPASAP.'MES_DATA'.'MA' ='TABL' ;
  1191. TPASAP.'TEMPS' . 0 = 0.D0 ;
  1192. TPASAP.'TEMPERATURES' . 0 = CHPTINI ;
  1193. TPASAP.'DEPLACEMENTS' . 0 = DEPLINI ;
  1194. TPASAP.'CONTRAINTES' . 0 = CONTINI ;
  1195. TPASAP.'REACTIONS' . 0 = REACINI ;
  1196. TPASAP.'VARIABLES_INTERNES' . 0 = VINTINI ;
  1197. TPASAP.'DEFORMATIONS_INELASTIQUES' . 0 = DEININI ;
  1198. TPASAP.'MES_MODEL' . 0 = MODTOT ;
  1199. TPASAP.'MAILLAGE_ACTIF' . 0 = MAILACT ;
  1200. TPASAP.'MAILLAGE_FONDU' . 0 = MAILFON ;
  1201. TPASAP.'MES_SAUVEGARDES'.'DEFIN' = VRAI ;
  1202. TPASAP.'MES_SAUVEGARDES'.'DEFTO' = VRAI ;
  1203. TPASAP.'TALPHA_REFERENCE' = TAREF ;
  1204. TPASAP.'TEMPERATURE_REFERENCE' = TREF ;
  1205. TPASAP . 'PROCEDURE_PERSO1' = VRAI ;
  1206. TPASAP . 'PROCEDURE_PERSO2' = VRAI ;
  1207. TPASAP . 'PROCEDURE_CHARTHER' = VRAI ;
  1208. TPASAP . 'CELSIUS' = VRAI ;
  1209. TPASAP . 'PAS_AJUSTE' = FAUX ;
  1210. TPASAP . 'PRECISION' = 1.e-1 ;
  1211. TPASAP . 'PROCESSEURS' = 'MOT' 'MONOPROCESSEUR' ;
  1212. TPASAP . 'GRANDS_DEPLACEMENTS' = VRAI ;
  1213. TPASAP . 'LAGRANGIEN' = 'MOT' 'REACTUALISE' ;
  1214. TPASAP . 'PREDICTEUR' = 'MOT' 'HPP' ;
  1215.  
  1216. * Boucle sur toutes les PASSES (Reprise pour PASAPAS)
  1217. REPE INDICE N_PASSE ;
  1218. INDI0 = &INDICE ;
  1219. PASAPAS TPASAP ;
  1220. MENA 'OBLI';
  1221.  
  1222. SI (INDI0 '<' N_PASSE) ;
  1223. * Incrementation du compteur de PASSES
  1224. I=&INDICE + 1 ;
  1225.  
  1226. * On ajoute le MODELE et le MATERIAUX THERMIQUE de l'APPORT
  1227. NB_PAS = DIME (TPASAP.'TEMPS');
  1228. MODTHER = MODTHER ET SOUDAGE.'MODELE' .'APPORT'.'THERMIQUE'. I;
  1229. MAILTHER = EXTR MODTHER 'MAILLAGE' ;
  1230. MODMECA0 = EXTR (TPASAP.'MES_MODEL'.(NB_PAS-1)) 'FORM' 'MECANIQUE';
  1231. MODTOT = MODMECA0 ET MODTHER ;
  1232.  
  1233. * Chargement Thermique de la PASSE en QUESTION
  1234. CHARTOT = SOUDAGE.'CHARGEMENT'.'THERMIQUE'. I ;
  1235.  
  1236. * Partie nouvelle dans la THERMIQUE
  1237. MAIPASS = EXTR SOUDAGE.'MODELE'.'APPORT'.'THERMIQUE'.I 'MAIL' ;
  1238. MAILSANS = DIFF MAILTHER MAIPASS ;
  1239. MAILCONI = CHAN 'POI1' (ENVE MAILSANS) ;
  1240. MAILCONP = CHAN 'POI1' (ENVE MAIPASS ) ;
  1241. MAILINTE = INTE MAILCONI MAILCONP ;
  1242. MAILREST = DIFF (CHAN 'POI1' MAIPASS ) MAILINTE ;
  1243. CHPTORI = TPASAP.'TEMPERATURES'.(NB_PAS-1) ;
  1244. CHPCONT = REDU CHPTORI MAILINTE ;
  1245. CHPTNEW = MANU 'CHPO' MAILREST 1 'T' (MAXI CHPCONT) 'NATU''DIFFUS';
  1246. CHPTINI = CHPTORI 'ET' CHPTNEW ;
  1247.  
  1248. * Liste des Temps Calcules (Recuperation dans la TABLE SOUDAGE)
  1249. SI (EGA (DIME SOUDAGE. 'TEMPS_CALCULES') 1);
  1250. list1 = SOUDAGE. 'TEMPS_CALCULES'. 1 ;
  1251. SINO;
  1252. list1 = SOUDAGE. 'TEMPS_CALCULES'. I ;
  1253. FINS;
  1254.  
  1255. * On fait les modifications dans la table
  1256. TPASAP.'MODELE' = MODTOT ;
  1257. TPASAP.'CHARGEMENT' = CHARTOT ;
  1258. TPASAP.'TEMPS_CALCULES' = list1 ;
  1259.  
  1260. CHPTINI = MANU 'CHPO' MAILTHER 1 'T' T_INIT 'NATU' 'DIFFUS' ;
  1261. TPASAP.'TEMPERATURES' . (NB_PAS-1) = CHPTINI ;
  1262.  
  1263. * Il faut redefinir TEMPERATURE_REFERENCE & TALPHA_REFERENCE en reprise
  1264. TPASAP.'TEMPERATURE_REFERENCE' =
  1265. TPASAP.'WTABLE'.'TEMPERATURE_REFERENCE';
  1266. TPASAP.'MES_DATA'.'TREF'.NB_PAS = TPASAP.'TEMPERATURE_REFERENCE' ;
  1267. TPASAP.'TALPHA_REFERENCE' =
  1268. TPASAP.'WTABLE'.'TALPHA_REFERENCE';
  1269. TPASAP.'MES_DATA'.'TAREF'.NB_PAS = TPASAP.'TALPHA_REFERENCE' ;
  1270.  
  1271. TPASAP.'MES_MODEL' . NB_PAS = MODTOT ;
  1272. TPASAP.'MAILLAGE_ACTIF'. NB_PAS = TPASAP.'MAILLAGE_ACTIF'.(NB_PAS-1);
  1273. TPASAP.'MES_DATA'.'MA'.NB_PAS = TPASAP.'MAILLAGE_ACTIF' ;
  1274. FINSI ;
  1275. FIN INDICE;
  1276.  
  1277. SI GRAPH ;
  1278. N = '-' (DIME TPASAP.'TEMPS') 1 ;
  1279. MODT = TPASAP.'MES_MODEL'.N ;
  1280. MODM = EXTR MODT 'FORMULATION' 'MECANIQUE' ;
  1281. MAILM = EXTR MODM 'MAILLAGE' ;
  1282. MAILF = TPASAP.'MAILLAGE_FONDU'. N ;
  1283. CONT0 = TPASAP.'CONTRAINTES'.N ;
  1284. CHT0 = TPASAP.'TEMPERATURES'. 10 ;
  1285. TRAC CONT0 MODM ;
  1286. TRAC CHT0 MAILM ;
  1287. TRAC MAILF ;
  1288. FINS ;
  1289.  
  1290. FIN ;
  1291.  
  1292.  
  1293.  

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