Download iss3D_xyz.dgibi

Back to the list

* fichier : iss3D_xyz.dgibi
*
************************************************************************
*           REPONSE SISMIQUE DU SOL EN ABSENCE DE STRUCTURE  
************************************************************************
*
* DESCRIPTION DU PROBLEME
* ------------------------
* IL S'AGIT D'UN PROBLEME D'INTERACTION SOL-STRUCTURE. 
* EN ABSENCE DE STRUCTURE, IL N'Y PAS D'INTERACTION. ON DOIT RETROUVER
* L'ACCELEROGRAMME IMPOSE A LA SURFACE DU SOL VIA LE PROCESSUS DE 
* DECONVOLUTION (PROCEDURES DECONV OU DECONV3D) ET CONVOLUTION 
* (PROCEDURE DYNAMIC OU PASAPAS).
* LE CYLINDRE DANS CE JEU DE DONNEES REPRESENTE LE SOL PROCHE TANDIS 
* QUE LE SOL LOINTAIN QUI S'ETEND VERS L'INFINI EST REPRESENTE PAR UNE 
* FRONTIERE ABSORBANTE COMPOSEE D'AMORTISSEURS VISQUEUX.
************************************************************************
*-----------------------------------------------------------------------
*              PROCEDURE DE CALCUL DE LA DERIVEE PREMIERE
*-----------------------------------------------------------------------
'DEBPROC' DERIV1 EV1 ;
     X     = 'EXTR' EV1 'ABSC'  ;
     Y     = 'EXTR' EV1 'ORDO'  ;
     NPOIN = 'DIME' X ;
     H     = ( 'EXTR' X 2 ) - ( 'EXTR' X 1 ) ;

     X1    = ( 'PROG' 0.0 0.0 ) 'ET' Y ;
     X3    = Y 'ET' ( 'PROG' 0.0 0.0 ) ;
     DX    = ( X3 - X1 ) / ( H * 2.0 ) ;
     Y1    = 'ENLE' ( 'ENLE' DX ( NPOIN + 2 ) ) 1 ;
     L1    = ( 'PROG' 0.0 ) 'ET' ( 'PROG' ( NPOIN - 2 ) * 1.0 )
                            'ET' ( 'PROG' 0.0 ) ;
     Y2    = Y1 * L1 ;
     EV2   = 'EVOL' 'MANU'  X Y2  ;
'FINPROC' EV2 ;
*-----------------------------------------------------------------------

*-----------------------------------------------------------------------
OPTI TRAC PSC ;
OPTI DIME 3 ELEM CU20 ;

R1  = 2.0 / (PI**0.5) ;
H0  = 0.0 ;
NT  = 2  ;
ANG = 90. / NT ;
NE  = 2 ; 

P0 = 0   0  H0 ;
P1 = R1  0  H0 ;
P2 = TOUR P1 (0 0 0) (0 0 1) ANG ;
*-----------------------------------------------------------------------
*                      SOL SANS STRUCTURE (CU20, PR15)
*-----------------------------------------------------------------------
L01B = DROI NE P0 P1 ;
L12B = DROI 1  P1 P2 ;
L20B = DROI NE P2 P0 ;

L1B = L01B ET L12B ET L20B ;
ELIM L1B 0.001 ;

S1B  = COUL VERT (SURF PLAN L1B) ;
SQ1B = S1B ;

I = 1 ;
REPE B1B (NT - 1) ;
S2B  = TOUR S1B (0 0 0) (0 0 1) ANG ;
SQ1B = SQ1B ET S2B ;
S1B  = S2B ;
I = I + 1 ;
FIN B1B ;

NR = 3 ;
R2 = NR*R1;

P4 = R2  0  H0 ;
P5 = TOUR P4 (0 0 0) (0 0 1) ANG ;

L14 = DROI ((NR - 1)*NE) P1 P4 ;
L45 = DROI         1     P4 P5 ;
L52 = DROI ((NR - 1)*NE) P5 P2 ;
L21 = DROI         1     P2 P1 ;

SS1  = DALL L14 L45 L52 L21 PLAN ;
SSQ1 = SS1 ;

I = 1 ;
REPE B2 (NT - 1) ;
SS2  = TOUR SS1 (0 0 0) (0 0 1) ANG ;
SSQ1 = SSQ1 ET SS2 ;
SS1 = SS2 ;
I = I + 1 ;
FIN B2 ;

SSQ1 = SSQ1 ET SQ1B ;
ELIM SSQ1 0.001 ;
TRAC SSQ1 QUAL NCLK ;

SSQ2 = SYME SSQ1 DROIT P0 (0 1 H0) ;
SSQ3 = SYME SSQ1 POINT P0 ;
SSQ4 = SYME SSQ1 DROIT P0 P1 ;

SSOL = (SSQ1 ET SSQ2 ET SSQ3 ET SSQ4) COUL VERT ;

SOL1 = VOLU TRANS ((NR/2)*NE) SSOL (0 0 (NR*R1/-2)) ;
ELIM SOL1 0.001 ;
TRAC SOL1 CACH NCLK ;

SOL2 = SOL1 PLUS (0 0 (NR*R1/-2)) ;

TITR 'MAILLAGE DU SOL' ;
SOL = SOL1 ET SOL2 ;
ELIM SOL 0.001 ;

TITR 'MAILLAGE DU SOL, NB ELEMENT =' (NBEL SOL) ;
TRAC SOL CACH NCLK ;

ENV1 = ENVE SOL1 ;
ENV2 = ENVE SOL2 ;

HS1 = NR*R1/-2 ;
HS2 = NR*R1/-1 ;

S11 = ENV1'POIN' 'PLAN' (0 0 H0) (1 0 H0) (0 1 H0) 0.001     ;
S11 = ENV1'ELEM' 'APPUYE' 'STRICTEMENT' S11                  ;

S12 = ENV1'POIN' 'PLAN' (0 0 HS1) (1 0 HS1) (0 1 HS1) 0.001  ;
S12 = ENV1'ELEM' 'APPUYE' 'STRICTEMENT' S12                  ;

S21 = ENV2 'POIN' 'PLAN' (0 0 HS1) (1 0 HS1) (0 1 HS1) 0.001 ;
S21 = ENV2 'ELEM' 'APPUYE' 'STRICTEMENT' S21                 ;

S22 = ENV2 'POIN' 'PLAN' (0 0 HS2) (1 0 HS2) (0 1 HS2) 0.001 ;
S22 = ENV2 'ELEM' 'APPUYE' 'STRICTEMENT' S22                 ;

BOR1 = DIFF (DIFF ENV1 S11) S12 ;
BOR2 = DIFF (DIFF ENV2 S21) S22 ;

FOND_S = S22 ;

TRAC (BOR1 ET BOR2 ET FOND_S) NCLK ;
*-----------------------------------------------------------------------
*                              MODELE SOL
*-----------------------------------------------------------------------
NU1  = 1./3. ;
G1   = 100.E7 ;
E1   = 2*(1 + NU1)*G1 ;
MESS 'E =' E1  ; 

MOD_S  = MODE SOL MECANIQUE ELASTIQUE ISOTROPE CU20 PR15 ;
MAT_S  = MATE MOD_S YOUN E1 NU NU1 RHO 2000 ;
MAS_S  = MASS MOD_S MAT_S ;
RIG_S  = RIGI MOD_S MAT_S ;
*-----------------------------------------------------------------------
*                         AMORTISSEMENT RAYLEIGH
*-----------------------------------------------------------------------
F1 = 5.0 ;
F2 = 25.0 ;
KSI_S   = 0.05 ;
ALPHA   = 4.0 * PI * F1 * F2 / ( F1 + F2 ) ;
BETA    = 1.0 / ( PI * ( F1 + F2 ) ) ;
AMO_S   = KSI_S  * ((ALPHA * MAS_S ) ET (BETA * RIG_S )) ;
*-----------------------------------------------------------------------
*              SIGNAL SISMIQUE (SELON SPECTRE PS92 SITE S1)
*-----------------------------------------------------------------------
LFR  = PROG 0.1 0.5 1.0 2.5 5.  33. 50. ; 
LSP  = PROG 0.1 0.5 1.0 2.5 2.5 1.0 1.0 ; 
SP0  = EVOL MANU 'FREQ(HZ)' LFR 'ACCE(M/S*S)' LSP ;

TAB = TABLE ;
TAB.'MOTIT' = 'SPECTRE PS92 S1 ' ;
TAB.'SEISME'= TABLE ;
TAB.'SEISME'.'SPECTRE'  =  SP0 ;
TAB.'SEISME'.'AMORT'    =  0.05 ;
TAB.'SEISME'.'TYPSP'    = 'ACCE' ;
TAB.'SIGNAL' = TABLE ;
TAB.'SIGNAL'.'ENVE'     = 'PLATLIN' ;
TAB.'SIGNAL'.'NP'       =  8 ;
TAB.'SIGNAL'.'DUREE'    =  2.56 ;
TAB.'SIGNAL'.'TDEBUT'   =  0.75 ;
TAB.'SIGNAL'.'TFIN'     =  1.5 ;
TAB.'NBITER'            =  5 ;
TAB.'NBSIGN'            =  3 ;
TAB.'NALEAT'            =  3 ;
TAB.'FRCOUP'            =  49.9 ;
TAB.'OPTSORT'           = 'SPECTRE' ;

TABSIG = SIGNSYNT FABR TAB ;

*   MOYENNE ZERO, PLAGE INITIALE ZERO

LT0 = EXTR TABSIG.1 ABSC ;
LA0 = EXTR TABSIG.1 ORDO ;
DT  = (EXTR LT0 2) - (EXTR LT0 1) ;
NP0 = DIME LT0 ;
LT1 = PROG 0. PAS DT 2.3 ;
LA1 = IPOL LT1 LT0 LA0 ;
NP1 = DIME LT1 ; 
LA1 = LA1 - (PROG NP1 * ((RESU LA1) / NP1)) ;
LA1 = (PROG 20 * 0.) ET LA1 ;
LT1 = PROG 0. PAS DT NPAS (19 + NP1) ;
ACCX = EVOL MANU 'TEMPS(S)' LT1 'ACCE(M/S*S)' LA1 ;

LT0 = EXTR TABSIG.2 ABSC ;
LA0 = EXTR TABSIG.2 ORDO ;
DT  = (EXTR LT0 2) - (EXTR LT0 1) ;
NP0 = DIME LT0 ;
LT1 = PROG 0. PAS DT 2.3 ;
LA1 = IPOL LT1 LT0 LA0 ;
NP1 = DIME LT1 ; 
LA1 = LA1 - (PROG NP1 * ((RESU LA1) / NP1)) ;
LA1 = (PROG 20 * 0.) ET LA1 ;
LT1 = PROG 0. PAS DT NPAS (19 + NP1) ;
ACCY = EVOL MANU 'TEMPS(S)' LT1 'ACCE(M/S*S)' LA1 ;

LT0 = EXTR TABSIG.3 ABSC ;
LA0 = EXTR TABSIG.3 ORDO ;
DT  = (EXTR LT0 2) - (EXTR LT0 1) ;
NP0 = DIME LT0 ;
LT1 = PROG 0. PAS DT 2.3 ;
LA1 = IPOL LT1 LT0 LA0 ;
NP1 = DIME LT1 ; 
LA1 = LA1 - (PROG NP1 * ((RESU LA1) / NP1)) ;
LA1 = (PROG 20 * 0.) ET LA1 ;
LT1 = PROG 0. PAS DT NPAS (19 + NP1) ;
ACCZ = (EVOL MANU 'TEMPS(S)' LT1 'ACCE(M/S*S)' LA1) *2./3. ;

DESS ACCX MIMA NCLK ;
DESS ACCY MIMA NCLK ;
DESS ACCZ MIMA NCLK ;
*-----------------------------------------------------------------------
*                 DECONVOLUTION ET FRONTIERE ABSORBANTE
*-----------------------------------------------------------------------
TAB = TABLE ;

TAB.1 = TABLE ;
TAB.1 .'FRONTIERE'        = BOR1  ;
TAB.1 .'MASSE_VOLUMIQUE'  = 2000. ;
TAB.1 .'POISSON'          = 1./3. ;
TAB.1 .'YOUNG'            = E1    ;
TAB.1 .'AMORTISSEMENT'    = 0.05  ;

TAB.2 = TABLE ;
TAB.2 .'FRONTIERE'        = BOR2  ;
TAB.2 .'MASSE_VOLUMIQUE'  = 2000. ;
TAB.2 .'POISSON'          = 1./3. ;
TAB.2 .'YOUNG'            = E1    ;
TAB.2 .'AMORTISSEMENT'    = 0.05  ;

P_GAM  = TABLE ;
P_GAM . 1 = P4 ;

TABX = DECONV3D TAB P0 FOND_S MOD_S MAT_S 'UX' 
                ACCX 5. 25. 50.  P_GAM ;
TABY = DECONV3D TAB P0 FOND_S MOD_S MAT_S 'UY' 
                ACCY 5. 25. 50.  P_GAM ;
TABZ = DECONV3D TAB P0 FOND_S MOD_S MAT_S 'UZ' 
                ACCZ 5. 25. 50.  P_GAM ;
*-----------------------------------------------------------------------
*                  TABLE POUR LA PROCEDURE 'DYNAMIC'
*-----------------------------------------------------------------------
CH_DEPI = MANU CHPO 3 SOL UX 0.0 UY 0.0 UZ 0.0 ;
CH_VITI = MANU CHPO 3 SOL UX 0.0 UY 0.0 UZ 0.0 ;

TAB_DYN = TABLE ;
TAB_DYN.'DEPL' = CH_DEPI ;
TAB_DYN.'VITE' = CH_VITI ;
TAB_DYN.'RIGI' = RIG_S ;
TAB_DYN.'MASS' = MAS_S ;
TAB_DYN.'AMOR' = AMO_S ET TABX.'AMOR' ;
TAB_DYN.'CHAR' = TABX.'CHAR' ET TABY.'CHAR' ET TABZ.'CHAR' ;
TAB_DYN.'FREQ' = TABX.'FCDYN' ;
DT             = 1 * TABX.'PAS' ;
NB_PAS         = ENTI (2.51 / DT) ;
TAB_DYN.'DEBU' = 0.0 ;
TAB_DYN.'INST' = PROG 0.0 PAS DT NPAS (NB_PAS - 1) ;

RESU = DYNAMIC TAB_DYN ;
*-----------------------------------------------------------------------
*                          POST-TRAITEMENT
*-----------------------------------------------------------------------
POI = TABLE ;
POI.1 = P0  ;
POI.2 = P4  ;

NP = DIME POI ;

L_TEM = PROG NB_PAS * 0.0 ;
L_VX = TABLE ;
L_VY = TABLE ;
L_VZ = TABLE ;

I = 1 ;
REPE B1 NP ;
L_VX.I  = PROG NB_PAS * 0.0 ;
L_VY.I  = PROG NB_PAS * 0.0 ;
L_VZ.I  = PROG NB_PAS * 0.0 ;
I = I + 1 ;
FIN B1 ;

I_TEM = 0 ;
REPETER B2 NB_PAS ;
  I_TEM = I_TEM + 1           ;
  TEM_I = RESU.I_TEM.'TEMP'   ;
  REMP L_TEM I_TEM TEM_I      ;
  CHV_I = RESU.I_TEM.'VITE'   ;
 
  I = 1 ;
    REPE B2_1 NP ;
    REMP L_VX.I I_TEM (EXTR CHV_I POI.I UX) ;
    REMP L_VY.I I_TEM (EXTR CHV_I POI.I UY) ;
    REMP L_VZ.I I_TEM (EXTR CHV_I POI.I UZ) ;
  I = I + 1 ;
  FIN B2_1 ;

FIN B2 ;

*   REPONSE EN ACCELERATION 

LT1 = EXTR ACCX ABSC ;
EV_VITX = TABLE ;
EV_VITY = TABLE ;
EV_VITZ = TABLE ;

EV_ACCX = TABLE ;
EV_ACCY = TABLE ;
EV_ACCZ = TABLE ;

I = 1 ;
REPE B3 NP ;
EV_VITX.I = EVOL MANU L_TEM L_VX.I ;
EV_VITY.I = EVOL MANU L_TEM L_VY.I ;
EV_VITZ.I = EVOL MANU L_TEM L_VZ.I ;

EV_ACCX.I = DERIV1 EV_VITX.I ;
EV_ACCY.I = DERIV1 EV_VITY.I ;
EV_ACCZ.I = DERIV1 EV_VITZ.I ;

LT2 = EXTR EV_ACCX.I ABSC ;
LA2 = EXTR EV_ACCX.I ORDO ;
LA2 = IPOL LT1 LT2 LA2 ;
EV_ACCX.I = EVOL MANU 'TEMPS(S)' LT1 'ACCE(M/S*S)' LA2 ;

LT2 = EXTR EV_ACCY.I ABSC ;
LA2 = EXTR EV_ACCY.I ORDO ;
LA2 = IPOL LT1 LT2 LA2 ;
EV_ACCY.I = EVOL MANU 'TEMPS(S)' LT1 'ACCE(M/S*S)' LA2 ;

LT2 = EXTR EV_ACCZ.I ABSC ;
LA2 = EXTR EV_ACCZ.I ORDO ;
LA2 = IPOL LT1 LT2 LA2 ;
EV_ACCZ.I = EVOL MANU 'TEMPS(S)' LT1 'ACCE(M/S*S)' LA2 ;

I = I + 1 ;
FIN B3 ;

*   COMPARAISON AVEC L'ACCELEROGRAMME IMPOSE

SI (NEG GRAPH 'N');
DESS ((COUL ROUG EV_ACCX.1) ET (COUL VERT EV_ACCX.2) ET ACCX) NCLK 
TITR 'ACCELEROGRAMMES X IMPOSE (BLEU) ET CALCULES (ROUGE ET VERT)' MIMA ;
FINSI ;

DESS ((COUL ROUG EV_ACCY.1) ET (COUL VERT EV_ACCY.2) ET ACCY) NCLK
TITR 'ACCELEROGRAMMES Y IMPOSE (BLEU) ET CALCULES (ROUGE ET VERT)' MIMA ;
FINSI ;

DESS ((COUL ROUG EV_ACCZ.1) ET (COUL VERT EV_ACCZ.2) ET ACCZ) NCLK
TITR 'ACCELEROGRAMMES Z IMPOSE (BLEU) ET CALCULES (ROUGE ET VERT)' MIMA ;
FINSI ;

ERR1 = MAXI ABS (EXTR (EV_ACCX.1 - ACCX) ORDO) ;
ERR2 = MAXI ABS (EXTR (EV_ACCX.2 - ACCX) ORDO) ;
ERR3 = MAXI ABS (EXTR (EV_ACCY.1 - ACCY) ORDO) ;
ERR4 = MAXI ABS (EXTR (EV_ACCY.2 - ACCY) ORDO) ;
ERR5 = MAXI ABS (EXTR (EV_ACCZ.1 - ACCZ) ORDO) ;
ERR6 = MAXI ABS (EXTR (EV_ACCZ.2 - ACCZ) ORDO) ;

SI ((MAXI (PROG ERR1 ERR2 ERR3 ERR4 ERR5 ERR6)) > 0.01);
ERRE 5;
FINSI;

FIN ;






 

© Cast3M 2003 - All rights reserved.
Disclaimer