Télécharger deconv.procedur

Retour à la liste

Numérotation des lignes :

  1. * DECONV PROCEDUR WANG 16/01/21 21:15:08 8787
  2. 'DEBPROC' DECONV COUCHE*'TABLE' FOND_SOL*'MAILLAGE' SOL/'MAILLAGE'
  3. MOD_SOL DIR*'MOT' GAMMAO*'EVOLUTIO' F1*'FLOTTANT'
  4. F2*'FLOTTANT' FC/'FLOTTANT' TYP_F/'MOT'
  5. P_GAMMA/'TABLE' ;
  6. ************************************************************************
  7. *
  8. * D E C O N V
  9. * -------------
  10. *
  11. * FONCTION:
  12. * ---------
  13. *
  14. * Cette procédure permet d'effectuer des calculs d'interaction sol-
  15. * structure (ISS) en 2D (déformation plane ou mode Fourier 0
  16. * (mouvement vertical) et 1 (mouvement horizontal)) par la méthode
  17. * des éléments finis
  18. *
  19. * PHRASE D'APPEL (EN GIBIANE):
  20. * ----------------------------
  21. *
  22. * TABRESU = DECONV COUCHE FOND_SOL MOD_SOL (SOL) DIR
  23. * GAMMAO F1 F2 (FC) (TYP_F) (P_GAMMA)
  24. *
  25. * OPERANDES:
  26. * ----------
  27. *
  28. * COUCHE 'TABLE' : table à double indice
  29. *
  30. * COUCHE.I.'indice' : données pour la ième couche du sol
  31. *
  32. * indice 'FRONTIERE' 'MAILLAGE' : frontière verticale
  33. * indice 'MASSE_VOLUMIQUE' 'FLOTTANT' : masse volumique
  34. * indice 'POISSON' 'FLOTTANT' : coefficient de Poisson
  35. * indice 'YOUNG' 'FLOTTANT' : module d'Young
  36. * indice 'AMORTISSEMENT 'FLOTTANT' : amortissement réduit
  37. *
  38. * FOND_SOL 'MAILLAGE' : frontière horizontale inférieure du sol
  39. * MOD_SOL 'MMODEL' : modèle du sol proche
  40. * SOL 'MAILLAGE' : maillage du sol proche, facultatif
  41. * DIR 'MOT' : direction de l'accélération sismique GAMMAO
  42. * 'HORI' pour la direction horizontale
  43. * 'VERT' pour la direction verticale
  44. * GAMMAO 'EVOLUTIO' : Signal sismique (accélérogramme) d'entrée pour
  45. * la déconvolution, défini par défaut à la surface
  46. * libre du sol, sinon, renseigner la table P_GAMMA
  47. * F1, F2 'FLOTTANT' : fréquences sur lesquelles l'amortissement
  48. * : réduit est ajusté suivant le modèle de
  49. * RAYLEIGH
  50. * FC 'FLOTTANT' : fréquence de coupure pour la déconvolution,
  51. * par défaut FC = 50 Hz
  52. * TYP_F 'MOT' : type de frontière : 'WHITE' (par défaut)
  53. * 'LYSMER'
  54. * P_GAMMA 'TABLE' : Description des accélérogrammes d'entrée et de
  55. * sortie pour la déconvolution (facultatif)
  56. * indice 'ENTREE' :'TABLE' : description de la nature de l'accélérogramm
  57. * GAMMAO autre que sur la surface libre (facultatif)
  58. * sous-indice 'NATURE' : Nature du point de contrôle :
  59. * 'MOT' INSIDE : profondeur du sol
  60. * 'MOT' OUTCROP : outcrop du bedrock
  61. * sous-indice 'CONTROLE' :'MAILLAGE': point de contrôle sur la frontière
  62. * verticale si sous-indice 'NATURE' = 'INSIDE'
  63. * indice 'I' :'MAILLAGE': Ième (i = 1, 2, 3,...) points sur la
  64. * frontière verticale pour lesquels on désire sortir
  65. * l'accélérogramme en champ libre (résultats de
  66. * déconvolution)
  67. *
  68. * RESULTATS:
  69. * ----------
  70. * TABRESU 'TABLE' : table qui contient les résultats du calcul
  71. *
  72. * indice 'CHAR' 'CHARGEMENT' : excitation sur la frontière du sol
  73. * indice 'AMOR' 'RIGIDITE' : frontière absorbante de type TYP_F
  74. * indice 'DEFO' 'EVOLUTIO' : déformation maximale en fonction
  75. * de la profondeur
  76. * indice 'ACCE' 'TABLE' : table qui contient les accélérations
  77. * obtenues par la déconvolution
  78. * sous-indice I accélération du point I défini dans la
  79. * table P_GAMMA
  80. * sous-indice 'OUTCROP' accélération du outcrop de bedrock
  81. *
  82. * indice 'PAS' 'FLOTTANT'
  83. * indice 'FCDYN' 'FLOTTANT' : pas de temps et fréquence de coupure
  84. * à utiliser pour le calcul de
  85. * l'interaction sol-structure
  86. * à l'aide de la procédure DYNAMIC
  87. *
  88. * PROCEDURES APPELEES :
  89. * -------------------
  90. * 'FRONABS'
  91. *
  92. *
  93. * AUTEUR, DATE DE CREATION ET DE MODIFICATION:
  94. * --------------------------------------------
  95. *
  96. * F. WANG 11/06/1992 : Création, mouvement horizontal.
  97. * F. WANG 17/09/1996 : Mise à jour.
  98. * F. WANG 16/02/1999 : Modification, mouvement vertical
  99. * F. WANG 04/09/2008 : Optimisation du pas de calcul,
  100. * correction d'un plantage lié à la
  101. * profondeur de la déconvolutiobn,
  102. * Vérification du maillage de frontière.
  103. * F. WANG 07/10/2010 : Mise à zéro des vitesses initiales
  104. * au sens moyen sur les 100 premiers pas
  105. * éliminant ainsi la rotation du bloc de sol,
  106. * Changement de format du chargement réduisant
  107. * largement le temps de calcul dynamique
  108. * F. WANG 20/02/2013 : Ajout des options concernant le signal
  109. * d'entrée : PROFOND et OUTCROP
  110. * Ajout du signal de sortie outcrop de bedrock
  111. * F. WANG 04/01/2016 Changement du mot-clé 'PROFOND' en 'INSIDE'
  112. * pour être compatible avec la procedure
  113. * DECONV3D
  114. * Correction de bug dans le tracé de
  115. * l'evolution de la déformation maximale
  116. ************************************************************************
  117.  
  118. * Maillage de la frontière du sol : élément SEG3 seulement
  119. * Types d'éléments de sol QUA8 + TRI6
  120.  
  121. NB_COU = 'DIME' COUCHE;
  122. FRSOL = FOND_SOL;
  123.  
  124. I = 1;
  125. 'REPE' BCL0 NB_COU;
  126. FRSOL = FRSOL 'ET' COUCHE.I.'FRONTIERE';
  127. I = I + 1;
  128. 'FIN' BCL0;
  129.  
  130. LTYPF = 'ELEM' FRSOL 'TYPE';
  131.  
  132. 'SI' ((DIME LTYPF) > 1);
  133. 'SAUT' 2 'LIGNE' ;
  134. 'MESS' '***** ARRET DE LA PROCEDURE DECONV *****';
  135. 'MESS' '***** LA FRONTIERE DOIT ETRE DE TYPE SEG3 *****';
  136. 'MESS' '***** LE SOL DOIT DE TYPE QUA8 OU TRI6 *****';
  137. 'SAUT' 2 'LIGNE';
  138. 'QUIT' DECONV;
  139.  
  140. 'SINON';
  141. TYPF1 = 'EXTR' LTYPF 1;
  142. 'SI' ('NEG' TYPF1 'SEG3');
  143. 'SAUT' 2 'LIGNE' ;
  144. 'MESS' '***** ARRET DE LA PROCEDURE DECONV *****';
  145. 'MESS' '***** LA FRONTIERE DOIT ETRE DE TYPE SEG3 *****';
  146. 'MESS' '***** LE SOL DOIT DE TYPE QUA8 OU TRI6 *****';
  147. 'SAUT' 2 'LIGNE';
  148. 'QUIT' DECONV;
  149. 'FINSI';
  150. 'FINSI';
  151.  
  152. 'SI' ( 'NON' ( 'EXIS' TYP_F ) ) ;
  153. TYP_F = 'WHITE' ;
  154. 'FINSI' ;
  155.  
  156. 'SAUT' 5 'LIGNE' ;
  157. 'MESS' '**********************************************************' ;
  158. 'MESS' '* *' ;
  159. 'MESS' '* CALCUL DU CHAMP SISMIQUE INCIDENT PAR LA METHODE *' ;
  160. 'MESS' '* DE LA DECONVOLUTION *' ;
  161. 'MESS' '* *' ;
  162. 'MESS' '**********************************************************' ;
  163. 'SAUT' 2 'LIGNE' ;
  164. 'MESS' 'CARACTERISTIQUES MECANIQUES DU SOL' ;
  165.  
  166. NB_COU = 'DIME' COUCHE ;
  167. I = 0 ;
  168. 'REPE' BOUCL0 NB_COU ;
  169. I = I + 1 ;
  170. E_I = COUCHE.I.'YOUNG' ;
  171. NU_I = COUCHE.I.'POISSON' ;
  172. COUCHE.I.'MODULE_G' = E_I / ( 2. * ( 1. + NU_I ) ) ;
  173. CS_I = ( COUCHE.I.'MODULE_G' / COUCHE.I.'MASSE_VOLUMIQUE' ) ** .5 ;
  174. CP_I = ((2.0 * (1.0 - NU_I))/(1.0 - (2.0 * NU_I))) ** 0.5 ;
  175. CP_I = CP_I * CS_I ;
  176. COUCHE.I.'FRONTIERE' = 'ORDO' COUCHE.I.'FRONTIERE' ;
  177.  
  178. P_INI = ( COUCHE.I.'FRONTIERE' ) 'POINT' 'INITIAL' ;
  179. P_FIN = ( COUCHE.I.'FRONTIERE' ) 'POINT' 'FINAL' ;
  180. Z_INI = 'COOR' 2 P_INI ;
  181. Z_FIN = 'COOR' 2 P_FIN ;
  182. COUCHE.I.'EPAISSEUR' = 'ABS' ( Z_INI - Z_FIN ) ;
  183.  
  184. 'SAUT' 'LIGNE' ;
  185. 'MESS' 'COUCHE NUMERO ' I ;
  186. 'SAUT' 'LIGNE' ;
  187. 'MESS' 'EPAISSEUR DE LA COUCHE H ' COUCHE.I.'EPAISSEUR' ;
  188. 'MESS' 'MODULE D"YOUNG E ' COUCHE.I.'YOUNG' ;
  189. 'MESS' 'MASSE VOLUMIQUE RHO' COUCHE.I.'MASSE_VOLUMIQUE' ;
  190. 'MESS' 'COEFFICIENT DE POISSON NU ' COUCHE.I.'POISSON' ;
  191. 'MESS' 'VITESSE DES ONDES S CS ' CS_I ;
  192. 'MESS' 'VITESSE DES ONDES P CP ' CP_I ;
  193. 'MESS' 'AMORTISSEMENT EQUIVALENT KSI' COUCHE.I.'AMORTISSEMENT' ;
  194. 'FIN' BOUCL0 ;
  195.  
  196. ******************* Construction d'une colonne de sol ******************
  197. *
  198. * La colonne est construite a l'extérieur de la frontière.
  199. * Dans le cas de PLANDEFO , elle est :
  200. *
  201. * - a droite pour la frontière droite ( X > 0 )
  202. * - a gauche pour la frontière gauche ( X < 0 )
  203. *
  204. ************************************************************************
  205.  
  206. 'SAUT' 3 'LIGNE' ;
  207. 'MESS' 'CONSTRUCTION D"UNE COLONNE DE SOL' ;
  208. AXP = 'CHAN' ( COUCHE. 1 . 'FRONTIERE' ) 'POI1' ;
  209. NOEU1 = AXP 'POINT' 1 ;
  210. NOEU2 = AXP 'POINT' 2 ;
  211. XF = 'COOR' 1 NOEU1 ;
  212. Z1 = 'COOR' 2 NOEU1 ;
  213. Z2 = 'COOR' 2 NOEU2 ;
  214. DZ = 'ABS' ( Z1 - Z2 ) ;
  215. 'SI' ( 0.0 > XF ) ;
  216. DZ = DZ * ( -1 ) ;
  217. 'FINSI' ;
  218. VEC_H = DZ 0. ;
  219.  
  220. 'OPTI' 'ELEM' 'QUA8' ;
  221. 'TITR' 'COLONNE DE SOL POUR LA DECONVOLUTION ( EN ROSE )' ;
  222.  
  223. COLONN = 'TABLE' ;
  224. COLMOD = 'TABLE' ;
  225. COLMAT = 'TABLE' ;
  226. COLMAS = 'TABLE' ;
  227. COLRIG = 'TABLE' ;
  228. COLBLO = 'TABLE' ;
  229. COLAMO = 'TABLE' ;
  230.  
  231. TYP_MODE = 'MOT' ('VALEUR' 'MODE') ;
  232. 'SI' ( 'EGA' TYP_MODE 'FOUR' ) ;
  233. 'SI' ( 'EGA' DIR 'HORI' ) ;
  234. BMOT = 'MOT' 'UZ' ;
  235. 'SINON' ;
  236. 'SI' ( 'EGA' DIR 'VERT' ) ;
  237. BMOT = 'MOT' 'UR' ;
  238. 'FINSI' ;
  239. 'FINSI' ;
  240. 'SINON' ;
  241. 'SI' ( 'EGA' TYP_MODE 'PLANDEFO' ) ;
  242. 'SI' ( 'EGA' DIR 'HORI' ) ;
  243. BMOT = 'MOT' 'UY' ;
  244. 'SINON' ;
  245. 'SI' ( 'EGA' DIR 'VERT' ) ;
  246. BMOT = 'MOT' 'UX' ;
  247. 'FINSI' ;
  248. 'FINSI' ;
  249. 'FINSI' ;
  250. 'FINSI' ;
  251.  
  252. 'SI' ( 'NON' ( 'EXIS' F1 ) ) ;
  253. F1 = 1.0 ;
  254. F2 = 25.0 ;
  255. 'FINSI' ;
  256. 'MESS' 'AMORTISSEMENT DE RAYLEIGH POUR LE SOL' ;
  257. 'MESS' 'F1 = ' F1 'Hz F2 = ' F2 'Hz' ;
  258. ALPHA = PI * 4 * F1 * F2 / ( F1 + F2 ) ;
  259. BETA = 1 / ( PI * ( F1 + F2 ) ) ;
  260.  
  261. I = 0 ;
  262. 'REPE' BOUCL1 NB_COU ;
  263. I = I + 1 ;
  264. KSI = COUCHE.I.'AMORTISSEMENT' ;
  265. COLONN.I = ( COUCHE.I.'FRONTIERE' ) 'TRANS' 1 VEC_H ;
  266. COLMOD.I = 'MODE' ( COLONN.I ) 'MECANIQUE' 'ELASTIQUE'
  267. 'ISOTROPE' 'QUA8' ;
  268. COLMAT.I = 'MATE' ( COLMOD.I ) 'YOUNG' ( COUCHE.I.'YOUNG' )
  269. 'NU' ( COUCHE.I.'POISSON' )
  270. 'RHO' ( COUCHE.I.'MASSE_VOLUMIQUE' ) ;
  271. COLMAS.I = 'MASS' ( COLMOD.I ) ( COLMAT.I ) ;
  272. COLRIG.I = 'RIGI' ( COLMOD.I ) ( COLMAT.I ) ;
  273. COLBLO.I = 'BLOQ' BMOT ( COLONN.I ) ;
  274. COLAMO.I = KSI * (( ALPHA * ( COLMAS.I ) ) 'ET'
  275. ( BETA * ( COLRIG.I 'ET' COLBLO.I ))) ;
  276.  
  277. 'SI' ( I 'EGA' 1 ) ;
  278. FRON = COUCHE.I.'FRONTIERE' ;
  279. COL1 = COLONN.I ;
  280. MOD1 = COLMOD.I ;
  281. MAT1 = COLMAT.I ;
  282. MAS1 = COLMAS.I ;
  283. RIG1 = COLRIG.I ;
  284. BLO1 = COLBLO.I ;
  285. AMO1 = COLAMO.I ;
  286. 'SINON' ;
  287. FRON = FRON 'ET' ( COUCHE.I.'FRONTIERE' ) ;
  288. COL1 = COL1 'ET' ( COLONN.I ) ;
  289. MOD1 = MOD1 'ET' ( COLMOD.I ) ;
  290. MAT1 = MAT1 'ET' ( COLMAT.I ) ;
  291. MAS1 = MAS1 'ET' ( COLMAS.I ) ;
  292. RIG1 = RIG1 'ET' ( COLRIG.I ) ;
  293. BLO1 = BLO1 'ET' ( COLBLO.I ) ;
  294. AMO1 = AMO1 'ET' ( COLAMO.I ) ;
  295. 'FINSI' ;
  296. 'FIN' BOUCL1 ;
  297.  
  298. 'ELIM' COL1 0.01 ;
  299. COL1 = COL1 'COUL' 'ROSE' ;
  300. RIGT = RIG1 'ET' BLO1 ;
  301. 'SI' ( 'EXIS' SOL ) ;
  302. 'TRAC' ( SOL 'ET' COL1 ) 'FACE' 'NCLK' ;
  303. 'SINON' ;
  304. 'TRAC' COL1 'FACE' 'NCLK' ;
  305. 'FINSI' ;
  306.  
  307. * Renumérotation des noeuds sur la frontière : TASSER "FRON"
  308.  
  309. NB_NOEU = 'NBNO' FRON ;
  310.  
  311. * Amortisseurs à la base de la colonne
  312.  
  313. 'SAUT' 'LIGNE' ;
  314. 'MESS' 'AMORTISSEURS A LA BASE DE LA COLONNE' ;
  315. BAS_ABS = 'TABLE' ;
  316. P_INI = ( COUCHE.NB_COU.'FRONTIERE' ) 'POINT' 'INITIAL' ;
  317. P_FIN = ( COUCHE.NB_COU.'FRONTIERE' ) 'POINT' 'FINAL' ;
  318. Z_INI = 'COOR' 2 P_INI ;
  319. Z_FIN = 'COOR' 2 P_FIN ;
  320. DZ = Z_INI - Z_FIN ;
  321. 'SI' ( DZ > 0.0 ) ;
  322. P_BAS = P_FIN ;
  323. BAS_ABS.'FRONTIERE' = 'COTE' 2 ( COLONN.NB_COU ) ;
  324. 'SINON' ;
  325. P_BAS = P_INI ;
  326. BAS_ABS.'FRONTIERE' = 'COTE' 4 ( COLONN.NB_COU ) ;
  327. 'FINSI' ;
  328.  
  329. BAS_ABS.'YOUNG' = COUCHE.NB_COU.'YOUNG' ;
  330. BAS_ABS.'POISSON' = COUCHE.NB_COU.'POISSON' ;
  331. BAS_ABS.'MASSE_VOLUMIQUE' = COUCHE.NB_COU.'MASSE_VOLUMIQUE';
  332. TYP_FRO = 'MOT' 'LYSMER' ;
  333.  
  334. 'SI' ( 'EGA' DIR 'HORI' ) ;
  335. NHAR = 1 ;
  336. 'SINON' ;
  337. 'SI' ( 'EGA' DIR 'VERT' ) ;
  338. NHAR = 0 ;
  339. 'FINSI' ;
  340. 'FINSI' ;
  341.  
  342. AMO_BAS = FRONABS BAS_ABS TYP_FRO NHAR ;
  343. 'LIST' AMO_BAS ;
  344. AMOT = AMO_BAS 'ET' AMO1 ;
  345.  
  346. * Accès aux noeuds sur la frontière
  347.  
  348. P_INI = ( COUCHE. 1 . 'FRONTIERE' ) 'POINT' 'INITIAL' ;
  349. P_FIN = ( COUCHE. 1 . 'FRONTIERE' ) 'POINT' 'FINAL' ;
  350.  
  351. Z_INI = 'COOR' 2 P_INI ;
  352. Z_FIN = 'COOR' 2 P_FIN ;
  353. DZ = Z_INI - Z_FIN ;
  354. 'SI' ( DZ > 0.0 ) ;
  355. P_SUR = P_INI ;
  356. 'SINON' ;
  357. P_SUR = P_FIN ;
  358. 'FINSI' ;
  359.  
  360. NUM_SUR = 'NOEUD' P_SUR ;
  361. NUM_BAS = 'NOEUD' P_BAS ;
  362.  
  363. POI_FRO = 'TABLE' ;
  364. I = 0 ;
  365. 'REPE' BOUCL2 NB_NOEU ;
  366. I = I + 1 ;
  367. POI_FRO.I = 'NOEU' I ;
  368. 'FIN' BOUCL2 ;
  369.  
  370.  
  371. ****************** Réponse dynamique de la colonne *****************
  372. *
  373. * Pour éviter des problèmes de précision liés à l'interpolation du
  374. * chargement produit par cette procédure, le pas de temps utilisé ici
  375. * pour la déconvolution sera également utilisé pour le calcul d'ISS.
  376. *
  377. * Le pas de temps est égale à 1/2, 1/4, 1/8, ... de celui de GAMMAO
  378. * pour éviter des erreurs d'interpolation sur le signal d'entrée. Il
  379. * doit être défini de sorte que la fréquence de coupure utilisée dans
  380. * la procédure DYNAMIC est au moins 4 fois FC.
  381. *
  382. * Durée de calcul
  383. *
  384. * sol monocouche : 3 aller-retours onde S
  385. * sol multicouche : 5 aller-retours onde S (prise en compte des
  386. * réflections sur les interfaces des couches)
  387. *
  388. ************************************************************************
  389.  
  390. * Fréquence de coupure FC
  391.  
  392. 'SI' ( 'NON' ( 'EXIS' FC ) ) ;
  393. FC = 50.0 ;
  394. 'FINSI' ;
  395. 'SAUT' 'LIGNE' ;
  396. 'MESS' 'FREQUENCE DE COUPURE = ' FC 'Hz' ;
  397.  
  398. 'SAUT' 3 'LIGNE' ;
  399. 'MESS' 'REPONSE DYNAMIQUE DE LA COLONNE' ;
  400. 'SAUT' 'LIGNE' ;
  401. T_GAMO = 'EXTR' GAMMAO 'ABSC' ;
  402. A_GAMO = 'EXTR' GAMMAO 'ORDO' ;
  403. NP = 'DIME' T_GAMO ;
  404. TEM1 = 'EXTR' T_GAMO 1 ;
  405. TEM2 = 'EXTR' T_GAMO 2 ;
  406. TEMNP = 'EXTR' T_GAMO NP ;
  407. PAS_TEM = TEM2 - TEM1 ;
  408. PAS_2FC = 1.0 / ( 8 * FC ) ;
  409.  
  410. IDIV = 0 ;
  411. 'REPE' BB1 ;
  412. ERR = (( PAS_TEM / ( 2**IDIV )) - PAS_2FC ) / PAS_2FC ;
  413. 'SI' ( ERR < 0.01 ) ;
  414. 'QUIT' BB1 ;
  415. 'FINSI' ;
  416. IDIV = IDIV + 1 ;
  417. 'FIN' BB1 ;
  418. PAS_TEM = PAS_TEM / (2**IDIV) ;
  419.  
  420.  
  421. 'SI' ( NB_COU 'EGA' 1 ) ;
  422. G = ( COUCHE. 1 . 'MODULE_G' ) ;
  423. CS = ( G / ( COUCHE. 1 . 'MASSE_VOLUMIQUE' ) ) ** 0.5 ;
  424. DUREE = 6.0 * ( COUCHE. 1 . 'EPAISSEUR' ) / CS ;
  425.  
  426. 'SINON' ;
  427. DUREE = 0.0 ;
  428. I = 0 ;
  429. 'REPE' BOUCD NB_COU ;
  430. I = I + 1 ;
  431. G = ( COUCHE.I.'MODULE_G' ) ;
  432. CS = ( G / ( COUCHE.I.'MASSE_VOLUMIQUE' ) ) ** 0.5 ;
  433. DUREE = DUREE + ( 10.0 * ( COUCHE.I.'EPAISSEUR' ) / CS ) ;
  434. 'FIN' BOUCD ;
  435. 'FINSI' ;
  436.  
  437. * Impulsion de force horizontale à la base de la colonne
  438. * Sa transformé de Fourier doit être non nulle dans
  439. * l'intervalle (0, FC). On a DT = 7 * PAS_TEM
  440.  
  441. 'SAUT' 'LIGNE' ;
  442. 'MESS' 'FORCE APPLIQUEE A LA BASE DE LA COLONNE' ;
  443. 'TITRE' 'FORCE APPLIQUEE A LA BASE DE LA COLONNE' ;
  444. DT = 7 * PAS_TEM ;
  445. NT = 600 ;
  446. L_TIM = 'PROG' 0.0 'PAS' DT 'NPAS' NT ;
  447. L_FOR = 'PROG' 0. 1.E5 0. -1.E5 597 * 0. ;
  448. EV_FOR = 'EVOL' 'MANU' 'TEMPS(S)' L_TIM 'FORCE(N)' L_FOR ;
  449.  
  450. DUREE = DUREE + ( 4. * DT ) ;
  451. 'SI' ( DUREE < ( 8. * DT ) ) ;
  452. DUREE = 8. * DT ;
  453. 'FINSI' ;
  454. NB_PAS = 'ENTI' ( DUREE / PAS_TEM ) ;
  455. DUREE = NB_PAS * PAS_TEM ;
  456. 'DESS' EV_FOR XBOR 0.0 DUREE 'NCLK' ;
  457. 'SAUT' 'LIGNE' ;
  458. 'MESS' 'CALCUL DYNAMIQUE POUR LA DECONVOLUTION' ;
  459. 'MESS' 'PAS DE CALCUL = ' PAS_TEM ' DUREE = ' DUREE ;
  460.  
  461. 'SI' ( 'EGA' TYP_MODE 'FOUR' ) ;
  462. 'SI' ( 'EGA' DIR 'HORI' ) ;
  463. FOR_P = 'PRES' 'MASS' COLMOD.NB_COU 1.0 BAS_ABS.'FRONTIERE' ;
  464. FOR_BAS = ( 'EXCO' 'FZ' FOR_P 'FR' ) 'ET' ( -1.0 *
  465. ( 'EXCO' 'FZ' FOR_P 'FT' ) ) ;
  466. 'SINON' ;
  467. 'SI' ( 'EGA' DIR 'VERT' ) ;
  468. FOR_BAS = 'PRES' 'MASS' COLMOD.NB_COU 1.0 BAS_ABS.'FRONTIERE' ;
  469. 'FINSI' ;
  470. 'FINSI' ;
  471. 'SINON' ;
  472. 'SI' ( 'EGA' TYP_MODE 'PLANDEFO' ) ;
  473. 'SI' ( 'EGA' DIR 'HORI' ) ;
  474. FOR_P = 'PRES' 'MASS' COLMOD.NB_COU 1.0 BAS_ABS.'FRONTIERE' ;
  475. FOR_BAS = 'EXCO' 'FY' FOR_P 'FX' ;
  476. 'SINON' ;
  477. 'SI' ( 'EGA' DIR 'VERT' ) ;
  478. FOR_BAS = 'PRES' 'MASS' COLMOD.NB_COU 1.0 BAS_ABS.'FRONTIERE' ;
  479. 'FINSI' ;
  480. 'FINSI' ;
  481. 'FINSI' ;
  482. 'FINSI' ;
  483. CHA_BAS = 'CHAR' FOR_BAS EV_FOR ;
  484. 'LIST' FOR_BAS ;
  485.  
  486. 'SI' ( 'EGA' TYP_MODE 'FOUR' ) ;
  487. CH_DEPI = 'MANU' 'CHPO' 3 COL1 'UR' 0. 'UT' 0. 'UZ' 0. ;
  488. CH_VITI = 'MANU' 'CHPO' 3 COL1 'UR' 0. 'UT' 0. 'UZ' 0. ;
  489. 'SINON' ;
  490. 'SI' ( 'EGA' TYP_MODE 'PLANDEFO' ) ;
  491. CH_DEPI = 'MANU' 'CHPO' 2 COL1 'UX' 0. 'UY' 0. ;
  492. CH_VITI = 'MANU' 'CHPO' 2 COL1 'UX' 0. 'UY' 0. ;
  493. 'FINSI' ;
  494. 'FINSI' ;
  495.  
  496. LINST = 'PROG' TEM1 'PAS' PAS_TEM 'NPAS' ( NB_PAS - 1 ) ;
  497. FCDYN = 1.0 / ( 4 * PAS_TEM ) ;
  498.  
  499. TAB_DYN = 'TABLE' ;
  500. TAB_DYN.'DEBU' = TEM1 ;
  501. TAB_DYN.'VITE' = CH_VITI ;
  502. TAB_DYN.'DEPL' = CH_DEPI ;
  503. TAB_DYN.'CHAR' = CHA_BAS ;
  504. TAB_DYN.'RIGI' = RIGT ;
  505. TAB_DYN.'MASS' = MAS1 ;
  506. TAB_DYN.'AMOR' = AMOT ;
  507. TAB_DYN.'INST' = LINST ;
  508. TAB_DYN.'FREQ' = FCDYN ;
  509.  
  510. 'TEMP' ;
  511. RESU = DYNAMIC TAB_DYN ;
  512. 'SAUT' 'LIGNE' ;
  513. 'MESS' 'FIN DE CALCUL DYNAMIQUE SUR LA COLONNE' ;
  514. 'MENA' ;
  515. 'TEMP' ;
  516.  
  517. * Déplacements, vitesses, déformations et réactions *
  518.  
  519. 'SI' ( 'EGA' TYP_MODE 'FOUR') ;
  520. 'SI' ( 'EGA' DIR 'HORI' ) ;
  521. UMOT = 'MOT' 'UR' ;
  522. EMOT = 'MOT' 'GARZ' ;
  523. FMOT = 'MOT' 'FZ' ;
  524. 'SINON' ;
  525. 'SI' ( 'EGA' DIR 'VERT' ) ;
  526. UMOT = 'MOT' 'UZ' ;
  527. EMOT = 'MOT' 'EPZZ' ;
  528. FMOT = 'MOT' 'FR' ;
  529. 'FINSI' ;
  530. 'FINSI' ;
  531.  
  532. 'SINON' ;
  533. 'SI' ( 'EGA' TYP_MODE 'PLANDEFO' ) ;
  534. 'SI' ( 'EGA' DIR 'HORI' ) ;
  535. UMOT = 'MOT' 'UX' ;
  536. EMOT = 'MOT' 'GAXY' ;
  537. FMOT = 'MOT' 'FY' ;
  538. 'SINON' ;
  539. 'SI' ( 'EGA' DIR 'VERT' ) ;
  540. UMOT = 'MOT' 'UY' ;
  541. EMOT = 'MOT' 'EPYY' ;
  542. FMOT = 'MOT' 'FX' ;
  543. 'FINSI' ;
  544. 'FINSI' ;
  545. 'FINSI' ;
  546. 'FINSI' ;
  547.  
  548. 'SAUT' 3 'LIGNE' ;
  549. 'MESS' 'FONCTION DE TRANSFERT POUR LES DEPLACEMENTS, LES VITESSES,' ;
  550. 'MESS' 'LES DEFORMATIONS DE CISAILLEMENT ET LES REACTIONS ' ;
  551.  
  552. U_FRON = 'TABLE' ;
  553. V_FRON = 'TABLE' ;
  554. E_FRON = 'TABLE' ;
  555. R_FRON = 'TABLE' ;
  556. J = 0 ;
  557. 'REPE' BOUCL3 NB_NOEU ;
  558. J = J + 1 ;
  559. U_FRON.J = 'PROG' 0.0 ;
  560. V_FRON.J = 'PROG' 0.0 ;
  561. E_FRON.J = 'PROG' 0.0 ;
  562. R_FRON.J = 'PROG' 0.0 ;
  563. 'FIN' BOUCL3 ;
  564.  
  565. L_TEM = 'PROG' 0.0 ;
  566. I_TEM = 1 ;
  567. 'REPE' BOUCL4 ( NB_PAS - 1 ) ;
  568. I_TEM = I_TEM + 1 ;
  569. L_TEM = L_TEM 'ET' ( 'PROG' ( RESU.I_TEM.'TEMP' ) ) ;
  570. CHD_I = RESU.I_TEM.'DEPL' ;
  571. CHV_I = RESU.I_TEM.'VITE' ;
  572. CHE_I ='CHAN' 'CHPO' MOD1 ( 'EPSI' MOD1 CHD_I MAT1 ) ;
  573. CHR_I ='REAC' BLO1 CHD_I ;
  574.  
  575. J = 0 ;
  576. 'REPE' BOUCL4_1 NB_NOEU ;
  577. J = J + 1 ;
  578. U_FRON.J = U_FRON.J 'ET' ('PROG' ('EXTR' CHD_I POI_FRO.J UMOT)) ;
  579. V_FRON.J = V_FRON.J 'ET' ('PROG' ('EXTR' CHV_I POI_FRO.J UMOT)) ;
  580. E_FRON.J = E_FRON.J 'ET' ('PROG' ('EXTR' CHE_I POI_FRO.J EMOT)) ;
  581. R_FRON.J = R_FRON.J 'ET' ('PROG' ('EXTR' CHR_I POI_FRO.J FMOT)) ;
  582. 'FIN' BOUCL4_1 ;
  583. 'FIN' BOUCL4 ;
  584.  
  585. * TFR de l'accélération GAMMAO
  586.  
  587. 'TITRE' 'TFR DE L ACCELEROGRAMME GAMMAO' ;
  588. NP = 'DIME' ( 'EXTR' GAMMAO 'ABSC' ) ;
  589. XX = ( LOG NP ) / ( LOG 2 ) ;
  590. NN = 'ENTI' XX ;
  591. 'SI' ( XX > ( 1.0 * NN ) ) ;
  592. NN = NN + 1 ;
  593. 'FINSI' ;
  594.  
  595. TF_GAMO = 'TFR' NN GAMMAO 'MOPH' ;
  596. FR_GAMO = 'EXTR' TF_GAMO 'ABSC' ;
  597. MO_GAMO = 'EXTR' TF_GAMO 'ORDO' 1 ;
  598. PH_GAMO = 'EXTR' TF_GAMO 'ORDO' 2 ;
  599. NFREQ = 'DIME' FR_GAMO ;
  600. DFREQ = 'EXTR' FR_GAMO 2 ;
  601. FREQN = 'EXTR' FR_GAMO NFREQ ;
  602. MODUN = 'EXTR' MO_GAMO NFREQ ;
  603.  
  604. 'SI' ( IDIV NEG 0 ) ;
  605. NN = NN + IDIV ;
  606. 'REMP' MO_GAMO NFREQ ( MODUN / 2.0 ) ;
  607.  
  608. NFREQ1 = (2**(NN - 1)) + 1 ;
  609. FR_GAMO = 'PROG' 0.0 'PAS' DFREQ 'NPAS' ( NFREQ1 - 1 ) ;
  610. LIST ( DIME FR_GAMO ) ;
  611. MO_GAMO = MO_GAMO 'ET' ('PROG' (NFREQ1 - NFREQ ) * 0.0) ;
  612. LIST ( DIME MO_GAMO ) ;
  613. PH_GAMO = PH_GAMO 'ET' ('PROG' (NFREQ1 - NFREQ ) * 0.0) ;
  614. LIST ( DIME PH_GAMO ) ;
  615. TF_GAMO = 'EVOL' 'COMP' 'MOPH' 'FREQ(HZ)' FR_GAMO 'MODULE'
  616. MO_GAMO 'PHASE' PH_GAMO ;
  617. 'FINSI' ;
  618.  
  619. *-------------------- Début de modif 1 du 20/02/2013 -------------------
  620.  
  621. * TFR du déplacement de contrôle
  622.  
  623. 'TITRE' 'TFR DU DEPLACEMENT DE CONTROLE' ;
  624. OMEGA2 = ( FR_GAMO * 2. * PI ) ** 2 ;
  625. 'REMP' OMEGA2 1 1.0 ;
  626. MOD = MO_GAMO / ( OMEGA2 * ( -1 ) ) ;
  627. 'REMP' MOD 1 0.0 ;
  628. TF_DEPLO = 'EVOL' 'COMP' 'MOPH' 'FREQ(HZ)' FR_GAMO
  629. 'MODULE' MOD 'PHASE' PH_GAMO ;
  630.  
  631. * TFR du déplacement du outcrop de bedrock sous l'impulsion
  632. * Calcul de vitesse VOUT à partir de l'impulsion à la base F et
  633. * l'amortissement à la base C (VOUT = F/C, sur une unité de surface)
  634.  
  635. G = ( COUCHE.NB_COU.'MODULE_G' ) ;
  636. RO = ( COUCHE.NB_COU.'MASSE_VOLUMIQUE' ) ;
  637. NU = ( COUCHE.NB_COU.'POISSON') ;
  638. CS = ( G / RO ) ** 0.5 ;
  639. CP = ((2.0 * (1.0 - NU))/(1.0 - (2.0 * NU))) ** 0.5 ;
  640. CP = CP * CS ;
  641.  
  642. 'SI'( 'EGA' DIR 'HORI') ;
  643. VOUT = EV_FOR / (RO * CS) ;
  644. 'SINON' ;
  645. 'SI'( 'EGA' DIR 'VERT') ;
  646. VOUT = EV_FOR / (RO * CP) ;
  647. 'FINSI' ;
  648. 'FINSI' ;
  649. 'TITR' 'VITESSE OUTCROP SOUS L IMPULSION' ;
  650. VOUT = 'EVOL' 'MANU' L_TEM ('IPOL' L_TEM VOUT) ;
  651. TF_VOUT = 'TFR' NN VOUT 'REIM' ;
  652.  
  653. 'TITR' 'TFR DEPLACEMENT OUTCROP SOUS L IMPULSION' ;
  654. LF_VOUT = EXTR TF_VOUT ABSC ;
  655. IOMEGA = 2.*PI*LF_VOUT ;
  656. 'REMP' IOMEGA 1 1.0 ;
  657. EVIOMEGA = EVOL COMP 'REIM' LF_VOUT (LF_VOUT*0) IOMEGA ;
  658. TF_UOUT = TF_VOUT / EVIOMEGA ;
  659. RIMP TF_UOUT ;
  660.  
  661. * Fonction de transfert / point de contrôle
  662.  
  663. H_DEPL = 'TABLE' ;
  664. H_VITE = 'TABLE' ;
  665. H_EPSI = 'TABLE' ;
  666. H_REAC = 'TABLE' ;
  667.  
  668. * Point de contrôle en surface libre (option par défaut)
  669.  
  670. 'TITRE' 'DEPLACEMENT DE CONTROLE' ;
  671. UO = 'EVOL' 'MANU' 'TEMPS' L_TEM 'DEPL' U_FRON.NUM_SUR ;
  672. TF_UO = 'TFR' NN UO 'MOPH' ;
  673.  
  674. * Remplacer le début zéro de TF_UOUT par celui de TF_UO
  675.  
  676. UOM = EXTR (EXTR TF_UO ORDO 1) 1 ;
  677. UOP = EXTR (EXTR TF_UO ORDO 2) 1 ;
  678. LF_OUT = EXTR TF_UOUT ABSC ;
  679. LM_OUT = EXTR TF_UOUT ORDO 1 ;
  680. LP_OUT = EXTR TF_UOUT ORDO 2 ;
  681. REMP LM_OUT 1 UOM ;
  682. REMP LP_OUT 1 UOP ;
  683. TF_UOUT = 'EVOL' 'COMP' 'MOPH' 'FREQ(HZ)' LF_OUT
  684. 'MODULE' LM_OUT 'PHASE' LP_OUT ;
  685.  
  686. 'SI' ('EXIS' P_GAMMA ) ;
  687. 'SI' ('EXIS' P_GAMMA 'ENTREE') ;
  688.  
  689. * Option point de contrôle "INSIDE"
  690.  
  691. 'SI' (EGA 'INSIDE' P_GAMMA.ENTREE.NATURE);
  692. NUM_CTR = 'NOEU' P_GAMMA.ENTREE.CONTROLE;
  693. UO = 'EVOL' 'MANU' 'TEMPS' L_TEM 'DEPL' U_FRON.NUM_CTR ;
  694. TF_UO = 'TFR' NN UO 'MOPH' ;
  695. 'FINSI' ;
  696.  
  697. * Option point de contrôle "OUTCROP" de bedrock
  698.  
  699. 'SI' (EGA 'OUTCROP' P_GAMMA.ENTREE.NATURE) ;
  700. TF_UO = TF_UOUT ;
  701. 'FINSI' ;
  702. 'FINSI' ;
  703. 'FINSI' ;
  704.  
  705. *--------------------- Fin de modif 1 du 20/02/2013 --------------------
  706.  
  707. * Elimination des zéros dans TF_UO
  708.  
  709. LABS = 'PROG' 0.0 FC (FC + DFREQ) 9000.0 ;
  710. LFIL1 = 'PROG' 1.0 1.0 0.0 0.0 ;
  711. LFIL2 = 'PROG' 0.0 0.0 0.0 0.0 ;
  712. LFIL3 = 'PROG' 0.0 0.0 1.0 1.0 ;
  713.  
  714. LFIL1 = 'IPOL' FR_GAMO LABS LFIL1 ;
  715. LFIL2 = 'IPOL' FR_GAMO LABS LFIL2 ;
  716. LFIL3 = 'IPOL' FR_GAMO LABS LFIL3 ;
  717.  
  718. EVFIL = 'EVOL' 'COMP' 'MOPH' FR_GAMO LFIL1 LFIL2 ;
  719. EVADD = 'EVOL' 'COMP' 'MOPH' FR_GAMO LFIL3 LFIL2 ;
  720.  
  721. TF_UO = TF_UO * EVFIL ;
  722. TF_UO = TF_UO + EVADD ;
  723.  
  724.  
  725. TF_GAMO = TF_GAMO * EVFIL ;
  726. TF_DEPLO = TF_DEPLO * EVFIL ;
  727.  
  728. 'TITR' 'ACCELERATION FILTREE AU POINT DE CONTROLE' ;
  729. GAMMAO = 'TFRI' TF_GAMO ;
  730. dess GAMMAO mima 'NCLK';
  731. 'TITR' 'DEPLACEMENT FILTREE AU POINT DE CONTROLE' ;
  732. DEPLO = 'TFRI' TF_DEPLO ;
  733.  
  734. 'TITRE' 'DEPLACEMENT A LA BASE' ;
  735. UB = 'EVOL' 'MANU' 'TEMPS' L_TEM 'DEPL' U_FRON.NUM_BAS ;
  736. 'TITRE' 'VITESSE A LA BASE' ;
  737. VO = 'EVOL' 'MANU' 'TEMPS' L_TEM 'VITE' V_FRON.NUM_BAS ;
  738. 'TITRE' 'DEFORMATION A LA BASE' ;
  739. EO = 'EVOL' 'MANU' 'TEMPS' L_TEM 'EPSI' E_FRON.NUM_BAS ;
  740. 'TITRE' 'REACTION A LA BASE' ;
  741. RO = 'EVOL' 'MANU' 'TEMPS' L_TEM 'REAC' R_FRON.NUM_BAS ;
  742.  
  743. J = 0 ;
  744. 'REPE' BOUCL5 NB_NOEU ;
  745. J = J + 1 ;
  746. 'TITRE' 'FONCTION DE TRANSFERT HU DU NOEUD ' J ;
  747. U_J = 'EVOL' 'MANU' 'TEMPS' L_TEM 'DEPL' U_FRON.J ;
  748. TF_UJ = 'TFR' NN U_J 'MOPH' ;
  749. H_DEPL.J = TF_UJ / TF_UO ;
  750.  
  751. 'TITRE' 'FONCTION DE TRANSFERT HV DU NOEUD' J ;
  752. V_J = 'EVOL' 'MANU' 'TEMPS' L_TEM 'VITE' V_FRON.J ;
  753. TF_VJ = 'TFR' NN V_J 'MOPH' ;
  754. H_VITE.J = TF_VJ / TF_UO ;
  755.  
  756. 'TITRE' 'FONCTION DE TRANSFERT HE DU NOEUD' J ;
  757. E_J = 'EVOL' 'MANU' 'TEMPS' L_TEM 'EPSI' E_FRON.J ;
  758. TF_EJ = 'TFR' NN E_J 'MOPH' ;
  759. H_EPSI.J = TF_EJ / TF_UO ;
  760.  
  761. 'TITRE' 'FONCTION DE TRANSFERT HR DU NOEUD' J ;
  762. R_J = 'EVOL' 'MANU' 'TEMPS' L_TEM 'REAC' R_FRON.J ;
  763. TF_RJ = 'TFR' NN R_J 'MOPH' ;
  764. H_REAC.J = TF_RJ / TF_UO ;
  765.  
  766. 'FIN' BOUCL5 ;
  767. 'MENA' ;
  768.  
  769. *-------------------- Début de modif 2 du 20/02/2013 -------------------
  770.  
  771. * Accélération après déconvolution
  772.  
  773. 'SAUT' 2 'LIGNE' ;
  774. 'MESS' 'ACCELERATION DU CHAMP LIBRE' ;
  775. 'SI' ( 'EXIS' P_GAMMA ) ;
  776. NB_GAM = 'DIME' P_GAMMA ;
  777. GAMMA = 'TABLE' ;
  778.  
  779. 'SI' ( 'EXIS' P_GAMMA 'ENTREE' ) ;
  780. NB_GAM = NB_GAM - 1 ;
  781. 'FINSI' ;
  782.  
  783. 'SI' (NB_GAM > 0) ;
  784. K = 0 ;
  785. 'REPE' BOUCL6 NB_GAM ;
  786. K = K + 1 ;
  787. NUM_P = 'NOEU' P_GAMMA.K ;
  788. HU = H_DEPL.NUM_P ;
  789. 'TITRE' 'ACCELERATION DU POINT' K ;
  790. TF_GAM = HU * TF_GAMO ;
  791. GAMMA.K = 'TFRI' TF_GAM ;
  792. GAMMA.K = CHTITR ( GAMMA.K ) 'TEMPS' 'ACCE(M/S*S)' ;
  793. 'FIN' BOUCL6 ;
  794. 'FINSI' ;
  795.  
  796. HU = TF_UOUT / TF_UO ;
  797. 'TITRE' 'ACCELERATION OUTCROP DE BEDROCK' ;
  798. TF_GAM = HU * TF_GAMO ;
  799. GAMMA.OUTCROP = 'TFRI' TF_GAM ;
  800. GAMMA.OUTCROP = CHTITR GAMMA.OUTCROP 'TEMPS' 'ACCE(M/S*S)' ;
  801. 'FINSI' ;
  802.  
  803. *--------------------- Fin de modif 2 du 20/02/2013 --------------------
  804.  
  805. 'SAUT' 'LIGNE' ;
  806. 'MESS' 'VITESSE, DEFORMATION ET REACTION' ;
  807.  
  808. J = 0 ;
  809. 'REPE' BOUCL7 NB_NOEU ;
  810. J = J + 1 ;
  811.  
  812. * Vitesse compatible avec GAMMAO
  813.  
  814. 'TITRE' 'VITESSE DU NOEUD' J ;
  815. TF_VITE = ( H_VITE.J ) * TF_DEPLO ;
  816. V_FRON.J = 'TFRI' TF_VITE ;
  817.  
  818. * On met la vitesse initiale (moyenne sur NV point) à zéro
  819.  
  820. NV = 70 ;
  821. LT = 'EXTR' ( V_FRON.J ) 'ABSC' ;
  822. LY = 'EXTR' ( V_FRON.J ) 'ORDO' ;
  823.  
  824. Y1 = 0 ;
  825. IV = 1 ;
  826. 'REPE' BV NV ;
  827. Y1 = Y1 + ('EXTR' LY IV) ;
  828. IV = IV + 1 ;
  829. 'FIN' BV ;
  830. Y1 = Y1 / NV ;
  831.  
  832. NY = 'DIME' LY ;
  833. LY1 = 'PROG' NY * Y1 ;
  834. LY = LY - LY1 ;
  835. V_FRON.J = 'EVOL' 'MANU' 'TEMPS' LT 'VITE(M/S)' LY ;
  836.  
  837. * Déformation
  838.  
  839. 'TITRE' 'DEFORMATION AU NOEUD' J ;
  840. TF_EPSI = H_EPSI.J * TF_DEPLO ;
  841. E_FRON.J = 'TFRI' TF_EPSI ;
  842.  
  843. * Réactions des appuis verticaux
  844.  
  845. 'TITRE' 'REACTION VERTICALE AU NOEUD' J ;
  846. TF_REAC = ( H_REAC.J ) * TF_DEPLO ;
  847. R_FRON.J = 'TFRI' TF_REAC ;
  848.  
  849. * On met la réaction intiale à zéro
  850.  
  851. LT = 'EXTR' ( R_FRON.J ) 'ABSC' ;
  852. LY = 'EXTR' ( R_FRON.J ) 'ORDO' ;
  853. Y1 = 'EXTR' LY 1 ;
  854. NY = 'DIME' LY ;
  855. LY1 = 'PROG' NY * Y1 ;
  856. LY = LY - LY1 ;
  857. R_FRON.J = 'EVOL' 'MANU' 'TEMPS' LT 'REAC' LY ;
  858.  
  859. 'FIN' BOUCL7 ;
  860. ************************************************************************
  861.  
  862. * Force d'amortissement à la base
  863.  
  864. 'SAUT' 'LIGNE' ;
  865. 'MESS' 'FORCE D"AMORTISSEMENT A LA BASE : LYSMER' ;
  866. 'TITR' 'CONTRAINTE D"AMORTISSEMENT A LA BASE' ;
  867. G = ( COUCHE.NB_COU.'MODULE_G' ) ;
  868. RO = ( COUCHE.NB_COU.'MASSE_VOLUMIQUE' ) ;
  869. NU = ( COUCHE.NB_COU.'POISSON') ;
  870. CS = ( G / RO ) ** 0.5 ;
  871. CP = ((2.0 * (1.0 - NU))/(1.0 - (2.0 * NU))) ** 0.5 ;
  872. CP = CP * CS ;
  873.  
  874. 'SI'( 'EGA' DIR 'HORI') ;
  875. SIG_AMO = RO * CS * V_FRON.NUM_BAS ;
  876. SIG_AMO = CHTITR SIG_AMO 'TEMPS(S)' 'SIGMA(PA)' ;
  877.  
  878. 'SINON' ;
  879. 'SI'( 'EGA' DIR 'VERT') ;
  880. SIG_AMO = RO * CP * V_FRON.NUM_BAS ;
  881. SIG_AMO = CHTITR SIG_AMO 'TEMPS(S)' 'SIGMA(PA)' ;
  882. 'FINSI' ;
  883. 'FINSI' ;
  884.  
  885. * Contrainte à la base
  886.  
  887. 'MESS' 'CONTRAINTE A LA BASE' ;
  888. 'MESS' ;
  889. 'TITR' 'IMPULSION A LA BASE' ;
  890. EV_FOR = 'EVOL' 'MANU' L_TEM ( 'IPOL' L_TEM L_TIM L_FOR ) ;
  891.  
  892. 'TITR' 'TFR DE L"IMPULSION' ;
  893. TF_FOR = 'TFR' NN EV_FOR 'MOPH' ;
  894. 'TITR' 'FONCTION DE TRANSFERT DE L"IMPULSION' ;
  895. HS = TF_FOR / TF_UO ;
  896. TF_SIG = HS * TF_DEPLO ;
  897.  
  898. 'TITR' 'CONTRAINTE A LA BASE' ;
  899. SIG_H = ( 'TFRI' TF_SIG ) - SIG_AMO ;
  900.  
  901. * On met la contrainte initiale à zéro
  902.  
  903. LT = 'EXTR' SIG_H 'ABSC' ;
  904. LY = 'EXTR' SIG_H 'ORDO' ;
  905. Y1 = 'EXTR' LY 1 ;
  906. NY = 'DIME' LY ;
  907. LY1 = 'PROG' NY * Y1 ;
  908. LY = LY - LY1 ;
  909.  
  910. SIG_H = 'EVOL' 'MANU' 'TEMPS(S)' LT 'SIGMA(PA)' LY ;
  911.  
  912. 'MENA' ;
  913. ************************************************************************
  914. *** FRONTIERE ABSORBANTE DU SOL PROCHE ***
  915. ************************************************************************
  916. 'SAUT' 3 'LIGNE' ;
  917. 'MESS' 'FRONTIERE ABSORBANTE DU SOL PROCHE' ;
  918. 'SAUT' 'LIGNE' ;
  919. 'MESS' 'FRONTIERE VERTICALE DU SOL ' ;
  920.  
  921. 'SI' ( 'EGA' DIR 'HORI' ) ;
  922. NHAR = 1 ;
  923. 'SINON' ;
  924. 'SI' ( 'EGA' DIR 'VERT' ) ;
  925. NHAR = 0 ;
  926. 'FINSI' ;
  927. 'FINSI' ;
  928.  
  929. I = 0 ;
  930. 'REPE' BOUCL8 NB_COU ;
  931. I = I + 1 ;
  932. 'SI' ( I 'EGA' 1 ) ;
  933. AM_V = FRONABS ( COUCHE. I ) TYP_F NHAR ;
  934. 'SINON' ;
  935. AM_V = AM_V 'ET' ( FRONABS ( COUCHE. I ) TYP_F NHAR );
  936. 'FINSI' ;
  937. 'FIN' BOUCL8 ;
  938.  
  939. 'MESS' 'FRONTIERE HORIZONTALE DU SOL' ;
  940. BAS_ABS.'FRONTIERE' = FOND_SOL ;
  941. AM_H = FRONABS BAS_ABS TYP_F NHAR ;
  942. AMO1 = AM_V 'ET' AM_H ;
  943.  
  944. ************************************************************************
  945. *** CHARGEMENT SISMIQUE SUR LA FRONTIERE HORIZONTALE ***
  946. ************************************************************************
  947.  
  948. 'SAUT' 3 'LIGNE' ;
  949. 'MESS' 'CHARGEMENT SISMIQUE SUR LA FRONTIERE HORIZONTALE' ;
  950.  
  951. * FO : forces nodales équivalentes de la contrainte
  952.  
  953. 'SI' ( 'EGA' TYP_MODE 'FOUR' ) ;
  954. 'SI' ( 'EGA' DIR 'HORI' ) ;
  955. FOR_P = 'PRES' 'MASS' MOD_SOL 1.0 BAS_ABS.'FRONTIERE' ;
  956. FOR_H = ( 'EXCO' 'FZ' FOR_P 'FR' ) 'ET' ( -1.0 *
  957. ( 'EXCO' 'FZ' FOR_P 'FT' ) ) ;
  958. 'SINON' ;
  959. 'SI' ( 'EGA' DIR 'VERT' ) ;
  960. FOR_H = 'PRES' 'MASS' MOD_SOL 1.0 BAS_ABS.'FRONTIERE' ;
  961. 'FINSI' ;
  962. 'FINSI' ;
  963. 'SINON' ;
  964. 'SI' ( 'EGA' TYP_MODE 'PLANDEFO' ) ;
  965. 'SI' ( 'EGA' DIR 'HORI' ) ;
  966. FOR_P = 'PRES' 'MASS' MOD_SOL 1.0 BAS_ABS.'FRONTIERE' ;
  967. FOR_H = 'EXCO' 'FY' FOR_P 'FX' ;
  968.  
  969. 'SINON' ;
  970. 'SI' ( 'EGA' DIR 'VERT' ) ;
  971. FOR_H = 'PRES' 'MASS' MOD_SOL 1.0 BAS_ABS.'FRONTIERE' ;
  972. 'FINSI' ;
  973. 'FINSI' ;
  974. 'FINSI' ;
  975. 'FINSI' ;
  976. CHA_HFO = 'CHAR' FOR_H SIG_H ;
  977.  
  978. * Amortissement * viteese A*VO
  979.  
  980. 'SI' ( 'EGA' TYP_MODE 'FOUR' ) ;
  981. 'SI' ( 'EGA' DIR 'HORI' ) ;
  982. CH_V = 'MANU' 'CHPO' FOND_SOL 2 'UR' 1.0 'UT' -1.0 ;
  983. 'SINON' ;
  984. 'SI' ( 'EGA' DIR 'VERT' ) ;
  985. CH_V = 'MANU' 'CHPO' FOND_SOL 1 'UZ' 1.0 ;
  986. 'FINSI' ;
  987. 'FINSI' ;
  988. 'SINON' ;
  989. 'SI' ( 'EGA' TYP_MODE 'PLANDEFO' ) ;
  990. 'SI' ( 'EGA' DIR 'HORI' ) ;
  991. CH_V = 'MANU' 'CHPO' FOND_SOL 1 'UX' 1.0 ;
  992. 'SINON' ;
  993. 'SI' ( 'EGA' DIR 'VERT' ) ;
  994. CH_V = 'MANU' 'CHPO' FOND_SOL 1 'UY' 1.0 ;
  995. 'FINSI' ;
  996. 'FINSI' ;
  997. 'FINSI' ;
  998. 'FINSI' ;
  999.  
  1000. F_BAS = AM_H * CH_V ;
  1001. CHA_HAX = 'CHAR' F_BAS ( V_FRON.NUM_BAS ) ;
  1002. 'MENA' ;
  1003.  
  1004. ************************************************************************
  1005. *** CHARGEMENT SISMIQUE SUR LA FRONTIERE VERTICALE ***
  1006. ************************************************************************
  1007.  
  1008. * FO = - Réaction
  1009.  
  1010. 'MESS' 'CHARGEMENT SISMIQUE SUR LA FRONTIERE VERTICALE' ;
  1011. J = 0 ;
  1012. 'REPE' BOUCL9 NB_NOEU ;
  1013. J = J + 1 ;
  1014. 'SI' ( J 'EGA' 1 ) ;
  1015. CHA_VFO = 'CHAR' ( 'FORC' FMOT -1.0 POI_FRO.J ) ( R_FRON.J ) ;
  1016. 'SINON' ;
  1017. CHA_VFO = ('CHAR' ( 'FORC' FMOT -1.0 POI_FRO.J ) ( R_FRON.J ))
  1018. 'ET' CHA_VFO ;
  1019. 'FINSI' ;
  1020. 'FIN' BOUCL9 ;
  1021.  
  1022. * Amortissement * viteese : A*VO
  1023.  
  1024. V_ABSC = 'EXTR' ( V_FRON. 1 ) 'ABSC' ;
  1025. N_PAS = 'DIME' V_ABSC ;
  1026.  
  1027. * Mode PLANDEFO, DIR = HORI ou VERT
  1028.  
  1029. 'SI' ( 'EGA' TYP_MODE 'PLANDEFO' ) ;
  1030. 'SI' ( 'EGA' DIR 'HORI' ) ;
  1031. UDIR = 'MOT' 'UX' ;
  1032. FDIR = 'MOT' 'FX' ;
  1033. 'SINON' ;
  1034. 'SI' ( 'EGA' DIR 'VERT' ) ;
  1035. UDIR = 'MOT' 'UY' ;
  1036. FDIR = 'MOT' 'FY' ;
  1037. 'FINSI' ;
  1038. 'FINSI' ;
  1039. VISC = 'TABLE' ;
  1040. K = 0 ;
  1041. 'REPE' BOUCL10 NB_NOEU ;
  1042. K = K + 1 ;
  1043. EV01 = V_FRON.K ;
  1044. V_FRON.K = 'EXTR' EV01 'ORDO' ;
  1045. VISC.K = 'PROG' N_PAS * 0.0 ;
  1046. 'FIN' BOUCL10 ;
  1047.  
  1048. J = 0 ;
  1049. 'REPE' BOUCL11 NB_NOEU ;
  1050. J = J + 1 ;
  1051. VEC_U = 'MANU' 'CHPO' POI_FRO.J 1 UDIR 1.0 ;
  1052. VEC_F = AM_V * VEC_U ;
  1053.  
  1054. K = 0 ;
  1055. 'REPE' BOUC11B NB_NOEU ;
  1056. K = K + 1 ;
  1057. AM_JK = 'EXTR' VEC_F POI_FRO.K FDIR ;
  1058. VISC.K = VISC.K + ( AM_JK * V_FRON.J ) ;
  1059. 'FIN' BOUC11B ;
  1060. 'FIN' BOUCL11 ;
  1061.  
  1062. * Recombinaison
  1063.  
  1064. FOR_H = 'FORC' FDIR 1.0 POI_FRO.1 ;
  1065. CHA_VAX = 'CHAR' FOR_H ( 'EVOL' 'MANU'
  1066. V_ABSC ( VISC. 1 ) ) ;
  1067. K = 1 ;
  1068. 'REPE' BOUCL12 ( NB_NOEU - 1 ) ;
  1069. K = K + 1 ;
  1070. FOR_H = 'FORC' FDIR 1.0 POI_FRO.K ;
  1071. CHA_VAX =( 'CHAR' FOR_H ( 'EVOL' 'MANU'
  1072. V_ABSC ( VISC.K ) ) ) 'ET' CHA_VAX ;
  1073. 'FIN' BOUCL12 ;
  1074. 'FINSI' ;
  1075.  
  1076. * Mode FOUR 0 ( DIR = VERT )
  1077.  
  1078. 'SI' ( 'EGA' TYP_MODE 'FOUR' ) ;
  1079. 'SI' ( 'EGA' DIR 'VERT' ) ;
  1080. VISC_Z = 'TABLE' ;
  1081. K = 0 ;
  1082. 'REPE' BOUCL13 NB_NOEU ;
  1083. K = K + 1 ;
  1084. EV01 = V_FRON.K ;
  1085. V_FRON.K = 'EXTR' EV01 'ORDO' ;
  1086. VISC_Z.K = 'PROG' N_PAS * 0.0 ;
  1087. 'FIN' BOUCL13 ;
  1088.  
  1089. J = 0 ;
  1090. 'REPE' BOUCL14 NB_NOEU ;
  1091. J = J + 1 ;
  1092. VEC_VZ = 'MANU' 'CHPO' POI_FRO.J 1 'UZ' 1.0 ;
  1093. VEC_FZ = AM_V * VEC_VZ ;
  1094. K = 0 ;
  1095. 'REPE' BOUC14B NB_NOEU ;
  1096. K = K + 1 ;
  1097. AMZ_JK = 'EXTR' VEC_FZ POI_FRO.K 'FZ' ;
  1098. VISC_Z.K = VISC_Z.K + ( AMZ_JK * V_FRON.J ) ;
  1099. 'FIN' BOUC14B ;
  1100. 'FIN' BOUCL14 ;
  1101.  
  1102. * Recombinaison
  1103.  
  1104. FOR_Z = 'FORC' 'FZ' 1.0 POI_FRO.1 ;
  1105. CHA_VAZ = 'CHAR' FOR_Z ( 'EVOL' 'MANU'
  1106. V_ABSC ( VISC_Z. 1 )) ;
  1107. K = 1 ;
  1108. 'REPE' BOUCL15 ( NB_NOEU - 1 ) ;
  1109. K = K + 1 ;
  1110. FOR_Z = 'FORC' 'FZ' 1.0 POI_FRO.K ;
  1111. CHA_VAZ =( 'CHAR' FOR_Z ( 'EVOL' 'MANU'
  1112. V_ABSC ( VISC_Z.K ))) 'ET' CHA_VAZ ;
  1113. 'FIN' BOUCL15 ;
  1114. CHA_VAX = CHA_VAZ ;
  1115. 'FINSI' ;
  1116.  
  1117. * Mode FOUR 1 ( DIR = HORI )
  1118.  
  1119. 'SI' ( 'EGA' DIR 'HORI' ) ;
  1120. VISC_R = 'TABLE' ;
  1121. VISC_T = 'TABLE' ;
  1122. K = 0 ;
  1123. 'REPE' BOUCL16 NB_NOEU ;
  1124. K = K + 1 ;
  1125. EV01 = V_FRON.K ;
  1126. V_FRON.K = 'EXTR' EV01 'ORDO' ;
  1127. VISC_R.K = 'PROG' N_PAS * 0.0 ;
  1128. VISC_T.K = 'PROG' N_PAS * 0.0 ;
  1129. 'FIN' BOUCL16 ;
  1130. J = 0 ;
  1131. 'REPE' BOUCL17 NB_NOEU ;
  1132. J = J + 1 ;
  1133. VEC_VR = 'MANU' 'CHPO' POI_FRO.J 1 'UR' 1.0 ;
  1134. VEC_VT = 'MANU' 'CHPO' POI_FRO.J 1 'UT' 1.0 ;
  1135. VEC_FR = AM_V * VEC_VR ;
  1136. VEC_FT = AM_V * VEC_VT ;
  1137. K = 0 ;
  1138. 'REPE' BOUC17B NB_NOEU ;
  1139. K = K + 1 ;
  1140. AMR_JK = 'EXTR' VEC_FR POI_FRO.K 'FR' ;
  1141. AMT_JK = 'EXTR' VEC_FT POI_FRO.K 'FT' ;
  1142. VISC_R.K = VISC_R.K + ( AMR_JK * V_FRON.J ) ;
  1143. VISC_T.K = VISC_T.K - ( AMT_JK * V_FRON.J ) ;
  1144. 'FIN' BOUC17B ;
  1145. 'FIN' BOUCL17 ;
  1146.  
  1147. * Recombinaison
  1148.  
  1149. FOR_R = 'FORC' 'FR' 1.0 POI_FRO.1 ;
  1150. FOR_T = 'FORC' 'FT' 1.0 POI_FRO.1 ;
  1151. CHA_VAR = 'CHAR' FOR_R ( 'EVOL' 'MANU'
  1152. V_ABSC ( VISC_R. 1 ) ) ;
  1153. CHA_VAT = 'CHAR' FOR_T ( 'EVOL' 'MANU'
  1154. V_ABSC ( VISC_T. 1 ) ) ;
  1155. K = 1 ;
  1156. 'REPE' BOUCL18 ( NB_NOEU - 1 ) ;
  1157. K = K + 1 ;
  1158. FOR_R = 'FORC' 'FR' 1.0 POI_FRO.K ;
  1159. CHA_VAR = CHA_VAR 'ET' ( 'CHAR' FOR_R ( 'EVOL'
  1160. 'MANU' V_ABSC ( VISC_R.K ) ) ) ;
  1161. FOR_T = 'FORC' 'FT' 1.0 POI_FRO.K ;
  1162. CHA_VAT = CHA_VAT 'ET' ( 'CHAR' FOR_T ( 'EVOL'
  1163. 'MANU' V_ABSC ( VISC_T.K ) ) ) ;
  1164. 'FIN' BOUCL18 ;
  1165. CHA_VAX = CHA_VAR 'ET' CHA_VAT ;
  1166.  
  1167. 'FINSI' ;
  1168. 'FINSI' ;
  1169. CHA1 = CHA_HFO 'ET' CHA_HAX 'ET' CHA_VFO 'ET' CHA_VAX ;
  1170.  
  1171. * Changement de format du chargement
  1172.  
  1173. CHA1 = 'CHAN' 'TABL' CHA1 'MECA' ;
  1174.  
  1175. ************************************************************************
  1176. *** Déformation de cisaillement maximale ***
  1177. ************************************************************************
  1178. 'SAUT' 2 'LIGNE' ;
  1179. 'MESS' 'DEFORMATION MAXIMALE' ;
  1180. PROF = 'PROG' NB_NOEU * 0.0 ;
  1181. GMAX = 'PROG' NB_NOEU * 0.0 ;
  1182. J = 0 ;
  1183. 'REPE' BOUCL19 NB_NOEU ;
  1184. J = J + 1 ;
  1185. ZJ = 'COOR' 2 ( POI_FRO.J ) ;
  1186. CISA = 'EXTR' ( E_FRON.J ) 'ORDO' ;
  1187. GX = 'MAXI' CISA 'ABS' ;
  1188. 'REMP' PROF J ZJ ;
  1189. 'REMP' GMAX J GX ;
  1190. 'FIN' BOUCL19 ;
  1191. GMAXMAX = 'MAXI' GMAX ;
  1192.  
  1193. * Evolution de deformation en profondeur
  1194.  
  1195. 'SI' ( 'EGA' DIR 'HORI' ) ;
  1196. 'TITR' 'DEFORMATION DE CISAILLEMENT MAXIMALE' ;
  1197. DEFZ = 'EVOL' 'MANU' 'PROFONDEUR' PROF 'GAM_MAX' GMAX ;
  1198. DEFZ = 'ORDO' 'DECROISSANT' DEFZ ;
  1199. ZFROF = 'EXTR' DEFZ 'ABSC' ;
  1200. ZGMAX = 'EXTR' DEFZ 'ORDO' ;
  1201. DEFZ = 'EVOL' 'MANU' 'GAM_MAX' ZGMAX 'PROFONDEUR' ZFROF ;
  1202. 'DESS' DEFZ 'NCLK' ;
  1203. 'FINSI' ;
  1204.  
  1205. 'SI' ( 'EGA' DIR 'VERT' ) ;
  1206. 'TITR' 'DEFORMATION VERTICALE MAXIMALE' ;
  1207. DEFZ = 'EVOL' 'MANU' 'PROFONDEUR' PROF 'EPS_MAX' GMAX ;
  1208. DEFZ = 'ORDO' 'DECROISSANT' DEFZ ;
  1209. ZFROF = 'EXTR' DEFZ 'ABSC' ;
  1210. ZGMAX = 'EXTR' DEFZ 'ORDO' ;
  1211. DEFZ = 'EVOL' 'MANU' 'EPS_MAX' ZGMAX 'PROFONDEUR' ZFROF ;
  1212. 'DESS' DEFZ 'NCLK' ;
  1213. 'FINSI' ;
  1214.  
  1215. 'SAUT' 5 'LIGNE' ;
  1216. 'MESS' '*********************************************************' ;
  1217. 'MESS' '* *' ;
  1218. 'MESS' '* FIN DE LA PROCEDURE DE LA DECONVOLUTION *' ;
  1219. 'MESS' '* *' ;
  1220. 'MESS' '*********************************************************' ;
  1221. 'SAUT' 5 'LIGNE' ;
  1222.  
  1223. TABRESU = 'TABLE' ;
  1224.  
  1225. TABRESU.'CHAR' = CHA1 ;
  1226. TABRESU.'AMOR' = AMO1 ;
  1227. TABRESU.'DEFO' = DEFZ ;
  1228. TABRESU.'ACCE' = GAMMA ;
  1229. TABRESU.'PAS' = PAS_TEM ;
  1230. TABRESU.'FCDYN' = FCDYN ;
  1231.  
  1232. 'FINPROC' TABRESU ;
  1233. ************************************************************************
  1234.  
  1235.  
  1236.  
  1237.  

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