Télécharger soudage3.dgibi

Retour à la liste

Numérotation des lignes :

  1. * fichier : soudage3.dgibi
  2. OPTI ECHO 1 ;
  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.'MODELE' 'FORM' 'MECANIQUE' ;
  42. MODTHER = EXTR WTAB.'MODELE' '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.'MODELE' 'FORM' 'MECANIQUE' ;
  104. MODTHER = EXTR WTAB.'MODELE' '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 MODELE
  163. WTAB. 'MODELE' = MODMECA ET MODTHER ;
  164. WTAB. 'CARACTERISTIQUES' = MATMECA ET MATTHER ;
  165.  
  166. * Enregistrement du MAILLAGE_ACTIF
  167. TAB1.'MAILLAGE_ACTIF'. NB_PAS = MAILNOMI ;
  168. TAB1.'MES_MODEL' . NB_PAS = WTAB. 'MODELE' ;
  169. *ajout HP 14/04/2017
  170. TAB1.'MODELE' = WTAB. 'MODELE' ;
  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.'CONSTITUANTS' = TABL ;
  392. SOUDAGE.'CONSTITUANTS'.'PIECE' = TABL ;
  393. SOUDAGE.'CONSTITUANTS'.'APPORT' = TABL ;
  394.  
  395. * Creation de la TABLE des CONSTITUANTS
  396. SOUDAGE. 'CONSTITUANTS'. 'PIECE'. 1 = MOT '316L' ;
  397.  
  398. 'REPETER' INDICE N_PASSE ;
  399. I = &INDICE ;
  400. SOUDAGE.'CONSTITUANTS'.'APPORT'.I = MOT '316L' ;
  401. 'FIN' INDICE ;
  402.  
  403. * Creation de la TABLE des sequences de la source
  404. SOUDAGE. 'CHARGEMENT' = TABL ;
  405. SOUDAGE. 'CHARGEMENT'.'MECANIQUE' = TABL ;
  406. SOUDAGE. 'CHARGEMENT'.'THERMIQUE' = TABL ;
  407. SOUDAGE . 'TEMPS_CALCULES' = TABL ;
  408. SOUDAGE . 'TEMPS_SAUVES' = TABL ;
  409.  
  410. 'REPETER' INDICE N_PASSE ;
  411. I = &INDICE ;
  412. pas1 = 0.5 ;
  413. pas2 = 5. ;
  414. pas3 = 200. ;
  415. ltcal = PROG pas1 'PAS' pas1 wdur 'PAS' pas2 ('+' wdur 60.) 'PAS' pas3 tfin ;
  416. SOUDAGE.'TEMPS_CALCULES'. I = tfin '*' (I-1) '+' ltcal ;
  417. 'FIN' INDICE ;
  418.  
  419. ************************************************************************
  420. * MAILLAGES *
  421. ************************************************************************
  422. *Tables pour couleur passes
  423. TABCOUL1 = TABLE;
  424. TABCOUL2 = TABLE;
  425. TABCOUL1.1 = ROSE ;
  426. TABCOUL1.2 = VERT ;
  427. TABCOUL1.3 = JAUN ;
  428. TABCOUL1.4 = OCEA ;
  429. TABCOUL1.5 = ROSE ;
  430. TABCOUL1.6 = TURQ ;
  431. TABCOUL1.7 = ROUG ;
  432. TABCOUL1.8 = BLEU ;
  433. TABCOUL1.9 = TURQ ;
  434. TABCOUL1.10 = AZUR ;
  435. TABCOUL1.11 = ORAN ;
  436. TABCOUL1.12 = ROUG ;
  437. ***************************************
  438.  
  439. d0 = 0.0025 ;
  440. P1 = 0. 0. 0. ;
  441. P2 = 0. ('*' l0 -1.) 0. ;
  442. P3 = 0. ('*' l0 -1.) l0 ;
  443. P4 = 0. 0. l0 ;
  444.  
  445. L12 = DROI P1 P2 'DINI' d0 'DFIN' d0 ;
  446. L23 = DROI P2 P3 'DINI' d0 'DFIN' d0 ;
  447. L34 = DROI P3 P4 'DINI' d0 'DFIN' d0 ;
  448. L41 = DROI P4 P1 'DINI' d0 'DFIN' d0 ;
  449.  
  450. S1 = DALL L12 L23 L34 L41 ;
  451. MAILP = VIDE 'MAILLAGE' ;
  452.  
  453. TMAIL = 'TABLE' ;
  454. *PASSES
  455. K = 1 ;
  456. REPE BLOCN N ;
  457. I = '-' &BLOCN 1 ;
  458. REPE BLOCP P ;
  459. J = '-' &BLOCP 1 ;
  460.  
  461. NPASSE = CHAI 'PASSE_' K ;
  462. ****COUL
  463. 'REPETER' BCOUL ('*' N P) ;
  464. H = &BCOUL;
  465. HH = '+' (@MOD H 12) 1 ;
  466. TABCOUL2.H = TABCOUL1.HH ;
  467. 'FIN' BCOUL ;
  468. ****
  469. JJ = '*' J -1. ;
  470. SPASSE =
  471. (S1 'PLUS' (0. ('*' l0 JJ) ('*' l0 I))) COUL TABCOUL2.K ;
  472. TMAIL.NPASSE = SPASSE VOLU 'DINI' d0 'DFIN' d0 'TRAN' vtran ;
  473. MAILP = MAILP ET TMAIL.NPASSE ;
  474. K = '+' K 1 ;
  475. FIN BLOCP ;
  476. FIN BLOCN;
  477.  
  478. *PIECE
  479. MPIECE1 = VIDE 'MAILLAGE' ;
  480. MPIECE1 = MPIECE1 ET (S1 'PLUS' (0. ('*' l0 2.) ('*' l0 -1.)))
  481. COUL 'ROUG' ;
  482. MPIECE1 = MPIECE1 ET (S1 'PLUS' (0. ('*' l0 1.) ('*' l0 -1.)))
  483. COUL 'ROUG' ;
  484. MPIECE1 = MPIECE1 ET (S1 'PLUS' (0. ('*' l0 2.) ('*' l0 -2.)))
  485. COUL 'ROUG' ;
  486. MPIECE1 = MPIECE1 ET (S1 'PLUS' (0. ('*' l0 1.) ('*' l0 -2.)))
  487. COUL 'ROUG' ;
  488.  
  489. vec0 = 0. ('*' l0 (('*' (P + 1) -1.))) ('*' l0 -1.);
  490. MPIECE1 = MPIECE1 ET (S1 'PLUS' vec0) COUL 'ROUG' ;
  491. vec0 = 0. ('*' l0 (('*' P -1.))) ('*' l0 -1.) ;
  492. MPIECE1 = MPIECE1 ET (S1 'PLUS' vec0) COUL 'ROUG' ;
  493. vec0 = 0. ('*' l0 (('*' (P + 1) -1.))) ('*' l0 -2.) ;
  494. MPIECE1 = MPIECE1 ET (S1 'PLUS' vec0) COUL 'ROUG' ;
  495. vec0 = 0. ('*' l0 (('*' P -1.))) ('*' l0 -2.) ;
  496. MPIECE1 = MPIECE1 ET (S1 'PLUS' vec0) COUL 'ROUG' ;
  497.  
  498.  
  499. REPE BLOCN N ;
  500. I = '-' &BLOCN 1 ;
  501. vec0 = 0. l0 ('*' l0 I) ;
  502. MPIECE1 = MPIECE1 ET (S1 'PLUS' vec0) COUL 'ROUG' ;
  503. vec0 = 0. ('*' l0 2) ('*' l0 I) ;
  504. MPIECE1 = MPIECE1 ET (S1 'PLUS' vec0) COUL 'ROUG' ;
  505.  
  506. vec0 = 0. ('*' l0 ('*' (P + 1) -1.)) ('*' l0 I) ;
  507. MPIECE1 = MPIECE1 ET (S1 'PLUS' vec0) COUL 'ROUG' ;
  508. vec0 = 0. ('*' l0 ('*' P -1.)) ('*' l0 I) ;
  509. MPIECE1 = MPIECE1 ET (S1 'PLUS' vec0) COUL 'ROUG' ;
  510. FIN BLOCN;
  511.  
  512. REPE BLOCP P ;
  513. J = '-' &BLOCP 1 ;
  514. vec0 = 0. ('*' ('*' l0 J) -1.) ('*' l0 -1) ;
  515. MPIECE1 = MPIECE1 ET (S1 'PLUS' vec0) COUL 'ROUG' ;
  516. vec0 = 0. ('*' ('*' l0 J) -1.) ('*' l0 -2) ;
  517. MPIECE1 = MPIECE1 ET (S1 'PLUS' vec0) COUL 'ROUG' ;
  518. FIN BLOCP ;
  519. MPIECE1 = MPIECE1 VOLU 'DINI' d0 'DFIN' d0 'TRAN' vtran ;
  520. MAIL1 = MAILP ET MPIECE1 ;
  521.  
  522. ELIM MAIL1 1.e-6 ;
  523. AXES = @repere (0. 0. 0.) ('PROG' 0.05 0.05 0.05) 'BLAN' ;
  524.  
  525. SI GRAPH ;
  526. MESS (CHAI 'Nombre elements : ' (NBEL MAILP) );
  527. TRAC FACE CACHE (MAIL1 ET MPIECE1 ET AXES) ;
  528. FINS ;
  529.  
  530. * Creation de la TABLE des MAILLAGES
  531. SOUDAGE. 'MAILLAGE' = 'TABL' ;
  532. SOUDAGE. 'MAILLAGE'. 'APPORT' = 'TABL' ;
  533. SOUDAGE. 'MAILLAGE'. 'PIECE' = 'TABL' ;
  534.  
  535. * Creation de la TABLE des MAILLAGES
  536. mail0 = ENVE MAIL1 ;
  537. SOUDAGE.'MAILLAGE'.'PIECE'. 1 = MPIECE1 ;
  538. MAILT = SOUDAGE.'MAILLAGE'.'PIECE'. 1 ;
  539.  
  540. * PASSES MECA
  541. 'REPETER' INDICE N_PASSE ;
  542. I = &INDICE ;
  543. NOMP = CHAI 'PASSE_' I ;
  544. PASSTEMP = TMAIL.NOMP ;
  545. SOUDAGE.'MAILLAGE'.'APPORT'. I = PASSTEMP ;
  546. MAILT = MAILT 'ET' (SOUDAGE.'MAILLAGE'.'APPORT'. I) ;
  547. 'FIN' INDICE ;
  548.  
  549. SOUDAGE.'MAILLAGE'.'MTOT' = MAILT ;
  550.  
  551. * Verification que toutes les parties ont ete renseignees
  552. SI ((DIME SOUDAGE. 'MAILLAGE' . 'PIECE') NEG N_PIECE );
  553. MESS ' Toutes les PIECES n ont pas de MAILLAGE';
  554. ERRE 5;
  555. FINSI;
  556.  
  557. SI ((DIME SOUDAGE. 'MAILLAGE' . 'APPORT') < N_PASSE );
  558. MESS ' Tous les APPORTS n ont pas de MAILLAGE';
  559. ERRE 5;
  560. FINSI;
  561.  
  562.  
  563. SI ((DIME SOUDAGE. 'CONSTITUANTS'. 'PIECE') NEG N_PIECE );
  564. MESS ' Toutes les PIECES n ont pas de CONSTITUANT';
  565. ERRE 5;
  566. FINSI;
  567.  
  568. SI ((DIME SOUDAGE. 'CONSTITUANTS'. 'APPORT') < N_PASSE );
  569. MESS ' Tous les APPORTS n ont pas de CONSTITUANT';
  570. ERRE 5;
  571. FINSI;
  572.  
  573. SOUDAGE.'CHARGEMENT'.'XYZ' = 'TABL' ;
  574. ****Position soudage
  575. K = 1 ;
  576. REPE BLOCN N ;
  577. I = &BLOCN ;
  578. REPE BLOCP P ;
  579. J = &BLOCP ;
  580. yloc = -0.5 * l0 * (2 * J - 1) ;
  581. zloc = '*' l0 I ;
  582.  
  583. posloc = ('/' l0 2.) yloc zloc ;
  584. SOUDAGE.'CHARGEMENT'.'XYZ'. K = posloc ;
  585. K = '+' K 1 ;
  586. FIN BLOCP ;
  587. FIN BLOCN;
  588.  
  589. ************************************************************************
  590. * MODELES *
  591. ************************************************************************
  592. SOUDAGE.'MODELE' = TABLE;
  593. SOUDAGE.'MODELE'.'PIECE' = TABLE;
  594. SOUDAGE.'MODELE'.'PIECE' .'MECANIQUE' = TABLE;
  595. SOUDAGE.'MODELE'.'PIECE' .'THERMIQUE' = TABLE;
  596.  
  597. SOUDAGE.'MODELE'.'APPORT' = TABLE;
  598. SOUDAGE.'MODELE'.'APPORT'.'MECANIQUE' = TABLE;
  599. SOUDAGE.'MODELE'.'APPORT'.'MECANIQUE'.'DEGRADE' = TABLE;
  600. SOUDAGE.'MODELE'.'APPORT'.'MECANIQUE'.'NOMINAL' = TABLE;
  601. SOUDAGE.'MODELE'.'APPORT'.'THERMIQUE' = TABLE;
  602.  
  603. SOUDAGE.'MODELE'.'THERMIQUE' = TABLE;
  604.  
  605. * PIECES a souder
  606. SOUDAGE.'MODELE'.'PIECE'.'MECANIQUE'.'TOTAL' = VIDE 'MMODEL' ;
  607. SOUDAGE.'MODELE'.'PIECE'.'THERMIQUE'.'TOTAL' = VIDE 'MMODEL' ;
  608. REPE INDICE (DIME (SOUDAGE. 'MAILLAGE'. 'PIECE')) ;
  609. I=&INDICE ;
  610. MAILMECA = SOUDAGE.'MAILLAGE'.'PIECE'. I ;
  611. MAILTHER = MAILMECA ;
  612.  
  613. * MODELE MECANIQUE ET THERMIQUE
  614. CONSTI = CHAI 'PE' I ;
  615.  
  616. MOMEC = MODE MAILMECA 'MECANIQUE' 'ELASTIQUE' 'ISOTROPE'
  617. 'PLASTIQUE' 'ISOTROPE'
  618. * 'TRI6' 'Q8RI'
  619. * 'TRI3' 'Q4RI'
  620. 'CONS' CONSTI ;
  621.  
  622. MOTHE = MODE MAILTHER 'THERMIQUE' 'CONDUCTION'
  623. 'CONS' 'THER' ;
  624.  
  625. SOUDAGE.'MODELE'.'PIECE'.'MECANIQUE'. I = MOMEC ;
  626. SOUDAGE.'MODELE'.'PIECE'.'THERMIQUE'. I = MOTHE ;
  627.  
  628. SOUDAGE.'MODELE'.'PIECE'.'MECANIQUE'.'TOTAL' =
  629. SOUDAGE.'MODELE'.'PIECE'.'MECANIQUE'.'TOTAL' ET MOMEC ;
  630. SOUDAGE.'MODELE'.'PIECE'.'THERMIQUE'.'TOTAL' =
  631. SOUDAGE.'MODELE'.'PIECE'.'THERMIQUE'.'TOTAL' ET MOTHE ;
  632. FIN INDICE;
  633.  
  634.  
  635.  
  636. * APPORTS durant les differentes passes
  637. SOUDAGE.'MODELE'.'APPORT'.'MECANIQUE'.'DEGRADE'.'TOTAL'= VIDE 'MMODEL';
  638. SOUDAGE.'MODELE'.'APPORT'.'MECANIQUE'.'NOMINAL'.'TOTAL'= VIDE 'MMODEL';
  639. SOUDAGE.'MODELE'.'APPORT'.'THERMIQUE'.'TOTAL' = VIDE 'MMODEL';
  640. REPE INDICE (DIME (SOUDAGE. 'MAILLAGE'. 'APPORT')) ;
  641. I=&INDICE ;
  642. MAILMECA = SOUDAGE.'MAILLAGE'.'APPORT'. I ;
  643. MAILTHER = MAILMECA ;
  644.  
  645. * MODELE MECANIQUE ET THERMIQUE
  646. CONSTI = CHAI 'PD' ;
  647. MOMECD = MODE MAILMECA 'MECANIQUE' 'ELASTIQUE' 'ISOTROPE'
  648. * 'TRI6' 'Q8RI'
  649. * 'TRI3' 'Q4RI'
  650. 'CONS' CONSTI ;
  651.  
  652. CONSTI = CHAI 'PN' ;
  653. MOMECN = MODE MAILMECA 'MECANIQUE' 'ELASTIQUE' 'ISOTROPE'
  654. 'PLASTIQUE' 'ISOTROPE'
  655. * 'TRI6' 'Q8RI'
  656. * 'TRI3' 'Q4RI'
  657. 'CONS' CONSTI ;
  658.  
  659. MOTHE = MODE MAILTHER 'THERMIQUE' 'CONDUCTION' 'CONS' 'THER' ;
  660.  
  661. SOUDAGE.'MODELE'.'APPORT'.'MECANIQUE'.'DEGRADE'. I = MOMECD ;
  662. SOUDAGE.'MODELE'.'APPORT'.'MECANIQUE'.'NOMINAL'. I = MOMECN ;
  663. SOUDAGE.'MODELE'.'APPORT'.'THERMIQUE'. I = MOTHE ;
  664.  
  665. SOUDAGE.'MODELE'.'APPORT'.'MECANIQUE'.'DEGRADE'.'TOTAL' =
  666. SOUDAGE.'MODELE'.'APPORT'.'MECANIQUE'.'DEGRADE'.'TOTAL' ET MOMECD ;
  667. SOUDAGE.'MODELE'.'APPORT'.'MECANIQUE'.'NOMINAL'.'TOTAL' =
  668. SOUDAGE.'MODELE'.'APPORT'.'MECANIQUE'.'NOMINAL'.'TOTAL' ET MOMECN ;
  669. SOUDAGE.'MODELE'.'APPORT'.'THERMIQUE'.'TOTAL' =
  670. SOUDAGE.'MODELE'.'APPORT'.'THERMIQUE'.'TOTAL' ET MOTHE ;
  671. FIN INDICE;
  672.  
  673.  
  674. * CONVECTION : Construction Automatique du CONTOUR demande
  675. LCONT1 = ENVE (EXTR SOUDAGE.'MODELE'.'PIECE'. 'THERMIQUE'.'TOTAL'
  676. 'MAILLAGE') ;
  677.  
  678. LCONT2 = ENVE (EXTR SOUDAGE.'MODELE'.'APPORT'.'THERMIQUE'.'TOTAL'
  679. 'MAILLAGE') ;
  680. INTER1 = INTE LCONT1 LCONT2 ;
  681. LEXTT = DIFF LCONT1 INTER1 ;
  682. SI GRAPH ;
  683. TRAC LEXTT ;
  684. FINS;
  685. MOCONV = MODE LEXTT 'THERMIQUE' 'CONVECTION' 'CONS' 'CONVECTION';
  686. SOUDAGE.'MODELE'.'APPORT'.'THERMIQUE'.'TOTAL' =
  687. SOUDAGE.'MODELE'.'APPORT'.'THERMIQUE'.'TOTAL' ET MOCONV ;
  688.  
  689. ************************************************************************
  690. * MATERIAUX *
  691. ************************************************************************
  692. *Procédure pour calculer YOUN à partir d'une évolution
  693. 'DEBP' CALYO EV1*EVOLUTION;
  694. X1 = EXTR EV1 'ABSC' ;
  695. Y1 = EXTR EV1 'ORDO' ;
  696. YOU1 = '/' (EXTR Y1 2) (EXTR X1 2) ;
  697. 'FINP' YOU1 ;
  698. ******************************************
  699.  
  700. SOUDAGE.'MATERIAUX' = TABLE;
  701. SOUDAGE.'MATERIAUX'.'PIECE' = TABLE;
  702. SOUDAGE.'MATERIAUX'.'PIECE' .'MECANIQUE' = TABLE;
  703. SOUDAGE.'MATERIAUX'.'PIECE' .'THERMIQUE' = TABLE;
  704.  
  705. SOUDAGE.'MATERIAUX'.'APPORT' = TABLE;
  706. SOUDAGE.'MATERIAUX'.'APPORT'.'MECANIQUE' = TABLE;
  707. SOUDAGE.'MATERIAUX'.'APPORT'.'MECANIQUE'.'DEGRADE' = TABLE;
  708. SOUDAGE.'MATERIAUX'.'APPORT'.'MECANIQUE'.'NOMINAL' = TABLE;
  709. SOUDAGE.'MATERIAUX'.'APPORT'.'THERMIQUE' = TABLE;
  710.  
  711. SOUDAGE.'MATERIAUX'.'THERMIQUE' = TABLE;
  712.  
  713. * Lecture des MATERIAUX de la bibliotheque
  714. * BIBLIOTHEQUE disponible : '316L' '16MND5'
  715.  
  716. * Initialisation du CONSTITUANT precedent
  717. NOMCONSP = 'NONDEFIN';
  718.  
  719. * PIECES a souder
  720. SOUDAGE.'MATERIAUX'.'PIECE'.'MECANIQUE'.'TOTAL' = VIDE 'MCHAML';
  721. SOUDAGE.'MATERIAUX'.'PIECE'.'THERMIQUE'.'TOTAL' = VIDE 'MCHAML';
  722. REPE INDICE (DIME (SOUDAGE. 'MAILLAGE'. 'PIECE'));
  723. I=&INDICE;
  724. NOMCONS = SOUDAGE. 'CONSTITUANTS'. 'PIECE' . I ;
  725.  
  726. * Chargement des proprietes materiaux que si le constituant change
  727. NOMCONSP = NOMCONS;
  728.  
  729. * Lecture des proprietes dans la bibliotheque
  730. * NOMDATA = CHAI 'Materiaux/' NOMCONS '/' NOMCONS'_E.csv' ;
  731. * TTMP = LIRE 'CSV' NOMDATA ;
  732. TTMP = TABL ;
  733. TTMP. 1 = PROG 20. 200. 300. 400. 500. 600.
  734. 700. 800. 900. 1000. 1500. 3000. ;
  735. TTMP. 2 = PROG 197e9 184e9 176e9 168e9
  736. 160e9 151e9 142e9 130e9 108e9 81e9 1e9 1e9 ;
  737. EVYOUN = EVOL MANU 'T' (TTMP. 1) 'YOUN' (TTMP. 2) ;
  738. MAXIT = MAXI (TTMP. 1) ;
  739.  
  740.  
  741. * NOMDATA = CHAI 'Materiaux/' NOMCONS '/' NOMCONS'_Nu.csv' ;
  742. * TTMP = LIRE 'CSV' NOMDATA ;
  743. TTMP = TABL ;
  744. TTMP. 1 = PROG 25 100 200 400 500 600 700 800
  745. 900 1000 1100 1200 1300 1390 1420 1450 3000 ;
  746. TTMP. 2 = PROG 0.296 0.298 0.304 0.315 0.32
  747. 0.323 0.326 0.33 0.336 0.339 0.346 0.349 0.353 0.353 0.353 0.353 0.353 ;
  748. DIMNU = DIME TTMP. 1 ;
  749. VALNU = TTMP. 2 ;
  750. EVNU = EVOL MANU 'T' (TTMP. 1) 'NU' (TTMP. 2) ;
  751.  
  752. * NOMDATA = CHAI 'Materiaux/' NOMCONS '/' NOMCONS'_Rho.csv' ;
  753. * TTMP = LIRE 'CSV' NOMDATA ;
  754. TTMP = TABL ;
  755. TTMP. 1 = PROG 20 200 400 600 800 1000 1200 1400 1500 3000 ;
  756. TTMP. 2 = PROG 8.0e3 7.93e3 7.84e3 7.75e3 7.65e3 7.55e3
  757. 7.45e3 7.35e3 7.30e3 7.30e3 ;
  758. EVRHO = EVOL MANU 'T' (TTMP. 1) 'RHO' (TTMP. 2) ;
  759.  
  760. * NOMDATA = CHAI 'Materiaux/' NOMCONS '/' NOMCONS'_Limite_Elas.csv' ;
  761. * TTMP = LIRE 'CSV' NOMDATA ;
  762. TTMP = TABL ;
  763. TTMP. 1 = PROG 20 200 300 400 500 600 700 800 900 1000 1500 3000 ;
  764. TTMP. 2 = PROG 287e6 198e6 172e6 157e6 152e6 145e6 136e6
  765. 127e6 115e6 79e6 5e6 1e6 ;
  766. EVSIGY = EVOL MANU 'T' (TTMP. 1) 'R0' (TTMP. 2) ;
  767.  
  768. * NOMDATA = CHAI 'Materiaux/' NOMCONS '/' NOMCONS'_Epsi_Th.csv' ;
  769. * TTMP = LIRE 'CSV' NOMDATA ;
  770. TTMP = TABL ;
  771. TTMP. 1 = PROG 0 100 200 300 400 500 600 700 800 900 1000 1100
  772. 1200 1420 1460 3000 ;
  773. TTMP. 2 = PROG -3.17e-4 0.0013 0.003 0.0048 0.0066 0.0086 0.0106
  774. 0.0126 0.0147 0.0168 0.019 0.0212 0.0235 0.029 0.0298 0.0298 ;
  775. EVDEFT = EVOL MANU 'T' (TTMP. 1) 'EPTH' (TTMP. 2) ;
  776. LALPHA = TTMP. 2 / (TTMP. 1 - TAREF) ;
  777. EVALPHA = EVOL MANU 'T' (TTMP. 1) 'ALPH' LALPHA ;
  778.  
  779. * NOMDATA = CHAI 'Materiaux/' NOMCONS '/' NOMCONS'_Ecrou_T.csv' ;
  780. * TTMP1 = LIRE 'CSV' NOMDATA ;
  781. TTMP1 = TABL ;
  782. TTMP1. 1 = PROG 20 200 300 400 500 600 700 800 900 1000 1500 3000 ;
  783. * NOMDATA = CHAI 'Materiaux/'NOMCONS'/'NOMCONS'_Ecrou_Cont_Def.csv ' ;
  784. * TTMP2 = LIRE 'CSV' NOMDATA ;
  785. TTMP2 = TABL ;
  786. TTMP2. 1 = PROG 0. 0.01 0.05 0.2 1. 2. ;
  787. TTMP2. 2 = PROG 0 28e6 132e6 274e6 913e6 1369e6 ;
  788. TTMP2. 3 = PROG 0 33e6 136e6 272e6 802e6 1203e6 ;
  789. TTMP2. 4 = PROG 0 29e6 135e6 279e6 728e6 1092e6 ;
  790. TTMP2. 5 = PROG 0 29e6 137e6 278e6 442e6 663e6 ;
  791. TTMP2. 6 = PROG 0 27e6 130e6 267e6 398e6 597e6 ;
  792. TTMP2. 7 = PROG 0 25e6 117e6 242e6 355e6 532e6 ;
  793. TTMP2. 8 = PROG 0 25e6 76e6 204e6 264e6 396e6 ;
  794. TTMP2. 9 = PROG 0 25e6 72e6 167e6 223e6 334e6 ;
  795. TTMP2. 10 = PROG 0 22e6 46e6 54e6 65e6 97e6 ;
  796. TTMP2. 11 = PROG 0 3e6 18e6 21e6 26e6 39e6 ;
  797. TTMP2. 12 = PROG 0 2e6 3e6 4e6 5e6 6e6 ;
  798. TTMP2. 13 = PROG 0 1e6 2e6 3e6 4e6 5e6 ;
  799.  
  800. EVTOT1 = VIDE 'EVOLUTION';
  801. EVTOT2 = VIDE 'EVOLUTION';
  802. LTEMPER = VIDE 'LISTREEL' ;
  803. REPE ITEMPER (DIME TTMP1. 1);
  804. J=&ITEMPER;
  805. TEMPER = EXTR (TTMP1 . 1) J;
  806. LTEMPER= LTEMPER ET TEMPER ;
  807.  
  808. * Interpolation du module de YOUNG et SIGY a la temperature TEMPER
  809. YOUNIPOL = IPOL TEMPER EVYOUN;
  810. SIGYIPOL = IPOL TEMPER EVSIGY;
  811.  
  812. * Calcul de EPSIY a partir de YOUNIPOL et SIGYIPOL
  813. EPSIY = SIGYIPOL / YOUNIPOL;
  814.  
  815. * Construction de la courbe de traction Complete pour Cast3M
  816. LESPI = (PROG 0.) ET ((TTMP2. 1) + EPSIY );
  817. LSIGM = (PROG 0.) ET ((TTMP2. (J+1)) + SIGYIPOL);
  818. EVTRAC= EVOL MANU 'EPS' LESPI 'CONT' LSIGM ;
  819. EVTOT1 = EVTOT1 ET EVTRAC;
  820.  
  821. LSIGM = LSIGM enle 1 ;
  822. LESPI = (LESPI enle 1) - (LSIGM / YOUNIPOL) born mini 0. ;
  823. EVECRO= EVOL VERT MANU 'EPS' LESPI 'ECRO' LSIGM ;
  824. EVTOT2 = EVTOT2 ET EVECRO;
  825.  
  826.  
  827. * Construction du NUAGE qui associe une EVOLUTION a une TEMPERATURE
  828. SI (J EGA 1);
  829. NUATRAC = NUAGE 'COMP' 'T ' TEMPER
  830. 'COMP' 'ECRO' EVECRO ;
  831. SINO;
  832. NUATRAC = NUATRAC ET (NUAGE 'COMP' 'T ' TEMPER
  833. 'COMP' 'ECRO' EVECRO ) ;
  834. FINS;
  835. FIN ITEMPER;
  836.  
  837. * Parametres thermiques
  838. * NOMDATA = CHAI 'Materiaux/' NOMCONS '/' NOMCONS'_k.csv';
  839. * TTMP = LIRE 'CSV' NOMDATA;
  840. TTMP = TABL ;
  841. TTMP. 1 = PROG 20 100 200 300 400 500 600 700 800 900 1000
  842. 1200 1400 3000 ;
  843. TTMP. 2 = PROG 0.0147e3 0.0158e3 0.0172e3 0.0186e3 0.02e3
  844. 0.0211e3 0.0222e3 0.0232e3 0.0241e3 0.0248e3 0.0255e3
  845. 0.0269e3 0.0283e3 0.0283e3 ;
  846. EVK = EVOL MANU 'T' (TTMP. 1) 'K' (TTMP. 2);
  847.  
  848. * NOMDATA = CHAI 'Materiaux/' NOMCONS '/' NOMCONS'_Cp.csv';
  849. * TTMP = LIRE 'CSV' NOMDATA;
  850. TTMP = TABL ;
  851. TTMP. 1 = PROG 20 100 200 300 400 600 800 1000 1200 1500 3000 ;
  852. TTMP. 2 = PROG 450 490 525 545 560 580 625 660 670 690 690 ;
  853. EVCP = EVOL MANU 'T' (TTMP. 1) 'C' (TTMP. 2);
  854.  
  855. SI GRAPH ;
  856. DESS EVYOUN TITR 'Module de YOUNG';
  857. DESS EVNU TITR 'Coefficient de POISSON';
  858. DESS EVRHO TITR 'Masse Volumique';
  859. DESS EVSIGY TITR 'Limite Elastique';
  860. DESS EVALPHA TITR 'Coefficient de dilatation Thermique';
  861. DESS (EVTOT1 et EVTOT2) TITR
  862. 'Courbes de traction et d ecrouissage (vert) a differentes temperatures';
  863.  
  864. DESS EVK TITR 'Conductivite Thermique';
  865. DESS EVCP TITR 'Chaleur Specifique';
  866. FINS;
  867.  
  868.  
  869. * MATERIAUX MECANIQUE ET THERMIQUE
  870. MOMEC = SOUDAGE.'MODELE'.'PIECE'.'MECANIQUE'. I ;
  871. MOTHE = SOUDAGE.'MODELE'.'PIECE'.'THERMIQUE'. I ;
  872.  
  873. MAMEC = MATE MOMEC 'YOUN' EVYOUN 'NU' EVNU 'RHO' EVRHO 'ALPH' EVALPHA 'TREF' T_INIT 'TALP' TAREF 'ECRO' 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. EVTOT1 = VIDE 'EVOLUTION' ;
  975. EVTOT2 = VIDE 'EVOLUTION' ;
  976. LTEMPER = VIDE 'LISTREEL' ;
  977.  
  978. REPE ITEMPER (DIME TTMP1. 1) ;
  979. J=&ITEMPER ;
  980. TEMPER = EXTR (TTMP1 . 1) J;
  981. LTEMPER= LTEMPER ET TEMPER ;
  982.  
  983. * Interpolation du module de YOUNG et SIGY a la temperature TEMPER
  984. YOUNIPOL = IPOL TEMPER EVYOUN;
  985. SIGYIPOL = IPOL TEMPER EVSIGY;
  986.  
  987. * Calcul de EPSIY a partir de YOUNIPOL et SIGYIPOL
  988. EPSIY = SIGYIPOL / YOUNIPOL;
  989.  
  990. * Construction de la courbe de traction Complete pour Cast3M
  991. LESPI = (PROG 0.) ET ((TTMP2. 1) + EPSIY ) ;
  992. LSIGM = (PROG 0.) ET ((TTMP2. (J+1)) + SIGYIPOL) ;
  993. EVTRAC= EVOL MANU 'EPSI' LESPI 'CONT' LSIGM ;
  994. EVTOT1 = EVTOT1 ET EVTRAC ;
  995.  
  996. LSIGM = LSIGM enle 1 ;
  997. LESPI = (LESPI enle 1) - (LSIGM / YOUNIPOL) born mini 0. ;
  998. EVECRO= EVOL VERT MANU 'EPS' LESPI 'ECRO' LSIGM ;
  999. EVTOT2 = EVTOT2 ET EVECRO;
  1000.  
  1001. * Construction du NUAGE qui associe une EVOLUTION a une TEMPERATURE
  1002. SI (J EGA 1);
  1003. NUATRACN = NUAGE 'COMP' 'T ' TEMPER
  1004. 'COMP' 'ECRO' EVECRO ;
  1005. SINO;
  1006. NUATRACN = NUATRACN ET (NUAGE 'COMP' 'T ' TEMPER
  1007. 'COMP' 'ECRO' EVECRO ) ;
  1008. FINS;
  1009. FIN ITEMPER;
  1010.  
  1011.  
  1012. * Parametres thermiques
  1013. * NOMDATA = CHAI 'Materiaux/' NOMCONS '/' NOMCONS'_k.csv';
  1014. * TTMP = LIRE 'CSV' NOMDATA;
  1015. TTMP = TABL ;
  1016. TTMP. 1 = PROG 20 100 200 300 400 500 600 700 800 900 1000
  1017. 1200 1400 3000 ;
  1018. TTMP. 2 = PROG 0.0147e3 0.0158e3 0.0172e3 0.0186e3 0.02e3
  1019. 0.0211e3 0.0222e3 0.0232e3 0.0241e3 0.0248e3 0.0255e3
  1020. 0.0269e3 0.0283e3 0.0283e3 ;
  1021. EVK = EVOL MANU 'T' (TTMP. 1) 'K' (TTMP. 2);
  1022.  
  1023. * NOMDATA = CHAI 'Materiaux/' NOMCONS '/' NOMCONS'_Cp.csv';
  1024. * TTMP = LIRE 'CSV' NOMDATA;
  1025. TTMP = TABL ;
  1026. TTMP. 1 = PROG 20 100 200 300 400 600 800 1000 1200 1500 3000 ;
  1027. TTMP. 2 = PROG 450 490 525 545 560 580 625 660 670 690 690 ;
  1028. EVCP = EVOL MANU 'T' (TTMP. 1) 'C' (TTMP. 2);
  1029.  
  1030. SI GRAPH ;
  1031. DESS EVYOUN TITR 'Module de YOUNG Nominal';
  1032. DESS EVNU TITR 'Coefficient de POISSON';
  1033. DESS EVRHO TITR 'Masse Volumique';
  1034. DESS EVSIGY TITR 'Limite Elastique';
  1035. DESS EVALPHAN TITR 'Coefficient de dilatation Thermique';
  1036. DESS (EVTOT1 et EVTOT2) TITR
  1037. 'Courbes de traction et d ecrouissage (vert) a differentes temperatures';
  1038. DESS EVK TITR 'Conductivite Thermique';
  1039. DESS EVCP TITR 'Chaleur Specifique';
  1040. FINS;
  1041.  
  1042. * MATERIAUX MECANIQUE ET THERMIQUE
  1043. MOMECD= SOUDAGE.'MODELE'.'APPORT'.'MECANIQUE'.'DEGRADE'. I ;
  1044. MOMECN= SOUDAGE.'MODELE'.'APPORT'.'MECANIQUE'.'NOMINAL'. I ;
  1045. MOTHE = SOUDAGE.'MODELE'.'APPORT'.'THERMIQUE'. I ;
  1046. * YOUND = EXTR LYOU3 (DIME LTEMPER);
  1047. NUD = EXTR VALNU DIMNU;
  1048.  
  1049. MAMECD= MATE MOMECD 'YOUN' EVYOUN 'NU' NUD 'ALPH' 0.D0 'TREF' T_INIT 'TALP' TAREF ;
  1050. MAMECN= MATE MOMECN 'YOUN' EVYOUN 'NU' EVNU 'ALPH' EVALPHAN 'TREF' T_INIT 'TALP' TAREF 'ECRO' NUATRACN ;
  1051. MATHE = MATE MOTHE 'K' EVK 'RHO' EVRHO 'C' EVCP ;
  1052.  
  1053. SOUDAGE.'MATERIAUX'.'APPORT'.'MECANIQUE'.'DEGRADE'. I = MAMECD ;
  1054. SOUDAGE.'MATERIAUX'.'APPORT'.'MECANIQUE'.'NOMINAL'. I = MAMECN ;
  1055. SOUDAGE.'MATERIAUX'.'APPORT'.'THERMIQUE'. I = MATHE ;
  1056.  
  1057. SOUDAGE.'MATERIAUX'.'APPORT'.'THERMIQUE'.'TOTAL' =
  1058. SOUDAGE.'MATERIAUX'.'APPORT'.'THERMIQUE'.'TOTAL' ET MATHE;
  1059.  
  1060. SOUDAGE.'MATERIAUX'.'APPORT'.'MECANIQUE'.'DEGRADE'.'TOTAL' =
  1061. SOUDAGE.'MATERIAUX'.'APPORT'.'MECANIQUE'.'DEGRADE'.'TOTAL' ET MAMECD;
  1062.  
  1063. SOUDAGE.'MATERIAUX'.'APPORT'.'MECANIQUE'.'NOMINAL'.'TOTAL' =
  1064. SOUDAGE.'MATERIAUX'.'APPORT'.'MECANIQUE'.'NOMINAL'.'TOTAL' ET MAMECN;
  1065. FIN INDICE;
  1066.  
  1067. MOMECDT = SOUDAGE.'MODELE'.'APPORT'.'MECANIQUE'.'DEGRADE'.'TOTAL';
  1068. MOMECNT = SOUDAGE.'MODELE'.'APPORT'.'MECANIQUE'.'NOMINAL'.'TOTAL';
  1069. MOTHT = SOUDAGE.'MODELE'.'APPORT'.'THERMIQUE'.'TOTAL';
  1070.  
  1071. SOUDAGE.'MATERIAUX'.'APPORT'.'THERMIQUE'.'TOTAL' = REDU
  1072. SOUDAGE.'MATERIAUX'.'APPORT'.'THERMIQUE'.'TOTAL' MOTHT;
  1073.  
  1074. SOUDAGE.'MATERIAUX'.'APPORT'.'MECANIQUE'.'DEGRADE'.'TOTAL' = REDU
  1075. SOUDAGE.'MATERIAUX'.'APPORT'.'MECANIQUE'.'DEGRADE'.'TOTAL' MOMECDT;
  1076.  
  1077. SOUDAGE.'MATERIAUX'.'APPORT'.'MECANIQUE'.'NOMINAL'.'TOTAL' = REDU
  1078. SOUDAGE.'MATERIAUX'.'APPORT'.'MECANIQUE'.'NOMINAL'.'TOTAL' MOMECNT;
  1079.  
  1080. * Materiaux pour la CONVECTION
  1081. MACONV = MATE MOCONV 'H' 23.e-6 ;
  1082.  
  1083. ************************************************************************
  1084. * BLOCAGES PERMANENTS *
  1085. ************************************************************************
  1086. SOUDAGE.'BLOCAGES' = 'TABL';
  1087. SOUDAGE.'BLOCAGES'.'PERMANENT' = 'TABL';
  1088.  
  1089. * BLOCAGES MECANIQUES
  1090. zblo = '*' l0 -2. ;
  1091. pt0 = MPIECE1 POIN 'PLAN' (0. 0. zblo )
  1092. (1. 0. zblo ) (0. 1. zblo ) 1.e-4 ;
  1093. BLOQ0 = 'BLOQ' pt0 'UX' 'UY' 'UZ' ;
  1094. SOUDAGE.'BLOCAGES'.'PERMANENT'.'MECANIQUE' = BLOQ0 ;
  1095.  
  1096. ************************************************************************
  1097. * CHARGEMENT *
  1098. ************************************************************************
  1099.  
  1100. * CHARGEMENT Thermique : Source de chaleur dans l'APPORT
  1101.  
  1102. REPE INDICE N_PASSE ;
  1103. * Boucle sur toutes les PASSES
  1104. I=&INDICE;
  1105. MOD1 = SOUDAGE.'MODELE' .'APPORT'.'THERMIQUE'. I ;
  1106. MAIL = SOUDAGE.'MAILLAGE'.'APPORT'. I ;
  1107. EVO1 = EVOL 'MANU' (PROG 0. 1.D10) (PROG 1. 1.) ;
  1108. CHTCONV = MANU 'CHPO' LEXTT 1 'T' T_CONV ;
  1109. CHA1= CHAR 'TECO' CHTCONV EVO1 ;
  1110. SOUDAGE. 'CHARGEMENT'.'THERMIQUE'. I = CHA1 ;
  1111. FIN INDICE ;
  1112.  
  1113. * Chargement Thermique : FLUX pour la CONVECTION et RAYO
  1114. EVO1 = EVOL 'MANU' (PROG 0. 1.D10) (PROG 1. 1.) ;
  1115. CHTCONV = MANU 'CHPO' LEXTT 1 'T' T_CONV ;
  1116. CHACONV= CHAR 'TECO' CHTCONV EVO1 ;
  1117.  
  1118. ************************************************************************
  1119. * PASAPAS *
  1120. ************************************************************************
  1121.  
  1122. * Assemblage des MODELES, CARACTERISTIQUES, BLOCAGES, CHARGEMENTS
  1123. MODMECA0 = SOUDAGE.'MODELE' .'PIECE' .'MECANIQUE' .'TOTAL' ET
  1124. SOUDAGE.'MODELE' .'APPORT'.'MECANIQUE'.'DEGRADE'.'TOTAL' ;
  1125.  
  1126. MATMECA0 = SOUDAGE.'MATERIAUX'.'PIECE' .'MECANIQUE' .'TOTAL' ET
  1127. SOUDAGE.'MATERIAUX'.'APPORT'.'MECANIQUE'.'DEGRADE'.'TOTAL' ET
  1128. SOUDAGE.'MATERIAUX'.'APPORT'.'MECANIQUE'.'NOMINAL'.'TOTAL' ;
  1129. MODTHER0 = SOUDAGE.'MODELE' .'PIECE' .'THERMIQUE' .'TOTAL' ;
  1130. MATTHER0 = SOUDAGE.'MATERIAUX'.'PIECE' .'THERMIQUE' .'TOTAL' ET
  1131. SOUDAGE.'MATERIAUX'.'APPORT' .'THERMIQUE' .'TOTAL';
  1132.  
  1133.  
  1134. * Ajout de la CONVECTION
  1135. MODTHER = MODTHER0 ET MOCONV ;
  1136. MATTHER = MATTHER0 ET MACONV ;
  1137. MATTOT = MATMECA0 ET MATTHER ;
  1138.  
  1139. * BLOCAGES PERMANENTS
  1140. BLOMECA0 = SOUDAGE.'BLOCAGES'.'PERMANENT'.'MECANIQUE';
  1141. BLOTOT = BLOMECA0 ;
  1142.  
  1143. I = 1;
  1144. * Chargement Thermique de la PASSE 1
  1145. CHARTOT = SOUDAGE.'CHARGEMENT'.'THERMIQUE'. 1 ;
  1146. * On ajoute le MODELE et le MATERIAUX THERMIQUE de l'APPORT
  1147. MODTHER = MODTHER ET SOUDAGE.'MODELE' .'APPORT'.'THERMIQUE'. 1;
  1148. MODTOT = MODMECA0 ET MODTHER ;
  1149.  
  1150. * Initialisations des CHAMPS
  1151. *Les CHPOINTS
  1152. MAILTHER= EXTR MODTHER 'MAILLAGE' ;
  1153. MAILMECA= EXTR MODMECA0 'MAILLAGE';
  1154. CHPTINI = MANU 'CHPO' MAILTHER 1 'T' T_INIT 'NATU' 'DIFFUS' ;
  1155. DEPLINI = MANU 'CHPO' MAILMECA 3
  1156. 'UX' 0. 'UY' 0. 'UZ' 0. 'NATU' 'DIFFUS';
  1157. REACINI = VIDE 'CHPOINT';
  1158.  
  1159. *Les MCHAML
  1160. CONTINI = ZERO MODMECA0 'CONTRAIN' ;
  1161. VINTINI = ZERO MODMECA0 'VARINTER' ;
  1162. DEININI = ZERO MODMECA0 'DEFINELA' ;
  1163.  
  1164. *Definition de TEMPERATURE_REFERENCE et TALPHA_REFERENCE
  1165. TREF = MANU 'CHML' MODMECA0 'T' T_INIT 'TYPE' 'TEMPERATURES' ;
  1166. MAILACT = VIDE 'MAILLAGE' ;
  1167. MAILFON = VIDE 'MAILLAGE' ;
  1168.  
  1169. * Declaration de la TABLE avant PASAPAS
  1170. TPASAP ='TABL' ;
  1171. TPASAP.'MODELE' = MODTOT ;
  1172. TPASAP.'CARACTERISTIQUES' = MATTOT ;
  1173. TPASAP.'BLOCAGES_MECANIQUES' = BLOTOT ;
  1174. TPASAP.'CHARGEMENT' = CHARTOT ;
  1175. TPASAP.'TEMPS_CALCULES' = ltcal ;
  1176. *TPASAP.'TEMPS_SAUVES' = ;
  1177. TPASAP.'TEMPS' ='TABL' ;
  1178. TPASAP.'TEMPERATURES' ='TABL' ;
  1179. TPASAP.'DEPLACEMENTS' ='TABL' ;
  1180. TPASAP.'CONTRAINTES' ='TABL' ;
  1181. TPASAP.'REACTIONS' ='TABL' ;
  1182. TPASAP.'VARIABLES_INTERNES' ='TABL' ;
  1183. TPASAP.'DEFORMATIONS_INELASTIQUES' ='TABL' ;
  1184. TPASAP.'MES_MODEL' ='TABL' ;
  1185. TPASAP.'MAILLAGE_ACTIF' ='TABL' ;
  1186. TPASAP.'MAILLAGE_FONDU' ='TABL' ;
  1187. TPASAP.'MES_SAUVEGARDES' ='TABL' ;
  1188. TPASAP.'MES_DATA' ='TABL' ;
  1189. TPASAP.'MES_DATA'.'TREF' ='TABL' ;
  1190. TPASAP.'MES_DATA'.'TAREF' ='TABL' ;
  1191. TPASAP.'MES_DATA'.'MA' ='TABL' ;
  1192. TPASAP.'TEMPS' . 0 = 0.D0 ;
  1193. TPASAP.'TEMPERATURES' . 0 = CHPTINI ;
  1194. TPASAP.'DEPLACEMENTS' . 0 = DEPLINI ;
  1195. TPASAP.'CONTRAINTES' . 0 = CONTINI ;
  1196. TPASAP.'REACTIONS' . 0 = REACINI ;
  1197. TPASAP.'VARIABLES_INTERNES' . 0 = VINTINI ;
  1198. TPASAP.'DEFORMATIONS_INELASTIQUES' . 0 = DEININI ;
  1199. TPASAP.'MES_MODEL' . 0 = MODTOT ;
  1200. TPASAP.'MAILLAGE_ACTIF' . 0 = MAILACT ;
  1201. TPASAP.'MAILLAGE_FONDU' . 0 = MAILFON ;
  1202. TPASAP.'MES_SAUVEGARDES'.'DEFIN' = VRAI ;
  1203. TPASAP.'MES_SAUVEGARDES'.'DEFTO' = VRAI ;
  1204. TPASAP . 'PROCEDURE_PERSO1' = VRAI ;
  1205. TPASAP . 'PROCEDURE_PERSO2' = VRAI ;
  1206. TPASAP . 'PROCEDURE_CHARTHER' = VRAI ;
  1207. TPASAP . 'CELSIUS' = VRAI ;
  1208. TPASAP . 'PAS_AJUSTE' = FAUX ;
  1209. TPASAP . 'PRECISION' = 1.e-3 ;
  1210. TPASAP . 'PROCESSEURS' = 'MOT' 'MONOPROCESSEUR' ;
  1211. TPASAP . 'GRANDS_DEPLACEMENTS' = VRAI ;
  1212. TPASAP . 'LAGRANGIEN' = 'MOT' 'REACTUALISE' ;
  1213. TPASAP . 'PREDICTEUR' = 'MOT' 'HPP' ;
  1214.  
  1215. * Boucle sur toutes les PASSES (Reprise pour PASAPAS)
  1216. REPE INDICE N_PASSE ;
  1217. INDI0 = &INDICE ;
  1218. PASAPAS TPASAP ;
  1219. MENA 'OBLI';
  1220.  
  1221. SI (INDI0 '<' N_PASSE) ;
  1222. * Incrementation du compteur de PASSES
  1223. I=&INDICE + 1 ;
  1224.  
  1225. * On ajoute le MODELE et le MATERIAUX THERMIQUE de l'APPORT
  1226. NB_PAS = DIME (TPASAP.'TEMPS');
  1227. MODTHER = MODTHER ET SOUDAGE.'MODELE' .'APPORT'.'THERMIQUE'. I;
  1228. MAILTHER = EXTR MODTHER 'MAILLAGE' ;
  1229. MODMECA0 = EXTR (TPASAP.'MES_MODEL'.(NB_PAS-1)) 'FORM' 'MECANIQUE';
  1230. MODTOT = MODMECA0 ET MODTHER ;
  1231.  
  1232. * Chargement Thermique de la PASSE en QUESTION
  1233. CHARTOT = SOUDAGE.'CHARGEMENT'.'THERMIQUE'. I ;
  1234.  
  1235. * Partie nouvelle dans la THERMIQUE
  1236. MAIPASS = EXTR SOUDAGE.'MODELE'.'APPORT'.'THERMIQUE'.I 'MAIL' ;
  1237. MAILSANS = DIFF MAILTHER MAIPASS ;
  1238. MAILCONI = CHAN 'POI1' (ENVE MAILSANS) ;
  1239. MAILCONP = CHAN 'POI1' (ENVE MAIPASS ) ;
  1240. MAILINTE = INTE MAILCONI MAILCONP ;
  1241. MAILREST = DIFF (CHAN 'POI1' MAIPASS ) MAILINTE ;
  1242. CHPTORI = TPASAP.'TEMPERATURES'.(NB_PAS-1) ;
  1243. CHPCONT = REDU CHPTORI MAILINTE ;
  1244. CHPTNEW = MANU 'CHPO' MAILREST 1 'T' (MAXI CHPCONT) 'NATU''DIFFUS';
  1245. CHPTINI = CHPTORI 'ET' CHPTNEW ;
  1246.  
  1247. * Liste des Temps Calcules (Recuperation dans la TABLE SOUDAGE)
  1248. SI (EGA (DIME SOUDAGE. 'TEMPS_CALCULES') 1);
  1249. list1 = SOUDAGE. 'TEMPS_CALCULES'. 1 ;
  1250. SINO;
  1251. list1 = SOUDAGE. 'TEMPS_CALCULES'. I ;
  1252. FINS;
  1253.  
  1254. * On fait les modifications dans la table
  1255. TPASAP.'MODELE' = MODTOT ;
  1256. TPASAP.'CHARGEMENT' = CHARTOT ;
  1257. TPASAP.'TEMPS_CALCULES' = list1 ;
  1258.  
  1259. CHPTINI = MANU 'CHPO' MAILTHER 1 'T' T_INIT 'NATU' 'DIFFUS' ;
  1260. TPASAP.'TEMPERATURES' . (NB_PAS-1) = CHPTINI ;
  1261.  
  1262. * Il faut redefinir TEMPERATURE_REFERENCE & TALPHA_REFERENCE en reprise
  1263. TPASAP.'TEMPERATURE_REFERENCE' =
  1264. TPASAP.'WTABLE'.'TEMPERATURE_REFERENCE';
  1265. TPASAP.'MES_DATA'.'TREF'.NB_PAS = TPASAP.'TEMPERATURE_REFERENCE' ;
  1266. TPASAP.'TALPHA_REFERENCE' =
  1267. TPASAP.'WTABLE'.'TALPHA_REFERENCE';
  1268. TPASAP.'MES_DATA'.'TAREF'.NB_PAS = TPASAP.'TALPHA_REFERENCE' ;
  1269.  
  1270. TPASAP.'MES_MODEL' . NB_PAS = MODTOT ;
  1271. TPASAP.'MAILLAGE_ACTIF'. NB_PAS = TPASAP.'MAILLAGE_ACTIF'.(NB_PAS-1);
  1272. TPASAP.'MES_DATA'.'MA'.NB_PAS = TPASAP.'MAILLAGE_ACTIF' ;
  1273. FINSI ;
  1274. FIN INDICE;
  1275.  
  1276. SI GRAPH ;
  1277. N = '-' (DIME TPASAP.'TEMPS') 1 ;
  1278. MODT = TPASAP.'MES_MODEL'.N ;
  1279. MODM = EXTR MODT 'FORMULATION' 'MECANIQUE' ;
  1280. MAILM = EXTR MODM 'MAILLAGE' ;
  1281. MAILF = TPASAP.'MAILLAGE_FONDU'. N ;
  1282. CONT0 = TPASAP.'CONTRAINTES'.N ;
  1283. CHT0 = TPASAP.'TEMPERATURES'. 10 ;
  1284. TRAC CONT0 MODM ;
  1285. TRAC CHT0 MAILM ;
  1286. TRAC MAILF ;
  1287. FINS ;
  1288.  
  1289. FIN ;
  1290.  
  1291.  
  1292.  
  1293.  
  1294.  
  1295.  
  1296.  
  1297.  
  1298.  
  1299.  
  1300.  
  1301.  
  1302.  
  1303.  
  1304.  
  1305.  
  1306.  

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