1 : * DECONV3D PROCEDUR JC220346 12/09/12 21:15:06 7501 2 : 'DEBPROC' DECONV3D COUCHE*'TABLE' PC*'POINT' FOND_SOL*'MAILLAGE' 3 : MOD_SOL*MMODEL MAT_SOL*MCHAML DIR*'MOT' GAMMAO*'EVOLUTIO' 4 : F1*'FLOTTANT'F2*'FLOTTANT' FC/'FLOTTANT' P_GAMMA/'TABLE' ; 5 : 6 : ************************************************************************ 7 : * 8 : * D E C O N V 3 D 9 : * ----------------- 10 : * 11 : * FONCTION: 12 : * --------- 13 : * 14 : * Cette procedure permet d'effectuer des calculs sismiques 15 : * d'interaction sol-structure (ISS) en 3D par la methode des 16 : * elements finis. 17 : * 18 : * PHRASE D'APPEL (EN GIBIANE): 19 : * ---------------------------- 20 : * 21 : * TABRESU = DECONV3D COUCHE PC FOND_SOL MOD_SOL MAT_SOL DIR 22 : * GAMMAO F1 F2 (FC) (P_GAMMA) 23 : * 24 : * OPERANDES: 25 : * ---------- 26 : * 27 : * COUCHE 'TABLE' : table a double indice 28 : * 29 : * COUCHE.I.'indice' : donnees pour la ieme couche du sol 30 : * 31 : * indice 'FRONTIERE' 'MAILLAGE' : frontiere verticale 32 : * indice 'MASSE_VOLUMIQUE' 'FLOTTANT' : masse volumique 33 : * indice 'POISSON' 'FLOTTANT' : coefficient de Poisson 34 : * indice 'YOUNG' 'FLOTTANT' : module d'Young 35 : * indice 'AMORTISSEMENT 'FLOTTANT' : amortissement reduit 36 : * 37 : * PC 'MAILLAGE' : point de reference situe au milieu du millage 38 : * de solou sur l'axe de symetrie si calcul sur 39 : * la moitie et le quart du systeme 40 : * FOND_SOL 'MAILLAGE' : frontiere horizontale inferieure du sol 41 : * MOD_SOL 'MMODEL' : modele du sol 42 : * MAT_SOL 'MCHAML' : materiau du sol 43 : * DIR 'MOT' : direction de l'acceleration GAMMAO 44 : * 'HORI' pour la direction horizontale 45 : * 'VERT' pour la direction verticale 46 : * GAMMAO 'EVOLUTIO' : acceleration du 'champ libre' en surface 47 : * F1, F2 'FLOTTANT' : frequences sur lesquelles l'amortissement 48 : * : reduit est ajuste suivant le modele de 49 : * RAYLEIGH 50 : * FC 'FLOTTANT' : frequence de coupure pour la deconvolution, 51 : * par defaut FC = 50 Hz 52 : * P_GAMMA 'TABLE' : points sur la frontiere verticale pour 53 : * lesquels on desire sortir les accelerogrammes 54 : * 55 : * RESULTATS: 56 : * ---------- 57 : * TABRESU 'TABLE' : table qui contient les resultats du calcul 58 : * 59 : * indice 'CHAR' 'CHARGEMENT' : excitation sur la frontiere du sol 60 : * indice 'AMOR' 'RIGIDITE' : frontiere absorbante 61 : * indice 'DEFO' 'EVOLUTIO' : deformation maximale en fonction 62 : * de la profondeur 63 : * indice 'ACCE' 'TABLE' : table qui contient les accelerations 64 : * des points definis dans P_GAMMA 65 : * indice 'PAS' 'FLOTTANT' 66 : * indice 'FCDYN' 'FLOTTANT' : pas de temps et frequence de coupure 67 : * a utiliser pour le calcul de 68 : * l'interaction sol-structure 69 : * a l'aide de la procedure DYNAMIC 70 : * 71 : * 72 : * 73 : * AUTEUR, DATE DE CREATION ET DE MODIFICATION: 74 : * -------------------------------------------- 75 : * 76 : * F. WANG 20/05/2009 : Creation. 77 : * F. WANG 07/10/2010 : Mise a zero des vitesses initiales 78 : * au sens moyen sur les 70 premiers pas 79 : * eliminant ainsi la rotation du bloc de sol, 80 : * Changement de format du chargement reduisant 81 : * largement le temps de calcul dynamique. 82 : * F. WANG 01/02/2012 : Correction d'un bug MAT_S -> MAT_SOL, 83 : * Elimination des accents dans les 84 : * commentaires pour eviter des problemes 85 : * d'affichage. 86 : ************************************************************************ 87 : 88 : SOL = 'EXTR' MOD_SOL 'MAILLAGE'; 89 : 90 : * Verification du maillage de la frontiere du sol : 91 : * Types d'elements de frontiere : QUA4 + TRI3 ou QUA8 + TRI6 92 : 93 : NB_COU = 'DIME' COUCHE; 94 : FRSOL = FOND_SOL; 95 : 96 : I = 1; 97 : 'REPE' BCL0 NB_COU; 98 : FRSOL = FRSOL 'ET' COUCHE.I.'FRONTIERE'; 99 : I = I + 1; 100 : 'FIN' BCL0; 101 : 102 : LTYPF = 'ELEM' FRSOL 'TYPE'; 103 : 104 : 'SI' ((DIME LTYPF) > 2); 105 : 'SAUT' 2 'LIGNE' ; 106 : 'MESS' '***** ARRET DE LA PROCEDURE DECONV3D *****'; 107 : 'MESS' '***** FRONTIERE : MAILLAGE INCORRECT *****'; 108 : 'SAUT' 2 'LIGNE' ; 109 : 'QUIT' DECONV3D; 110 : 'FINSI'; 111 : 112 : 'SI' ((DIME LTYPF) 'EGA' 2); 113 : TYPF1 = 'EXTR' LTYPF 1; 114 : TYPF2 = 'EXTR' LTYPF 2; 115 : 'SI' ((('EGA' TYPF1 'QUA4') ET ('EGA' TYPF2 'TRI3')) OU 116 : (('EGA' TYPF1 'TRI3') ET ('EGA' TYPF2 'QUA4'))); 117 : TY1 = 'CUB8'; 118 : TY2 = 'PRI6'; 119 : 'SINON'; 120 : 'SI' ((('EGA' TYPF1 'QUA8') ET ('EGA' TYPF2 'TRI6')) OU 121 : (('EGA' TYPF1 'TRI6') ET ('EGA' TYPF2 'QUA8'))); 122 : TY1 = 'CU20'; 123 : TY2 = 'PR15'; 124 : 'SINON'; 125 : 'SAUT' 2 'LIGNE' ; 126 : 'MESS' '***** ARRET DE LA PROCEDURE DECONV3D *****'; 127 : 'MESS' '***** FRONTIERE : ELEMENTS INCOMPATIBLES *****'; 128 : 'SAUT' 2 'LIGNE' ; 129 : 'QUIT' DECONV3D; 130 : 'FINSI'; 131 : 'FINSI'; 132 : 'FINSI'; 133 : 134 : 'SI' ((DIME LTYPF) 'EGA' 1); 135 : TYPF1 = 'EXTR' LTYPF 1; 136 : 'SI' (('EGA' TYPF1 'QUA4') OU ('EGA' TYPF1 'TRI3')); 137 : TY1 = 'CUB8'; 138 : TY2 = 'PRI6'; 139 : 'SINON'; 140 : 'SI' (('EGA' TYPF1 'QUA8') OU ('EGA' TYPF1 'TRI6')); 141 : TY1 = 'CU20'; 142 : TY2 = 'PR15'; 143 : 'SINON'; 144 : 'SAUT' 2 'LIGNE' ; 145 : 'MESS' '***** ARRET DE LA PROCEDURE DECONV3D *****'; 146 : 'MESS' '***** FRONTIERE : ELEMENTS INCOMPATIBLES *****'; 147 : 'SAUT' 2 'LIGNE' ; 148 : 'QUIT' DECONV3D; 149 : 'FINSI'; 150 : 'FINSI'; 151 : 'FINSI'; 152 : 153 : 'OPTI' 'ELEM' TY1 ; 154 : 155 : 'SAUT' 5 'LIGNE' ; 156 : 'MESS' '**********************************************************' ; 157 : 'MESS' '* *' ; 158 : 'MESS' '* CALCUL DU CHAMP SISMIQUE INCIDENT PAR LA METHODE *' ; 159 : 'MESS' '* DE LA DECONVOLUTION *' ; 160 : 'MESS' '* *' ; 161 : 'MESS' '**********************************************************' ; 162 : 'SAUT' 2 'LIGNE' ; 163 : 'MESS' 'CARACTERISTIQUES MECANIQUES DU SOL' ; 164 : 165 : NB_COU = 'DIME' COUCHE ; 166 : I = 0 ; 167 : 'REPE' BOUCL0 NB_COU ; 168 : I = I + 1 ; 169 : E_I = COUCHE.I.'YOUNG' ; 170 : NU_I = COUCHE.I.'POISSON' ; 171 : COUCHE.I.'MODULE_G' = E_I / ( 2. * ( 1. + NU_I ) ) ; 172 : CS_I = ( COUCHE.I.'MODULE_G' / COUCHE.I.'MASSE_VOLUMIQUE' ) ** .5 ; 173 : CP_I = ((2.0 * (1.0 - NU_I))/(1.0 - (2.0 * NU_I))) ** 0.5 ; 174 : CP_I = CP_I * CS_I ; 175 : FR_I = COUCHE.I.'FRONTIERE' ; 176 : Z_I = 'COOR' 3 FR_I ; 177 : Z_MAX = 'MAXI' Z_I ; 178 : Z_MIN = 'MINI' Z_I ; 179 : COUCHE.I.'EPAISSEUR' = Z_MAX - Z_MIN ; 180 : 181 : 'SAUT' 'LIGNE' ; 182 : 'MESS' 'COUCHE NUMERO ' I ; 183 : 'SAUT' 'LIGNE' ; 184 : 'MESS' 'EPAISSEUR DE LA COUCHE H ' COUCHE.I.'EPAISSEUR' ; 185 : 'MESS' 'MODULE D"YOUNG E ' COUCHE.I.'YOUNG' ; 186 : 'MESS' 'MASSE VOLUMIQUE RHO' COUCHE.I.'MASSE_VOLUMIQUE' ; 187 : 'MESS' 'COEFFICIENT DE POISSON NU ' COUCHE.I.'POISSON' ; 188 : 'MESS' 'VITESSE DES ONDES S CS ' CS_I ; 189 : 'MESS' 'VITESSE DES ONDES P CP ' CP_I ; 190 : 'MESS' 'AMORTISSEMENT EQUIVALENT KSI' COUCHE.I.'AMORTISSEMENT' ; 191 : 'FIN' BOUCL0 ; 192 : 193 : ************* Construction d'une couche de sol enveloppe *************** 194 : * 195 : * La couche enveloppe est construite a l'exterieur de la 196 : * frontiere du sol (en utilisant le point de reference PC) 197 : * 198 : ************************************************************************ 199 : 200 : 'SAUT' 3 'LIGNE' ; 201 : 'MESS' 'CONSTRUCTION D"UNE ENVELOPPE DE SOL' ; 202 : A_I = 'MESU' FR_I 'SURF' ; 203 : NE_I = 'NBEL' FR_I ; 204 : DR = (A_I/NE_I) ** 0.5 ; 205 : XMAX = 'MAXI' 'ABS' (('COOR' 1 FR_I) - ('COOR' 1 PC)) ; 206 : YMAX = 'MAXI' 'ABS' (('COOR' 2 FR_I) - ('COOR' 2 PC)) ; 207 : R_FR = ((XMAX**2) + (YMAX**2)) ** 0.5 ; 208 : RAPP = (R_FR + DR) / R_FR ; 209 : 210 : 'TITR' 'ENVELOPPE DE SOL POUR LA DECONVOLUTION (EN ROSE)' ; 211 : 212 : COLONN = 'TABLE' ; 213 : COLMOD = 'TABLE' ; 214 : COLMAT = 'TABLE' ; 215 : COLMAS = 'TABLE' ; 216 : COLRIG = 'TABLE' ; 217 : COLBLO = 'TABLE' ; 218 : COLAMO = 'TABLE' ; 219 : 220 : 'SI' ( 'NON' ( 'EXIS' F1 ) ) ; 221 : F1 = 1.0 ; 222 : F2 = 25.0 ; 223 : 'FINSI' ; 224 : 'MESS' 'AMORTISSEMENT DE RAYLEIGH POUR LE SOL' ; 225 : 'MESS' 'F1 = ' F1 'Hz F2 = ' F2 'Hz' ; 226 : ALPHA = PI * 4 * F1 * F2 / ( F1 + F2 ) ; 227 : BETA = 1 / ( PI * ( F1 + F2 ) ) ; 228 : 229 : I = 0 ; 230 : 'REPE' BOUCL1 NB_COU ; 231 : I = I + 1 ; 232 : KSI = COUCHE.I.'AMORTISSEMENT' ; 233 : FR_I = COUCHE.I.'FRONTIERE' ; 234 : FR_I2 = (FR_I 'HOMO' RAPP PC) 'AFFI' (1./RAPP) 235 : PC ('PLUS' PC (0 0 -1)) ; 236 : COLONN.I = FR_I 'VOLU' 1 FR_I2 ; 237 : COLMOD.I = 'MODE' ( COLONN.I ) 'MECANIQUE' 'ELASTIQUE' 238 : 'ISOTROPE' TY1 TY2 ; 239 : COLMAT.I = 'MATE' ( COLMOD.I ) 'YOUNG' ( COUCHE.I.'YOUNG' ) 240 : 'NU' ( COUCHE.I.'POISSON' ) 241 : 'RHO' ( COUCHE.I.'MASSE_VOLUMIQUE' ) ; 242 : COLMAS.I = 'MASS' ( COLMOD.I ) ( COLMAT.I ) ; 243 : COLRIG.I = 'RIGI' ( COLMOD.I ) ( COLMAT.I ) ; 244 : 'SI' (('EGA' DIR 'UX') OU ('EGA' DIR 'UY')) ; 245 : COLBLO.I = 'BLOQ' 'UZ' COLONN.I ; 246 : 'SINON' ; 247 : 'SI' ('EGA' DIR 'UZ') ; 248 : COLBLO.I = 'BLOQ' 'UX' 'UY' COLONN.I ; 249 : 'FINSI' ; 250 : 'FINSI' ; 251 : COLAMO.I = KSI * (( ALPHA * ( COLMAS.I ) ) 'ET' 252 : ( BETA * ( COLRIG.I 'ET' COLBLO.I ))) ; 253 : 254 : 'SI' ( I 'EGA' 1 ) ; 255 : FRON = COUCHE.I.'FRONTIERE' ; 256 : 257 : COL1 = COLONN.I ; 258 : MOD1 = COLMOD.I ; 259 : MAT1 = COLMAT.I ; 260 : MAS1 = COLMAS.I ; 261 : RIG1 = COLRIG.I ; 262 : BLO1 = COLBLO.I ; 263 : AMO1 = COLAMO.I ; 264 : 'SINON' ; 265 : FRON = FRON 'ET' ( COUCHE.I.'FRONTIERE' ) ; 266 : COL1 = COL1 'ET' ( COLONN.I ) ; 267 : MOD1 = MOD1 'ET' ( COLMOD.I ) ; 268 : MAT1 = MAT1 'ET' ( COLMAT.I ) ; 269 : MAS1 = MAS1 'ET' ( COLMAS.I ) ; 270 : RIG1 = RIG1 'ET' ( COLRIG.I ) ; 271 : BLO1 = BLO1 'ET' ( COLBLO.I ) ; 272 : AMO1 = AMO1 'ET' ( COLAMO.I ) ; 273 : 'FINSI' ; 274 : 'FIN' BOUCL1 ; 275 : 276 : 'ELIM' COL1 0.01 ; 277 : COL1 = COL1 'COUL' 'ROSE' ; 278 : RIGT = RIG1 'ET' BLO1 ; 279 : 'SI' ( 'EXIS' SOL ) ; 280 : 'TRAC' ( SOL 'ET' COL1 ) 'FACE' 'NCLK' ; 281 : 'SINON' ; 282 : 'TRAC' COL1 'FACE' 'NCLK' ; 283 : 'FINSI' ; 284 : 285 : * Amortisseurs a la base de l'enveloppe 286 : 287 : 'SAUT' 'LIGNE' ; 288 : 'MESS' 'AMORTISSEURS A LA BASE DE L ENVELOPPE' ; 289 : 290 : ZBA = 'MINI' ('COOR' 3 COLONN.NB_COU) ; 291 : EBA = 'ENVE' COLONN.NB_COU ; 292 : PBA = EBA 'POIN' 'PLAN' (0 0 ZBA) (1 0 ZBA) 293 : (0 1 ZBA) 0.001 ; 294 : SBAS = EBA 'ELEM' 'APPUYE' 'STRICTEMENT' PBA ; 295 : AMO_BAS = AMOR COLMOD.NB_COU SBAS COLMAT.NB_COU ; 296 : AMOT = AMO_BAS 'ET' AMO1 ; 297 : 298 : * Point surface libre et point base du sol 299 : 300 : ZSUR = 'MAXI' ('COOR' 3 (COUCHE. 1 . 'FRONTIERE')) ; 301 : PSUR = (COUCHE. 1 . 'FRONTIERE') 'POIN' 'PLAN' (0 0 ZSUR) 302 : (1 0 ZSUR) (0 1 ZSUR) 0.001 ; 303 : P_SUR = PSUR 'POINT' 'INITIAL' ; ; 304 : 305 : ZBAS = 'MINI' ('COOR' 3 (COUCHE.NB_COU.'FRONTIERE')) ; 306 : PBAS = (COUCHE.NB_COU.'FRONTIERE') 'POIN' 'PLAN' (0 0 ZBAS) 307 : (1 0 ZBAS) (0 1 ZBAS) 0.001 ; 308 : P_BAS = PBAS 'POINT' 'INITIAL' ; 309 : 310 : * Renumerotation des noeuds sur la frontiere : TASSER "FRON" 311 : 312 : 'TASS' FRON ; 313 : NB_NOEU = 'NBNO' FRON ; 314 : 'MESS' 'NOMBRE DE NOEUDS SUR LA FRONTIERE :' NB_NOEU ; 315 : 316 : * Acces aux noeuds sur la frontiere 317 : 318 : NUM_SUR = 'NOEU' P_SUR ; 319 : NUM_BAS = 'NOEU' P_BAS ; 320 : 321 : POI_FRO = 'TABLE' ; 322 : I = 0 ; 323 : 'REPE' BOUCL2 NB_NOEU ; 324 : I = I + 1 ; 325 : POI_FRO.I = 'NOEU' I ; 326 : 'FIN' BOUCL2 ; 327 : 328 : 329 : ******************* Reponse dynamique dE L'enveloppe ***************** 330 : * 331 : * Pour eviter des problemes de precision lies a l'interpolation du 332 : * chargement produit par cette procedure, le pas de temps utilise ici 333 : * pour la deconvolution sera egalement utilise pour le calcul d'ISS. 334 : * 335 : * Le pas de temps est egale a 1/2, 1/4, 1/8, ... de celui de GAMMAO 336 : * pour eviter des erreurs d'interpolation sur le signal d'entree. Il 337 : * doit etre defini de sorte que la frequence de coupure utilisee dans 338 : * la procedure DYNAMIC est au moins 4 fois FC. 339 : * 340 : * Duree de calcul 341 : * 342 : * sol monocouche : 3 aller-retours onde S 343 : * sol multicouche : 5 aller-retours onde S (prise en compte des 344 : * reflections sur les interfaces des couches) 345 : * 346 : ************************************************************************ 347 : 348 : * Frequence de coupure FC 349 : 350 : 'SI' ( 'NON' ( 'EXIS' FC ) ) ; 351 : FC = 50.0 ; 352 : 'FINSI' ; 353 : 'SAUT' 'LIGNE' ; 354 : 'MESS' 'FREQUENCE DE COUPURE = ' FC 'Hz' ; 355 : 356 : 'SAUT' 3 'LIGNE' ; 357 : 'MESS' 'REPONSE DYNAMIQUE DE L ENVELOPPE' ; 358 : 'SAUT' 'LIGNE' ; 359 : T_GAMO = 'EXTR' GAMMAO 'ABSC' ; 360 : A_GAMO = 'EXTR' GAMMAO 'ORDO' ; 361 : NP = 'DIME' T_GAMO ; 362 : TEM1 = 'EXTR' T_GAMO 1 ; 363 : TEM2 = 'EXTR' T_GAMO 2 ; 364 : TEMNP = 'EXTR' T_GAMO NP ; 365 : PAS_TEM = TEM2 - TEM1 ; 366 : PAS_2FC = 1.0 / ( 8 * FC ) ; 367 : 368 : IDIV = 0 ; 369 : 'REPE' BB1 ; 370 : ERR = (( PAS_TEM / ( 2**IDIV )) - PAS_2FC ) / PAS_2FC ; 371 : 'SI' ( ERR < 0.01 ) ; 372 : 'QUIT' BB1 ; 373 : 'FINSI' ; 374 : IDIV = IDIV + 1 ; 375 : 'FIN' BB1 ; 376 : PAS_TEM = PAS_TEM / (2**IDIV) ; 377 : 378 : 379 : 'SI' ( NB_COU 'EGA' 1 ) ; 380 : G = ( COUCHE. 1 . 'MODULE_G' ) ; 381 : CS = ( G / ( COUCHE. 1 . 'MASSE_VOLUMIQUE' ) ) ** 0.5 ; 382 : DUREE = 6.0 * ( COUCHE. 1 . 'EPAISSEUR' ) / CS ; 383 : 384 : 'SINON' ; 385 : DUREE = 0.0 ; 386 : I = 0 ; 387 : 'REPE' BOUCD NB_COU ; 388 : I = I + 1 ; 389 : G = ( COUCHE.I.'MODULE_G' ) ; 390 : CS = ( G / ( COUCHE.I.'MASSE_VOLUMIQUE' ) ) ** 0.5 ; 391 : DUREE = DUREE + ( 10.0 * ( COUCHE.I.'EPAISSEUR' ) / CS ) ; 392 : 'FIN' BOUCD ; 393 : 'FINSI' ; 394 : 395 : * Impulsion de force horizontale a la base de l'enveloppe 396 : * Sa transforme de Fourier doit etre non nulle dans 397 : * l'intervalle (0, FC). On a DT = 7 * PAS_TEM 398 : 399 : 'SAUT' 'LIGNE' ; 400 : 'MESS' 'FORCE APPLIQUEE A LA BASE DE L ENVELOPPE' ; 401 : 'TITRE' 'FORCE APPLIQUEE A LA BASE DE L ENVELOPPE' ; 402 : DT = 7 * PAS_TEM ; 403 : NT = 300 ; 404 : L_TIM = 'PROG' 0.0 'PAS' DT 'NPAS' NT ; 405 : L_FOR = 'PROG' 0. 1.E5 0. -1.E5 297 * 0. ; 406 : EV_FOR = 'EVOL' 'MANU' 'TEMPS(S)' L_TIM 'FORCE(N)' L_FOR ; 407 : 408 : DUREE = DUREE + ( 4. * DT ) ; 409 : 'SI' ( DUREE < ( 8. * DT ) ) ; 410 : DUREE = 8. * DT ; 411 : 'FINSI' ; 412 : NB_PAS = 'ENTI' ( DUREE / PAS_TEM ) ; 413 : DUREE = NB_PAS * PAS_TEM ; 414 : 'DESS' EV_FOR 'XBOR' 0.0 DUREE 'NCLK' ; 415 : 'SAUT' 'LIGNE' ; 416 : 'MESS' 'CALCUL DYNAMIQUE POUR LA DECONVOLUTION' ; 417 : 'MESS' 'PAS DE CALCUL = ' PAS_TEM ' DUREE = ' DUREE ; 418 : 419 : 'SI' ( 'EGA' DIR 'UX' ) ; 420 : FOR_P = 'PRES' 'MASS' COLMOD.NB_COU 1.0 SBAS ; 421 : FOR_BAS = 'EXCO' 'FZ' FOR_P 'FX' ; 422 : 'SINON' ; 423 : 424 : 'SI' ( 'EGA' DIR 'UY' ) ; 425 : FOR_P = 'PRES' 'MASS' COLMOD.NB_COU 1.0 SBAS ; 426 : FOR_BAS = 'EXCO' 'FZ' FOR_P 'FY' ; 427 : 'SINON' ; 428 : 429 : 'SI' ( 'EGA' DIR 'UZ' ) ; 430 : FOR_BAS = 'PRES' 'MASS' COLMOD.NB_COU 1.0 SBAS ; 431 : 'FINSI' ; 432 : 'FINSI' ; 433 : 'FINSI' ; 434 : 435 : CHA_BAS = 'CHAR' FOR_BAS EV_FOR ; 436 : 'LIST' FOR_BAS ; 437 : 438 : CH_DEPI = 'MANU' 'CHPO' 3 COL1 'UX' 0. 'UY' 0. 'UZ' 0. ; 439 : CH_VITI = 'MANU' 'CHPO' 3 COL1 'UX' 0. 'UY' 0. 'UZ' 0. ; 440 : 441 : LINST ='PROG' TEM1 'PAS' PAS_TEM 'NPAS' (NB_PAS - 1) ; 442 : FCDYN = 1.0 / (4 * PAS_TEM) ; 443 : 444 : TAB_DYN ='TABLE' ; 445 : TAB_DYN.'DEBU' = TEM1 ; 446 : TAB_DYN.'VITE' = CH_VITI ; 447 : TAB_DYN.'DEPL' = CH_DEPI ; 448 : TAB_DYN.'CHAR' = CHA_BAS ; 449 : TAB_DYN.'RIGI' = RIGT ; 450 : TAB_DYN.'MASS' = MAS1 ; 451 : TAB_DYN.'AMOR' = AMOT ; 452 : TAB_DYN.'INST' = LINST ; 453 : TAB_DYN.'FREQ' = FCDYN ; 454 : 455 : 'TEMP' ; 456 : RESU = DYNAMIC TAB_DYN ; 457 : 'SAUT' 'LIGNE' ; 458 : 'MESS' 'FIN DE CALCUL DYNAMIQUE SUR L ENVELOPPE' ; 459 : 'MENA' ; 460 : 'TASS' FRON ; 461 : 'TEMP' ; 462 : 463 : * Deplacements, vitesses, deformations et reactions 464 : 465 : 'SI' ( 'EGA' DIR 'UX' ) ; 466 : UMOT = 'MOT' 'UX' ; 467 : EMOT = 'MOT' 'GAXZ' ; 468 : FMOT = 'MOT' 'FZ' ; 469 : 'SINON' ; 470 : 471 : 'SI' ( 'EGA' DIR 'UY' ) ; 472 : UMOT = 'MOT' 'UY' ; 473 : EMOT = 'MOT' 'GAYZ' ; 474 : FMOT = 'MOT' 'FZ' ; 475 : 'SINON' ; 476 : 477 : 'SI' ( 'EGA' DIR 'UZ' ) ; 478 : UMOT = 'MOT' 'UZ' ; 479 : EMOT = 'MOT' 'EPZZ' ; 480 : FMOT1 = 'MOT' 'FX' ; 481 : FMOT2 = 'MOT' 'FY' ; 482 : 'FINSI' ; 483 : 'FINSI' ; 484 : 'FINSI' ; 485 : 486 : 'SAUT' 3 'LIGNE' ; 487 : 'MESS' 'FONCTION DE TRANSFERT POUR LES DEPLACEMENTS, LES VITESSES,' ; 488 : 'MESS' 'LES DEFORMATIONS DE CISAILLEMENT ET LES REACTIONS ' ; 489 : 490 : U_FRON = 'TABLE' ; 491 : V_FRON = 'TABLE' ; 492 : E_FRON = 'TABLE' ; 493 : R_FRON = 'TABLE' ; 494 : R1_FRON = 'TABLE' ; 495 : R2_FRON = 'TABLE' ; 496 : 497 : J = 0 ; 498 : 'REPE' BOUCL3 NB_NOEU ; 499 : J = J + 1 ; 500 : U_FRON.J = 'PROG' 0.0 ; 501 : V_FRON.J = 'PROG' 0.0 ; 502 : E_FRON.J = 'PROG' 0.0 ; 503 : R_FRON.J = 'PROG' 0.0 ; 504 : R1_FRON.J = 'PROG' 0.0 ; 505 : R2_FRON.J = 'PROG' 0.0 ; 506 : 'FIN' BOUCL3 ; 507 : 508 : L_TEM = 'PROG' 0.0 ; 509 : I_TEM = 1 ; 510 : 'REPE' BOUCL4 ( NB_PAS - 1 ) ; 511 : I_TEM = I_TEM + 1 ; 512 : L_TEM = L_TEM 'ET' ( 'PROG' ( RESU.I_TEM.'TEMP' ) ) ; 513 : CHD_I = RESU.I_TEM.'DEPL' ; 514 : CHV_I = RESU.I_TEM.'VITE' ; 515 : CHE_I ='CHAN' 'CHPO' MOD1 ( 'EPSI' MOD1 CHD_I MAT1 ) ; 516 : CHR_I ='REAC' BLO1 CHD_I ; 517 : 518 : 'SI' (('EGA' DIR 'UX') OU ('EGA' DIR 'UY')) ; 519 : J = 0 ; 520 : 'REPE' BOUCL4_1 NB_NOEU ; 521 : J = J + 1 ; 522 : U_FRON.J = U_FRON.J 'ET' ('PROG' ('EXTR' CHD_I POI_FRO.J UMOT)) ; 523 : V_FRON.J = V_FRON.J 'ET' ('PROG' ('EXTR' CHV_I POI_FRO.J UMOT)) ; 524 : E_FRON.J = E_FRON.J 'ET' ('PROG' ('EXTR' CHE_I POI_FRO.J EMOT)) ; 525 : R_FRON.J = R_FRON.J 'ET' ('PROG' ('EXTR' CHR_I POI_FRO.J FMOT)) ; 526 : 'FIN' BOUCL4_1 ; 527 : 'SINON' ; 528 : 529 : 'SI' ('EGA' DIR 'UZ') ; 530 : J = 0 ; 531 : 'REPE' BOUCL4_2 NB_NOEU ; 532 : J = J + 1 ; 533 : U_FRON.J = U_FRON.J 'ET' ('PROG' ('EXTR' CHD_I POI_FRO.J UMOT)) ; 534 : V_FRON.J = V_FRON.J 'ET' ('PROG' ('EXTR' CHV_I POI_FRO.J UMOT)) ; 535 : E_FRON.J = E_FRON.J 'ET' ('PROG' ('EXTR' CHE_I POI_FRO.J EMOT)) ; 536 : R1_FRON.J = R1_FRON.J 'ET' ('PROG' ('EXTR' CHR_I POI_FRO.J FMOT1)) ; 537 : R2_FRON.J = R2_FRON.J 'ET' ('PROG' ('EXTR' CHR_I POI_FRO.J FMOT2)) ; 538 : 'FIN' BOUCL4_2 ; 539 : 540 : 'FINSI' ; 541 : 'FINSI' ; 542 : 'FIN' BOUCL4 ; 543 : 544 : * TFR de l'acceleration en surface GAMMAO 545 : 546 : 'TITRE' 'TRANSFORMATION DE FOURIER DE GAMMAO' ; 547 : NP = 'DIME' ( 'EXTR' GAMMAO 'ABSC' ) ; 548 : XX = ( LOG NP ) / ( LOG 2 ) ; 549 : NN = 'ENTI' XX ; 550 : 'SI' ( XX > ( 1.0 * NN ) ) ; 551 : NN = NN + 1 ; 552 : 'FINSI' ; 553 : 554 : TF_GAMO = 'TFR' NN GAMMAO 'MOPH' ; 555 : FR_GAMO = 'EXTR' TF_GAMO 'ABSC' ; 556 : MO_GAMO = 'EXTR' TF_GAMO 'ORDO' 1 ; 557 : PH_GAMO = 'EXTR' TF_GAMO 'ORDO' 2 ; 558 : NFREQ = 'DIME' FR_GAMO ; 559 : DFREQ = 'EXTR' FR_GAMO 2 ; 560 : FREQN = 'EXTR' FR_GAMO NFREQ ; 561 : MODUN = 'EXTR' MO_GAMO NFREQ ; 562 : 563 : 'SI' ( IDIV NEG 0 ) ; 564 : NN = NN + IDIV ; 565 : 'REMP' MO_GAMO NFREQ ( MODUN / 2.0 ) ; 566 : 567 : NFREQ1 = (2**(NN - 1)) + 1 ; 568 : FR_GAMO = 'PROG' 0.0 'PAS' DFREQ 'NPAS' ( NFREQ1 - 1 ) ; 569 : LIST ( DIME FR_GAMO ) ; 570 : MO_GAMO = MO_GAMO 'ET' ('PROG' (NFREQ1 - NFREQ ) * 0.0) ; 571 : LIST ( DIME MO_GAMO ) ; 572 : PH_GAMO = PH_GAMO 'ET' ('PROG' (NFREQ1 - NFREQ ) * 0.0) ; 573 : LIST ( DIME PH_GAMO ) ; 574 : TF_GAMO = 'EVOL' 'COMP' 'MOPH' 'FREQ(HZ)' FR_GAMO 'MODULE' 575 : MO_GAMO 'PHASE' PH_GAMO ; 576 : 'FINSI' ; 577 : 578 : * TFR du deplacement en surface DEPLO 579 : 580 : 'TITRE' 'TFR DU DEPLACEMENT EN SURFACE ' ; 581 : OMEGA2 = ( FR_GAMO * 2. * PI ) ** 2 ; 582 : 'REMP' OMEGA2 1 1.0 ; 583 : MOD = MO_GAMO / ( OMEGA2 * ( -1 ) ) ; 584 : 'REMP' MOD 1 0.0 ; 585 : TF_DEPLO = 'EVOL' 'COMP' 'MOPH' 'FREQ(HZ)' FR_GAMO 586 : 'MODULE' MOD 'PHASE' PH_GAMO ; 587 : 588 : * Fonction de transfert 589 : 590 : H_DEPL = 'TABLE' ; 591 : H_VITE = 'TABLE' ; 592 : H_EPSI = 'TABLE' ; 593 : H_REAC = 'TABLE' ; 594 : H1_REAC = 'TABLE' ; 595 : H2_REAC = 'TABLE' ; 596 : 597 : 'TITRE' 'DEPLACEMENT EN SURFACE' ; 598 : UO = 'EVOL' 'MANU' 'TEMPS' L_TEM 'DEPL' U_FRON.NUM_SUR ; 599 : TF_UO = 'TFR' NN UO 'MOPH' ; 600 : 601 : * Elimination des zeros dans TF_UO 602 : 603 : LABS = 'PROG' 0.0 FC (FC + DFREQ) 9000.0 ; 604 : LFIL1 = 'PROG' 1.0 1.0 0.0 0.0 ; 605 : LFIL2 = 'PROG' 0.0 0.0 0.0 0.0 ; 606 : LFIL3 = 'PROG' 0.0 0.0 1.0 1.0 ; 607 : 608 : LFIL1 = 'IPOL' FR_GAMO LABS LFIL1 ; 609 : LFIL2 = 'IPOL' FR_GAMO LABS LFIL2 ; 610 : LFIL3 = 'IPOL' FR_GAMO LABS LFIL3 ; 611 : 612 : EVFIL = 'EVOL' 'COMP' 'MOPH' FR_GAMO LFIL1 LFIL2 ; 613 : EVADD = 'EVOL' 'COMP' 'MOPH' FR_GAMO LFIL3 LFIL2 ; 614 : 615 : TF_UO = TF_UO * EVFIL ; 616 : TF_UO = TF_UO + EVADD ; 617 : 618 : 619 : TF_GAMO = TF_GAMO * EVFIL ; 620 : TF_DEPLO = TF_DEPLO * EVFIL ; 621 : 622 : 'TITR' 'ACCELERATION FILTREE AU POINT DE CONTROLE' ; 623 : GAMMAO = 'TFRI' TF_GAMO ; 624 : 'TITR' 'DEPLACEMENT FILTREE AU POINT DE CONTROLE' ; 625 : DEPLO = 'TFRI' TF_DEPLO ; 626 : 627 : 'TITRE' 'DEPLACEMENT A LA BASE' ; 628 : UB = 'EVOL' 'MANU' 'TEMPS' L_TEM 'DEPL' U_FRON.NUM_BAS ; 629 : 'TITRE' 'VITESSE A LA BASE' ; 630 : VO = 'EVOL' 'MANU' 'TEMPS' L_TEM 'VITE' V_FRON.NUM_BAS ; 631 : 'TITRE' 'DEFORMATION A LA BASE' ; 632 : EO = 'EVOL' 'MANU' 'TEMPS' L_TEM 'EPSI' E_FRON.NUM_BAS ; 633 : 'TITRE' 'REACTION A LA BASE' ; 634 : 635 : 'SI' (('EGA' DIR 'UX') OU ('EGA' DIR 'UY')) ; 636 : RO = 'EVOL' 'MANU' 'TEMPS' L_TEM 'REAC' R_FRON.NUM_BAS ; 637 : 'SINON' ; 638 : 'SI' ('EGA' DIR 'UZ') ; 639 : RO1 = 'EVOL' 'MANU' 'TEMPS' L_TEM 'REAC' R1_FRON.NUM_BAS ; 640 : RO2 = 'EVOL' 'MANU' 'TEMPS' L_TEM 'REAC' R2_FRON.NUM_BAS ; 641 : 'FINSI' ; 642 : 'FINSI' ; 643 : 644 : J = 0 ; 645 : 'REPE' BOUCL5 NB_NOEU ; 646 : J = J + 1 ; 647 : 'TITRE' 'FONCTION DE TRANSFERT HU DU NOEUD ' J ; 648 : U_J = 'EVOL' 'MANU' 'TEMPS' L_TEM 'DEPL' U_FRON.J ; 649 : TF_UJ = 'TFR' NN U_J 'MOPH' ; 650 : H_DEPL.J = TF_UJ / TF_UO ; 651 : 652 : 'TITRE' 'FONCTION DE TRANSFERT HV DU NOEUD' J ; 653 : V_J = 'EVOL' 'MANU' 'TEMPS' L_TEM 'VITE' V_FRON.J ; 654 : TF_VJ = 'TFR' NN V_J 'MOPH' ; 655 : H_VITE.J = TF_VJ / TF_UO ; 656 : 657 : 'TITRE' 'FONCTION DE TRANSFERT HE DU NOEUD' J ; 658 : E_J = 'EVOL' 'MANU' 'TEMPS' L_TEM 'EPSI' E_FRON.J ; 659 : TF_EJ = 'TFR' NN E_J 'MOPH' ; 660 : H_EPSI.J = TF_EJ / TF_UO ; 661 : 662 : 'TITRE' 'FONCTION DE TRANSFERT HR DU NOEUD' J ; 663 : 664 : 'SI' (('EGA' DIR 'UX') OU ('EGA' DIR 'UY')) ; 665 : R_J = 'EVOL' 'MANU' 'TEMPS' L_TEM 'REAC' R_FRON.J ; 666 : TF_RJ = 'TFR' NN R_J 'MOPH' ; 667 : H_REAC.J = TF_RJ / TF_UO ; 668 : 'SINON' ; 669 : 670 : 'SI' ('EGA' DIR 'UZ') ; 671 : R1_J = 'EVOL' 'MANU' 'TEMPS' L_TEM 'REAC' R1_FRON.J ; 672 : R2_J = 'EVOL' 'MANU' 'TEMPS' L_TEM 'REAC' R2_FRON.J ; 673 : TF_R1J = 'TFR' NN R1_J 'MOPH' ; 674 : TF_R2J = 'TFR' NN R2_J 'MOPH' ; 675 : H1_REAC.J = TF_R1J / TF_UO ; 676 : H2_REAC.J = TF_R2J / TF_UO ; 677 : 678 : 'FINSI' ; 679 : 'FINSI' ; 680 : 681 : 'FIN' BOUCL5 ; 682 : 'MENA' ; 683 : 'TASS' FRON ; 684 : 685 : * Acceleration en profondeur 686 : 687 : 'SAUT' 2 'LIGNE' ; 688 : 'MESS' 'ACCELERATION DU CHAMP LIBRE' ; 689 : 'SI' ( 'EXIS' P_GAMMA ) ; 690 : NB_GAM = 'DIME' P_GAMMA ; 691 : GAMMA = 'TABLE' ; 692 : K = 0 ; 693 : 'REPE' BOUCL6 NB_GAM ; 694 : K = K + 1 ; 695 : NUM_P = 'NOEU' P_GAMMA.K ; 696 : HU = H_DEPL.NUM_P ; 697 : 698 : 'TITRE' 'ACCELERATION DU POINT' K ; 699 : TF_GAM = HU * TF_GAMO ; 700 : GAMMA.K = 'TFRI' TF_GAM ; 701 : GAMMA.K = CHTITR ( GAMMA.K ) 'TEMPS' 'ACCE(M/S*S)' ; 702 : 'FIN' BOUCL6 ; 703 : 'FINSI' ; 704 : 705 : 'SAUT' 'LIGNE' ; 706 : 'MESS' 'VITESSE, DEFORMATION ET REACTION' ; 707 : 708 : J = 0 ; 709 : 'REPE' BOUCL7 NB_NOEU ; 710 : J = J + 1 ; 711 : 712 : * Vitesse compatible avec GAMMAO 713 : 714 : 'TITRE' 'VITESSE DU NOEUD' J ; 715 : TF_VITE = ( H_VITE.J ) * TF_DEPLO ; 716 : V_FRON.J = 'TFRI' TF_VITE ; 717 : 718 : * On met la vitesse initiale (moyenne sur NV point) a zero 719 : 720 : NV = 70 ; 721 : LT = 'EXTR' ( V_FRON.J ) 'ABSC' ; 722 : LY = 'EXTR' ( V_FRON.J ) 'ORDO' ; 723 : 724 : Y1 = 0 ; 725 : IV = 1 ; 726 : 'REPE' BV NV ; 727 : Y1 = Y1 + ('EXTR' LY IV) ; 728 : IV = IV + 1 ; 729 : 'FIN' BV ; 730 : Y1 = Y1 / NV ; 731 : 732 : NY = 'DIME' LY ; 733 : LY1 = 'PROG' NY * Y1 ; 734 : LY = LY - LY1 ; 735 : V_FRON.J = 'EVOL' 'MANU' 'TEMPS' LT 'VITE(M/S)' LY ; 736 : 737 : * Deformation 738 : 739 : 'TITRE' 'DEFORMATION AU NOEUD' J ; 740 : TF_EPSI = H_EPSI.J * TF_DEPLO ; 741 : E_FRON.J = 'TFRI' TF_EPSI ; 742 : 743 : * Reactions des appuis : DIR = UX ou UY, Reaction FZ 744 : * DIR = UZ, Reaction Fx et FY 745 : 746 : 747 : 'SI' (('EGA' DIR 'UX') OU ('EGA' DIR 'UY')) ; 748 : 'TITRE' 'REACTION VERTICALE AU NOEUD' J ; 749 : TF_REAC = ( H_REAC.J ) * TF_DEPLO ; 750 : R_FRON.J = 'TFRI' TF_REAC ; 751 : 752 : * On met la reaction intiale a zero 753 : 754 : LT = 'EXTR' ( R_FRON.J ) 'ABSC' ; 755 : LY = 'EXTR' ( R_FRON.J ) 'ORDO' ; 756 : Y1 = 'EXTR' LY 1 ; 757 : NY = 'DIME' LY ; 758 : LY1 = 'PROG' NY * Y1 ; 759 : LY = LY - LY1 ; 760 : R_FRON.J = 'EVOL' 'MANU' 'TEMPS' LT 'REAC' LY ; 761 : 'SINON' ; 762 : 763 : 'SI' ('EGA' DIR 'UZ') ; 764 : 'TITRE' 'REACTIONS HORIZONTALES AU NOEUD' J ; 765 : TF1_REAC = ( H1_REAC.J ) * TF_DEPLO ; 766 : TF2_REAC = ( H2_REAC.J ) * TF_DEPLO ; 767 : R1_FRON.J = 'TFRI' TF1_REAC ; 768 : R2_FRON.J = 'TFRI' TF2_REAC ; 769 : 770 : * On met les reactions intiales a zero 771 : 772 : LT = 'EXTR' ( R1_FRON.J ) 'ABSC' ; 773 : LY = 'EXTR' ( R1_FRON.J ) 'ORDO' ; 774 : Y1 = 'EXTR' LY 1 ; 775 : NY = 'DIME' LY ; 776 : LY1 = 'PROG' NY * Y1 ; 777 : LY = LY - LY1 ; 778 : R1_FRON.J = 'EVOL' 'MANU' 'TEMPS' LT 'REAC' LY ; 779 : 780 : LT = 'EXTR' ( R2_FRON.J ) 'ABSC' ; 781 : LY = 'EXTR' ( R2_FRON.J ) 'ORDO' ; 782 : Y1 = 'EXTR' LY 1 ; 783 : NY = 'DIME' LY ; 784 : LY1 = 'PROG' NY * Y1 ; 785 : LY = LY - LY1 ; 786 : R2_FRON.J = 'EVOL' 'MANU' 'TEMPS' LT 'REAC' LY ; 787 : 788 : 'FINSI' ; 789 : 'FINSI' ; 790 : 791 : 'FIN' BOUCL7 ; 792 : ************************************************************************ 793 : 794 : * Force d'amortissement a la base 795 : 796 : 'SAUT' 'LIGNE' ; 797 : 'MESS' 'FORCE D"AMORTISSEMENT A LA BASE : LYSMER' ; 798 : 'TITR' 'CONTRAINTE D"AMORTISSEMENT A LA BASE' ; 799 : G = ( COUCHE.NB_COU.'MODULE_G' ) ; 800 : RO = ( COUCHE.NB_COU.'MASSE_VOLUMIQUE' ) ; 801 : NU = ( COUCHE.NB_COU.'POISSON') ; 802 : CS = ( G / RO ) ** 0.5 ; 803 : CP = ((2.0 * (1.0 - NU))/(1.0 - (2.0 * NU))) ** 0.5 ; 804 : CP = CP * CS ; 805 : 806 : 'SI' (('EGA' DIR 'UX') OU ('EGA' DIR 'UY')) ; 807 : SIG_AMO = RO * CS * V_FRON.NUM_BAS ; 808 : SIG_AMO = CHTITR SIG_AMO 'TEMPS(S)' 'SIGMA(PA)' ; 809 : 810 : 'SINON' ; 811 : 'SI'('EGA' DIR 'UZ') ; 812 : SIG_AMO = RO * CP * V_FRON.NUM_BAS ; 813 : SIG_AMO = CHTITR SIG_AMO 'TEMPS(S)' 'SIGMA(PA)' ; 814 : 'FINSI' ; 815 : 'FINSI' ; 816 : 817 : * Contrainte a la base 818 : 819 : 'MESS' 'CONTRAINTE A LA BASE' ; 820 : 'MESS' ; 821 : 'TITR' 'IMPULSION A LA BASE' ; 822 : EV_FOR = 'EVOL' 'MANU' L_TEM ( 'IPOL' L_TEM L_TIM L_FOR ) ; 823 : 824 : 'TITR' 'TFR DE L"IMPULSION' ; 825 : TF_FOR = 'TFR' NN EV_FOR 'MOPH' ; 826 : 'TITR' 'FONCTION DE TRANSFERT DE L"IMPULSION' ; 827 : HS = TF_FOR / TF_UO ; 828 : TF_SIG = HS * TF_DEPLO ; 829 : 830 : 'TITR' 'CONTRAINTE A LA BASE' ; 831 : SIG_H = ( 'TFRI' TF_SIG ) - SIG_AMO ; 832 : 833 : * On met la contrainte initiale a zero 834 : 835 : LT = 'EXTR' SIG_H 'ABSC' ; 836 : LY = 'EXTR' SIG_H 'ORDO' ; 837 : Y1 = 'EXTR' LY 1 ; 838 : NY = 'DIME' LY ; 839 : LY1 = 'PROG' NY * Y1 ; 840 : LY = LY - LY1 ; 841 : 842 : SIG_H = 'EVOL' 'MANU' 'TEMPS(S)' LT 'SIGMA(PA)' LY ; 843 : 844 : 'MENA' ; 845 : 'TASS' FRON ; 846 : ************************************************************************ 847 : *** FRONTIERE ABSORBANTE DU SOL PROCHE *** 848 : ************************************************************************ 849 : 'SAUT' 3 'LIGNE' ; 850 : 'MESS' 'FRONTIERE ABSORBANTE DU SOL PROCHE' ; 851 : 'SAUT' 'LIGNE' ; 852 : 'MESS' 'FRONTIERE VERTICALE DU SOL ' ; 853 : 854 : I = 0 ; 855 : 'REPE' BOUCL8 NB_COU ; 856 : I = I + 1 ; 857 : 'SI' ( I 'EGA' 1 ) ; 858 : AM_V = 'AMOR' COLMOD.I (COUCHE.I.'FRONTIERE') COLMAT.I ; 859 : 860 : 'SINON' ; 861 : AM_V = AM_V 'ET'('AMOR' COLMOD.I (COUCHE.I.'FRONTIERE') COLMAT.I) ; 862 : 'FINSI' ; 863 : 'FIN' BOUCL8 ; 864 : 865 : 'MESS' 'FRONTIERE HORIZONTALE DU SOL' ; 866 : AM_H = 'AMOR' MOD_SOL FOND_SOL MAT_SOL ; 867 : AMO1 = AM_V 'ET' AM_H ; 868 : 869 : ************************************************************************ 870 : *** CHARGEMENT SISMIQUE SUR LA FRONTIERE HORIZONTALE *** 871 : ************************************************************************ 872 : 873 : 'SAUT' 3 'LIGNE' ; 874 : 'MESS' 'CHARGEMENT SISMIQUE SUR LA FRONTIERE HORIZONTALE' ; 875 : 876 : * FO : forces nodales equivalentes de la contrainte 877 : 878 : 'SI' ( 'EGA' DIR 'UX' ) ; 879 : FOR_P = 'PRES' 'MASS' MOD_SOL 1.0 FOND_SOL ; 880 : FOR_H = 'EXCO' 'FZ' FOR_P 'FX' ; 881 : 'SINON' ; 882 : 883 : 'SI' ( 'EGA' DIR 'UY' ) ; 884 : FOR_P = 'PRES' 'MASS' MOD_SOL 1.0 FOND_SOL ; 885 : FOR_H = 'EXCO' 'FZ' FOR_P 'FY' ; 886 : 'SINON' ; 887 : 888 : 'SI' ( 'EGA' DIR 'UZ' ) ; 889 : FOR_P = 'PRES' 'MASS' MOD_SOL 1.0 FOND_SOL ; 890 : FOR_H = FOR_P ; 891 : 892 : 'FINSI' ; 893 : 'FINSI' ; 894 : 'FINSI' ; 895 : 896 : CHA_HFO = 'CHAR' FOR_H SIG_H ; 897 : 898 : * Amortissement * vitesse (A*VO) 899 : 900 : 'SI' ( 'EGA' DIR 'UX' ) ; 901 : CH_V = 'MANU' 'CHPO' FOND_SOL 1 'UX' 1.0 ; 902 : 'SINON' ; 903 : 904 : 'SI' ( 'EGA' DIR 'UY' ) ; 905 : CH_V = 'MANU' 'CHPO' FOND_SOL 1 'UY' 1.0 ; 906 : 'SINON' ; 907 : 908 : 'SI' ( 'EGA' DIR 'UZ' ) ; 909 : CH_V = 'MANU' 'CHPO' FOND_SOL 1 'UZ' 1.0 ; 910 : 'FINSI' ; 911 : 'FINSI' ; 912 : 'FINSI' ; 913 : 914 : F_BAS = AM_H * CH_V ; 915 : CHA_HAX = 'CHAR' F_BAS ( V_FRON.NUM_BAS ) ; 916 : 'MENA' ; 917 : 'TASS' FRON ; 918 : 919 : ************************************************************************ 920 : *** CHARGEMENT SISMIQUE SUR LA FRONTIERE VERTICALE *** 921 : ************************************************************************ 922 : 923 : * FO = - Reaction 924 : 925 : 'MESS' 'CHARGEMENT SISMIQUE SUR LA FRONTIERE VERTICALE' ; 926 : 927 : 'SI' (('EGA' DIR 'UX') OU ('EGA' DIR 'UY')) ; 928 : J = 0 ; 929 : 'REPE' BOUCL9_1 NB_NOEU ; 930 : J = J + 1 ; 931 : 'SI' ( J 'EGA' 1 ) ; 932 : CHA_VFO = 'CHAR' ( 'FORC' FMOT -1.0 POI_FRO.J ) ( R_FRON.J ) ; 933 : 'SINON' ; 934 : CHA_VFO = ('CHAR' ( 'FORC' FMOT -1.0 POI_FRO.J ) ( R_FRON.J )) 935 : 'ET' CHA_VFO ; 936 : 'FINSI' ; 937 : 'FIN' BOUCL9_1 ; 938 : 939 : 'SINON' ; 940 : 'SI' ('EGA' DIR 'UZ') ; 941 : J = 0 ; 942 : 'REPE' BOUCL9_2 NB_NOEU ; 943 : J = J + 1 ; 944 : 'SI' ( J 'EGA' 1 ) ; 945 : CHA_VFO = ('CHAR' ( 'FORC' FMOT1 -1.0 POI_FRO.J ) ( R1_FRON.J )) ET 946 : ('CHAR' ( 'FORC' FMOT2 -1.0 POI_FRO.J ) ( R2_FRON.J )) ; 947 : 'SINON' ; 948 : CHA_VFO = ('CHAR' ( 'FORC' FMOT1 -1.0 POI_FRO.J ) ( R1_FRON.J )) ET 949 : ('CHAR' ( 'FORC' FMOT2 -1.0 POI_FRO.J ) ( R2_FRON.J )) ET 950 : CHA_VFO ; 951 : 'FINSI' ; 952 : 'FIN' BOUCL9_2 ; 953 : 954 : 'FINSI' ; 955 : 'FINSI' ; 956 : 957 : * Amortissement * viteese : A*VO 958 : 959 : V_ABSC = 'EXTR' (V_FRON. 1) 'ABSC' ; 960 : N_PAS = 'DIME' V_ABSC ; 961 : 962 : * DIR = UZ 963 : 964 : 'SI' ( 'EGA' DIR 'UZ' ) ; 965 : 966 : VISC = 'TABLE' ; 967 : K = 0 ; 968 : 'REPE' BOUCL10 NB_NOEU ; 969 : K = K + 1 ; 970 : EV01 = V_FRON.K ; 971 : V_FRON.K = 'EXTR' EV01 'ORDO' ; 972 : VISC.K = 'PROG' N_PAS * 0.0 ; 973 : 'FIN' BOUCL10 ; 974 : 975 : J = 0 ; 976 : 'REPE' BOUCL11 NB_NOEU ; 977 : J = J + 1 ; 978 : VEC_U = 'MANU' 'CHPO' POI_FRO.J 1 'UZ' 1.0 ; 979 : VEC_F = AM_V * VEC_U ; 980 : 981 : K = 0 ; 982 : 'REPE' BOUC11B NB_NOEU ; 983 : K = K + 1 ; 984 : AM_JK = 'EXTR' VEC_F POI_FRO.K 'FZ' ; 985 : VISC.K = VISC.K + ( AM_JK * V_FRON.J ) ; 986 : 'FIN' BOUC11B ; 987 : 'FIN' BOUCL11 ; 988 : 989 : * Recombinaison 990 : 991 : FOR_H = 'FORC' 'FZ' 1.0 POI_FRO.1 ; 992 : CHA_VAX = 'CHAR' FOR_H ( 'EVOL' 'MANU' 993 : V_ABSC ( VISC. 1 ) ) ; 994 : K = 1 ; 995 : 'REPE' BOUCL12 ( NB_NOEU - 1 ) ; 996 : K = K + 1 ; 997 : FOR_H = 'FORC' 'FZ' 1.0 POI_FRO.K ; 998 : CHA_VAX =( 'CHAR' FOR_H ( 'EVOL' 'MANU' 999 : V_ABSC ( VISC.K ) ) ) 'ET' CHA_VAX ; 1000 : 'FIN' BOUCL12 ; 1001 : 'FINSI' ; 1002 : 1003 : * Dir = UX ou UY 1004 : 1005 : 'SI' (( 'EGA' DIR 'UX' ) OU ( 'EGA' DIR 'UY' )) ; 1006 : UDIR = DIR ; 1007 : 1008 : VISC_X = 'TABLE' ; 1009 : VISC_Y = 'TABLE' ; 1010 : K = 0 ; 1011 : 'REPE' BOUCL16 NB_NOEU ; 1012 : K = K + 1 ; 1013 : EV01 = V_FRON.K ; 1014 : V_FRON.K = 'EXTR' EV01 'ORDO' ; 1015 : VISC_X.K = 'PROG' N_PAS * 0.0 ; 1016 : VISC_Y.K = 'PROG' N_PAS * 0.0 ; 1017 : 'FIN' BOUCL16 ; 1018 : J = 0 ; 1019 : 'REPE' BOUCL17 NB_NOEU ; 1020 : J = J + 1 ; 1021 : VEC_U = 'MANU' 'CHPO' POI_FRO.J 1 UDIR 1.0 ; 1022 : VEC_F = AM_V * VEC_U ; 1023 : K = 0 ; 1024 : 'REPE' BOUC17B NB_NOEU ; 1025 : K = K + 1 ; 1026 : AMX_JK = 'EXTR' VEC_F POI_FRO.K 'FX' ; 1027 : AMY_JK = 'EXTR' VEC_F POI_FRO.K 'FY' ; 1028 : VISC_X.K = VISC_X.K + ( AMX_JK * V_FRON.J ) ; 1029 : VISC_Y.K = VISC_Y.K + ( AMY_JK * V_FRON.J ) ; 1030 : 'FIN' BOUC17B ; 1031 : 'FIN' BOUCL17 ; 1032 : 1033 : * Recombinaison 1034 : 1035 : FOR_X = 'FORC' 'FX' 1.0 POI_FRO.1 ; 1036 : FOR_Y = 'FORC' 'FY' 1.0 POI_FRO.1 ; 1037 : CHA_VAX = 'CHAR' FOR_X ( 'EVOL' 'MANU' 1038 : V_ABSC ( VISC_X. 1 ) ) ; 1039 : CHA_VAY = 'CHAR' FOR_Y ( 'EVOL' 'MANU' 1040 : V_ABSC ( VISC_Y. 1 ) ) ; 1041 : K = 1 ; 1042 : 'REPE' BOUCL18 ( NB_NOEU - 1 ) ; 1043 : K = K + 1 ; 1044 : FOR_X = 'FORC' 'FX' 1.0 POI_FRO.K ; 1045 : CHA_VAX = CHA_VAX 'ET' ( 'CHAR' FOR_X ( 'EVOL' 1046 : 'MANU' V_ABSC ( VISC_X.K ) ) ) ; 1047 : FOR_Y = 'FORC' 'FY' 1.0 POI_FRO.K ; 1048 : CHA_VAY = CHA_VAY 'ET' ( 'CHAR' FOR_Y ( 'EVOL' 1049 : 'MANU' V_ABSC ( VISC_Y.K ) ) ) ; 1050 : 'FIN' BOUCL18 ; 1051 : CHA_VAX = CHA_VAX 'ET' CHA_VAY ; 1052 : 1053 : 'FINSI' ; 1054 : 1055 : CHA1 = CHA_HFO 'ET' CHA_HAX 'ET' CHA_VFO 'ET' CHA_VAX ; 1056 : 1057 : * Changement de format du chargement 1058 : 1059 : CHA1 = 'CHAN' 'TABL' CHA1 'MECA' ; 1060 : 1061 : ************************************************************************ 1062 : *** Deformation de cisaillement maximale *** 1063 : ************************************************************************ 1064 : 'SAUT' 2 'LIGNE' ; 1065 : 'MESS' 'DEFORMATION MAXIMALE' ; 1066 : PROF = 'PROG' NB_NOEU * 0.0 ; 1067 : GMAX = 'PROG' NB_NOEU * 0.0 ; 1068 : J = 0 ; 1069 : 'REPE' BOUCL19 NB_NOEU ; 1070 : J = J + 1 ; 1071 : ZJ = 'COOR' 3 ( POI_FRO.J ) ; 1072 : CISA = 'EXTR' ( E_FRON.J ) 'ORDO' ; 1073 : GX = 'MAXI' CISA 'ABS' ; 1074 : 'REMP' PROF J ZJ ; 1075 : 'REMP' GMAX J GX ; 1076 : 'FIN' BOUCL19 ; 1077 : GMAXMAX = 'MAXI' GMAX ; 1078 : 1079 : * Evolution de deformation en profondeur 1080 : 1081 : 'SI' (('EGA' DIR 'UX') OU ('EGA' DIR 'UY')) ; 1082 : 'TITR' 'DEFORMATION DE CISAILLEMENT MAXIMALE' ; 1083 : DEFZ = 'EVOL' 'MANU' 'PROFONDEUR' PROF 'GAM_MAX' GMAX ; 1084 : DEFZ = 'ORDO' 'DECROISSANT' DEFZ ; 1085 : ZFROF = 'EXTR' DEFZ 'ABSC' ; 1086 : ZGMAX = 'EXTR' DEFZ 'ORDO' ; 1087 : DEFZ = 'EVOL' 'MANU' 'GAM_MAX' ZGMAX 'PROFONDEUR' ZFROF ; 1088 : 'DESS' DEFZ 'CARR' 'NCLK' ; 1089 : 'FINSI' ; 1090 : 1091 : 'SI' ( 'EGA' DIR 'UZ' ) ; 1092 : 'TITR' 'DEFORMATION VERTICALE MAXIMALE' ; 1093 : DEFZ = 'EVOL' 'MANU' 'PROFONDEUR' PROF 'EPS_MAX' GMAX ; 1094 : DEFZ = 'ORDO' 'DECROISSANT' DEFZ ; 1095 : ZFROF = 'EXTR' DEFZ 'ABSC' ; 1096 : ZGMAX = 'EXTR' DEFZ 'ORDO' ; 1097 : DEFZ = 'EVOL' 'MANU' 'EPS_MAX' ZGMAX 'PROFONDEUR' ZFROF ; 1098 : 'DESS' DEFZ 'CARR' 'NCLK' ; 1099 : 'FINSI' ; 1100 : 1101 : 'SAUT' 5 'LIGNE' ; 1102 : 'MESS' '*********************************************************' ; 1103 : 'MESS' '* *' ; 1104 : 'MESS' '* FIN DE LA PROCEDURE DE LA DECONVOLUTION *' ; 1105 : 'MESS' '* *' ; 1106 : 'MESS' '*********************************************************' ; 1107 : 'SAUT' 5 'LIGNE' ; 1108 : 1109 : TABRESU = 'TABLE' ; 1110 : 1111 : TABRESU.'CHAR' = CHA1 ; 1112 : TABRESU.'AMOR' = AMO1 ; 1113 : TABRESU.'DEFO' = DEFZ ; 1114 : TABRESU.'ACCE' = GAMMA ; 1115 : TABRESU.'PAS' = PAS_TEM ; 1116 : TABRESU.'FCDYN' = FCDYN ; 1117 : 1118 : 'FINPROC' TABRESU ; 1119 : ************************************************************************ 1120 : 1121 : 1122 : 1123 :
© Cast3M 2003 - All rights reserved.
Disclaimer