* fichier : issleq1.dgibi ******************************************************* ************************************************************************ * Section : Mecanique Interaction_Sol_Structure ************************************************************************ * Cas test de la procedure ISSLEQ * La procedure permet d'effectuer des calculs de propagations d'ondes * et ISS avec la methode le calcul lineaire equivalent ******************************************************* * Developpe par : * Alberto FRAU (alberto.frau[at]cea.fr) * ******************************************************* * Institution : * CEA/DEN/DANS/DM2S/SEMT/EMSI ******************************************************* * Commentaires * * On teste la procedure pour une propagation 1D d'une onde sismique * de cisaillement sur une colonne de sol homogene de 40 metres * de profondeur. * Les caracteristiques du sol sont les suivantes: * * Vs= 200 m/s * rho = 2000. kg/m3 * nu = 1./3 * * Le chargement sismique est reppresenté par une onde de Ricker * * Deux types de calculs sont possibles: * TYP_CAL = 1 - ktest general * TYP_CAL = 2 - calcul complet avec 5 iterations et * deduction de la reponse en surface et à la * base de la colonne de sol * ******************************************************* * * Type de calcul TYP_CAL = 1; *TYP_CAL = 2; * * activation des plots TYP_GRA = 'N'; *TYP_GRA = 'O'; * * activation sauvegarde TYP_SAU = 'N'; *TYP_SAU = 'O'; * OPTI EPTR 10; OPTI POLI TIMES_24; OPTI TRAC 'PSC'; * *********************************************************************** * Ricker wavelet *********************************************************************** * L_T1 = 'PROG' 0. 'PAS' 0.01 3.; TS1 = 'PROG' ('DIME' L_T1) * 0.8; TP1 = 0.2; A1 = ((PI)*(L_T1 - TS1))/(TP1); A1 = ((A1)**(2.0)); * FT1 = (((-9.81)/(2.0*4.5))*(PI**0.5))*(A1 - ('PROG' ('DIME' L_T1) * 0.5)); FT1 = ((FT1)*('EXP'((-1.0)*(A1)))); * EV_ACC = 'EVOL' (ORAN) 'MANU' 'Temps [s]' L_T1 'Acce [m/s2]' FT1; SP1 = 'SPO' EV_ACC 'AMOR' ('PROG' 0.05) 'COUL' DEFA ACCE; SP_ACC = 'EVOL' (ORAN) 'MANU' 'Freq [Hz]' ('EXTR' SP1 'ABSC') 'Acce [m/s2]' ('EXTR' SP1 'ORDO'); FF_ACC = 'TFR' 10 EV_ACC 'MOPH'; FF_ACC = 'EVOL' (ORAN) 'MANU' 'Freq [Hz]' ('EXTR' FF_ACC 'ABSC') 'Modu [m/s2]' ('EXTR' FF_ACC 'ORDO' 1); * 'SI' ('EGA' TYP_GRA 'O'); 'DESS' EV_ACC 'TITR' 'Acceleration'; 'DESS' SP_ACC LOGX 'TITR' 'Spectre'; 'DESS' FF_ACC 'TITR' 'Fast Fourier Trasform'; 'FINSI'; * 'OUBL' FT1; 'OUBL' A1; 'OUBL' TP1; 'OUBL' TS1; 'OUBL' L_T1; 'OUBL' SP1; * *********************************************************************** * Courbes Caracteristiques du sol *********************************************************************** * L_GAM = 'PROG' 0.0001 0.0002 0.0003 0.0004 0.0005 0.0006 0.0007 0.0008 0.0009 0.001 0.002 0.003 0.004 0.005 0.006 0.007 0.008 0.009 0.01 0.02 0.03 0.04 0.05 0.06 0.07 0.08 0.09 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1; L_GG0 = 'PROG' 0.99674 0.98907 0.98489 0.981 0.97732 0.97381 0.97043 0.96716 0.96399 0.96091 0.93342 0.90987 0.88885 0.8697 0.85203 0.83559 0.82018 0.80568 0.79197 0.68469 0.60992 0.55328 0.5083 0.47141 0.44045 0.41399 0.39105 0.37093 0.25168 0.19496 0.16095 0.13801 0.12136 0.10867 0.09863 0.09046 0.08368; L_EPS = 'PROG' 0.54992 0.59969 0.64931 0.69877 0.74808 0.79724 0.84624 0.8951 0.94381 0.99237 1.46993 1.93335 2.38324 2.82019 3.24474 3.65742 4.05872 4.4491 4.829 8.13359 10.73891 12.84568 14.58451 16.04404 17.28657 18.35714 19.28914 20.10784 24.89024 27.04867 28.277778 29.07143 29.62621 30.03586 30.35075 30.60033 30.80303; * L_EPS = L_EPS/100; L_GAM = L_GAM/100; * GG0_SAN = 'EVOL' 'MANU' 'Def_max' L_GAM 'G/G0' L_GG0; EPS_SAN = 'EVOL' 'MANU' 'Def_max' L_GAM 'Amor' L_EPS; 'SI' ('EGA' TYP_GRA 'O'); 'DESS' GG0_SAN LOGX 'TITR' 'G/G0 versus gamma_max'; 'DESS' EPS_SAN LOGX 'TITR' 'Amor versus gamma_max'; 'FINSI'; * 'OUBL' L_GAM; 'OUBL' L_GG0; 'OUBL' L_EPS; * *********************************************************************** * Donnes geometrique et materiau *********************************************************************** * 'OPTI' 'DIME' 3 'MODE' TRID 'ELEM' CUB8; * FMAX1 = 20.; VS_SOL1 = 200.0; NU_SOL1 = ((1.0)/(3.0)); RHO_SOL1 = 2000.; HPROF1 = 40.; * G_SOL1 = (((VS_SOL1)*(VS_SOL1))*(RHO_SOL1)); E_SOL1 = ((G_SOL1)*((2.0)*(1.0 + NU_SOL1))); * FREQ1 = 4.; FREQ2 = 12.; BET_SOL1 = 0.005; * DS1 = ((VS_SOL1)/((10)*(FMAX1))); * *********************************************************************** * Maillage de la colonne *********************************************************************** * P0 = 0. 0. 0.; P1 = P0 'PLUS' (-0.5 -0.5 0.); P2 = P0 'PLUS' (0.5 -0.5 0.); P3 = P0 'PLUS' (0.5 0.5 0.); P4 = P0 'PLUS' (-0.5 0.5 0.); * L1 = 'DROI' 1 P1 P2; L2 = 'DROI' 1 P2 P3; L3 = 'DROI' 1 P3 P4; L4 = 'DROI' 1 P4 P1; * SUR1 = 'DALL' L1 L2 L3 L4; * NN1 = 'ENTI' ((HPROF1)/(DS1)); * VOL1 = SUR1 'VOLU' NN1 'TRANS' (0. 0. ((-1.0)*(HPROF1))); F_LAT1 = (L1 'ET' L2 'ET' L3 'ET' L4) 'TRANS' NN1 (0. 0. ((-1.0)*(HPROF1))); F_FON1 = SUR1 'PLUS' (0. 0. ((-1.0)*(HPROF1))); * SOL1 = VOL1 'COUL' VERT; F_LAT1 = F_LAT1 'COUL' ROSE; F_FON1 = F_FON1 'COUL' ROSE; * 'ELIM' 0.001 (SOL1 'ET' F_LAT1 'ET' F_FON1); * 'SI' ('EGA' TYP_GRA 'O'); 'TRAC' 'CACH' (SOL1 'ET' F_FON1 'ET' F_LAT1) 'TITR' 'Maillage Complet'; 'FINSI'; * ********************************************************************** * Mise en donnes pour ISSLEQ ********************************************************************** * * TAB_DON = 'TABLE'; TAB_DON.'SOL' = 'TABLE'; TAB_DON.'PARAMETRES' = 'TABLE'; * TAB2 = 'TABLE'; TAB1 = 'TABLE'; TAB3 = 'TABLE'; * * Defition table des parametres TAB2.'GAMMAO_X' = EV_ACC; TAB2.'DELTA_T' = 1.5; TAB2.'POINT' = 0. 0. 0.; TAB2.'CRITERE' = 0.01; TAB2.'CHI' = 0.60; TAB2.'F1' = FREQ1; TAB2.'F2' = FREQ2; TAB2.'FC' = 50.; *TAB2.'TYPE' = 'CHAINE' 'LYSMER'; TAB2.'PAR_DEC' = 'TABLE'; TAB2.'PAR_DEC'. 1 = (SOL1 'POIN' 'PROC' (1000. 1000. 1000.)); TAB2.'PAR_DEC'.'ENTREE' = 'TABLE'; TAB2.'PAR_DEC'.'ENTREE'.'NATURE' = 'CHAINE' 'OUTCROP'; TAB2.'PAR_DEC'.'ENTREE'.'CONTROLE' = F_LAT1 'POIN' 'PROC' (1000. 1000. -1000.); *TAB2.'REPONSE' = 'TABLE'; *TAB2.'REPONSE'. 1 = 'TABLE'; *TAB2.'REPONSE'. 1 .'NOM' = 'CHAINE' 'PO'; *TAB2.'REPONSE'. 1 .'NOEUD' = (SOL1 'POIN' 'PROC' (1000. 1000. 1000.)); *TAB2.'REPONSE'. 1 .'COMP' = 'CHAINE' 'UX'; TAB2.'TYPE_CALCUL' = 'CHAINE' 'ISS_COMPLET'; * * Defition table pour definition de sol TAB1.'ITERATION' = 'TABLE'; TAB1.'ITERATION'. 1 = 'TABLE'; TAB1.'ITERATION'. 1 .'MAILLAGE' = (SOL1); TAB1.'ITERATION'. 1 .'FRONTIERE' = F_LAT1; TAB1.'ITERATION'. 1 .'MODULE_E' = E_SOL1; TAB1.'ITERATION'. 1 .'MASSE_VOLUMIQUE' = RHO_SOL1; TAB1.'ITERATION'. 1 .'POISSON' = NU_SOL1; TAB1.'ITERATION'. 1 .'G_GAMMA' = GG0_SAN; TAB1.'ITERATION'. 1 .'H_GAMMA' = EPS_SAN; TAB1.'ITERATION'. 1 .'BASE' = F_FON1; * * TAB_DON.'SOL' = TAB1; TAB_DON.'PARAMETRES' = TAB2; * ********************************************************************** * ISSLEQ Step 0 - Initialissation du calcul ********************************************************************** * ISSLEQ TAB_DON; * ********************************************************************** * ISSLEQ Step 1 - Premiere Iteration ********************************************************************** * ISSLEQ TAB_DON; * * Verification ktest 'SI' (TYP_CAL 'EGA' 1); L_ZZ1 = 'PROG'; L_GG01 = 'PROG'; * * extraction evolution G/G0 du premier step de calcul I = 1; NN1 = 1; 'REPE' IND1 (NN1); NN2 = 'NBEL' (TAB_DON.'STEP1'.'SOL'.'ITERATION'.'T_SOL'. I); J = 1; 'REPE' IND2 (NN2); ELE1 = (TAB_DON.'STEP1'.'SOL'.'ITERATION'.'T_SOL'. I) 'ELEM' J; VALZ = (((ELE1 'POIN' 'PROC' (1000. 0. 1000.)) 'COOR' 3) + ((ELE1 'POIN' 'PROC' (1000. 0. -1000.)) 'COOR' 3))/(2.0); L_ZZ1 = L_ZZ1 'ET' ('PROG' VALZ); * GG011 = 'REDU' (TAB_DON.'STEP1'.'SOL'.'ITERATION'.'T_GGO'. I) ELE1; L_GG01 = L_GG01 'ET' ('PROG' ('EXTR' GG011 'G_GO' 1 1 1)); * J = J + 1; 'FIN' IND2; I = I + 1; 'FIN' IND1; * * Evolution test L_GG0T = PROG 9.7056258e-01 9.3164450e-01 9.0171725e-01 8.7822139e-01 8.5968572e-01 8.4554321e-01 8.3550739e-01 8.2882100e-01 8.2560569e-01 8.2539845e-01 8.2787502e-01 8.3279914e-01 8.3965862e-01 8.4827632e-01 8.5814816e-01; L_GG0T = L_GG0T ET (PROG 8.6921149e-01 8.7834042e-01 8.8414431e-01 8.8749665e-01 8.8897932e-01 8.9033669e-01 8.9038074e-01 8.9077920e-01 8.9071137e-01 8.9065981e-01 8.9060009e-01 8.9054191e-01 8.9047658e-01 8.9042509e-01 8.9035398e-01); L_GG0T = L_GG0T ET (PROG 8.9030886e-01 8.9023197e-01 8.9019316e-01 8.9011037e-01 8.9007777e-01 8.8998920e-01 8.8996255e-01 8.8986808e-01 8.8984764e-01 8.8974720e-01 ); * * Calcul de l'ecart LL_TEST = MAXI((ABS(L_GG01 - L_GG0T))/(L_GG01)); * * Controle 'SI' (LL_TEST > 6.E+4); ** ERRE 5; 'FINSI'; 'FIN'; 'FINSI'; * * Continuation du calcul complet * ********************************************************************** * ISSLEQ Step 2 - Deuxieme Iteration ********************************************************************** * ISSLEQ TAB_DON; * ********************************************************************** * ISSLEQ Step 3 - Troisieme Iteration ********************************************************************** * ISSLEQ TAB_DON; * ********************************************************************** * ISSLEQ Step 4 - Quatrieme Iteration ********************************************************************** * ISSLEQ TAB_DON; * ********************************************************************** * ISSLEQ Step 5 - Dernier Iteration ********************************************************************** * ISSLEQ TAB_DON; * ********************************************************************** * Deduction des evolution Dist_max-z G/G0-z et Eps-z ********************************************************************** * * listes step 0 L_ZZ0 = 'PROG'; L_DMAX0 = 'PROG'; L_GG00 = 'PROG'; L_EPS0 = 'PROG'; * * listes step 1 L_ZZ1 = 'PROG'; L_DMAX1 = 'PROG'; L_GG01 = 'PROG'; L_EPS1 = 'PROG'; * * listes step 2 L_ZZ2 = 'PROG'; L_DMAX2 = 'PROG'; L_GG02 = 'PROG'; L_EPS2 = 'PROG'; * * listes step 3 L_ZZ3 = 'PROG'; L_DMAX3 = 'PROG'; L_GG03 = 'PROG'; L_EPS3 = 'PROG'; * * listes step 4 L_ZZ4 = 'PROG'; L_DMAX4 = 'PROG'; L_GG04 = 'PROG'; L_EPS4 = 'PROG'; * * listes step 5 L_ZZ5 = 'PROG'; L_DMAX5 = 'PROG'; L_GG05 = 'PROG'; L_EPS5 = 'PROG'; * I = 1; NN1 = 1; 'REPE' IND1 (NN1); NN2 = 'NBEL' (TAB_DON.'STEP1'.'SOL'.'ITERATION'.'T_SOL'. I); J = 1; 'REPE' IND2 (NN2); ELE1 = (TAB_DON.'STEP1'.'SOL'.'ITERATION'.'T_SOL'. I) 'ELEM' J; VALZ = (((ELE1 'POIN' 'PROC' (1000. 0. 1000.)) 'COOR' 3) + ((ELE1 'POIN' 'PROC' (1000. 0. -1000.)) 'COOR' 3))/(2.0); L_ZZ0 = L_ZZ0 'ET' ('PROG' VALZ); L_ZZ1 = L_ZZ1 'ET' ('PROG' VALZ); L_ZZ2 = L_ZZ2 'ET' ('PROG' VALZ); L_ZZ3 = L_ZZ3 'ET' ('PROG' VALZ); L_ZZ4 = L_ZZ4 'ET' ('PROG' VALZ); L_ZZ5 = L_ZZ5 'ET' ('PROG' VALZ); * DMAX00 = ('REDU' (TAB_DON.'STEP1'.'SOL'.'ITERATION'.'O_DIS') (ELE1))*(0.0); DMAX11 = ('REDU' (TAB_DON.'STEP1'.'SOL'.'ITERATION'.'O_DIS') (ELE1)); DMAX22 = ('REDU' (TAB_DON.'STEP2'.'SOL'.'ITERATION'.'O_DIS') (ELE1)); DMAX33 = ('REDU' (TAB_DON.'STEP3'.'SOL'.'ITERATION'.'O_DIS') (ELE1)); DMAX44 = ('REDU' (TAB_DON.'STEP4'.'SOL'.'ITERATION'.'O_DIS') (ELE1)); DMAX55 = ('REDU' (TAB_DON.'STEP5'.'SOL'.'ITERATION'.'O_DIS') (ELE1)); L_DMAX0 = L_DMAX0 'ET' ('PROG' ('EXTR' DMAX00 'DMAX' 1 1 1)); L_DMAX1 = L_DMAX1 'ET' ('PROG' ('EXTR' DMAX11 'DMAX' 1 1 1)); L_DMAX2 = L_DMAX2 'ET' ('PROG' ('EXTR' DMAX22 'DMAX' 1 1 1)); L_DMAX3 = L_DMAX3 'ET' ('PROG' ('EXTR' DMAX33 'DMAX' 1 1 1)); L_DMAX4 = L_DMAX4 'ET' ('PROG' ('EXTR' DMAX44 'DMAX' 1 1 1)); L_DMAX5 = L_DMAX5 'ET' ('PROG' ('EXTR' DMAX55 'DMAX' 1 1 1)); * GG000 = 'REDU' (TAB_DON.'STEP0'.'SOL'.'ITERATION'.'T_GGO'. I) ELE1; GG011 = 'REDU' (TAB_DON.'STEP1'.'SOL'.'ITERATION'.'T_GGO'. I) ELE1; GG022 = 'REDU' (TAB_DON.'STEP2'.'SOL'.'ITERATION'.'T_GGO'. I) ELE1; GG033 = 'REDU' (TAB_DON.'STEP3'.'SOL'.'ITERATION'.'T_GGO'. I) ELE1; GG044 = 'REDU' (TAB_DON.'STEP4'.'SOL'.'ITERATION'.'T_GGO'. I) ELE1; GG055 = 'REDU' (TAB_DON.'STEP5'.'SOL'.'ITERATION'.'T_GGO'. I) ELE1; L_GG00 = L_GG00 'ET' ('PROG' ('EXTR' GG000 'G_GO' 1 1 1)); L_GG01 = L_GG01 'ET' ('PROG' ('EXTR' GG011 'G_GO' 1 1 1)); L_GG02 = L_GG02 'ET' ('PROG' ('EXTR' GG022 'G_GO' 1 1 1)); L_GG03 = L_GG03 'ET' ('PROG' ('EXTR' GG033 'G_GO' 1 1 1)); L_GG04 = L_GG04 'ET' ('PROG' ('EXTR' GG044 'G_GO' 1 1 1)); L_GG05 = L_GG05 'ET' ('PROG' ('EXTR' GG055 'G_GO' 1 1 1)); * EPS00 = 'REDU' (TAB_DON.STEP0.SOL.ITERATION.O_KSI) ELE1; EPS11 = 'REDU' (TAB_DON.STEP1.SOL.ITERATION.O_KSI) ELE1; EPS22 = 'REDU' (TAB_DON.STEP2.SOL.ITERATION.O_KSI) ELE1; EPS33 = 'REDU' (TAB_DON.STEP3.SOL.ITERATION.O_KSI) ELE1; EPS44 = 'REDU' (TAB_DON.STEP4.SOL.ITERATION.O_KSI) ELE1; EPS55 = 'REDU' (TAB_DON.STEP5.SOL.ITERATION.O_KSI) ELE1; L_EPS0 = L_EPS0 'ET' ('PROG' ('EXTR' EPS00 'KS' 1 1 1)); L_EPS1 = L_EPS1 'ET' ('PROG' ('EXTR' EPS11 'KS' 1 1 1)); L_EPS2 = L_EPS2 'ET' ('PROG' ('EXTR' EPS22 'KS' 1 1 1)); L_EPS3 = L_EPS3 'ET' ('PROG' ('EXTR' EPS33 'KS' 1 1 1)); L_EPS4 = L_EPS4 'ET' ('PROG' ('EXTR' EPS44 'KS' 1 1 1)); L_EPS5 = L_EPS5 'ET' ('PROG' ('EXTR' EPS55 'KS' 1 1 1)); * J = J + 1; 'FIN' IND2; I = I + 1; 'FIN' IND1; * * Evolutions Dmax-z EV_DMAX0 = 'EVOL' (BLEU) 'MANU' 'Gmax []' L_DMAX0 'Prof [m]' L_ZZ0; EV_DMAX1 = 'EVOL' (CYAN) 'MANU' 'Gmax []' L_DMAX1 'Prof [m]' L_ZZ1; EV_DMAX2 = 'EVOL' (OCEA) 'MANU' 'Gmax []' L_DMAX2 'Prof [m]' L_ZZ2; EV_DMAX3 = 'EVOL' (JAUN) 'MANU' 'Gmax []' L_DMAX3 'Prof [m]' L_ZZ3; EV_DMAX4 = 'EVOL' (VERT) 'MANU' 'Gmax []' L_DMAX4 'Prof [m]' L_ZZ4; EV_DMAX5 = 'EVOL' (OLIV) 'MANU' 'Gmax []' L_DMAX5 'Prof [m]' L_ZZ5; * * Evolutions G/G0-z EV_GG00 = 'EVOL' (BLEU) 'MANU' 'Gmax []' L_GG00 'Prof [m]' L_ZZ0; EV_GG01 = 'EVOL' (CYAN) 'MANU' 'Gmax []' L_GG01 'Prof [m]' L_ZZ1; EV_GG02 = 'EVOL' (OCEA) 'MANU' 'Gmax []' L_GG02 'Prof [m]' L_ZZ2; EV_GG03 = 'EVOL' (JAUN) 'MANU' 'Gmax []' L_GG03 'Prof [m]' L_ZZ3; EV_GG04 = 'EVOL' (VERT) 'MANU' 'Gmax []' L_GG04 'Prof [m]' L_ZZ4; EV_GG05 = 'EVOL' (OLIV) 'MANU' 'Gmax []' L_GG05 'Prof [m]' L_ZZ5; * * Evolutions Eps-z EV_EPS0 = 'EVOL' (BLEU) 'MANU' 'Gmax []' L_EPS0 'Prof [m]' L_ZZ0; EV_EPS1 = 'EVOL' (CYAN) 'MANU' 'Gmax []' L_EPS1 'Prof [m]' L_ZZ1; EV_EPS2 = 'EVOL' (OCEA) 'MANU' 'Gmax []' L_EPS2 'Prof [m]' L_ZZ2; EV_EPS3 = 'EVOL' (JAUN) 'MANU' 'Gmax []' L_EPS3 'Prof [m]' L_ZZ3; EV_EPS4 = 'EVOL' (VERT) 'MANU' 'Gmax []' L_EPS4 'Prof [m]' L_ZZ4; EV_EPS5 = 'EVOL' (OLIV) 'MANU' 'Gmax []' L_EPS5 'Prof [m]' L_ZZ5; * 'SI' ('EGA' TYP_GRA 'O'); DESS EV_DMAX0 'TITR' 'Dmax-z - Step 0'; DESS EV_GG00 'TITR' 'G/G0-z - Step 0'; DESS EV_EPS0 'TITR' 'Eps-z - Step 0'; * DESS EV_DMAX1 'TITR' 'Dmax-z - Step 1'; DESS EV_GG01 'TITR' 'G/G0-z - Step 1'; DESS EV_EPS1 'TITR' 'Eps-z - Step 1'; * DESS EV_DMAX2 'TITR' 'Dmax-z - Step 2'; DESS EV_GG02 'TITR' 'G/G0-z - Step 2'; DESS EV_EPS2 'TITR' 'Eps-z - Step 2'; * DESS EV_DMAX3 'TITR' 'Dmax-z - Step 3'; DESS EV_GG03 'TITR' 'G/G0-z - Step 3'; DESS EV_EPS3 'TITR' 'Eps-z - Step 3'; * DESS EV_DMAX4 'TITR' 'Dmax-z - Step 4'; DESS EV_GG04 'TITR' 'G/G0-z - Step 4'; DESS EV_EPS4 'TITR' 'Eps-z - Step 4'; * DESS EV_DMAX5 'TITR' 'Dmax-z - Step 5'; DESS EV_GG05 'TITR' 'G/G0-z - Step 5'; DESS EV_EPS5 'TITR' 'Eps-z - Step 5'; 'FINSI'; * * Sauvegarde dans une table T_ITER = 'TABLE'; T_ITER. 0 = 'TABLE'; T_ITER. 1 = 'TABLE'; T_ITER. 2 = 'TABLE'; T_ITER. 3 = 'TABLE'; T_ITER. 4 = 'TABLE'; T_ITER. 5 = 'TABLE'; * T_ITER. 0 .'DMAX' = EV_DMAX0; T_ITER. 0 .'GG0' = EV_GG00; T_ITER. 0 .'EPS' = EV_EPS0; T_ITER. 1 .'DMAX' = EV_DMAX1; T_ITER. 1 .'GG0' = EV_GG01; T_ITER. 1 .'EPS' = EV_EPS1; T_ITER. 2 .'DMAX' = EV_DMAX2; T_ITER. 2 .'GG0' = EV_GG02; T_ITER. 2 .'EPS' = EV_EPS2; T_ITER. 3 .'DMAX' = EV_DMAX3; T_ITER. 3 .'GG0' = EV_GG03; T_ITER. 3 .'EPS' = EV_EPS3; T_ITER. 4 .'DMAX' = EV_DMAX4; T_ITER. 4 .'GG0' = EV_GG04; T_ITER. 4 .'EPS' = EV_EPS4; T_ITER. 5 .'DMAX' = EV_DMAX5; T_ITER. 5 .'GG0' = EV_GG05; T_ITER. 5 .'EPS' = EV_EPS5; * ********************************************************************** * Extraction des données necessaire au calcul dynamique ********************************************************************** * * Maillage sol MITOT1 = TAB_DON.'STEP5'.'SOL'.'ITERATION'.'O_SOL'; * * Modele Sol MDTOT1 = TAB_DON.'STEP5'.'SOL'.'ITERATION'.'O_MOD'; * * MAteriau Sol MTTOT1 = TAB_DON.'STEP5'.'SOL'.'ITERATION'.'O_MAT'; * * Matrices K, M et C sol RGTOT1 = TAB_DON.'STEP5'.'SOL'.'ITERATION'.'O_RIG'; MSTOT1 = TAB_DON.'STEP5'.'SOL'.'ITERATION'.'O_MAS'; AMTOT1 = TAB_DON.'STEP5'.'SOL'.'ITERATION'.'O_AMO'; * KSTOT1 = TAB_DON.'STEP5'.'SOL'.'ITERATION'.'O_KSI'; * ********************************************************************** * Deconvolution ********************************************************************** * * Contruction de la table des couches pour la deconvolution PPA1 = MITOT1 'POIN' 'PROC' (100. -100. 100.); PPA2 = MITOT1 'POIN' 'PROC' (100. -100. -100.); * Extration des points à la frontiere L_FRO1 = MITOT1 'POIN' 'DROI' PPA1 PPA2 0.001; 'OUBL' CH1; 'OUBL' CH2; 'OUBL' CH3; 'OUBL' PPA1; 'OUBL' PPA2; * * Pour chaque element de la frontiere on detecte: * - maillage fontirere * - module E * - coef nu * - masse volumique * - amortissement NN1 = 'NBNO' L_FRO1; I = 1; * TAB_COU = 'TABLE'; 'REPE' IND1 (NN1 - 1); VZS = (L_FRO1 'POIN' I) 'COOR' 3; VZI = (L_FRO1 'POIN' (I + 1)) 'COOR' 3; * XX1 = -10.; XX2 = 10.; YY1 = -10.; YY2 = 10.; ZZ1 = VZS + 0.01; ZZ2 = VZI - 0.01; CH1 CH2 CH3 = 'COOR' (MITOT1); MAI2 = CH1 'POIN' 'COMPRIS' XX1 XX2; CH2 = 'REDU' CH2 MAI2 ; MAI2 = CH2 'POIN' 'COMPRIS' YY1 YY2; CH3 = 'REDU' CH3 MAI2 ; MAI2 = CH3 'POIN' 'COMPRIS' ZZ2 ZZ1; CH3 = 'REDU' CH3 MAI2 ; MAI2 = (MITOT1) 'ELEM' 'APPUYE' 'STRICTEMENT' MAI2; * CH1 CH2 CH3 = 'COOR' (F_LAT1); MAI3 = CH1 'POIN' 'COMPRIS' XX1 XX2; CH2 = 'REDU' CH2 MAI3 ; MAI3 = CH2 'POIN' 'COMPRIS' YY1 YY2; CH3 = 'REDU' CH3 MAI3 ; MAI3 = CH3 'POIN' 'COMPRIS' ZZ2 ZZ1; CH3 = 'REDU' CH3 MAI3 ; MAI3 = (F_LAT1) 'ELEM' 'APPUYE' 'STRICTEMENT' MAI2; 'OUBL' CH1; 'OUBL' CH2; 'OUBL' CH3; 'OUBL' XX1; 'OUBL' XX2; 'OUBL' YY1; 'OUBL' YY2; 'OUBL' ZZ1; 'OUBL' ZZ2; 'OUBL' VZS; 'OUBL' VZI; * TAB_COU. I = 'TABLE'; TAB_COU. I .'FRONTIERE' = MAI3; TAB_COU. I .'MASSE_VOLUMIQUE' = 'EXTR' ('REDU' (MTTOT1) MAI2) 'RHO' 1 1 1; TAB_COU. I .'POISSON' = 'EXTR' ('REDU' (MTTOT1) MAI2) 'NU' 1 1 1; TAB_COU. I .'YOUNG' = 'EXTR' ('REDU' (MTTOT1) MAI2) 'YOUN' 1 1 1; TAB_COU. I .'AMORTISSEMENT' = 'EXTR' ('REDU' (KSTOT1) MAI2) 'KS' 1 1 1; * I = I + 1; 'FIN' IND1; * P_GAM = 'TABLE'; P_GAM. 1 = F_LAT1 'POIN' 'PROC' (1000. 0. 1000.); P_GAM. 2 = F_LAT1 'POIN' 'PROC' (1000. 0. -1000.); P_GAM.'ENTREE' = 'TABLE'; P_GAM.'ENTREE'.'NATURE' = 'CHAINE' 'OUTCROP'; P_GAM.'ENTREE'.'CONTROLE' = F_LAT1 'POIN' 'PROC' (1000. 0. -1000.); * * TAB_DEC = DECONV3D TAB_COU (0.0 0.0 0.0) F_FON1 MDTOT1 MTTOT1 'UX' EV_ACC FREQ1 FREQ2 50. P_GAM; * ********************************************************************** * Resolution Dynamique ********************************************************************** * * Champ de deplacement et de vitesse initiaux CH_INI = 'MANU' 'CHPO' (MITOT1) 3 'UX' 0.0 'UY' 0.0 'UZ' 0.0; * * Liste de temps a sauver DT1 = 'EXTR' ('EXTR' EV_ACC ABSC) 2; TMAX1 = 'EXTR' ('EXTR' EV_ACC ABSC) ('DIME' ('EXTR' EV_ACC ABSC)); LT2 = 'PROG' 0. 'PAS' ((DT1)/(4.0)) TMAX1; * * Table Dynamic TAB_DYN = 'TABLE'; TAB_DYN.'DEPL' = CH_INI; TAB_DYN.'VITE' = CH_INI; TAB_DYN.'CHAR' = (TAB_DEC.'CHAR'); TAB_DYN.'RIGI' = RGTOT1; TAB_DYN.'MASS' = MSTOT1; TAB_DYN.'AMOR' = AMTOT1 'ET' (TAB_DEC.'AMOR'); TAB_DYN.'FREQ' = TAB_DEC.'FCDYN'; TAB_DYN.'INST' = LT2; TAB_DYN.'DEBU' = 0.0; 'OUBL' LL_T; * * Resulition Table Dynamic TAB_RES1 = DYNAMIC TAB_DYN; * *********************************************************************** * Post TRAITEMENT *********************************************************************** * * Poiunt au surfa et en profondeur PETU1 = SOL1 'POIN' 'PROC' (100. 100. 1000.); PETU2 = SOL1 'POIN' 'PROC' (100. 100. -1000.); * * Definition des listes L_T = 'PROG'; L_D1 = 'PROG'; L_D2 = 'PROG'; L_V1 = 'PROG'; L_V2 = 'PROG'; * * Sortie des deplacement et des vitesses I = 1; NN1 = 'DIME' TAB_RES1; * 'REPE' IND1 (NN1); CH_DEP = TAB_RES1. I .'DEPL'; CH_VIT = TAB_RES1. I .'VITE'; * L_T = L_T 'ET' ('PROG' (TAB_RES1. I .'TEMP')); L_D1 = L_D1 'ET' ('PROG' ('EXTR' (CH_DEP) 'UX' PETU1)); L_D2 = L_D2 'ET' ('PROG' ('EXTR' (CH_DEP) 'UX' PETU2)); L_V1 = L_V1 'ET' ('PROG' ('EXTR' (CH_VIT) 'UX' PETU1)); L_V2 = L_V2 'ET' ('PROG' ('EXTR' (CH_VIT) 'UX' PETU2)); * I = I + 1; 'FIN' IND1; * * Evolutions des deplacements EV_DEP1 = 'EVOL' (BLEU) 'MANU' 'Temps [s]' L_T 'Dx [m]' L_D1; EV_DEP2 = 'EVOL' (BLEU) 'MANU' 'Temps [s]' L_T 'Dx [m]' L_D2; * * Evolutions des vitesses EV_VIT1 = 'EVOL' (VERT) 'MANU' 'Temps [s]' L_T 'Vx [m/s]' L_V1; EV_VIT2 = 'EVOL' (VERT) 'MANU' 'Temps [s]' L_T 'Vx [m/s]' L_V2; * * Evolutions des accelerations EV1 = EV_VIT1; 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 ; EV_ACC1 = EV2; * EV1 = EV_VIT2; 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 ; EV_ACC2 = EV2; * LL1 = 'IPOL' ('EXTR' EV_ACC ABSC) ('EXTR' EV_ACC1 'ABSC') ('EXTR' EV_ACC1 'ORDO'); LL2 = 'IPOL' ('EXTR' EV_ACC ABSC) ('EXTR' EV_ACC2 ABSC) ('EXTR' EV_ACC2 'ORDO'); EV_ACC1 = 'EVOL' (VERT) 'MANU' 'Temps [s]' ('EXTR' EV_ACC 'ABSC') 'Ax [m/s2]' LL1; EV_ACC2 = 'EVOL' (VERT) 'MANU' 'Temps [s]' ('EXTR' EV_ACC 'ABSC') 'Ax [m/s2]' LL2; * * Spectrs de reponse SP_ACC1 = 'SPO' EV_ACC1 'AMOR' ('PROG' 0.05) 'COUL' ROUG ACCE; SP_ACC1 = 'EVOL' (ROUG) 'MANU' 'Freq [Hz]' ('EXTR' SP_ACC1 'ABSC') 'Ax [m/s2]' ('EXTR' SP_ACC1 'ORDO'); SP_ACC2 = 'SPO' EV_ACC2 'AMOR' ('PROG' 0.05) 'COUL' ROUG ACCE; SP_ACC2 = 'EVOL' (ROUG) 'MANU' 'Freq [Hz]' ('EXTR' SP_ACC2 'ABSC') 'Ax [m/s2]' ('EXTR' SP_ACC2 'ORDO'); * * Fonctions de Transferts FT_ACC1 = FTRAN EV_ACC1 EV_ACC 20. 1; FT_ACC1 = 'EVOL' (ROUG) 'MANU' 'Freq [Hz]' ('EXTR' FT_ACC1 'ABSC') 'Ax/Ag [m/s2]' ('EXTR' FT_ACC1 'ORDO'); FT_ACC2 = FTRAN EV_ACC2 EV_ACC 20. 1; FT_ACC2 = 'EVOL' (ROUG) 'MANU' 'Freq [Hz]' ('EXTR' FT_ACC2 'ABSC') 'Ax/Ag [m/s2]' ('EXTR' FT_ACC2 'ORDO'); * * Sauvegarde dans une table T_LE = 'TABLE'; T_LE. 1 = 'TABLE'; T_LE. 2 = 'TABLE'; * T_LE. 1 .'AX' = EV_ACC1; T_LE. 1 .'SX' = SP_ACC1; T_LE. 1 .'TX' = FT_ACC1; * T_LE. 2 .'AX' = EV_ACC2; T_LE. 2 .'SX' = SP_ACC2; T_LE. 2 .'TX' = FT_ACC2; * * Saugarde 'SI' ('EGA' TYP_SAU 'O'); 'OPTI' 'SAUV' 'Test_LE.sauv'; 'SAUV'; 'FINSI'; * 'FIN';