* 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