Download deconv3D.procedur

Back to the list

   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