$$$$ FLAMBAGE * FLAMBAGE PROCEDUR BP208322 17/10/03 21:15:27 9580 DEBPROC FLAMBAGE ETAB11*TABLE ; * CETTE PROCEDURE EFFECTUE UN CALCUL DE FLAMBAGE * * EN ENTREE : * --------- * ETAB TABLE CONTENANT : * INDICE 'OBJM' : OBJET MODELE * INDICE 'SIG0' : CHAMP CONSTANT DE CONTRAINTES * INDICE 'SIG1' : CONTRAINTE DONT ON CHERCHE LE * COEFFICIENT MULTIPLICATEUR * INDICE 'RIGI' : MATRICE DE RAIDEUR * INDICE 'KSIG' : MATRICE DE RIGIDITE GEOMETRIQUE * INDICE 'LAM1' : COEFFICIENT MINI * INDICE 'LAM2' : COEFFICIENT MAXI * INDICE 'NMOD' : NOMBRE DE MODES AZIMUTAL * INDICE 'MODE' : LISTE DES MODES DE FOURIER * INDICE 'MATE' : MATERIAU * INDICE 'CARA' : CARACTERISTIQUES * INDICE 'CLIM' : CONDITIONS LIMITES * INDICE 'PLAS' : SI FLAMBAGE PLASTIQUE * INDICE 'MATP' : MATERIAU PLASTIQUE * * EN SORTIE : * --------- * STAB11 TABLE CONTENANT AUTANT DE TABLES QUE DE MODES * DE SORTIE * INDICE N : NUMERO DU MODE * * LA TABLE STAB11 N CONTIENT : * INDICE 'LAMB' : COEFFICIENT MULTIPLICATEUR * INDICE 'DEPL' : LE DEPLACEMENT MODAL ( MAXI 1) * INDICE 'MODN' : LE MODE DE FOURIER * INDICE 'MODM' : LE MODE AZIMUTHAL * *--------------------------------------------------------------------- * * *---------------------------------------------------------------------- * ON RECUPERE L'INFORMATION *------------------------------ * IERR = 0; * VERIF DE DONNEES NBMOD = 1; IFOURI= 0; 'SI' ('EXISTE' ETAB11 'MODE' ) ; IFOURI =1; LMOD = ETAB11.'MODE' ; NBMOD = 'DIME' LMOD ; 'FINSI'; * 'SI' ('EXISTE' ETAB11 'OBJM'); OBJMOD = ETAB11.'OBJM' ; 'SINON'; 'MESSAGE' ' ****ERREUR IL FAUT DONNER L OBJET MODELE '; 'FINSI'; * IKSIG=0; 'SI' ('EXISTE' ETAB11 'SIG1'); SIG10= 'COPIER' ETAB11.'SIG1' ; SIG11 = -1. * SIG10; 'DETR' SIG10; 'SINON' ;'SI' ( IFOURI 'EGA' 1) ; IERR = 1 ; 'MESSAGE' ' ***** ERREUR IL FAUT DONNER SIG1 '; 'SINON'; 'SI' ('EXISTE' ETAB11 'KSIG'); IKSIG=1; KSII0 = ETAB11.'KSIG'; KSIG1 = -1. * KSII0 ; 'SINON'; 'MESSAGE' ' ***** ERREUR IL FAUT DONNER KSIG OU SIG1'; IERR = 1; 'FINSI'; 'FINSI'; 'FINSI'; 'SI' ('EXISTE' ETAB11 'CLIM'); KLIM = ETAB11.'CLIM' ; 'SINON'; 'MESSAGE' ' **** VOUS N AVEZ PAS DONNE DE CONDITIONS LIMITES '; 'FINSI'; IRIGN = 0; 'SI' ( 'EXISTE' ETAB11 'MATE'); MAT1 = ETAB11.'MATE' ; 'SINON'; 'SI' ( IFOURI 'EGA' 1); IERR = 1; 'MESSAGE' ' ****** ERREUR IL FAUT DONNER MATE'; 'SINON'; 'SI' ( 'EXISTE' ETAB11 'RIGI' ) ; IRIGN =1; RIGN = ETAB11.'RIGI' ; 'SINON'; IERR = 1; 'MESSAGE' ' ***** ERREUR IL FAUT DONNER MATE OU RIGI'; 'FINSI'; 'FINSI'; 'FINSI'; ICARA = 0; CAR1 = 'TEXTE' ' ' ; 'SI' ( 'EXISTE' ETAB11 'CARA'); ICARA = 1; CAR1 = ETAB11.'CARA'; 'FINSI'; X1 = 1.E30; 'SI' ( 'EXISTE' ETAB11 'LAM2'); X1 = ETAB11.'LAM2' ; 'FINSI' ; X0 = 0.; 'SI' ( 'EXISTE' ETAB11 'LAM1'); X0 = ETAB11.'LAM1' ; 'FINSI' ; NMO = 1;'SI' ('EXISTE' ETAB11 'NMOD') ; NMO = ETAB11.'NMOD'; 'FINSI'; MATN = MAT1; * * LISTE DES MODES DE FOURIER * IFLPLA= 0; 'SI' ('EXISTE' ETAB11 'PLAS' ) ; IFLPLA = 1; 'SI' ('EXISTE' ETAB11 'MATP' ); MATN = ETAB11.'MATP'; 'SINON'; IERR = 1; 'MESSAGE' ' ***** IL FAUT DONNER LE MATERIAU PLASTIQUE ' ; 'FINSI'; 'FINSI'; 'SI'(IERR 'EGA' 0 ) ; * *-------------------------------------------- * INITIALISATIONS *-------------------------------------------- XX = 2. * PI ; * *-------------------------------------------- * CALCUL DES FREQUENCES A PARTIR DES COEFFICIENTS MULTIPLICATEURS *-------------------------------------------- XX0 = X0 ** .5 ; XX1 = X1 ** .5; XX0= XX0 / XX ; XX1 = XX1 / XX ; * *--------------------------------------------- * BOUCLE SUR LES MODES DE FOURIER *--------------------------------------------- * TAMON = 'TABLE'; TAMOM = 'TABLE'; TACOE = 'TABLE'; TAPERM = 'TABLE'; STAB11 = 'TABLE' ; II = 0 ; IK = 0 ; MODMIN= -10; COEMIN=1.E30; * * STAB11 EST UNE TABLE DE TABLES INDICEE PAR LE NUMERO DU MODE SORTI * IFOU=0 ; 'REPETER' BOUCFOU; IFOU = IFOU + 1 ; 'SI' ( IFOU > NBMOD) ; 'QUITTER' BOUCFOU; 'FINSI' ; N = 0; 'SI' (IFOURI 'EGA' 1) ; N = 'EXTR' LMOD IFOU; 'OPTION' 'MODE' 'FOUR' N ; 'FINSI'; 'SI' (IRIGN 'EGA' 0) ; 'SI' (ICARA 'EGA' 1) ;MATN1=MATN 'ET' CAR1; 'SINON' ;MATN1=MATN ;'FINSI' ; RIGN = 'RIGI' OBJMOD MATN1;'FINSI'; TST = 'EXISTE' ETAB11 'SIG0'; 'SI' ( TST ) ; SIG10 = ETAB11.'SIG0'; KSIG0 = 'KSIGMA' OBJMOD SIG10 CAR1 FLAM ; RIGN = RIGN 'ET' KSIG0 ; 'FINSI' ; 'SI' (IKSIG 'EGA' 0 ) ; KSIG1 = 'KSIG' OBJMOD SIG11 CAR1 FLAM ; 'FINSI'; 'SI' ( 'EXISTE' ETAB11 'CLIM' ) ; RIGP = RIGN 'ET' KLIM; 'SINON';RIGP = RIGN ; 'FINSI'; *------------------------------------------------------------ * CALCUL DES FREQUENCES *----------------------------------------------------------- TMOD = 'VIBR' 'INTERVALLE' XX0 XX1 'BASSE' NMO RIGP KSIG1 ; XMOD = TMOD . 'MODES'; *----------------------------------------------------------- * COMBIEN A T ON DE MODES *------------------------------------------------------- NMOCAL = 'DIMENSION' XMOD - 2; 'SI' (NMOCAL 'EGA' 0); 'MESS' ' IL N''Y A PAS DE FREQUENCE DANS L''INTERVALLE CHOISI'; 'MESS' ' POUR LE MODE DE FOURIER ' N ; 'SINON'; *------------------------------ * EXTRACTION DES MODES *------------------------------ NMOO = NMO; 'SI' ( NMOCAL < NMOO ) ; 'MESS' ' ***** IL N Y A QUE ' NMOCAL ' MODES DE FLAMBAGE ENTRE ' X0 ' ET ' X1 ; NMOO= NMOCAL; 'FINSI'; JJ = 0; 'REPETER' BOUCMO; JJ = JJ + 1; 'SI' ( JJ > NMOO) ; 'QUITTER' BOUCMO; 'FINSI'; II = II + 1; FF = XMOD . JJ . FREQUENCE ; DD = XMOD . JJ . DEFORMEE_MODALE ; XMUL = XX * FF; XMUL = XMUL * XMUL ; TAMON.II = N ; TAMOM.II = JJ ; TACOE.II = XMUL; * ****** RECHERCHE DU MODE A COEFFICIENT MINI * 'SI'(IFOURI 'EGA' 1 ) ; 'SI'( XMUL < COEMIN ) ; MODMIN = N ; COEMIN = XMUL; 'FINS'; 'FINSI'; * *-------------------------------------- * ARCHIVAGE DES RESULTATS SI BESOIN *-------------------------------------- STN = 'TABLE'; STN.'LAMB' = XMUL; STN.'DEPL' = DD; STN.'MODN' = N ; STN.'MODM' = JJ ; IK = IK + 1; STAB11.IK = 'TABLE' STN ; 'FIN' BOUCMO; 'SI' ( IKSIG 'EGA' 0) ;'DETR' KSIG1 'ELEM';'FINSI'; 'SI'(IRIGN 'EGA' 0 ) ; 'DETR' RIGN 'ELEM'; 'FINSI'; 'FINSI'; 'FIN' BOUCFOU; * ********** RANGEMENT PAR ORDRE CROISSANT * * TAPERM.1 = 1; * SI ( II > 1); *KK = 0; *REPETER BOUCPER; * KK = KK + 1; *SI(KK > II ) ; QUITTER BOUCPER; FINSI; *XMU = TACOE.KK ; *III = 0; KKK = 0; *REPETER BOUCIN; *III = III + 1; SI (III > II) ; QUITTER BOUCIN; FINSI; *XMU1 = TACOE.III; *SI( XMU >EG XMU1); KKK = KKK + 1; FINSI; *FIN BOUCIN; *TAPERM.KK = KKK; *FIN BOUCPER; * FINSI; * * IMPRESSSION DES RESULTATS 'MESS' ' ***********************************************************'; 'MESS' ' * MODE FOURIER * MODE M * COEFFICIENT MULTIPLICATEUR *'; 'MESS' ' ***********************************************************'; KK = 0; 'REPETER' BOUC; KK = KK + 1; 'SI' (KK > II ) ; 'QUITTER' BOUC ; 'FINSI' ; * KKK = TAPERM.KK; KKK = KK ; N = TAMON.KKK; XMUL = TACOE.KKK; JJ = TAMOM.KKK; 'MESSAGE' ' * ' N ' * ' JJ '* ' XMUL ' *'; 'FIN' BOUC; 'MESS' ' ***********************************************************'; 'SI' ( IFOURI 'EGA' 1) ; MESSAGE ' '; MESSAGE ' '; 'MESS' ' ***** COEFFICIENT MULTIPLICATEUR MINI ' COEMIN ; 'MESS' ' SUR LE MODE DE FOURIER ' MODMIN ; 'FINSI'; 'FINSI'; *---------------------------------------------------------------------- * SORTIE DE LA PROCEDURE *---------------------------------------------------------------------- 'FINPROC' STAB11 ;