$$$$ ARCGAU * ARCGAU PROCEDUR DEGAY 95/05/11 21:15:10 1663 DEBPROC ARCGAU TAB1*TABLE; ******************************************************************** * PROCEDURE ARCGAU : Calcul du champ de température créé par le * * déplacement d'un arc de soudure et calcul de la * * largeur de bain * * (D'après Rosenthal) * ******************************************************************** * Entrées : TABLE : * * 'PUISSANCE' : REEL : Puissance de l'arc (en W) * * 'RENDEMENT' : REEL : Rendement de l'arc : Rapport de * * la puissance recue par la pièce et de la puissance * * de l'arc * * 'DIFFUSVITE' : REEL : Diffusivité thermique du * * matériau (en m2/s) * * 'CONDUCTIVITE' : REEL : Conductivité thermique du * * matériau (en W/Km2) * * 'VITESSE' : REEL : Vitesse de déplacement de l'arc * * (en m/s) * * 'T0' : REEL : Température ambiante (en °C ou en K) * * 'NTERMES' : ENTIER : Nombre de termes de la somme * * 'MAILLAGE' : MAILLAGE : Maillage support du champ de * * température * * 'EPAISSEUR' : REEL : Epaisseur de la pièce (en m) * * 'LOCAL' : BOOLEEN : VRAI si la pièce est décrite dans * * le repère local à l'arc * * 'INSTANT' : REEL : Si 'LOCAL' est FAUX, instant * * auquel il faut calculer le champ de température * * (l'abscisse de l'arc est alors V*t) (en s) * * 'TFUSION' : REEL : Température de fusion (en °C * * ou en K) * * 'PRECISION' : REEL : Précision du calcul de la * * largeur de bain (en m) * * 'NSURFACES' : ENTIER : Nombre de surfaces sur * * lesquelles la largeur de bain doit être calculée * * 'SURFACE' : TABLE : * * 'SURFACE'.I : MAILLAGE : i-ème surface sur * * laquelle la largeur de bain doit être * * calculée * * 'GAUSS' : BOOLEEN : VRAI si la source est gaussienne * * 'ECART-TYPE' : REEL : Ecart-type de la gaussienne * * (en m) * * Sortie : CHPOINT : Champ de température (en °C ou en K) * * Dans la table en entrée : * * 'LARGEUR' : TABLE : * * 'LARGEUR'.I : REEL : Largeur de bain calculée * * sur la i-ème surface * * 'XBAIN' : TABLE : * 'XBAIN'.I : REEL : Abscisse à laquelle la * * largeur de bain est maximale pour la * * i-ème surface * ******************************************************************** &IMP = 'VALEUR' IMPI; OBJ = TAB1.'MAILLAGE'; TF = TAB1.'TFUSION'; T0 = TAB1.'T0'; ER1 = TAB1.'PRECISION'; NSUR = TAB1.'NSURFACES'; Q = TAB1.'PUISSANCE'; SI (EXISTE TAB1 'GAUSS'); BGAUSS = TAB1.'GAUSS'; SINON; BGAUSS = FAUX; FINSI; SI (BGAUSS); ECT = TAB1.'ECART-TYPE'; CHT = CHTGAU TAB1; SINON; CHT = ROSENT TAB1; FINSI; SI (EGA &IMP 1); MESS 'Determination de la largeur de bain'; FINSI; IS = 0; XBAIT = TABLE; YBAIT = TABLE; REPETER BSURF NSUR; IS = IS + 1; SUR = TAB1.'SURFACE'.IS; CHTR = REDU CHT SUR; CHTSP = CHTR MASQ 'EGSUP' TF; SURSP = EXTR CHTSP 'MAIL'; SURSP = SURSP CHAN 'POI1'; NP = NBEL SURSP; I = 0; K = 0; YMIN = -1.E10; REPETER BOUCLE NP; I = I + 1; PPE = SURSP ELEM I; PP = PPE POIN 1; BOO = EXTR CHTSP 'SCAL' PP; SI (BOO > 0.); YPP = COOR 2 PP; SI (K EGA 0); K = 1; IST1 = PP; SINON; IST1 = IST1 ET PP; FINSI; SI (YPP > YMIN); YMIN = YPP; FINSI; FINSI; FIN BOUCLE; ISO1 = SUR ELEM APPU LARG IST1; ISO1 = ISO1 CHAN 'POI1'; NP = NBEL ISO1; I = 0; XMIN = 1.E10; XMAX = -1.E10; YMAX = -1.E10; REPETER BOUCLE NP; I = I + 1; PPE = ISO1 ELEM I; PP = PPE POIN 1; XPP = COOR 1 PP; YPP = COOR 2 PP; SI (XPP > XMAX); XMAX = XPP; FINSI; SI (XPP < XMIN); XMIN = XPP; FINSI; SI (YPP > YMAX); YMAX = YPP; FINSI; FIN BOUCLE; PP = SUR POIN PROC (0. 0. 0.); Z = COOR 3 PP; SI (EGA &IMP 1); MESS 'XMIN = ' XMIN; MESS 'XMAX = ' XMAX; MESS 'YMIN = ' YMIN; MESS 'YMAX = ' YMAX; MESS 'Z = ' Z; FINSI; PP1 = XMIN 0. Z; PP2 = XMIN YMAX Z; PP3 = XMAX YMAX Z; PP4 = XMAX 0. Z; LL1 = D PP1 PP2 'DINI' ER1 'DFIN' ER1; LL2 = D PP2 PP3 'DINI' ER1 'DFIN' ER1; LL3 = D PP3 PP4 'DINI' ER1 'DFIN' ER1; LL4 = D PP4 PP1 'DINI' ER1 'DFIN' ER1; OBJ2 = DALL LL1 LL2 LL3 LL4 'PLAN'; TAB1.'MAILLAGE' = OBJ2; SI (BGAUSS); CHT2 = CHTGAU TAB1; SINON; CHT2 = ROSENT TAB1; FINSI; SI (EGA &IMP 1); MESS 'Recherche de la largeur du bain'; FINSI; YBAI = 0.; CHTSP = CHT2 MASQ 'EGSUP' TF; SURSP = EXTR CHTSP 'MAIL'; SURSP = SURSP CHAN 'POI1'; NP = NBEL SURSP; I = 0; REPETER BOUCLE NP; I = I + 1; PPE = SURSP ELEM I; PP = PPE POIN 1; BOO = EXTR CHTSP 'SCAL' PP; SI (BOO > 0.); XPP = COOR 1 PP; YPP = COOR 2 PP; SI (YPP > YBAI); YBAI = YPP; XBAI = XPP; FINSI; FINSI; FIN BOUCLE; MESS 'Surface : ' IS ' Largeur de bain : ' YBAI; XBAIT.IS = XBAI; YBAIT.IS = YBAI; FIN BSURF; TAB1.'LARGEUR' = YBAIT; TAB1.'XBAIN' = XBAIT; SI (EGA &IMP 1); XBAI1 = XBAIT.1; PP1 = XBAI1 0. 0.; PP2 = XBAI1 YMAX 0.; PP3 = XBAI1 YMAX ((-1.)*(TAB1.'EPAISSEUR')); PP4 = XBAI1 0. ((-1.)*(TAB1.'EPAISSEUR')); LL1 = D PP1 PP2 'DINI' 0.0001 'DFIN' 0.0001; LL2 = D PP2 PP3 'DINI' 0.0001 'DFIN' 0.0001; LL3 = D PP3 PP4 'DINI' 0.0001 'DFIN' 0.0001; LL4 = D PP4 PP1 'DINI' 0.0001 'DFIN' 0.0001; OBJ3 = DALL LL1 LL2 LL3 LL4 'PLAN'; TAB1.'MAILLAGE' = OBJ3; SI (BGAUSS); CHT3 = CHTGAU TAB1; SINON; CHT3 = ROSENT TAB1; FINSI; DT = (TF - T0)/10.; LIR1 = PROG T0 PAS DT NPAS 12; OEX = -1.E7 0. 0.; OPTI ISOV LIGNE TRAC PS; TRAC OEX OBJ3 CHT3 LIR1; FINSI; TAB1.'MAILLAGE' = OBJ; RESP CHT; FINPROC;