Télécharger issleq1.dgibi

Retour à la liste

Numérotation des lignes :

  1. *******************************************************
  2. ************************************************************************
  3. ************************************************************************
  4. * Cas test de la procedure ISSLEQ
  5. * La procedure permet d'effectuer des calculs de propagations d'ondes
  6. * et ISS avec la methode le calcul lineaire equivalent
  7. *******************************************************
  8. * Developpe par :
  9. * Alberto FRAU (alberto.frau[at]cea.fr)
  10. *
  11. *******************************************************
  12. * Institution :
  13. * CEA/DEN/DANS/DM2S/SEMT/EMSI
  14. *******************************************************
  15. * Commentaires
  16. *
  17. * On teste la procedure pour une propagation 1D d'une onde sismique
  18. * de cisaillement sur une colonne de sol homogene de 40 metres
  19. * de profondeur.
  20. * Les caracteristiques du sol sont les suivantes:
  21. *
  22. * Vs= 200 m/s
  23. * rho = 2000. kg/m3
  24. * nu = 1./3
  25. *
  26. * Le chargement sismique est reppresenté par une onde de Ricker
  27. *
  28. * Deux types de calculs sont possibles:
  29. * TYP_CAL = 1 - ktest general
  30. * TYP_CAL = 2 - calcul complet avec 5 iterations et
  31. * deduction de la reponse en surface et à la
  32. * base de la colonne de sol
  33. *
  34. *******************************************************
  35. *
  36. * Type de calcul
  37. TYP_CAL = 1;
  38. *TYP_CAL = 2;
  39. *
  40. * activation des plots
  41. TYP_GRA = 'N';
  42. *TYP_GRA = 'O';
  43. *
  44. * activation sauvegarde
  45. TYP_SAU = 'N';
  46. *TYP_SAU = 'O';
  47. *
  48. OPTI EPTR 10;
  49. OPTI POLI TIMES_24;
  50. *
  51. ***********************************************************************
  52. * Ricker wavelet
  53. ***********************************************************************
  54. *
  55. L_T1 = 'PROG' 0. 'PAS' 0.01 3.;
  56. TS1 = 'PROG' ('DIME' L_T1) * 0.8;
  57. TP1 = 0.2;
  58. A1 = ((PI)*(L_T1 - TS1))/(TP1);
  59. A1 = ((A1)**(2.0));
  60. *
  61. FT1 =
  62. (((-9.81)/(2.0*4.5))*(PI**0.5))*(A1 - ('PROG' ('DIME' L_T1) * 0.5));
  63. FT1 = ((FT1)*('EXP'((-1.0)*(A1))));
  64. *
  65. EV_ACC = 'EVOL' (ORAN) 'MANU' 'Temps [s]' L_T1 'Acce [m/s2]' FT1;
  66. SP1 = 'SPO' EV_ACC 'AMOR' ('PROG' 0.05) 'COUL' DEFA ACCE;
  67. SP_ACC = 'EVOL' (ORAN) 'MANU' 'Freq [Hz]' ('EXTR' SP1 'ABSC')
  68. 'Acce [m/s2]' ('EXTR' SP1 'ORDO');
  69. FF_ACC = 'TFR' 10 EV_ACC 'MOPH';
  70. FF_ACC = 'EVOL' (ORAN) 'MANU' 'Freq [Hz]' ('EXTR' FF_ACC 'ABSC')
  71. 'Modu [m/s2]' ('EXTR' FF_ACC 'ORDO' 1);
  72. *
  73. 'SI' ('EGA' TYP_GRA 'O');
  74. 'DESS' EV_ACC 'TITR' 'Acceleration';
  75. 'DESS' SP_ACC LOGX 'TITR' 'Spectre';
  76. 'DESS' FF_ACC 'TITR' 'Fast Fourier Trasform';
  77. 'FINSI';
  78. *
  79. 'OUBL' FT1;
  80. 'OUBL' A1;
  81. 'OUBL' TP1;
  82. 'OUBL' TS1;
  83. 'OUBL' L_T1;
  84. 'OUBL' SP1;
  85. *
  86. ***********************************************************************
  87. * Courbes Caracteristiques du sol
  88. ***********************************************************************
  89. *
  90. L_GAM = 'PROG'
  91. 0.0001 0.0002 0.0003 0.0004 0.0005 0.0006 0.0007 0.0008 0.0009 0.001
  92. 0.002 0.003 0.004 0.005 0.006 0.007 0.008 0.009 0.01 0.02 0.03 0.04
  93. 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;
  94. L_GG0 = 'PROG'
  95. 0.99674 0.98907 0.98489 0.981 0.97732 0.97381 0.97043 0.96716 0.96399
  96. 0.96091 0.93342 0.90987 0.88885 0.8697 0.85203 0.83559 0.82018
  97. 0.80568 0.79197 0.68469 0.60992 0.55328 0.5083 0.47141 0.44045 0.41399
  98. 0.39105 0.37093 0.25168 0.19496 0.16095 0.13801 0.12136 0.10867
  99. 0.09863 0.09046 0.08368;
  100. L_EPS = 'PROG'
  101. 0.54992 0.59969 0.64931 0.69877 0.74808 0.79724 0.84624 0.8951 0.94381
  102. 0.99237 1.46993 1.93335 2.38324 2.82019 3.24474 3.65742 4.05872 4.4491
  103. 4.829 8.13359 10.73891 12.84568 14.58451 16.04404 17.28657 18.35714
  104. 19.28914 20.10784 24.89024 27.04867 28.277778 29.07143 29.62621
  105. 30.03586 30.35075 30.60033 30.80303;
  106. *
  107. L_EPS = L_EPS/100;
  108. L_GAM = L_GAM/100;
  109. *
  110. GG0_SAN = 'EVOL' 'MANU' 'Def_max' L_GAM 'G/G0' L_GG0;
  111. EPS_SAN = 'EVOL' 'MANU' 'Def_max' L_GAM 'Amor' L_EPS;
  112. 'SI' ('EGA' TYP_GRA 'O');
  113. 'DESS' GG0_SAN LOGX 'TITR' 'G/G0 versus gamma_max';
  114. 'DESS' EPS_SAN LOGX 'TITR' 'Amor versus gamma_max';
  115. 'FINSI';
  116. *
  117. 'OUBL' L_GAM;
  118. 'OUBL' L_GG0;
  119. 'OUBL' L_EPS;
  120. *
  121. ***********************************************************************
  122. * Donnes geometrique et materiau
  123. ***********************************************************************
  124. *
  125. 'OPTI' 'DIME' 3 'MODE' TRID 'ELEM' CUB8;
  126. *
  127. FMAX1 = 20.;
  128. VS_SOL1 = 200.0;
  129. NU_SOL1 = ((1.0)/(3.0));
  130. RHO_SOL1 = 2000.;
  131. HPROF1 = 40.;
  132. *
  133. G_SOL1 = (((VS_SOL1)*(VS_SOL1))*(RHO_SOL1));
  134. E_SOL1 = ((G_SOL1)*((2.0)*(1.0 + NU_SOL1)));
  135. *
  136. FREQ1 = 4.;
  137. FREQ2 = 12.;
  138. BET_SOL1 = 0.005;
  139. *
  140. DS1 = ((VS_SOL1)/((10)*(FMAX1)));
  141. *
  142. ***********************************************************************
  143. * Maillage de la colonne
  144. ***********************************************************************
  145. *
  146. P0 = 0. 0. 0.;
  147. P1 = P0 'PLUS' (-0.5 -0.5 0.);
  148. P2 = P0 'PLUS' (0.5 -0.5 0.);
  149. P3 = P0 'PLUS' (0.5 0.5 0.);
  150. P4 = P0 'PLUS' (-0.5 0.5 0.);
  151. *
  152. L1 = 'DROI' 1 P1 P2;
  153. L2 = 'DROI' 1 P2 P3;
  154. L3 = 'DROI' 1 P3 P4;
  155. L4 = 'DROI' 1 P4 P1;
  156. *
  157. SUR1 = 'DALL' L1 L2 L3 L4;
  158. *
  159. NN1 = 'ENTI' ((HPROF1)/(DS1));
  160. *
  161. VOL1 = SUR1 'VOLU' NN1 'TRANS' (0. 0. ((-1.0)*(HPROF1)));
  162. F_LAT1 = (L1 'ET' L2 'ET' L3 'ET' L4)
  163. 'TRANS' NN1 (0. 0. ((-1.0)*(HPROF1)));
  164. F_FON1 = SUR1 'PLUS' (0. 0. ((-1.0)*(HPROF1)));
  165. *
  166. SOL1 = VOL1 'COUL' VERT;
  167. F_LAT1 = F_LAT1 'COUL' ROSE;
  168. F_FON1 = F_FON1 'COUL' ROSE;
  169. *
  170. 'ELIM' 0.001 (SOL1 'ET' F_LAT1 'ET' F_FON1);
  171. *
  172. 'SI' ('EGA' TYP_GRA 'O');
  173. 'TRAC' 'CACH' (SOL1 'ET' F_FON1 'ET' F_LAT1)
  174. 'TITR' 'Maillage Complet';
  175. 'FINSI';
  176. *
  177. **********************************************************************
  178. * Mise en donnes pour ISSLEQ
  179. **********************************************************************
  180. *
  181. *
  182. TAB_DON = 'TABLE';
  183. TAB_DON.'SOL' = 'TABLE';
  184. TAB_DON.'PARAMETRES' = 'TABLE';
  185. *
  186. TAB2 = 'TABLE';
  187. TAB1 = 'TABLE';
  188. TAB3 = 'TABLE';
  189. *
  190. * Defition table des parametres
  191. TAB2.'GAMMAO_X' = EV_ACC;
  192. TAB2.'DELTA_T' = 1.5;
  193. TAB2.'POINT' = 0. 0. 0.;
  194. TAB2.'CRITERE' = 0.01;
  195. TAB2.'CHI' = 0.60;
  196. TAB2.'F1' = FREQ1;
  197. TAB2.'F2' = FREQ2;
  198. TAB2.'FC' = 50.;
  199. *TAB2.'TYPE' = 'CHAINE' 'LYSMER';
  200. TAB2.'PAR_DEC' = 'TABLE';
  201. TAB2.'PAR_DEC'. 1 = (SOL1 'POIN' 'PROC' (1000. 1000. 1000.));
  202. TAB2.'PAR_DEC'.'ENTREE' = 'TABLE';
  203. TAB2.'PAR_DEC'.'ENTREE'.'NATURE' = 'CHAINE' 'OUTCROP';
  204. TAB2.'PAR_DEC'.'ENTREE'.'CONTROLE' =
  205. F_LAT1 'POIN' 'PROC' (1000. 1000. -1000.);
  206. *TAB2.'REPONSE' = 'TABLE';
  207. *TAB2.'REPONSE'. 1 = 'TABLE';
  208. *TAB2.'REPONSE'. 1 .'NOM' = 'CHAINE' 'PO';
  209. *TAB2.'REPONSE'. 1 .'NOEUD' = (SOL1 'POIN' 'PROC' (1000. 1000. 1000.));
  210. *TAB2.'REPONSE'. 1 .'COMP' = 'CHAINE' 'UX';
  211. TAB2.'TYPE_CALCUL' = 'CHAINE' 'ISS_COMPLET';
  212. *
  213. * Defition table pour definition de sol
  214. TAB1.'ITERATION' = 'TABLE';
  215. TAB1.'ITERATION'. 1 = 'TABLE';
  216. TAB1.'ITERATION'. 1 .'MAILLAGE' = (SOL1);
  217. TAB1.'ITERATION'. 1 .'FRONTIERE' = F_LAT1;
  218. TAB1.'ITERATION'. 1 .'MODULE_E' = E_SOL1;
  219. TAB1.'ITERATION'. 1 .'MASSE_VOLUMIQUE' = RHO_SOL1;
  220. TAB1.'ITERATION'. 1 .'POISSON' = NU_SOL1;
  221. TAB1.'ITERATION'. 1 .'G_GAMMA' = GG0_SAN;
  222. TAB1.'ITERATION'. 1 .'H_GAMMA' = EPS_SAN;
  223. TAB1.'ITERATION'. 1 .'BASE' = F_FON1;
  224. *
  225. *
  226. TAB_DON.'SOL' = TAB1;
  227. TAB_DON.'PARAMETRES' = TAB2;
  228. *
  229. **********************************************************************
  230. * ISSLEQ Step 0 - Initialissation du calcul
  231. **********************************************************************
  232. *
  233. ISSLEQ TAB_DON;
  234. *
  235. **********************************************************************
  236. * ISSLEQ Step 1 - Premiere Iteration
  237. **********************************************************************
  238. *
  239. ISSLEQ TAB_DON;
  240. *
  241. * Verification ktest
  242. 'SI' (TYP_CAL 'EGA' 1);
  243. L_ZZ1 = 'PROG';
  244. L_GG01 = 'PROG';
  245. *
  246. * extraction evolution G/G0 du premier step de calcul
  247. I = 1;
  248. NN1 = 1;
  249. 'REPE' IND1 (NN1);
  250. NN2 = 'NBEL' (TAB_DON.'STEP1'.'SOL'.'ITERATION'.'T_SOL'. I);
  251. J = 1;
  252. 'REPE' IND2 (NN2);
  253. ELE1 = (TAB_DON.'STEP1'.'SOL'.'ITERATION'.'T_SOL'. I) 'ELEM' J;
  254. VALZ = (((ELE1 'POIN' 'PROC' (1000. 0. 1000.)) 'COOR' 3)
  255. + ((ELE1 'POIN' 'PROC' (1000. 0. -1000.)) 'COOR' 3))/(2.0);
  256. L_ZZ1 = L_ZZ1 'ET' ('PROG' VALZ);
  257. *
  258. GG011 = 'REDU'
  259. (TAB_DON.'STEP1'.'SOL'.'ITERATION'.'T_GGO'. I) ELE1;
  260. L_GG01 = L_GG01 'ET' ('PROG' ('EXTR' GG011 'G_GO' 1 1 1));
  261. *
  262. J = J + 1;
  263. 'FIN' IND2;
  264. I = I + 1;
  265. 'FIN' IND1;
  266. *
  267. * Evolution test
  268. L_GG0T = PROG
  269. 9.7056258e-01 9.3164450e-01 9.0171725e-01 8.7822139e-01 8.5968572e-01
  270. 8.4554321e-01 8.3550739e-01 8.2882100e-01 8.2560569e-01 8.2539845e-01
  271. 8.2787502e-01 8.3279914e-01 8.3965862e-01 8.4827632e-01 8.5814816e-01;
  272. L_GG0T = L_GG0T ET (PROG
  273. 8.6921149e-01 8.7834042e-01 8.8414431e-01 8.8749665e-01 8.8897932e-01
  274. 8.9033669e-01 8.9038074e-01 8.9077920e-01 8.9071137e-01 8.9065981e-01
  275. 8.9060009e-01 8.9054191e-01 8.9047658e-01 8.9042509e-01
  276. 8.9035398e-01);
  277. L_GG0T = L_GG0T ET (PROG
  278. 8.9030886e-01 8.9023197e-01 8.9019316e-01 8.9011037e-01 8.9007777e-01
  279. 8.8998920e-01 8.8996255e-01 8.8986808e-01 8.8984764e-01 8.8974720e-01
  280. );
  281. *
  282. * Calcul de l'ecart
  283. LL_TEST = MAXI((ABS(L_GG01 - L_GG0T))/(L_GG01));
  284. *
  285. * Controle
  286. 'SI' (LL_TEST > 6.E-4);
  287. ERRE 5;
  288. 'FINSI';
  289. 'FIN';
  290. 'FINSI';
  291. *
  292. * Continuation du calcul complet
  293. *
  294. **********************************************************************
  295. * ISSLEQ Step 2 - Deuxieme Iteration
  296. **********************************************************************
  297. *
  298. ISSLEQ TAB_DON;
  299. *
  300. **********************************************************************
  301. * ISSLEQ Step 3 - Troisieme Iteration
  302. **********************************************************************
  303. *
  304. ISSLEQ TAB_DON;
  305. *
  306. **********************************************************************
  307. * ISSLEQ Step 4 - Quatrieme Iteration
  308. **********************************************************************
  309. *
  310. ISSLEQ TAB_DON;
  311. *
  312. **********************************************************************
  313. * ISSLEQ Step 5 - Dernier Iteration
  314. **********************************************************************
  315. *
  316. ISSLEQ TAB_DON;
  317. *
  318. **********************************************************************
  319. * Deduction des evolution Dist_max-z G/G0-z et Eps-z
  320. **********************************************************************
  321. *
  322. * listes step 0
  323. L_ZZ0 = 'PROG';
  324. L_DMAX0 = 'PROG';
  325. L_GG00 = 'PROG';
  326. L_EPS0 = 'PROG';
  327. *
  328. * listes step 1
  329. L_ZZ1 = 'PROG';
  330. L_DMAX1 = 'PROG';
  331. L_GG01 = 'PROG';
  332. L_EPS1 = 'PROG';
  333. *
  334. * listes step 2
  335. L_ZZ2 = 'PROG';
  336. L_DMAX2 = 'PROG';
  337. L_GG02 = 'PROG';
  338. L_EPS2 = 'PROG';
  339. *
  340. * listes step 3
  341. L_ZZ3 = 'PROG';
  342. L_DMAX3 = 'PROG';
  343. L_GG03 = 'PROG';
  344. L_EPS3 = 'PROG';
  345. *
  346. * listes step 4
  347. L_ZZ4 = 'PROG';
  348. L_DMAX4 = 'PROG';
  349. L_GG04 = 'PROG';
  350. L_EPS4 = 'PROG';
  351. *
  352. * listes step 5
  353. L_ZZ5 = 'PROG';
  354. L_DMAX5 = 'PROG';
  355. L_GG05 = 'PROG';
  356. L_EPS5 = 'PROG';
  357. *
  358.  
  359. I = 1;
  360. NN1 = 1;
  361. 'REPE' IND1 (NN1);
  362. NN2 = 'NBEL' (TAB_DON.'STEP1'.'SOL'.'ITERATION'.'T_SOL'. I);
  363. J = 1;
  364. 'REPE' IND2 (NN2);
  365. ELE1 = (TAB_DON.'STEP1'.'SOL'.'ITERATION'.'T_SOL'. I) 'ELEM' J;
  366. VALZ = (((ELE1 'POIN' 'PROC' (1000. 0. 1000.)) 'COOR' 3)
  367. + ((ELE1 'POIN' 'PROC' (1000. 0. -1000.)) 'COOR' 3))/(2.0);
  368. L_ZZ0 = L_ZZ0 'ET' ('PROG' VALZ);
  369. L_ZZ1 = L_ZZ1 'ET' ('PROG' VALZ);
  370. L_ZZ2 = L_ZZ2 'ET' ('PROG' VALZ);
  371. L_ZZ3 = L_ZZ3 'ET' ('PROG' VALZ);
  372. L_ZZ4 = L_ZZ4 'ET' ('PROG' VALZ);
  373. L_ZZ5 = L_ZZ5 'ET' ('PROG' VALZ);
  374. *
  375. DMAX00 = ('REDU' (TAB_DON.'STEP1'.'SOL'.'ITERATION'.'O_DIS')
  376. (ELE1))*(0.0);
  377. DMAX11 = ('REDU' (TAB_DON.'STEP1'.'SOL'.'ITERATION'.'O_DIS')
  378. (ELE1));
  379. DMAX22 = ('REDU' (TAB_DON.'STEP2'.'SOL'.'ITERATION'.'O_DIS')
  380. (ELE1));
  381. DMAX33 = ('REDU' (TAB_DON.'STEP3'.'SOL'.'ITERATION'.'O_DIS')
  382. (ELE1));
  383. DMAX44 = ('REDU' (TAB_DON.'STEP4'.'SOL'.'ITERATION'.'O_DIS')
  384. (ELE1));
  385. DMAX55 = ('REDU' (TAB_DON.'STEP5'.'SOL'.'ITERATION'.'O_DIS')
  386. (ELE1));
  387. L_DMAX0 = L_DMAX0 'ET' ('PROG' ('EXTR' DMAX00 'DMAX' 1 1 1));
  388. L_DMAX1 = L_DMAX1 'ET' ('PROG' ('EXTR' DMAX11 'DMAX' 1 1 1));
  389. L_DMAX2 = L_DMAX2 'ET' ('PROG' ('EXTR' DMAX22 'DMAX' 1 1 1));
  390. L_DMAX3 = L_DMAX3 'ET' ('PROG' ('EXTR' DMAX33 'DMAX' 1 1 1));
  391. L_DMAX4 = L_DMAX4 'ET' ('PROG' ('EXTR' DMAX44 'DMAX' 1 1 1));
  392. L_DMAX5 = L_DMAX5 'ET' ('PROG' ('EXTR' DMAX55 'DMAX' 1 1 1));
  393. *
  394. GG000 = 'REDU' (TAB_DON.'STEP0'.'SOL'.'ITERATION'.'T_GGO'. I) ELE1;
  395. GG011 = 'REDU' (TAB_DON.'STEP1'.'SOL'.'ITERATION'.'T_GGO'. I) ELE1;
  396. GG022 = 'REDU' (TAB_DON.'STEP2'.'SOL'.'ITERATION'.'T_GGO'. I) ELE1;
  397. GG033 = 'REDU' (TAB_DON.'STEP3'.'SOL'.'ITERATION'.'T_GGO'. I) ELE1;
  398. GG044 = 'REDU' (TAB_DON.'STEP4'.'SOL'.'ITERATION'.'T_GGO'. I) ELE1;
  399. GG055 = 'REDU' (TAB_DON.'STEP5'.'SOL'.'ITERATION'.'T_GGO'. I) ELE1;
  400. L_GG00 = L_GG00 'ET' ('PROG' ('EXTR' GG000 'G_GO' 1 1 1));
  401. L_GG01 = L_GG01 'ET' ('PROG' ('EXTR' GG011 'G_GO' 1 1 1));
  402. L_GG02 = L_GG02 'ET' ('PROG' ('EXTR' GG022 'G_GO' 1 1 1));
  403. L_GG03 = L_GG03 'ET' ('PROG' ('EXTR' GG033 'G_GO' 1 1 1));
  404. L_GG04 = L_GG04 'ET' ('PROG' ('EXTR' GG044 'G_GO' 1 1 1));
  405. L_GG05 = L_GG05 'ET' ('PROG' ('EXTR' GG055 'G_GO' 1 1 1));
  406. *
  407. EPS00 = 'REDU' (TAB_DON.STEP0.SOL.ITERATION.O_KSI) ELE1;
  408. EPS11 = 'REDU' (TAB_DON.STEP1.SOL.ITERATION.O_KSI) ELE1;
  409. EPS22 = 'REDU' (TAB_DON.STEP2.SOL.ITERATION.O_KSI) ELE1;
  410. EPS33 = 'REDU' (TAB_DON.STEP3.SOL.ITERATION.O_KSI) ELE1;
  411. EPS44 = 'REDU' (TAB_DON.STEP4.SOL.ITERATION.O_KSI) ELE1;
  412. EPS55 = 'REDU' (TAB_DON.STEP5.SOL.ITERATION.O_KSI) ELE1;
  413. L_EPS0 = L_EPS0 'ET' ('PROG' ('EXTR' EPS00 'KS' 1 1 1));
  414. L_EPS1 = L_EPS1 'ET' ('PROG' ('EXTR' EPS11 'KS' 1 1 1));
  415. L_EPS2 = L_EPS2 'ET' ('PROG' ('EXTR' EPS22 'KS' 1 1 1));
  416. L_EPS3 = L_EPS3 'ET' ('PROG' ('EXTR' EPS33 'KS' 1 1 1));
  417. L_EPS4 = L_EPS4 'ET' ('PROG' ('EXTR' EPS44 'KS' 1 1 1));
  418. L_EPS5 = L_EPS5 'ET' ('PROG' ('EXTR' EPS55 'KS' 1 1 1));
  419. *
  420. J = J + 1;
  421. 'FIN' IND2;
  422. I = I + 1;
  423. 'FIN' IND1;
  424. *
  425. * Evolutions Dmax-z
  426. EV_DMAX0 = 'EVOL' (BLEU) 'MANU' 'Gmax []' L_DMAX0 'Prof [m]' L_ZZ0;
  427. EV_DMAX1 = 'EVOL' (CYAN) 'MANU' 'Gmax []' L_DMAX1 'Prof [m]' L_ZZ1;
  428. EV_DMAX2 = 'EVOL' (OCEA) 'MANU' 'Gmax []' L_DMAX2 'Prof [m]' L_ZZ2;
  429. EV_DMAX3 = 'EVOL' (JAUN) 'MANU' 'Gmax []' L_DMAX3 'Prof [m]' L_ZZ3;
  430. EV_DMAX4 = 'EVOL' (VERT) 'MANU' 'Gmax []' L_DMAX4 'Prof [m]' L_ZZ4;
  431. EV_DMAX5 = 'EVOL' (OLIV) 'MANU' 'Gmax []' L_DMAX5 'Prof [m]' L_ZZ5;
  432. *
  433. * Evolutions G/G0-z
  434. EV_GG00 = 'EVOL' (BLEU) 'MANU' 'Gmax []' L_GG00 'Prof [m]' L_ZZ0;
  435. EV_GG01 = 'EVOL' (CYAN) 'MANU' 'Gmax []' L_GG01 'Prof [m]' L_ZZ1;
  436. EV_GG02 = 'EVOL' (OCEA) 'MANU' 'Gmax []' L_GG02 'Prof [m]' L_ZZ2;
  437. EV_GG03 = 'EVOL' (JAUN) 'MANU' 'Gmax []' L_GG03 'Prof [m]' L_ZZ3;
  438. EV_GG04 = 'EVOL' (VERT) 'MANU' 'Gmax []' L_GG04 'Prof [m]' L_ZZ4;
  439. EV_GG05 = 'EVOL' (OLIV) 'MANU' 'Gmax []' L_GG05 'Prof [m]' L_ZZ5;
  440. *
  441. * Evolutions Eps-z
  442. EV_EPS0 = 'EVOL' (BLEU) 'MANU' 'Gmax []' L_EPS0 'Prof [m]' L_ZZ0;
  443. EV_EPS1 = 'EVOL' (CYAN) 'MANU' 'Gmax []' L_EPS1 'Prof [m]' L_ZZ1;
  444. EV_EPS2 = 'EVOL' (OCEA) 'MANU' 'Gmax []' L_EPS2 'Prof [m]' L_ZZ2;
  445. EV_EPS3 = 'EVOL' (JAUN) 'MANU' 'Gmax []' L_EPS3 'Prof [m]' L_ZZ3;
  446. EV_EPS4 = 'EVOL' (VERT) 'MANU' 'Gmax []' L_EPS4 'Prof [m]' L_ZZ4;
  447. EV_EPS5 = 'EVOL' (OLIV) 'MANU' 'Gmax []' L_EPS5 'Prof [m]' L_ZZ5;
  448. *
  449. 'SI' ('EGA' TYP_GRA 'O');
  450. DESS EV_DMAX0 'TITR' 'Dmax-z - Step 0';
  451. DESS EV_GG00 'TITR' 'G/G0-z - Step 0';
  452. DESS EV_EPS0 'TITR' 'Eps-z - Step 0';
  453. *
  454. DESS EV_DMAX1 'TITR' 'Dmax-z - Step 1';
  455. DESS EV_GG01 'TITR' 'G/G0-z - Step 1';
  456. DESS EV_EPS1 'TITR' 'Eps-z - Step 1';
  457. *
  458. DESS EV_DMAX2 'TITR' 'Dmax-z - Step 2';
  459. DESS EV_GG02 'TITR' 'G/G0-z - Step 2';
  460. DESS EV_EPS2 'TITR' 'Eps-z - Step 2';
  461. *
  462. DESS EV_DMAX3 'TITR' 'Dmax-z - Step 3';
  463. DESS EV_GG03 'TITR' 'G/G0-z - Step 3';
  464. DESS EV_EPS3 'TITR' 'Eps-z - Step 3';
  465. *
  466. DESS EV_DMAX4 'TITR' 'Dmax-z - Step 4';
  467. DESS EV_GG04 'TITR' 'G/G0-z - Step 4';
  468. DESS EV_EPS4 'TITR' 'Eps-z - Step 4';
  469. *
  470. DESS EV_DMAX5 'TITR' 'Dmax-z - Step 5';
  471. DESS EV_GG05 'TITR' 'G/G0-z - Step 5';
  472. DESS EV_EPS5 'TITR' 'Eps-z - Step 5';
  473. 'FINSI';
  474. *
  475. * Sauvegarde dans une table
  476. T_ITER = 'TABLE';
  477. T_ITER. 0 = 'TABLE';
  478. T_ITER. 1 = 'TABLE';
  479. T_ITER. 2 = 'TABLE';
  480. T_ITER. 3 = 'TABLE';
  481. T_ITER. 4 = 'TABLE';
  482. T_ITER. 5 = 'TABLE';
  483. *
  484. T_ITER. 0 .'DMAX' = EV_DMAX0;
  485. T_ITER. 0 .'GG0' = EV_GG00;
  486. T_ITER. 0 .'EPS' = EV_EPS0;
  487. T_ITER. 1 .'DMAX' = EV_DMAX1;
  488. T_ITER. 1 .'GG0' = EV_GG01;
  489. T_ITER. 1 .'EPS' = EV_EPS1;
  490. T_ITER. 2 .'DMAX' = EV_DMAX2;
  491. T_ITER. 2 .'GG0' = EV_GG02;
  492. T_ITER. 2 .'EPS' = EV_EPS2;
  493. T_ITER. 3 .'DMAX' = EV_DMAX3;
  494. T_ITER. 3 .'GG0' = EV_GG03;
  495. T_ITER. 3 .'EPS' = EV_EPS3;
  496. T_ITER. 4 .'DMAX' = EV_DMAX4;
  497. T_ITER. 4 .'GG0' = EV_GG04;
  498. T_ITER. 4 .'EPS' = EV_EPS4;
  499. T_ITER. 5 .'DMAX' = EV_DMAX5;
  500. T_ITER. 5 .'GG0' = EV_GG05;
  501. T_ITER. 5 .'EPS' = EV_EPS5;
  502. *
  503. **********************************************************************
  504. * Extraction des données necessaire au calcul dynamique
  505. **********************************************************************
  506. *
  507. * Maillage sol
  508. MITOT1 = TAB_DON.'STEP5'.'SOL'.'ITERATION'.'O_SOL';
  509. *
  510. * Modele Sol
  511. MDTOT1 = TAB_DON.'STEP5'.'SOL'.'ITERATION'.'O_MOD';
  512. *
  513. * MAteriau Sol
  514. MTTOT1 = TAB_DON.'STEP5'.'SOL'.'ITERATION'.'O_MAT';
  515. *
  516. * Matrices K, M et C sol
  517. RGTOT1 = TAB_DON.'STEP5'.'SOL'.'ITERATION'.'O_RIG';
  518. MSTOT1 = TAB_DON.'STEP5'.'SOL'.'ITERATION'.'O_MAS';
  519. AMTOT1 = TAB_DON.'STEP5'.'SOL'.'ITERATION'.'O_AMO';
  520. *
  521. KSTOT1 = TAB_DON.'STEP5'.'SOL'.'ITERATION'.'O_KSI';
  522. *
  523. **********************************************************************
  524. * Deconvolution
  525. **********************************************************************
  526. *
  527. * Contruction de la table des couches pour la deconvolution
  528. PPA1 = MITOT1 'POIN' 'PROC' (100. -100. 100.);
  529. PPA2 = MITOT1 'POIN' 'PROC' (100. -100. -100.);
  530. * Extration des points à la frontiere
  531. L_FRO1 = MITOT1 'POIN' 'DROI' PPA1 PPA2 0.001;
  532. 'OUBL' CH1;
  533. 'OUBL' CH2;
  534. 'OUBL' CH3;
  535. 'OUBL' PPA1;
  536. 'OUBL' PPA2;
  537. *
  538. * Pour chaque element de la frontiere on detecte:
  539. * - maillage fontirere
  540. * - module E
  541. * - coef nu
  542. * - masse volumique
  543. * - amortissement
  544. NN1 = 'NBNO' L_FRO1;
  545. I = 1;
  546. *
  547. TAB_COU = 'TABLE';
  548. 'REPE' IND1 (NN1 - 1);
  549. VZS = (L_FRO1 'POIN' I) 'COOR' 3;
  550. VZI = (L_FRO1 'POIN' (I + 1)) 'COOR' 3;
  551. *
  552. XX1 = -10.;
  553. XX2 = 10.;
  554. YY1 = -10.;
  555. YY2 = 10.;
  556. ZZ1 = VZS + 0.01;
  557. ZZ2 = VZI - 0.01;
  558. CH1 CH2 CH3 = 'COOR' (MITOT1);
  559. MAI2 = CH1 'POIN' 'COMPRIS' XX1 XX2;
  560. CH2 = 'REDU' CH2 MAI2 ;
  561. MAI2 = CH2 'POIN' 'COMPRIS' YY1 YY2;
  562. CH3 = 'REDU' CH3 MAI2 ;
  563. MAI2 = CH3 'POIN' 'COMPRIS' ZZ2 ZZ1;
  564. CH3 = 'REDU' CH3 MAI2 ;
  565. MAI2 = (MITOT1) 'ELEM' 'APPUYE'
  566. 'STRICTEMENT' MAI2;
  567. *
  568. CH1 CH2 CH3 = 'COOR' (F_LAT1);
  569. MAI3 = CH1 'POIN' 'COMPRIS' XX1 XX2;
  570. CH2 = 'REDU' CH2 MAI3 ;
  571. MAI3 = CH2 'POIN' 'COMPRIS' YY1 YY2;
  572. CH3 = 'REDU' CH3 MAI3 ;
  573. MAI3 = CH3 'POIN' 'COMPRIS' ZZ2 ZZ1;
  574. CH3 = 'REDU' CH3 MAI3 ;
  575. MAI3 = (F_LAT1) 'ELEM' 'APPUYE'
  576. 'STRICTEMENT' MAI2;
  577. 'OUBL' CH1;
  578. 'OUBL' CH2;
  579. 'OUBL' CH3;
  580. 'OUBL' XX1;
  581. 'OUBL' XX2;
  582. 'OUBL' YY1;
  583. 'OUBL' YY2;
  584. 'OUBL' ZZ1;
  585. 'OUBL' ZZ2;
  586. 'OUBL' VZS;
  587. 'OUBL' VZI;
  588. *
  589. TAB_COU. I = 'TABLE';
  590. TAB_COU. I .'FRONTIERE' = MAI3;
  591. TAB_COU. I .'MASSE_VOLUMIQUE' = 'EXTR' ('REDU' (MTTOT1) MAI2)
  592. 'RHO' 1 1 1;
  593. TAB_COU. I .'POISSON' = 'EXTR' ('REDU' (MTTOT1) MAI2)
  594. 'NU' 1 1 1;
  595. TAB_COU. I .'YOUNG' = 'EXTR' ('REDU' (MTTOT1) MAI2)
  596. 'YOUN' 1 1 1;
  597. TAB_COU. I .'AMORTISSEMENT' = 'EXTR' ('REDU' (KSTOT1) MAI2)
  598. 'KS' 1 1 1;
  599. *
  600. I = I + 1;
  601. 'FIN' IND1;
  602. *
  603. P_GAM = 'TABLE';
  604. P_GAM. 1 = F_LAT1 'POIN' 'PROC' (1000. 0. 1000.);
  605. P_GAM. 2 = F_LAT1 'POIN' 'PROC' (1000. 0. -1000.);
  606. P_GAM.'ENTREE' = 'TABLE';
  607. P_GAM.'ENTREE'.'NATURE' = 'CHAINE' 'OUTCROP';
  608. P_GAM.'ENTREE'.'CONTROLE' = F_LAT1 'POIN' 'PROC' (1000. 0. -1000.);
  609. *
  610. *
  611. TAB_DEC = DECONV3D TAB_COU (0.0 0.0 0.0) F_FON1 MDTOT1 MTTOT1 'UX'
  612. EV_ACC FREQ1 FREQ2 50. P_GAM;
  613. *
  614. **********************************************************************
  615. * Resolution Dynamique
  616. **********************************************************************
  617. *
  618. * Champ de deplacement et de vitesse initiaux
  619. CH_INI = 'MANU' 'CHPO' (MITOT1) 3 'UX' 0.0 'UY' 0.0 'UZ' 0.0;
  620. *
  621. * Liste de temps a sauver
  622. DT1 = 'EXTR' ('EXTR' EV_ACC ABSC) 2;
  623. TMAX1 = 'EXTR' ('EXTR' EV_ACC ABSC) ('DIME' ('EXTR' EV_ACC ABSC));
  624. LT2 = 'PROG' 0. 'PAS' ((DT1)/(4.0)) TMAX1;
  625. *
  626. * Table Dynamic
  627. TAB_DYN = 'TABLE';
  628. TAB_DYN.'DEPL' = CH_INI;
  629. TAB_DYN.'VITE' = CH_INI;
  630. TAB_DYN.'CHAR' = (TAB_DEC.'CHAR');
  631. TAB_DYN.'RIGI' = RGTOT1;
  632. TAB_DYN.'MASS' = MSTOT1;
  633. TAB_DYN.'AMOR' = AMTOT1 'ET' (TAB_DEC.'AMOR');
  634. TAB_DYN.'FREQ' = TAB_DEC.'FCDYN';
  635. TAB_DYN.'INST' = LT2;
  636. TAB_DYN.'DEBU' = 0.0;
  637. 'OUBL' LL_T;
  638. *
  639. * Resulition Table Dynamic
  640. TAB_RES1 = DYNAMIC TAB_DYN;
  641. *
  642. ***********************************************************************
  643. * Post TRAITEMENT
  644. ***********************************************************************
  645. *
  646. * Poiunt au surfa et en profondeur
  647. PETU1 = SOL1 'POIN' 'PROC' (100. 100. 1000.);
  648. PETU2 = SOL1 'POIN' 'PROC' (100. 100. -1000.);
  649. *
  650. * Definition des listes
  651. L_T = 'PROG';
  652. L_D1 = 'PROG';
  653. L_D2 = 'PROG';
  654. L_V1 = 'PROG';
  655. L_V2 = 'PROG';
  656. *
  657. * Sortie des deplacement et des vitesses
  658. I = 1;
  659. NN1 = 'DIME' TAB_RES1;
  660. *
  661. 'REPE' IND1 (NN1);
  662. CH_DEP = TAB_RES1. I .'DEPL';
  663. CH_VIT = TAB_RES1. I .'VITE';
  664. *
  665. L_T = L_T 'ET' ('PROG' (TAB_RES1. I .'TEMP'));
  666. L_D1 = L_D1 'ET' ('PROG' ('EXTR' (CH_DEP) 'UX' PETU1));
  667. L_D2 = L_D2 'ET' ('PROG' ('EXTR' (CH_DEP) 'UX' PETU2));
  668. L_V1 = L_V1 'ET' ('PROG' ('EXTR' (CH_VIT) 'UX' PETU1));
  669. L_V2 = L_V2 'ET' ('PROG' ('EXTR' (CH_VIT) 'UX' PETU2));
  670. *
  671. I = I + 1;
  672. 'FIN' IND1;
  673. *
  674. * Evolutions des deplacements
  675. EV_DEP1 = 'EVOL' (BLEU) 'MANU' 'Temps [s]' L_T 'Dx [m]' L_D1;
  676. EV_DEP2 = 'EVOL' (BLEU) 'MANU' 'Temps [s]' L_T 'Dx [m]' L_D2;
  677. *
  678. * Evolutions des vitesses
  679. EV_VIT1 = 'EVOL' (VERT) 'MANU' 'Temps [s]' L_T 'Vx [m/s]' L_V1;
  680. EV_VIT2 = 'EVOL' (VERT) 'MANU' 'Temps [s]' L_T 'Vx [m/s]' L_V2;
  681. *
  682. * Evolutions des accelerations
  683. EV1 = EV_VIT1;
  684. X = 'EXTR' EV1 'ABSC' ;
  685. Y = 'EXTR' EV1 'ORDO' ;
  686. NPOIN = 'DIME' X ;
  687. H = ( 'EXTR' X 2 ) - ( 'EXTR' X 1 ) ;
  688. X1 = ( 'PROG' 0.0 0.0 ) 'ET' Y ;
  689. X3 = Y 'ET' ( 'PROG' 0.0 0.0 ) ;
  690. DX = ( X3 - X1 ) / ( H * 2.0 ) ;
  691. Y1 = 'ENLE' ( 'ENLE' DX ( NPOIN + 2 ) ) 1 ;
  692. L1 = ( 'PROG' 0.0 ) 'ET' ( 'PROG' ( NPOIN - 2 ) * 1.0 )
  693. 'ET' ( 'PROG' 0.0 ) ;
  694. Y2 = Y1 * L1 ;
  695. EV2 = 'EVOL' 'MANU' X Y2 ;
  696. EV_ACC1 = EV2;
  697. *
  698. EV1 = EV_VIT2;
  699. X = 'EXTR' EV1 'ABSC' ;
  700. Y = 'EXTR' EV1 'ORDO' ;
  701. NPOIN = 'DIME' X ;
  702. H = ( 'EXTR' X 2 ) - ( 'EXTR' X 1 ) ;
  703. X1 = ( 'PROG' 0.0 0.0 ) 'ET' Y ;
  704. X3 = Y 'ET' ( 'PROG' 0.0 0.0 ) ;
  705. DX = ( X3 - X1 ) / ( H * 2.0 ) ;
  706. Y1 = 'ENLE' ( 'ENLE' DX ( NPOIN + 2 ) ) 1 ;
  707. L1 = ( 'PROG' 0.0 ) 'ET' ( 'PROG' ( NPOIN - 2 ) * 1.0 )
  708. 'ET' ( 'PROG' 0.0 ) ;
  709. Y2 = Y1 * L1 ;
  710. EV2 = 'EVOL' 'MANU' X Y2 ;
  711. EV_ACC2 = EV2;
  712. *
  713. LL1 = 'IPOL' ('EXTR' EV_ACC ABSC) ('EXTR' EV_ACC1 'ABSC')
  714. ('EXTR' EV_ACC1 'ORDO');
  715. LL2 = 'IPOL' ('EXTR' EV_ACC ABSC) ('EXTR' EV_ACC2 ABSC)
  716. ('EXTR' EV_ACC2 'ORDO');
  717. EV_ACC1 = 'EVOL' (VERT) 'MANU' 'Temps [s]' ('EXTR' EV_ACC 'ABSC')
  718. 'Ax [m/s2]' LL1;
  719. EV_ACC2 = 'EVOL' (VERT) 'MANU' 'Temps [s]' ('EXTR' EV_ACC 'ABSC')
  720. 'Ax [m/s2]' LL2;
  721. *
  722. * Spectrs de reponse
  723. SP_ACC1 = 'SPO' EV_ACC1 'AMOR' ('PROG' 0.05) 'COUL' ROUG ACCE;
  724. SP_ACC1 = 'EVOL' (ROUG) 'MANU' 'Freq [Hz]' ('EXTR' SP_ACC1 'ABSC')
  725. 'Ax [m/s2]' ('EXTR' SP_ACC1 'ORDO');
  726. SP_ACC2 = 'SPO' EV_ACC2 'AMOR' ('PROG' 0.05) 'COUL' ROUG ACCE;
  727. SP_ACC2 = 'EVOL' (ROUG) 'MANU' 'Freq [Hz]' ('EXTR' SP_ACC2 'ABSC')
  728. 'Ax [m/s2]' ('EXTR' SP_ACC2 'ORDO');
  729. *
  730. * Fonctions de Transferts
  731. FT_ACC1 = FTRAN EV_ACC1 EV_ACC 20. 1;
  732. FT_ACC1 = 'EVOL' (ROUG) 'MANU' 'Freq [Hz]' ('EXTR' FT_ACC1 'ABSC')
  733. 'Ax/Ag [m/s2]' ('EXTR' FT_ACC1 'ORDO');
  734. FT_ACC2 = FTRAN EV_ACC2 EV_ACC 20. 1;
  735. FT_ACC2 = 'EVOL' (ROUG) 'MANU' 'Freq [Hz]' ('EXTR' FT_ACC2 'ABSC')
  736. 'Ax/Ag [m/s2]' ('EXTR' FT_ACC2 'ORDO');
  737. *
  738. * Sauvegarde dans une table
  739. T_LE = 'TABLE';
  740. T_LE. 1 = 'TABLE';
  741. T_LE. 2 = 'TABLE';
  742. *
  743. T_LE. 1 .'AX' = EV_ACC1;
  744. T_LE. 1 .'SX' = SP_ACC1;
  745. T_LE. 1 .'TX' = FT_ACC1;
  746. *
  747. T_LE. 2 .'AX' = EV_ACC2;
  748. T_LE. 2 .'SX' = SP_ACC2;
  749. T_LE. 2 .'TX' = FT_ACC2;
  750. *
  751. * Saugarde
  752. 'SI' ('EGA' TYP_SAU 'O');
  753. 'OPTI' 'SAUV' 'Test_LE.sauv';
  754. 'SAUV';
  755. 'FINSI';
  756. *
  757. 'FIN';
  758.  
  759.  
  760.  
  761.  
  762.  
  763.  
  764.  

© Cast3M 2003 - Tous droits réservés.
Mentions légales