1 : * FRONABS PROCEDUR WANG 96/09/17 21:16:10 2279 2 : 'DEBPROC' FRONABS TAB_VAL*'TABLE ' TYP_FRON/'MOT ' 3 : NHARM/'ENTIER '; 4 : ************************************************************************ 5 : * 6 : * F R O N A B S 7 : * ------------- 8 : * 9 : * FONCTION: 10 : * --------- 11 : * 12 : * Calcule la matrice d'amortissement d'une frontière absorbante. 13 : * 14 : * PHRASE D'APPEL (EN GIBIANE): 15 : * ---------------------------- 16 : * 17 : * RIG1 = FRONABS TAB1 ( TYP_FRON ) NHARM ; 18 : * 19 : * OPERANDES: 20 : * ---------- 21 : * 22 : * TAB1 'TABLE ' indice 'FRONTIERE' : frontière. 23 : * indice 'MASSE_VOLUMIQUE' : masse volumique. 24 : * indice 'POISSON' : coef de poisson. 25 : * indice 'YOUNG' : module d'young. 26 : * TTYP_FRON 'MOT ' type de la frontière utilisée 27 : * type WHITE 28 : * type LYSMER (par défaut) 29 : * NHARM 'ENTIER' numéro du mode FOURIER ( en MODE FOUR ) 30 : * 31 : * RESULTATS: 32 : * ---------- 33 : * 34 : * RIG1 'RIGIDITE' matrice d'amortissement. 35 : * 36 : * 37 : * 38 : * REMARQUE: 39 : * --------- 40 : * On ne traite pas les modèles tridimensionnels ni les frontières 41 : * obliques. 42 : * 43 : * 44 : * 45 : * AUTEUR, DATE DE CREATION: 46 : * ------------------------- 47 : * 48 : * L. V. 13 février 1989 49 : * 50 : * MODIFICATION: 51 : * ------------- 52 : * 53 : * F. WANG 12 mai 1992 54 : * 55 : * - Modification de la matrice d'amortissement de la frontière 56 : * horizontale de l'option axisymetrique 'AXIS' ; 57 : * 58 : * - Creation de frontière absorbante pour le mode de calcul 59 : * déformation plane 'PLANDEFO' . 60 : * 61 : * 62 : ************************************************************************ 63 : * 64 : SI = 'MOT' 'SI' ; SINON = 'MOT' 'SINON' ; 65 : FINSI = 'MOT' 'FINSI' ; 66 : REPETER = 'MOT' 'REPETER'; FIN = 'MOT' 'FIN'; 67 : EXISTE = 'MOT' 'EXISTE' ; 68 : * 69 : MAIL = TAB_VAL.'FRONTIERE' ; 70 : YO = TAB_VAL.'YOUNG' ; 71 : RHO = TAB_VAL.'MASSE_VOLUMIQUE' ; 72 : NU = TAB_VAL.'POISSON' ; 73 : DEUXPI = 2.0 * PI ; 74 : L_NU = 'PROG' 0. 0.05 0.1 0.15 0.2 0.25 0.3 75 : 0.35 0.4 0.45 ; 76 : L_COEFA = 'PROG' 0.959 0.967 0.975 0.982 0.986 0.986 0.986 77 : 0.992 1.007 1.011 ; 78 : L_COEFB = 'PROG' 0.769 0.761 0.756 0.751 0.747 0.744 0.742 79 : 0.740 0.746 0.773 ; 80 : * 81 : G = YO / ( 2.0 * ( 1.0 + NU ) ) ; 82 : CS = ( G / RHO ) ** 0.5 ; 83 : CP = ( ( 2.0 * (1.0 - NU) ) / ( 1.0 - ( 2.0 * NU ) ) ) ** 0.5 ; 84 : CP = CP * CS ; 85 : * 86 : TYP_MODE = 'MOT' ('VALEUR' 'MODE') ; 87 : SI ('EGA' TYP_MODE 'FOUR') ; 88 : LIST_MOT = 'MOTS' 'UR' 'UZ' 'UT' ; 89 : ITYP = 1 ; 90 : SINON ; SI ('EGA' TYP_MODE 'AXIS') ; 91 : LIST_MOT = 'MOTS' 'UR' 'UZ' ; 92 : ITYP = 2 ; 93 : SINON ; SI ('EGA' TYP_MODE 'PLANDEFO') ; 94 : LIST_MOT = 'MOTS' 'UX' 'UY' ; 95 : ITYP = 3 ; 96 : SINON ; 97 : MESSAGE ' ***** ERREUR *****' ; 98 : MESSAGE ' On ne traite pas les modèles tridimensionnels.' 99 : MESSAGE ' Arrêt de la procédure.' ; 100 : QUITTER BOUCERR ; 101 : FINSI ; FINSI ; FINSI ; 102 : SI (EXISTE TYP_FRON) ; 103 : SI ('EGA' TYP_FRON 'WHITE') ; 104 : MESSAGE ' Type de frontière : WHITE' ; 105 : SI (NU '<EG' 0.45) ; 106 : COEF_A = 'IPOL' NU L_NU L_COEFA ; 107 : COEF_B = 'IPOL' NU L_NU L_COEFB ; 108 : SINON ; 109 : S2 = ( 1.0 - (2.0 * NU) ) / ( 2.0 * (1.0 - NU) ) ; 110 : S = S2 ** 0.5 ; 111 : RAP = 8.0 / (15.0 * PI) ; 112 : COEF_A = RAP * ( 5.0 + (2.0 * S) - (2.0 * S2) ) ; 113 : COEF_B = RAP * ( 3.0 + (2.0 * S) ) ; 114 : FINSI ; 115 : SINON ; 116 : MESSAGE ' Type de frontière : LYSMER' ; 117 : COEF_A = 1. ; 118 : COEF_B = 1. ; 119 : FINSI ; 120 : SINON ; 121 : MESSAGE ' Type de frontière : LYSMER' ; 122 : COEF_A = 1. ; 123 : COEF_B = 1. ; 124 : FINSI ; 125 : CP = COEF_A * CP ; 126 : CS = COEF_B * CS ; 127 : * 128 : * Boucle sur les éléments 129 : * 130 : NB_ELEM = 'NBEL' MAIL ; 131 : I_EL = 0 ; 132 : REPETER BOUCELE NB_ELEM ; 133 : I_EL = I_EL + 1 ; 134 : ELEM_I = MAIL 'ELEMENT' I_EL ; 135 : ELEM_B = 'CHANGER' ELEM_I 'POI1' ; 136 : NOEU1 = ELEM_B 'POINT' 1 ; 137 : NOEU2 = ELEM_B 'POINT' 2 ; 138 : NOEU3 = ELEM_B 'POINT' 3 ; 139 : R1 = 'COOR' NOEU1 1 ; 140 : R3 = 'COOR' NOEU3 1 ; 141 : Z1 = 'COOR' NOEU1 2 ; 142 : Z3 = 'COOR' NOEU3 2 ; 143 : * 144 : * Paroi verticale 145 : * 146 : SI ( ('ABS' (R3 - R1)) '<' 1.E-5 ) ; 147 : LONG = 'ABS' (Z3 - Z1) ; 148 : AV = RHO * R1 * LONG * 4.0 / 30. ; 149 : BV = RHO * R1 * LONG * 2.0 / 30. ; 150 : CV = RHO * R1 * LONG * 16.0 / 30. ; 151 : DV = RHO * R1 * LONG * -1.0 / 30. ; 152 : EV = RHO * R1 * LONG * 2.0 / 30. ; 153 : FV = RHO * R1 * LONG * 4.0 / 30. ; 154 : SI ('EGA' ITYP 1) ; 155 : LIST_REE = 'PROG' (AV * CP) 0. (AV * CS) 0. 0. (AV * CS) 156 : (BV * CP) 0. 0. (CV * CP) 0. (BV * CS) 0. 0. 157 : (CV * CS) 0. 0. (BV * CS) 0. 0. (CV * CS) 158 : (DV * CP) 0. 0. (EV * CP) 0. 0. (FV * CP) 0. 159 : (DV * CS) 0. 0. (EV * CS) 0. 0. (FV * CS) 0. 0. 160 : (DV * CS) 0. 0. (EV * CS) 0. 0. (FV * CS) ; 161 : 162 : SI ( NHARM EGA 0 ) ; 163 : C_HARM = 2.0 * PI ; 164 : FINSI ; 165 : SI ( NHARM EGA 1 ) ; 166 : C_HARM = PI ; 167 : FINSI ; 168 : 169 : LIST_REE = LIST_REE * C_HARM ; 170 : 171 : SINON ; SI ('EGA' ITYP 2) ; 172 : LIST_REE = 'PROG' (AV * CP) 0. (AV * CS) 173 : (BV * CP) 0. (CV * CP) 0. (BV * CS) 0. (CV * CS) 174 : (DV * CP) 0. (EV * CP) 0. (FV * CP) 0. 175 : (DV * CS) 0. (EV * CS) 0. (FV * CS) ; 176 : LIST_REE = LIST_REE * 2.0 * PI ; 177 : 178 : ******************** Modification 12 mai 92 ********************** 179 : 180 : SINON ; SI ('EGA' ITYP 3) ; 181 : LIST_REE = ( 'PROG' (AV * CP) 0. (AV * CS) 182 : (BV * CP) 0. (CV * CP) 0. (BV * CS) 0. (CV * CS) 183 : (DV * CP) 0. (EV * CP) 0. (FV * CP) 0. 184 : (DV * CS) 0. (EV * CS) 0. (FV * CS) ) / R1 ; 185 : FINSI ; 186 : ********************************************************************** 187 : FINSI ; FINSI ; 188 : * 189 : * Paroi horizontale 190 : * 191 : SINON ; SI ( ('ABS' (Z3 - Z1)) '<' 1.E-5 ) ; 192 : LONG = 'ABS' (R3 - R1) ; 193 : AH = RHO * LONG * (( 7.0 * R1) + R3) / 60.0 ; 194 : BH = RHO * LONG * ( 4.0 * R1 ) / 60.0 ; 195 : CH = RHO * LONG * ((16.0 * R1) + (16.0 * R3)) / 60.0 ; 196 : DH = RHO * LONG * ((-1.0 * R1) + (-1.0 * R3)) / 60.0 ; 197 : EH = RHO * LONG * ( 4.0 * R3 ) / 60.0 ; 198 : FH = RHO * LONG * ( R1 + ( 7.0 * R3)) / 60.0 ; 199 : 200 : SI ('EGA' ITYP 1) ; 201 : LIST_REE = 'PROG' (AH * CS) 0. (AH * CP) 0. 0. (AH * CS) 202 : (BH * CS) 0. 0. (CH * CS) 0. (BH * CP) 0. 0. 203 : (CH * CP) 0. 0. (BH * CS) 0. 0. (CH * CS) 204 : (DH * CS) 0. 0. (EH * CS) 0. 0. (FH * CS) 0. 205 : (DH * CP) 0. 0. (EH * CP) 0. 0. (FH * CP) 0. 0. 206 : (DH * CS) 0. 0. (EH * CS) 0. 0. (FH * CS) ; 207 : 208 : SI ( NHARM EGA 0 ) ; 209 : C_HARM = 2.0 * PI ; 210 : FINSI ; 211 : SI ( NHARM EGA 1 ) ; 212 : C_HARM = PI ; 213 : FINSI ; 214 : 215 : LIST_REE = LIST_REE * C_HARM ; 216 : 217 : ******************* Modification 12 mai 92 ********************** 218 : 219 : SINON ; SI ('EGA' ITYP 2) ; 220 : LIST_REE = 'PROG' (AH * CS) 0. (AH * CP) 221 : (BH * CS) 0. (CH * CS) 0. (BH * CP) 0. (CH * CP) 222 : (DH * CS) 0. (EH * CS) 0. (FH * CS) 0. 223 : (DH * CP) 0. (EH * CP) 0. (FH * CP) ; 224 : LIST_REE = LIST_REE * 2.0 * PI ; 225 : 226 : SINON ; SI ('EGA' ITYP 3) ; 227 : AH = RHO * LONG * 4.0 / 30. ; 228 : BH = RHO * LONG * 2.0 / 30. ; 229 : CH = RHO * LONG * 16.0 / 30. ; 230 : DH = RHO * LONG * -1.0 / 30. ; 231 : EH = RHO * LONG * 2.0 / 30. ; 232 : FH = RHO * LONG * 4.0 / 30. ; 233 : 234 : LIST_REE = 'PROG' (AH * CS) 0. (AH * CP) 235 : (BH * CS) 0. (CH * CS) 0. (BH * CP) 0. (CH * CP) 236 : (DH * CS) 0. (EH * CS) 0. (FH * CS) 0. 237 : (DH * CP) 0. (EH * CP) 0. (FH * CP) ; 238 : FINSI ; 239 : *********************************************************************** 240 : 241 : FINSI ; FINSI ; 242 : SINON ; 243 : MESSAGE ' ***** ERREUR *****' ; 244 : MESSAGE ' On ne traite pas des frontières obliques.' ; 245 : MESSAGE ' Arrêt de la procèdure.' ; 246 : QUITTER BOUCELE ; 247 : FINSI ; FINSI ; 248 : 249 : SI ('EGA' I_EL 1) ; 250 : RIGT = 'MANUEL' 'RIGIDITE' 'TYPE' 'AMORTISSEMENT' ELEM_I 251 : LIST_MOT LIST_REE ; 252 : SINON ; 253 : RIGT = RIGT 'ET' ('MANUEL' 'RIGIDITE' 'TYPE' 'AMORTISSEMENT' 254 : ELEM_I LIST_MOT LIST_REE) ; 255 : FINSI ; 256 : FIN BOUCELE ; 257 : 258 : 'FINPROC' RIGT ; 259 : 260 : *********************************************************************** 261 :
© Cast3M 2003 - All rights reserved.
Disclaimer