Télécharger issleq1.dgibi

Retour à la liste

Numérotation des lignes :

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

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