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 = 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 = 200. ;
  416. ltcal = PROG pas1 'PAS' pas1 wdur 'PAS' pas2 ('+' wdur 60.) 'PAS' pas3 tfin ;
  417. SOUDAGE.'TEMPS_CALCULES'. I = tfin '*' (I-1) '+' ltcal ;
  418. 'FIN' INDICE ;
  419.  
  420. ************************************************************************
  421. * MAILLAGES *
  422. ************************************************************************
  423. *Tables pour couleur passes
  424. TABCOUL1 = TABLE;
  425. TABCOUL2 = TABLE;
  426. TABCOUL1.1 = ROSE ;
  427. TABCOUL1.2 = VERT ;
  428. TABCOUL1.3 = JAUN ;
  429. TABCOUL1.4 = OCEA ;
  430. TABCOUL1.5 = ROSE ;
  431. TABCOUL1.6 = TURQ ;
  432. TABCOUL1.7 = ROUG ;
  433. TABCOUL1.8 = BLEU ;
  434. TABCOUL1.9 = TURQ ;
  435. TABCOUL1.10 = AZUR ;
  436. TABCOUL1.11 = ORAN ;
  437. TABCOUL1.12 = ROUG ;
  438. ***************************************
  439.  
  440. d0 = 0.0025 ;
  441. P1 = 0. 0. 0. ;
  442. P2 = 0. ('*' l0 -1.) 0. ;
  443. P3 = 0. ('*' l0 -1.) l0 ;
  444. P4 = 0. 0. l0 ;
  445.  
  446. L12 = DROI P1 P2 'DINI' d0 'DFIN' d0 ;
  447. L23 = DROI P2 P3 'DINI' d0 'DFIN' d0 ;
  448. L34 = DROI P3 P4 'DINI' d0 'DFIN' d0 ;
  449. L41 = DROI P4 P1 'DINI' d0 'DFIN' d0 ;
  450.  
  451. S1 = DALL L12 L23 L34 L41 ;
  452. MAILP = VIDE 'MAILLAGE' ;
  453.  
  454. TMAIL = 'TABLE' ;
  455. *PASSES
  456. K = 1 ;
  457. REPE BLOCN N ;
  458. I = '-' &BLOCN 1 ;
  459. REPE BLOCP P ;
  460. J = '-' &BLOCP 1 ;
  461.  
  462. NPASSE = CHAI 'PASSE_' K ;
  463. ****COUL
  464. 'REPETER' BCOUL ('*' N P) ;
  465. H = &BCOUL;
  466. HH = '+' (@MOD H 12) 1 ;
  467. TABCOUL2.H = TABCOUL1.HH ;
  468. 'FIN' BCOUL ;
  469. ****
  470. JJ = '*' J -1. ;
  471. SPASSE =
  472. (S1 'PLUS' (0. ('*' l0 JJ) ('*' l0 I))) COUL TABCOUL2.K ;
  473. TMAIL.NPASSE = SPASSE VOLU 'DINI' d0 'DFIN' d0 'TRAN' vtran ;
  474. MAILP = MAILP ET TMAIL.NPASSE ;
  475. K = '+' K 1 ;
  476. FIN BLOCP ;
  477. FIN BLOCN;
  478.  
  479. *PIECE
  480. MPIECE1 = VIDE 'MAILLAGE' ;
  481. MPIECE1 = MPIECE1 ET (S1 'PLUS' (0. ('*' l0 2.) ('*' l0 -1.)))
  482. COUL 'ROUG' ;
  483. MPIECE1 = MPIECE1 ET (S1 'PLUS' (0. ('*' l0 1.) ('*' l0 -1.)))
  484. COUL 'ROUG' ;
  485. MPIECE1 = MPIECE1 ET (S1 'PLUS' (0. ('*' l0 2.) ('*' l0 -2.)))
  486. COUL 'ROUG' ;
  487. MPIECE1 = MPIECE1 ET (S1 'PLUS' (0. ('*' l0 1.) ('*' l0 -2.)))
  488. COUL 'ROUG' ;
  489.  
  490. vec0 = 0. ('*' l0 (('*' (P + 1) -1.))) ('*' l0 -1.);
  491. MPIECE1 = MPIECE1 ET (S1 'PLUS' vec0) COUL 'ROUG' ;
  492. vec0 = 0. ('*' l0 (('*' P -1.))) ('*' l0 -1.) ;
  493. MPIECE1 = MPIECE1 ET (S1 'PLUS' vec0) COUL 'ROUG' ;
  494. vec0 = 0. ('*' l0 (('*' (P + 1) -1.))) ('*' l0 -2.) ;
  495. MPIECE1 = MPIECE1 ET (S1 'PLUS' vec0) COUL 'ROUG' ;
  496. vec0 = 0. ('*' l0 (('*' P -1.))) ('*' l0 -2.) ;
  497. MPIECE1 = MPIECE1 ET (S1 'PLUS' vec0) COUL 'ROUG' ;
  498.  
  499.  
  500. REPE BLOCN N ;
  501. I = '-' &BLOCN 1 ;
  502. vec0 = 0. l0 ('*' l0 I) ;
  503. MPIECE1 = MPIECE1 ET (S1 'PLUS' vec0) COUL 'ROUG' ;
  504. vec0 = 0. ('*' l0 2) ('*' l0 I) ;
  505. MPIECE1 = MPIECE1 ET (S1 'PLUS' vec0) COUL 'ROUG' ;
  506.  
  507. vec0 = 0. ('*' l0 ('*' (P + 1) -1.)) ('*' l0 I) ;
  508. MPIECE1 = MPIECE1 ET (S1 'PLUS' vec0) COUL 'ROUG' ;
  509. vec0 = 0. ('*' l0 ('*' P -1.)) ('*' l0 I) ;
  510. MPIECE1 = MPIECE1 ET (S1 'PLUS' vec0) COUL 'ROUG' ;
  511. FIN BLOCN;
  512.  
  513. REPE BLOCP P ;
  514. J = '-' &BLOCP 1 ;
  515. vec0 = 0. ('*' ('*' l0 J) -1.) ('*' l0 -1) ;
  516. MPIECE1 = MPIECE1 ET (S1 'PLUS' vec0) COUL 'ROUG' ;
  517. vec0 = 0. ('*' ('*' l0 J) -1.) ('*' l0 -2) ;
  518. MPIECE1 = MPIECE1 ET (S1 'PLUS' vec0) COUL 'ROUG' ;
  519. FIN BLOCP ;
  520. MPIECE1 = MPIECE1 VOLU 'DINI' d0 'DFIN' d0 'TRAN' vtran ;
  521. MAIL1 = MAILP ET MPIECE1 ;
  522.  
  523. ELIM MAIL1 1.e-6 ;
  524. AXES = @repere (0. 0. 0.) ('PROG' 0.05 0.05 0.05) 'BLAN' ;
  525.  
  526. SI GRAPH ;
  527. MESS (CHAI 'Nombre elements : ' (NBEL MAILP) );
  528. TRAC FACE CACHE (MAIL1 ET MPIECE1 ET AXES) ;
  529. FINS ;
  530.  
  531. * Creation de la TABLE des MAILLAGES
  532. SOUDAGE. 'MAILLAGE' = 'TABL' ;
  533. SOUDAGE. 'MAILLAGE'. 'APPORT' = 'TABL' ;
  534. SOUDAGE. 'MAILLAGE'. 'PIECE' = 'TABL' ;
  535.  
  536. * Creation de la TABLE des MAILLAGES
  537. mail0 = ENVE MAIL1 ;
  538. SOUDAGE.'MAILLAGE'.'PIECE'. 1 = MPIECE1 ;
  539. MAILT = SOUDAGE.'MAILLAGE'.'PIECE'. 1 ;
  540.  
  541. * PASSES MECA
  542. 'REPETER' INDICE N_PASSE ;
  543. I = &INDICE ;
  544. NOMP = CHAI 'PASSE_' I ;
  545. PASSTEMP = TMAIL.NOMP ;
  546. SOUDAGE.'MAILLAGE'.'APPORT'. I = PASSTEMP ;
  547. MAILT = MAILT 'ET' (SOUDAGE.'MAILLAGE'.'APPORT'. I) ;
  548. 'FIN' INDICE ;
  549.  
  550. SOUDAGE.'MAILLAGE'.'MTOT' = MAILT ;
  551.  
  552. * Verification que toutes les parties ont ete renseignees
  553. SI ((DIME SOUDAGE. 'MAILLAGE' . 'PIECE') NEG N_PIECE );
  554. MESS ' Toutes les PIECES n ont pas de MAILLAGE';
  555. ERRE 5;
  556. FINSI;
  557.  
  558. SI ((DIME SOUDAGE. 'MAILLAGE' . 'APPORT') < N_PASSE );
  559. MESS ' Tous les APPORTS n ont pas de MAILLAGE';
  560. ERRE 5;
  561. FINSI;
  562.  
  563.  
  564. SI ((DIME SOUDAGE. 'CONSTITUANTS'. 'PIECE') NEG N_PIECE );
  565. MESS ' Toutes les PIECES n ont pas de CONSTITUANT';
  566. ERRE 5;
  567. FINSI;
  568.  
  569. SI ((DIME SOUDAGE. 'CONSTITUANTS'. 'APPORT') < N_PASSE );
  570. MESS ' Tous les APPORTS n ont pas de CONSTITUANT';
  571. ERRE 5;
  572. FINSI;
  573.  
  574. SOUDAGE.'CHARGEMENT'.'XYZ' = 'TABL' ;
  575. ****Position soudage
  576. K = 1 ;
  577. REPE BLOCN N ;
  578. I = &BLOCN ;
  579. REPE BLOCP P ;
  580. J = &BLOCP ;
  581. yloc = -0.5 * l0 * (2 * J - 1) ;
  582. zloc = '*' l0 I ;
  583.  
  584. posloc = ('/' l0 2.) yloc zloc ;
  585. SOUDAGE.'CHARGEMENT'.'XYZ'. K = posloc ;
  586. K = '+' K 1 ;
  587. FIN BLOCP ;
  588. FIN BLOCN;
  589.  
  590. ************************************************************************
  591. * MODELES *
  592. ************************************************************************
  593. SOUDAGE.'MODELE' = TABLE;
  594. SOUDAGE.'MODELE'.'PIECE' = TABLE;
  595. SOUDAGE.'MODELE'.'PIECE' .'MECANIQUE' = TABLE;
  596. SOUDAGE.'MODELE'.'PIECE' .'THERMIQUE' = TABLE;
  597.  
  598. SOUDAGE.'MODELE'.'APPORT' = TABLE;
  599. SOUDAGE.'MODELE'.'APPORT'.'MECANIQUE' = TABLE;
  600. SOUDAGE.'MODELE'.'APPORT'.'MECANIQUE'.'DEGRADE' = TABLE;
  601. SOUDAGE.'MODELE'.'APPORT'.'MECANIQUE'.'NOMINAL' = TABLE;
  602. SOUDAGE.'MODELE'.'APPORT'.'THERMIQUE' = TABLE;
  603.  
  604. SOUDAGE.'MODELE'.'THERMIQUE' = TABLE;
  605.  
  606. * PIECES a souder
  607. SOUDAGE.'MODELE'.'PIECE'.'MECANIQUE'.'TOTAL' = VIDE 'MMODEL' ;
  608. SOUDAGE.'MODELE'.'PIECE'.'THERMIQUE'.'TOTAL' = VIDE 'MMODEL' ;
  609. REPE INDICE (DIME (SOUDAGE. 'MAILLAGE'. 'PIECE')) ;
  610. I=&INDICE ;
  611. MAILMECA = SOUDAGE.'MAILLAGE'.'PIECE'. I ;
  612. MAILTHER = MAILMECA ;
  613.  
  614. * MODELE MECANIQUE ET THERMIQUE
  615. CONSTI = CHAI 'PE' I ;
  616.  
  617. MOMEC = MODE MAILMECA 'MECANIQUE' 'ELASTIQUE' 'ISOTROPE'
  618. 'PLASTIQUE' 'ISOTROPE'
  619. * 'TRI6' 'Q8RI'
  620. * 'TRI3' 'Q4RI'
  621. 'CONS' CONSTI ;
  622.  
  623. MOTHE = MODE MAILTHER 'THERMIQUE' 'CONDUCTION'
  624. 'CONS' 'THER' ;
  625.  
  626. SOUDAGE.'MODELE'.'PIECE'.'MECANIQUE'. I = MOMEC ;
  627. SOUDAGE.'MODELE'.'PIECE'.'THERMIQUE'. I = MOTHE ;
  628.  
  629. SOUDAGE.'MODELE'.'PIECE'.'MECANIQUE'.'TOTAL' =
  630. SOUDAGE.'MODELE'.'PIECE'.'MECANIQUE'.'TOTAL' ET MOMEC ;
  631. SOUDAGE.'MODELE'.'PIECE'.'THERMIQUE'.'TOTAL' =
  632. SOUDAGE.'MODELE'.'PIECE'.'THERMIQUE'.'TOTAL' ET MOTHE ;
  633. FIN INDICE;
  634.  
  635.  
  636.  
  637. * APPORTS durant les differentes passes
  638. SOUDAGE.'MODELE'.'APPORT'.'MECANIQUE'.'DEGRADE'.'TOTAL'= VIDE 'MMODEL';
  639. SOUDAGE.'MODELE'.'APPORT'.'MECANIQUE'.'NOMINAL'.'TOTAL'= VIDE 'MMODEL';
  640. SOUDAGE.'MODELE'.'APPORT'.'THERMIQUE'.'TOTAL' = VIDE 'MMODEL';
  641. REPE INDICE (DIME (SOUDAGE. 'MAILLAGE'. 'APPORT')) ;
  642. I=&INDICE ;
  643. MAILMECA = SOUDAGE.'MAILLAGE'.'APPORT'. I ;
  644. MAILTHER = MAILMECA ;
  645.  
  646. * MODELE MECANIQUE ET THERMIQUE
  647. CONSTI = CHAI 'PD' ;
  648. MOMECD = MODE MAILMECA 'MECANIQUE' 'ELASTIQUE' 'ISOTROPE'
  649. * 'TRI6' 'Q8RI'
  650. * 'TRI3' 'Q4RI'
  651. 'CONS' CONSTI ;
  652.  
  653. CONSTI = CHAI 'PN' ;
  654. MOMECN = MODE MAILMECA 'MECANIQUE' 'ELASTIQUE' 'ISOTROPE'
  655. 'PLASTIQUE' 'ISOTROPE'
  656. * 'TRI6' 'Q8RI'
  657. * 'TRI3' 'Q4RI'
  658. 'CONS' CONSTI ;
  659.  
  660. MOTHE = MODE MAILTHER 'THERMIQUE' 'CONDUCTION' 'CONS' 'THER' ;
  661.  
  662. SOUDAGE.'MODELE'.'APPORT'.'MECANIQUE'.'DEGRADE'. I = MOMECD ;
  663. SOUDAGE.'MODELE'.'APPORT'.'MECANIQUE'.'NOMINAL'. I = MOMECN ;
  664. SOUDAGE.'MODELE'.'APPORT'.'THERMIQUE'. I = MOTHE ;
  665.  
  666. SOUDAGE.'MODELE'.'APPORT'.'MECANIQUE'.'DEGRADE'.'TOTAL' =
  667. SOUDAGE.'MODELE'.'APPORT'.'MECANIQUE'.'DEGRADE'.'TOTAL' ET MOMECD ;
  668. SOUDAGE.'MODELE'.'APPORT'.'MECANIQUE'.'NOMINAL'.'TOTAL' =
  669. SOUDAGE.'MODELE'.'APPORT'.'MECANIQUE'.'NOMINAL'.'TOTAL' ET MOMECN ;
  670. SOUDAGE.'MODELE'.'APPORT'.'THERMIQUE'.'TOTAL' =
  671. SOUDAGE.'MODELE'.'APPORT'.'THERMIQUE'.'TOTAL' ET MOTHE ;
  672. FIN INDICE;
  673.  
  674.  
  675. * CONVECTION : Construction Automatique du CONTOUR demande
  676. LCONT1 = ENVE (EXTR SOUDAGE.'MODELE'.'PIECE'. 'THERMIQUE'.'TOTAL'
  677. 'MAILLAGE') ;
  678.  
  679. LCONT2 = ENVE (EXTR SOUDAGE.'MODELE'.'APPORT'.'THERMIQUE'.'TOTAL'
  680. 'MAILLAGE') ;
  681. INTER1 = INTE LCONT1 LCONT2 ;
  682. LEXTT = DIFF LCONT1 INTER1 ;
  683. SI GRAPH ;
  684. TRAC LEXTT ;
  685. FINS;
  686. MOCONV = MODE LEXTT 'THERMIQUE' 'CONVECTION' 'CONS' 'CONVECTION';
  687. SOUDAGE.'MODELE'.'APPORT'.'THERMIQUE'.'TOTAL' =
  688. SOUDAGE.'MODELE'.'APPORT'.'THERMIQUE'.'TOTAL' ET MOCONV ;
  689.  
  690. ************************************************************************
  691. * MATERIAUX *
  692. ************************************************************************
  693. *Procédure pour calculer YOUN à partir d'une évolution
  694. 'DEBP' CALYO EV1*EVOLUTION;
  695. X1 = EXTR EV1 'ABSC' ;
  696. Y1 = EXTR EV1 'ORDO' ;
  697. YOU1 = '/' (EXTR Y1 2) (EXTR X1 2) ;
  698. 'FINP' YOU1 ;
  699. ******************************************
  700.  
  701. SOUDAGE.'MATERIAUX' = TABLE;
  702. SOUDAGE.'MATERIAUX'.'PIECE' = TABLE;
  703. SOUDAGE.'MATERIAUX'.'PIECE' .'MECANIQUE' = TABLE;
  704. SOUDAGE.'MATERIAUX'.'PIECE' .'THERMIQUE' = TABLE;
  705.  
  706. SOUDAGE.'MATERIAUX'.'APPORT' = TABLE;
  707. SOUDAGE.'MATERIAUX'.'APPORT'.'MECANIQUE' = TABLE;
  708. SOUDAGE.'MATERIAUX'.'APPORT'.'MECANIQUE'.'DEGRADE' = TABLE;
  709. SOUDAGE.'MATERIAUX'.'APPORT'.'MECANIQUE'.'NOMINAL' = TABLE;
  710. SOUDAGE.'MATERIAUX'.'APPORT'.'THERMIQUE' = TABLE;
  711.  
  712. SOUDAGE.'MATERIAUX'.'THERMIQUE' = TABLE;
  713.  
  714. * Lecture des MATERIAUX de la bibliotheque
  715. * BIBLIOTHEQUE disponible : '316L' '16MND5'
  716.  
  717. * Initialisation du CONSTITUANT precedent
  718. NOMCONSP = 'NONDEFIN';
  719.  
  720. * PIECES a souder
  721. SOUDAGE.'MATERIAUX'.'PIECE'.'MECANIQUE'.'TOTAL' = VIDE 'MCHAML';
  722. SOUDAGE.'MATERIAUX'.'PIECE'.'THERMIQUE'.'TOTAL' = VIDE 'MCHAML';
  723. REPE INDICE (DIME (SOUDAGE. 'MAILLAGE'. 'PIECE'));
  724. I=&INDICE;
  725. NOMCONS = SOUDAGE. 'CONSTITUANTS'. 'PIECE' . I ;
  726.  
  727. * Chargement des proprietes materiaux que si le constituant change
  728. NOMCONSP = NOMCONS;
  729.  
  730. * Lecture des proprietes dans la bibliotheque
  731. * NOMDATA = CHAI 'Materiaux/' NOMCONS '/' NOMCONS'_E.csv' ;
  732. * TTMP = LIRE 'CSV' NOMDATA ;
  733. TTMP = TABL ;
  734. TTMP. 1 = PROG 20. 200. 300. 400. 500. 600.
  735. 700. 800. 900. 1000. 1500. 3000. ;
  736. TTMP. 2 = PROG 197e9 184e9 176e9 168e9
  737. 160e9 151e9 142e9 130e9 108e9 81e9 1e9 1e9 ;
  738. EVYOUN = EVOL MANU 'T' (TTMP. 1) 'YOUN' (TTMP. 2) ;
  739. MAXIT = MAXI (TTMP. 1) ;
  740.  
  741.  
  742. * NOMDATA = CHAI 'Materiaux/' NOMCONS '/' NOMCONS'_Nu.csv' ;
  743. * TTMP = LIRE 'CSV' NOMDATA ;
  744. TTMP = TABL ;
  745. TTMP. 1 = PROG 25 100 200 400 500 600 700 800
  746. 900 1000 1100 1200 1300 1390 1420 1450 3000 ;
  747. TTMP. 2 = PROG 0.296 0.298 0.304 0.315 0.32
  748. 0.323 0.326 0.33 0.336 0.339 0.346 0.349 0.353 0.353 0.353 0.353 0.353 ;
  749. DIMNU = DIME TTMP. 1 ;
  750. VALNU = TTMP. 2 ;
  751. EVNU = EVOL MANU 'T' (TTMP. 1) 'NU' (TTMP. 2) ;
  752.  
  753. * NOMDATA = CHAI 'Materiaux/' NOMCONS '/' NOMCONS'_Rho.csv' ;
  754. * TTMP = LIRE 'CSV' NOMDATA ;
  755. TTMP = TABL ;
  756. TTMP. 1 = PROG 20 200 400 600 800 1000 1200 1400 1500 3000 ;
  757. TTMP. 2 = PROG 8.0e3 7.93e3 7.84e3 7.75e3 7.65e3 7.55e3
  758. 7.45e3 7.35e3 7.30e3 7.30e3 ;
  759. EVRHO = EVOL MANU 'T' (TTMP. 1) 'RHO' (TTMP. 2) ;
  760.  
  761. * NOMDATA = CHAI 'Materiaux/' NOMCONS '/' NOMCONS'_Limite_Elas.csv' ;
  762. * TTMP = LIRE 'CSV' NOMDATA ;
  763. TTMP = TABL ;
  764. TTMP. 1 = PROG 20 200 300 400 500 600 700 800 900 1000 1500 3000 ;
  765. TTMP. 2 = PROG 287e6 198e6 172e6 157e6 152e6 145e6 136e6
  766. 127e6 115e6 79e6 5e6 1e6 ;
  767. EVSIGY = EVOL MANU 'T' (TTMP. 1) 'R0' (TTMP. 2) ;
  768.  
  769. * NOMDATA = CHAI 'Materiaux/' NOMCONS '/' NOMCONS'_Epsi_Th.csv' ;
  770. * TTMP = LIRE 'CSV' NOMDATA ;
  771. TTMP = TABL ;
  772. TTMP. 1 = PROG 0 100 200 300 400 500 600 700 800 900 1000 1100
  773. 1200 1420 1460 3000 ;
  774. TTMP. 2 = PROG -3.17e-4 0.0013 0.003 0.0048 0.0066 0.0086 0.0106
  775. 0.0126 0.0147 0.0168 0.019 0.0212 0.0235 0.029 0.0298 0.0298 ;
  776. EVDEFT = EVOL MANU 'T' (TTMP. 1) 'EPTH' (TTMP. 2) ;
  777. LALPHA = TTMP. 2 / (TTMP. 1 - TAREF) ;
  778. EVALPHA = EVOL MANU 'T' (TTMP. 1) 'ALPH' LALPHA ;
  779.  
  780. * NOMDATA = CHAI 'Materiaux/' NOMCONS '/' NOMCONS'_Ecrou_T.csv' ;
  781. * TTMP1 = LIRE 'CSV' NOMDATA ;
  782. TTMP1 = TABL ;
  783. TTMP1. 1 = PROG 20 200 300 400 500 600 700 800 900 1000 1500 3000 ;
  784. * NOMDATA = CHAI 'Materiaux/'NOMCONS'/'NOMCONS'_Ecrou_Cont_Def.csv ' ;
  785. * TTMP2 = LIRE 'CSV' NOMDATA ;
  786. TTMP2 = TABL ;
  787. TTMP2. 1 = PROG 0. 0.01 0.05 0.2 1. 2. ;
  788. TTMP2. 2 = PROG 0 28e6 132e6 274e6 913e6 1369e6 ;
  789. TTMP2. 3 = PROG 0 33e6 136e6 272e6 802e6 1203e6 ;
  790. TTMP2. 4 = PROG 0 29e6 135e6 279e6 728e6 1092e6 ;
  791. TTMP2. 5 = PROG 0 29e6 137e6 278e6 442e6 663e6 ;
  792. TTMP2. 6 = PROG 0 27e6 130e6 267e6 398e6 597e6 ;
  793. TTMP2. 7 = PROG 0 25e6 117e6 242e6 355e6 532e6 ;
  794. TTMP2. 8 = PROG 0 25e6 76e6 204e6 264e6 396e6 ;
  795. TTMP2. 9 = PROG 0 25e6 72e6 167e6 223e6 334e6 ;
  796. TTMP2. 10 = PROG 0 22e6 46e6 54e6 65e6 97e6 ;
  797. TTMP2. 11 = PROG 0 3e6 18e6 21e6 26e6 39e6 ;
  798. TTMP2. 12 = PROG 0 2e6 3e6 4e6 5e6 6e6 ;
  799. TTMP2. 13 = PROG 0 1e6 2e6 3e6 4e6 5e6 ;
  800.  
  801. EVTOT1 = VIDE 'EVOLUTION';
  802. EVTOT2 = VIDE 'EVOLUTION';
  803. LTEMPER = VIDE 'LISTREEL' ;
  804. REPE ITEMPER (DIME TTMP1. 1);
  805. J=&ITEMPER;
  806. TEMPER = EXTR (TTMP1 . 1) J;
  807. LTEMPER= LTEMPER ET TEMPER ;
  808.  
  809. * Interpolation du module de YOUNG et SIGY a la temperature TEMPER
  810. YOUNIPOL = IPOL TEMPER EVYOUN;
  811. SIGYIPOL = IPOL TEMPER EVSIGY;
  812.  
  813. * Calcul de EPSIY a partir de YOUNIPOL et SIGYIPOL
  814. EPSIY = SIGYIPOL / YOUNIPOL;
  815.  
  816. * Construction de la courbe de traction Complete pour Cast3M
  817. LESPI = (PROG 0.) ET ((TTMP2. 1) + EPSIY );
  818. LSIGM = (PROG 0.) ET ((TTMP2. (J+1)) + SIGYIPOL);
  819. EVTRAC= EVOL MANU 'EPS' LESPI 'CONT' LSIGM ;
  820. EVTOT1 = EVTOT1 ET EVTRAC;
  821.  
  822. LSIGM = LSIGM enle 1 ;
  823. LESPI = (LESPI enle 1) - (LSIGM / YOUNIPOL) born mini 0. ;
  824. EVECRO= EVOL VERT MANU 'EPS' LESPI 'ECRO' LSIGM ;
  825. EVTOT2 = EVTOT2 ET EVECRO;
  826.  
  827.  
  828. * Construction du NUAGE qui associe une EVOLUTION a une TEMPERATURE
  829. SI (J EGA 1);
  830. NUATRAC = NUAGE 'COMP' 'T ' TEMPER
  831. 'COMP' 'ECRO' EVECRO ;
  832. SINO;
  833. NUATRAC = NUATRAC ET (NUAGE 'COMP' 'T ' TEMPER
  834. 'COMP' 'ECRO' EVECRO ) ;
  835. FINS;
  836. FIN ITEMPER;
  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 (EVTOT1 et EVTOT2) TITR
  863. 'Courbes de traction et d ecrouissage (vert) a differentes temperatures';
  864.  
  865. DESS EVK TITR 'Conductivite Thermique';
  866. DESS EVCP TITR 'Chaleur Specifique';
  867. FINS;
  868.  
  869.  
  870. * MATERIAUX MECANIQUE ET THERMIQUE
  871. MOMEC = SOUDAGE.'MODELE'.'PIECE'.'MECANIQUE'. I ;
  872. MOTHE = SOUDAGE.'MODELE'.'PIECE'.'THERMIQUE'. I ;
  873.  
  874. MAMEC = MATE MOMEC 'YOUN' EVYOUN 'NU' EVNU 'RHO' EVRHO 'ALPH' EVALPHA 'TREF' T_INIT 'TALP' TAREF 'ECRO' NUATRAC ;
  875.  
  876. SOUDAGE.'MATERIAUX'.'PIECE'.'MECANIQUE'. I = MAMEC ;
  877.  
  878. MATHE = MATE MOTHE 'K' EVK 'RHO' EVRHO 'C' EVCP ;
  879. SOUDAGE.'MATERIAUX'.'PIECE'.'THERMIQUE'. I = MATHE ;
  880.  
  881. SOUDAGE.'MATERIAUX'.'PIECE'.'MECANIQUE'.'TOTAL' =
  882. SOUDAGE.'MATERIAUX'.'PIECE'.'MECANIQUE'.'TOTAL' ET MAMEC ;
  883. SOUDAGE.'MATERIAUX'.'PIECE'.'THERMIQUE'.'TOTAL' =
  884. SOUDAGE.'MATERIAUX'.'PIECE'.'THERMIQUE'.'TOTAL' ET MATHE ;
  885.  
  886. FIN INDICE;
  887.  
  888. MOMECT = SOUDAGE.'MODELE'.'PIECE'.'MECANIQUE'.'TOTAL';
  889.  
  890. ***********************************************************************
  891. * APPORTS durant les differentes passes
  892. SOUDAGE.'MATERIAUX'.'APPORT'.'MECANIQUE'.'DEGRADE'.'TOTAL'=
  893. VIDE 'MCHAML';
  894. SOUDAGE.'MATERIAUX'.'APPORT'.'MECANIQUE'.'NOMINAL'.'TOTAL'=
  895. VIDE 'MCHAML';
  896. SOUDAGE.'MATERIAUX'.'APPORT'.'THERMIQUE'.'TOTAL' =
  897. VIDE 'MCHAML';
  898. REPE INDICE (DIME (SOUDAGE. 'MAILLAGE'. 'APPORT'));
  899. I=&INDICE;
  900. NOMCONS = SOUDAGE. 'CONSTITUANTS'. 'APPORT' . I ;
  901. * Chargement des proprietes materiaux que si le constituant change
  902. NOMCONSP = NOMCONS;
  903.  
  904. * Lecture des proprietes dans la bibliotheque
  905. * NOMDATA = CHAI 'Materiaux/' NOMCONS '/' NOMCONS'_E.csv' ;
  906. * TTMP = LIRE 'CSV' NOMDATA ;
  907. TTMP = TABL ;
  908. TTMP. 1 = PROG 20. 200. 300. 400. 500. 600.
  909. 700. 800. 900. 1000. 1500. 3000. ;
  910. TTMP. 2 = PROG 197e9 184e9 176e9 168e9
  911. 160e9 151e9 142e9 130e9 108e9 81e9 1e9 1e9 ;
  912. EVYOUN = EVOL MANU 'T' (TTMP. 1) 'YOUN' (TTMP. 2) ;
  913. MAXIT = MAXI (TTMP. 1) ;
  914.  
  915.  
  916. * NOMDATA = CHAI 'Materiaux/' NOMCONS '/' NOMCONS'_Nu.csv' ;
  917. * TTMP = LIRE 'CSV' NOMDATA ;
  918. TTMP = TABL ;
  919. TTMP. 1 = PROG 25 100 200 400 500 600 700 800
  920. 900 1000 1100 1200 1300 1390 1420 1450 3000 ;
  921. TTMP. 2 = PROG 0.296 0.298 0.304 0.315 0.32
  922. 0.323 0.326 0.33 0.336 0.339 0.346 0.349 0.353 0.353 0.353 0.353 0.353 ;
  923. DIMNU = DIME TTMP. 1 ;
  924. VALNU = TTMP. 2 ;
  925. EVNU = EVOL MANU 'T' (TTMP. 1) 'NU' (TTMP. 2) ;
  926.  
  927. * NOMDATA = CHAI 'Materiaux/' NOMCONS '/' NOMCONS'_Rho.csv' ;
  928. * TTMP = LIRE 'CSV' NOMDATA ;
  929. TTMP = TABL ;
  930. TTMP. 1 = PROG 20 200 400 600 800 1000 1200 1400 1500 3000 ;
  931. TTMP. 2 = PROG 8.0e3 7.93e3 7.84e3 7.75e3 7.65e3 7.55e3
  932. 7.45e3 7.35e3 7.30e3 7.30e3 ;
  933. EVRHO = EVOL MANU 'T' (TTMP. 1) 'RHO' (TTMP. 2) ;
  934.  
  935. * NOMDATA = CHAI 'Materiaux/' NOMCONS '/' NOMCONS'_Limite_Elas.csv' ;
  936. * TTMP = LIRE 'CSV' NOMDATA ;
  937. TTMP = TABL ;
  938. TTMP. 1 = PROG 20 200 300 400 500 600 700 800 900 1000 1500 3000 ;
  939. TTMP. 2 = PROG 287e6 198e6 172e6 157e6 152e6 145e6 136e6
  940. 127e6 115e6 79e6 5e6 1e6 ;
  941. EVSIGY = EVOL MANU 'T' (TTMP. 1) 'R0' (TTMP. 2) ;
  942.  
  943. * NOMDATA = CHAI 'Materiaux/' NOMCONS '/' NOMCONS'_Epsi_Th.csv' ;
  944. * TTMP = LIRE 'CSV' NOMDATA ;
  945. TTMP = TABL ;
  946. TTMP. 1 = PROG 0 100 200 300 400 500 600 700 800 900 1000 1100
  947. 1200 1420 1460 3000 ;
  948. TTMP. 2 = PROG -3.17e-4 0.0013 0.003 0.0048 0.0066 0.0086 0.0106
  949. 0.0126 0.0147 0.0168 0.019 0.0212 0.0235 0.029 0.0298 0.0298 ;
  950. EVDEFT = EVOL MANU 'T' (TTMP. 1) 'EPTH' (TTMP. 2) ;
  951. LALPHA = TTMP. 2 / (TTMP. 1 - TAREF) ;
  952. EVALPHAN = EVOL MANU 'T' (TTMP. 1) 'ALPH' LALPHA ;
  953.  
  954. * NOMDATA = CHAI 'Materiaux/' NOMCONS '/' NOMCONS'_Ecrou_T.csv' ;
  955. * TTMP1 = LIRE 'CSV' NOMDATA ;
  956. TTMP1 = TABL ;
  957. TTMP1. 1 = PROG 20 200 300 400 500 600 700 800 900 1000 1500 3000 ;
  958. * NOMDATA = CHAI 'Materiaux/'NOMCONS'/'NOMCONS'_Ecrou_Cont_Def.csv ' ;
  959. * TTMP2 = LIRE 'CSV' NOMDATA ;
  960. TTMP2 = TABL ;
  961. TTMP2. 1 = PROG 0. 0.01 0.05 0.2 1. 2. ;
  962. TTMP2. 2 = PROG 0 28e6 132e6 274e6 913e6 1369e6 ;
  963. TTMP2. 3 = PROG 0 33e6 136e6 272e6 802e6 1203e6 ;
  964. TTMP2. 4 = PROG 0 29e6 135e6 279e6 728e6 1092e6 ;
  965. TTMP2. 5 = PROG 0 29e6 137e6 278e6 442e6 663e6 ;
  966. TTMP2. 6 = PROG 0 27e6 130e6 267e6 398e6 597e6 ;
  967. TTMP2. 7 = PROG 0 25e6 117e6 242e6 355e6 532e6 ;
  968. TTMP2. 8 = PROG 0 25e6 76e6 204e6 264e6 396e6 ;
  969. TTMP2. 9 = PROG 0 25e6 72e6 167e6 223e6 334e6 ;
  970. TTMP2. 10 = PROG 0 22e6 46e6 54e6 65e6 97e6 ;
  971. TTMP2. 11 = PROG 0 3e6 18e6 21e6 26e6 39e6 ;
  972. TTMP2. 12 = PROG 0 2e6 3e6 4e6 5e6 6e6 ;
  973. TTMP2. 13 = PROG 0 1e6 2e6 3e6 4e6 5e6 ;
  974.  
  975. EVTOT1 = VIDE 'EVOLUTION' ;
  976. EVTOT2 = VIDE 'EVOLUTION' ;
  977. LTEMPER = 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.  
  988. * Calcul de EPSIY a partir de YOUNIPOL et SIGYIPOL
  989. EPSIY = SIGYIPOL / YOUNIPOL;
  990.  
  991. * Construction de la courbe de traction Complete pour Cast3M
  992. LESPI = (PROG 0.) ET ((TTMP2. 1) + EPSIY ) ;
  993. LSIGM = (PROG 0.) ET ((TTMP2. (J+1)) + SIGYIPOL) ;
  994. EVTRAC= EVOL MANU 'EPSI' LESPI 'CONT' LSIGM ;
  995. EVTOT1 = EVTOT1 ET EVTRAC ;
  996.  
  997. LSIGM = LSIGM enle 1 ;
  998. LESPI = (LESPI enle 1) - (LSIGM / YOUNIPOL) born mini 0. ;
  999. EVECRO= EVOL VERT MANU 'EPS' LESPI 'ECRO' LSIGM ;
  1000. EVTOT2 = EVTOT2 ET EVECRO;
  1001.  
  1002. * Construction du NUAGE qui associe une EVOLUTION a une TEMPERATURE
  1003. SI (J EGA 1);
  1004. NUATRACN = NUAGE 'COMP' 'T ' TEMPER
  1005. 'COMP' 'ECRO' EVTRAC ;
  1006. SINO;
  1007. NUATRACN = NUATRACN ET (NUAGE 'COMP' 'T ' TEMPER
  1008. 'COMP' 'ECRO' EVTRAC ) ;
  1009. FINS;
  1010. FIN ITEMPER;
  1011.  
  1012.  
  1013. * Parametres thermiques
  1014. * NOMDATA = CHAI 'Materiaux/' NOMCONS '/' NOMCONS'_k.csv';
  1015. * TTMP = LIRE 'CSV' NOMDATA;
  1016. TTMP = TABL ;
  1017. TTMP. 1 = PROG 20 100 200 300 400 500 600 700 800 900 1000
  1018. 1200 1400 3000 ;
  1019. TTMP. 2 = PROG 0.0147e3 0.0158e3 0.0172e3 0.0186e3 0.02e3
  1020. 0.0211e3 0.0222e3 0.0232e3 0.0241e3 0.0248e3 0.0255e3
  1021. 0.0269e3 0.0283e3 0.0283e3 ;
  1022. EVK = EVOL MANU 'T' (TTMP. 1) 'K' (TTMP. 2);
  1023.  
  1024. * NOMDATA = CHAI 'Materiaux/' NOMCONS '/' NOMCONS'_Cp.csv';
  1025. * TTMP = LIRE 'CSV' NOMDATA;
  1026. TTMP = TABL ;
  1027. TTMP. 1 = PROG 20 100 200 300 400 600 800 1000 1200 1500 3000 ;
  1028. TTMP. 2 = PROG 450 490 525 545 560 580 625 660 670 690 690 ;
  1029. EVCP = EVOL MANU 'T' (TTMP. 1) 'C' (TTMP. 2);
  1030.  
  1031. SI GRAPH ;
  1032. DESS EVYOUN TITR 'Module de YOUNG Nominal';
  1033. DESS EVNU TITR 'Coefficient de POISSON';
  1034. DESS EVRHO TITR 'Masse Volumique';
  1035. DESS EVSIGY TITR 'Limite Elastique';
  1036. DESS EVALPHAN TITR 'Coefficient de dilatation Thermique';
  1037. DESS (EVTOT1 et EVTOT2) TITR
  1038. 'Courbes de traction et d ecrouissage (vert) a differentes temperatures';
  1039. DESS EVK TITR 'Conductivite Thermique';
  1040. DESS EVCP TITR 'Chaleur Specifique';
  1041. FINS;
  1042.  
  1043. * MATERIAUX MECANIQUE ET THERMIQUE
  1044. MOMECD= SOUDAGE.'MODELE'.'APPORT'.'MECANIQUE'.'DEGRADE'. I ;
  1045. MOMECN= SOUDAGE.'MODELE'.'APPORT'.'MECANIQUE'.'NOMINAL'. I ;
  1046. MOTHE = SOUDAGE.'MODELE'.'APPORT'.'THERMIQUE'. I ;
  1047. * YOUND = EXTR LYOU3 (DIME LTEMPER);
  1048. NUD = EXTR VALNU DIMNU;
  1049.  
  1050. MAMECD= MATE MOMECD 'YOUN' EVYOUN 'NU' NUD 'ALPH' 0.D0 'TREF' T_INIT 'TALP' TAREF ;
  1051. MAMECN= MATE MOMECN 'YOUN' EVYOUN 'NU' EVNU 'ALPH' EVALPHAN 'TREF' T_INIT 'TALP' TAREF 'ECRO' NUATRACN ;
  1052. MATHE = MATE MOTHE 'K' EVK 'RHO' EVRHO 'C' EVCP ;
  1053.  
  1054. SOUDAGE.'MATERIAUX'.'APPORT'.'MECANIQUE'.'DEGRADE'. I = MAMECD ;
  1055. SOUDAGE.'MATERIAUX'.'APPORT'.'MECANIQUE'.'NOMINAL'. I = MAMECN ;
  1056. SOUDAGE.'MATERIAUX'.'APPORT'.'THERMIQUE'. I = MATHE ;
  1057.  
  1058. SOUDAGE.'MATERIAUX'.'APPORT'.'THERMIQUE'.'TOTAL' =
  1059. SOUDAGE.'MATERIAUX'.'APPORT'.'THERMIQUE'.'TOTAL' ET MATHE;
  1060.  
  1061. SOUDAGE.'MATERIAUX'.'APPORT'.'MECANIQUE'.'DEGRADE'.'TOTAL' =
  1062. SOUDAGE.'MATERIAUX'.'APPORT'.'MECANIQUE'.'DEGRADE'.'TOTAL' ET MAMECD;
  1063.  
  1064. SOUDAGE.'MATERIAUX'.'APPORT'.'MECANIQUE'.'NOMINAL'.'TOTAL' =
  1065. SOUDAGE.'MATERIAUX'.'APPORT'.'MECANIQUE'.'NOMINAL'.'TOTAL' ET MAMECN;
  1066. FIN INDICE;
  1067.  
  1068. MOMECDT = SOUDAGE.'MODELE'.'APPORT'.'MECANIQUE'.'DEGRADE'.'TOTAL';
  1069. MOMECNT = SOUDAGE.'MODELE'.'APPORT'.'MECANIQUE'.'NOMINAL'.'TOTAL';
  1070. MOTHT = SOUDAGE.'MODELE'.'APPORT'.'THERMIQUE'.'TOTAL';
  1071.  
  1072. SOUDAGE.'MATERIAUX'.'APPORT'.'THERMIQUE'.'TOTAL' = REDU
  1073. SOUDAGE.'MATERIAUX'.'APPORT'.'THERMIQUE'.'TOTAL' MOTHT;
  1074.  
  1075. SOUDAGE.'MATERIAUX'.'APPORT'.'MECANIQUE'.'DEGRADE'.'TOTAL' = REDU
  1076. SOUDAGE.'MATERIAUX'.'APPORT'.'MECANIQUE'.'DEGRADE'.'TOTAL' MOMECDT;
  1077.  
  1078. SOUDAGE.'MATERIAUX'.'APPORT'.'MECANIQUE'.'NOMINAL'.'TOTAL' = REDU
  1079. SOUDAGE.'MATERIAUX'.'APPORT'.'MECANIQUE'.'NOMINAL'.'TOTAL' MOMECNT;
  1080.  
  1081. * Materiaux pour la CONVECTION
  1082. MACONV = MATE MOCONV 'H' 23.e-6 ;
  1083.  
  1084. ************************************************************************
  1085. * BLOCAGES PERMANENTS *
  1086. ************************************************************************
  1087. SOUDAGE.'BLOCAGES' = 'TABL';
  1088. SOUDAGE.'BLOCAGES'.'PERMANENT' = 'TABL';
  1089.  
  1090. * BLOCAGES MECANIQUES
  1091. zblo = '*' l0 -2. ;
  1092. pt0 = MPIECE1 POIN 'PLAN' (0. 0. zblo )
  1093. (1. 0. zblo ) (0. 1. zblo ) 1.e-4 ;
  1094. BLOQ0 = 'BLOQ' pt0 'UX' 'UY' 'UZ' ;
  1095. SOUDAGE.'BLOCAGES'.'PERMANENT'.'MECANIQUE' = BLOQ0 ;
  1096.  
  1097. ************************************************************************
  1098. * CHARGEMENT *
  1099. ************************************************************************
  1100.  
  1101. * CHARGEMENT Thermique : Source de chaleur dans l'APPORT
  1102.  
  1103. REPE INDICE N_PASSE ;
  1104. * Boucle sur toutes les PASSES
  1105. I=&INDICE;
  1106. MOD1 = SOUDAGE.'MODELE' .'APPORT'.'THERMIQUE'. I ;
  1107. MAIL = SOUDAGE.'MAILLAGE'.'APPORT'. I ;
  1108. EVO1 = EVOL 'MANU' (PROG 0. 1.D10) (PROG 1. 1.) ;
  1109. CHTCONV = MANU 'CHPO' LEXTT 1 'T' T_CONV ;
  1110. CHA1= CHAR 'TECO' CHTCONV EVO1 ;
  1111. SOUDAGE. 'CHARGEMENT'.'THERMIQUE'. I = CHA1 ;
  1112. FIN INDICE ;
  1113.  
  1114. * Chargement Thermique : FLUX pour la CONVECTION et RAYO
  1115. EVO1 = EVOL 'MANU' (PROG 0. 1.D10) (PROG 1. 1.) ;
  1116. CHTCONV = MANU 'CHPO' LEXTT 1 'T' T_CONV ;
  1117. CHACONV= CHAR 'TECO' CHTCONV EVO1 ;
  1118.  
  1119. ************************************************************************
  1120. * PASAPAS *
  1121. ************************************************************************
  1122.  
  1123. * Assemblage des MODELES, CARACTERISTIQUES, BLOCAGES, CHARGEMENTS
  1124. MODMECA0 = SOUDAGE.'MODELE' .'PIECE' .'MECANIQUE' .'TOTAL' ET
  1125. SOUDAGE.'MODELE' .'APPORT'.'MECANIQUE'.'DEGRADE'.'TOTAL' ;
  1126.  
  1127. MATMECA0 = SOUDAGE.'MATERIAUX'.'PIECE' .'MECANIQUE' .'TOTAL' ET
  1128. SOUDAGE.'MATERIAUX'.'APPORT'.'MECANIQUE'.'DEGRADE'.'TOTAL' ET
  1129. SOUDAGE.'MATERIAUX'.'APPORT'.'MECANIQUE'.'NOMINAL'.'TOTAL' ;
  1130. MODTHER0 = SOUDAGE.'MODELE' .'PIECE' .'THERMIQUE' .'TOTAL' ;
  1131. MATTHER0 = SOUDAGE.'MATERIAUX'.'PIECE' .'THERMIQUE' .'TOTAL' ET
  1132. SOUDAGE.'MATERIAUX'.'APPORT' .'THERMIQUE' .'TOTAL';
  1133.  
  1134.  
  1135. * Ajout de la CONVECTION
  1136. MODTHER = MODTHER0 ET MOCONV ;
  1137. MATTHER = MATTHER0 ET MACONV ;
  1138. MATTOT = MATMECA0 ET MATTHER ;
  1139.  
  1140. * BLOCAGES PERMANENTS
  1141. BLOMECA0 = SOUDAGE.'BLOCAGES'.'PERMANENT'.'MECANIQUE';
  1142. BLOTOT = BLOMECA0 ;
  1143.  
  1144. I = 1;
  1145. * Chargement Thermique de la PASSE 1
  1146. CHARTOT = SOUDAGE.'CHARGEMENT'.'THERMIQUE'. 1 ;
  1147. * On ajoute le MODELE et le MATERIAUX THERMIQUE de l'APPORT
  1148. MODTHER = MODTHER ET SOUDAGE.'MODELE' .'APPORT'.'THERMIQUE'. 1;
  1149. MODTOT = MODMECA0 ET MODTHER ;
  1150.  
  1151. * Initialisations des CHAMPS
  1152. *Les CHPOINTS
  1153. MAILTHER= EXTR MODTHER 'MAILLAGE' ;
  1154. MAILMECA= EXTR MODMECA0 'MAILLAGE';
  1155. CHPTINI = MANU 'CHPO' MAILTHER 1 'T' T_INIT 'NATU' 'DIFFUS' ;
  1156. DEPLINI = MANU 'CHPO' MAILMECA 3
  1157. 'UX' 0. 'UY' 0. 'UZ' 0. 'NATU' 'DIFFUS';
  1158. REACINI = VIDE 'CHPOINT';
  1159.  
  1160. *Les MCHAML
  1161. CONTINI = ZERO MODMECA0 'CONTRAIN' ;
  1162. VINTINI = ZERO MODMECA0 'VARINTER' ;
  1163. DEININI = ZERO MODMECA0 'DEFINELA' ;
  1164.  
  1165. *Definition de TEMPERATURE_REFERENCE et TALPHA_REFERENCE
  1166. TREF = MANU 'CHML' MODMECA0 'T' T_INIT 'TYPE' 'TEMPERATURES' ;
  1167. MAILACT = VIDE 'MAILLAGE' ;
  1168. MAILFON = VIDE 'MAILLAGE' ;
  1169.  
  1170. * Declaration de la TABLE avant PASAPAS
  1171. TPASAP ='TABL' ;
  1172. TPASAP.'MODELE' = MODTOT ;
  1173. TPASAP.'CARACTERISTIQUES' = MATTOT ;
  1174. TPASAP.'BLOCAGES_MECANIQUES' = BLOTOT ;
  1175. TPASAP.'CHARGEMENT' = CHARTOT ;
  1176. TPASAP.'TEMPS_CALCULES' = ltcal ;
  1177. *TPASAP.'TEMPS_SAUVES' = ;
  1178. TPASAP.'TEMPS' ='TABL' ;
  1179. TPASAP.'TEMPERATURES' ='TABL' ;
  1180. TPASAP.'DEPLACEMENTS' ='TABL' ;
  1181. TPASAP.'CONTRAINTES' ='TABL' ;
  1182. TPASAP.'REACTIONS' ='TABL' ;
  1183. TPASAP.'VARIABLES_INTERNES' ='TABL' ;
  1184. TPASAP.'DEFORMATIONS_INELASTIQUES' ='TABL' ;
  1185. TPASAP.'MES_MODEL' ='TABL' ;
  1186. TPASAP.'MAILLAGE_ACTIF' ='TABL' ;
  1187. TPASAP.'MAILLAGE_FONDU' ='TABL' ;
  1188. TPASAP.'MES_SAUVEGARDES' ='TABL' ;
  1189. TPASAP.'MES_DATA' ='TABL' ;
  1190. TPASAP.'MES_DATA'.'TREF' ='TABL' ;
  1191. TPASAP.'MES_DATA'.'TAREF' ='TABL' ;
  1192. TPASAP.'MES_DATA'.'MA' ='TABL' ;
  1193. TPASAP.'TEMPS' . 0 = 0.D0 ;
  1194. TPASAP.'TEMPERATURES' . 0 = CHPTINI ;
  1195. TPASAP.'DEPLACEMENTS' . 0 = DEPLINI ;
  1196. TPASAP.'CONTRAINTES' . 0 = CONTINI ;
  1197. TPASAP.'REACTIONS' . 0 = REACINI ;
  1198. TPASAP.'VARIABLES_INTERNES' . 0 = VINTINI ;
  1199. TPASAP.'DEFORMATIONS_INELASTIQUES' . 0 = DEININI ;
  1200. TPASAP.'MES_MODEL' . 0 = MODTOT ;
  1201. TPASAP.'MAILLAGE_ACTIF' . 0 = MAILACT ;
  1202. TPASAP.'MAILLAGE_FONDU' . 0 = MAILFON ;
  1203. TPASAP.'MES_SAUVEGARDES'.'DEFIN' = VRAI ;
  1204. TPASAP.'MES_SAUVEGARDES'.'DEFTO' = VRAI ;
  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-3 ;
  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.  
  1294.  
  1295.  
  1296.  
  1297.  
  1298.  
  1299.  
  1300.  
  1301.  
  1302.  
  1303.  
  1304.  
  1305.  

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