* FRONABS PROCEDUR WANG 96/09/17 21:16:10 2279 NHARM/'ENTIER '; ************************************************************************ * * F R O N A B S * ------------- * * FONCTION: * --------- * * Calcule la matrice d'amortissement d'une frontière absorbante. * * PHRASE D'APPEL (EN GIBIANE): * ---------------------------- * * RIG1 = FRONABS TAB1 ( TYP_FRON ) NHARM ; * * OPERANDES: * ---------- * * TAB1 'TABLE ' indice 'FRONTIERE' : frontière. * indice 'MASSE_VOLUMIQUE' : masse volumique. * indice 'POISSON' : coef de poisson. * indice 'YOUNG' : module d'young. * TTYP_FRON 'MOT ' type de la frontière utilisée * type WHITE * type LYSMER (par défaut) * NHARM 'ENTIER' numéro du mode FOURIER ( en MODE FOUR ) * * RESULTATS: * ---------- * * RIG1 'RIGIDITE' matrice d'amortissement. * * * * REMARQUE: * --------- * On ne traite pas les modèles tridimensionnels ni les frontières * obliques. * * * * AUTEUR, DATE DE CREATION: * ------------------------- * * L. V. 13 février 1989 * * MODIFICATION: * ------------- * * F. WANG 12 mai 1992 * * - Modification de la matrice d'amortissement de la frontière * horizontale de l'option axisymetrique 'AXIS' ; * * - Creation de frontière absorbante pour le mode de calcul * déformation plane 'PLANDEFO' . * * ************************************************************************ * * MAIL = TAB_VAL.'FRONTIERE' ; YO = TAB_VAL.'YOUNG' ; RHO = TAB_VAL.'MASSE_VOLUMIQUE' ; NU = TAB_VAL.'POISSON' ; DEUXPI = 2.0 * PI ; 0.35 0.4 0.45 ; 0.992 1.007 1.011 ; 0.740 0.746 0.773 ; * G = YO / ( 2.0 * ( 1.0 + NU ) ) ; CS = ( G / RHO ) ** 0.5 ; CP = ( ( 2.0 * (1.0 - NU) ) / ( 1.0 - ( 2.0 * NU ) ) ) ** 0.5 ; CP = CP * CS ; * SI ('EGA' TYP_MODE 'FOUR') ; ITYP = 1 ; SINON ; SI ('EGA' TYP_MODE 'AXIS') ; ITYP = 2 ; SINON ; SI ('EGA' TYP_MODE 'PLANDEFO') ; ITYP = 3 ; SINON ; MESSAGE ' ***** ERREUR *****' ; MESSAGE ' On ne traite pas les modèles tridimensionnels.' MESSAGE ' Arrêt de la procédure.' ; QUITTER BOUCERR ; FINSI ; FINSI ; FINSI ; SI (EXISTE TYP_FRON) ; SI ('EGA' TYP_FRON 'WHITE') ; MESSAGE ' Type de frontière : WHITE' ; SI (NU '<EG' 0.45) ; SINON ; S2 = ( 1.0 - (2.0 * NU) ) / ( 2.0 * (1.0 - NU) ) ; S = S2 ** 0.5 ; RAP = 8.0 / (15.0 * PI) ; COEF_A = RAP * ( 5.0 + (2.0 * S) - (2.0 * S2) ) ; COEF_B = RAP * ( 3.0 + (2.0 * S) ) ; FINSI ; SINON ; MESSAGE ' Type de frontière : LYSMER' ; COEF_A = 1. ; COEF_B = 1. ; FINSI ; SINON ; MESSAGE ' Type de frontière : LYSMER' ; COEF_A = 1. ; COEF_B = 1. ; FINSI ; CP = COEF_A * CP ; CS = COEF_B * CS ; * * Boucle sur les éléments * I_EL = 0 ; REPETER BOUCELE NB_ELEM ; I_EL = I_EL + 1 ; ELEM_I = MAIL 'ELEMENT' I_EL ; ELEM_B = 'CHANGER' ELEM_I 'POI1' ; NOEU1 = ELEM_B 'POINT' 1 ; NOEU2 = ELEM_B 'POINT' 2 ; NOEU3 = ELEM_B 'POINT' 3 ; * * Paroi verticale * SI ( ('ABS' (R3 - R1)) '<' 1.E-5 ) ; LONG = 'ABS' (Z3 - Z1) ; AV = RHO * R1 * LONG * 4.0 / 30. ; BV = RHO * R1 * LONG * 2.0 / 30. ; CV = RHO * R1 * LONG * 16.0 / 30. ; DV = RHO * R1 * LONG * -1.0 / 30. ; EV = RHO * R1 * LONG * 2.0 / 30. ; FV = RHO * R1 * LONG * 4.0 / 30. ; SI ('EGA' ITYP 1) ; (BV * CP) 0. 0. (CV * CP) 0. (BV * CS) 0. 0. (CV * CS) 0. 0. (BV * CS) 0. 0. (CV * CS) (DV * CP) 0. 0. (EV * CP) 0. 0. (FV * CP) 0. (DV * CS) 0. 0. (EV * CS) 0. 0. (FV * CS) 0. 0. (DV * CS) 0. 0. (EV * CS) 0. 0. (FV * CS) ; SI ( NHARM EGA 0 ) ; C_HARM = 2.0 * PI ; FINSI ; SI ( NHARM EGA 1 ) ; C_HARM = PI ; FINSI ; LIST_REE = LIST_REE * C_HARM ; SINON ; SI ('EGA' ITYP 2) ; (BV * CP) 0. (CV * CP) 0. (BV * CS) 0. (CV * CS) (DV * CP) 0. (EV * CP) 0. (FV * CP) 0. (DV * CS) 0. (EV * CS) 0. (FV * CS) ; LIST_REE = LIST_REE * 2.0 * PI ; ******************** Modification 12 mai 92 ********************** SINON ; SI ('EGA' ITYP 3) ; (BV * CP) 0. (CV * CP) 0. (BV * CS) 0. (CV * CS) (DV * CP) 0. (EV * CP) 0. (FV * CP) 0. (DV * CS) 0. (EV * CS) 0. (FV * CS) ) / R1 ; FINSI ; ********************************************************************** FINSI ; FINSI ; * * Paroi horizontale * SINON ; SI ( ('ABS' (Z3 - Z1)) '<' 1.E-5 ) ; LONG = 'ABS' (R3 - R1) ; AH = RHO * LONG * (( 7.0 * R1) + R3) / 60.0 ; BH = RHO * LONG * ( 4.0 * R1 ) / 60.0 ; CH = RHO * LONG * ((16.0 * R1) + (16.0 * R3)) / 60.0 ; DH = RHO * LONG * ((-1.0 * R1) + (-1.0 * R3)) / 60.0 ; EH = RHO * LONG * ( 4.0 * R3 ) / 60.0 ; FH = RHO * LONG * ( R1 + ( 7.0 * R3)) / 60.0 ; SI ('EGA' ITYP 1) ; (BH * CS) 0. 0. (CH * CS) 0. (BH * CP) 0. 0. (CH * CP) 0. 0. (BH * CS) 0. 0. (CH * CS) (DH * CS) 0. 0. (EH * CS) 0. 0. (FH * CS) 0. (DH * CP) 0. 0. (EH * CP) 0. 0. (FH * CP) 0. 0. (DH * CS) 0. 0. (EH * CS) 0. 0. (FH * CS) ; SI ( NHARM EGA 0 ) ; C_HARM = 2.0 * PI ; FINSI ; SI ( NHARM EGA 1 ) ; C_HARM = PI ; FINSI ; LIST_REE = LIST_REE * C_HARM ; ******************* Modification 12 mai 92 ********************** SINON ; SI ('EGA' ITYP 2) ; (BH * CS) 0. (CH * CS) 0. (BH * CP) 0. (CH * CP) (DH * CS) 0. (EH * CS) 0. (FH * CS) 0. (DH * CP) 0. (EH * CP) 0. (FH * CP) ; LIST_REE = LIST_REE * 2.0 * PI ; SINON ; SI ('EGA' ITYP 3) ; AH = RHO * LONG * 4.0 / 30. ; BH = RHO * LONG * 2.0 / 30. ; CH = RHO * LONG * 16.0 / 30. ; DH = RHO * LONG * -1.0 / 30. ; EH = RHO * LONG * 2.0 / 30. ; FH = RHO * LONG * 4.0 / 30. ; (BH * CS) 0. (CH * CS) 0. (BH * CP) 0. (CH * CP) (DH * CS) 0. (EH * CS) 0. (FH * CS) 0. (DH * CP) 0. (EH * CP) 0. (FH * CP) ; FINSI ; *********************************************************************** FINSI ; FINSI ; SINON ; MESSAGE ' ***** ERREUR *****' ; MESSAGE ' On ne traite pas des frontières obliques.' ; MESSAGE ' Arrêt de la procèdure.' ; QUITTER BOUCELE ; FINSI ; FINSI ; SI ('EGA' I_EL 1) ; RIGT = 'MANUEL' 'RIGIDITE' 'TYPE' 'AMORTISSEMENT' ELEM_I LIST_MOT LIST_REE ; SINON ; ELEM_I LIST_MOT LIST_REE) ; FINSI ; FIN BOUCELE ; 'FINPROC' RIGT ; ***********************************************************************
© Cast3M 2003 - Tous droits réservés.
Mentions légales