Télécharger deconv3D.procedur

Retour à la liste

Numérotation des lignes :

  1. * DECONV3D PROCEDUR WANG 16/01/25 21:15:00 8800
  2. 'DEBPROC' DECONV3D COUCHE*'TABLE' PC*'POINT' FOND_SOL*'MAILLAGE'
  3. MOD_SOL*MMODEL MAT_SOL*MCHAML DIR*'MOT' GAMMAO*'EVOLUTIO'
  4. F1*'FLOTTANT'F2*'FLOTTANT' FC/'FLOTTANT' P_GAMMA/'TABLE' ;
  5.  
  6. ************************************************************************
  7. *
  8. * D E C O N V 3 D
  9. * -----------------
  10. *
  11. * FONCTION:
  12. * ---------
  13. *
  14. * Cette procedure permet d'effectuer des calculs sismiques
  15. * d'interaction sol-structure (ISS) en 3D par la methode des
  16. * elements finis.
  17. *
  18. * PHRASE D'APPEL (EN GIBIANE):
  19. * ----------------------------
  20. *
  21. * TABRESU = DECONV3D COUCHE PC FOND_SOL MOD_SOL MAT_SOL DIR
  22. * GAMMAO F1 F2 (FC) (P_GAMMA)
  23. *
  24. * OPERANDES:
  25. * ----------
  26. *
  27. * COUCHE 'TABLE' : table de donnees
  28. * COUCHE.'BLK' : Si existe, deconvolution pour la methode de Bielak
  29. * COUCHE.'BLK'.'EP_H' : epaisseur horizontale de la zone intermediare
  30. * verticale
  31. * COUCHE.'BLK'.'EP_V' : epaisseur veriticle de la zone intermediare
  32. * horizontale
  33. * COUCHE.I.'indice' : donnees pour la ieme couche du sol
  34. *
  35. * indice 'FRONTIERE' 'MAILLAGE' : frontiere verticale
  36. * indice 'MASSE_VOLUMIQUE' 'FLOTTANT' : masse volumique
  37. * indice 'POISSON' 'FLOTTANT' : coefficient de Poisson
  38. * indice 'YOUNG' 'FLOTTANT' : module d'Young
  39. * indice 'AMORTISSEMENT 'FLOTTANT' : amortissement reduit
  40. *
  41. * PC 'MAILLAGE' : point de reference situe au milieu du millage
  42. * de solou sur l'axe de symetrie si calcul sur
  43. * la moitie et le quart du systeme
  44. * FOND_SOL 'MAILLAGE' : frontiere horizontale inferieure du sol
  45. * MOD_SOL 'MMODEL' : modele du sol
  46. * MAT_SOL 'MCHAML' : materiau du sol
  47. * DIR 'MOT' : direction de l'acceleration sismique GAMMAO
  48. * 'UX' pour la direction horizontale X
  49. * 'UY' pour la direction horizontale Y
  50. * 'UZ' pour la direction verticale Z
  51. * GAMMAO 'EVOLUTIO' : Signal sismique (accelerogramme) d'entree pour
  52. * la deconvolution, defini par defaut a la surface
  53. * libre du sol, sinon, renseigner la table P_GAMMA
  54. * F1, F2 'FLOTTANT' : frequences sur lesquelles l'amortissement
  55. * : reduit est ajuste suivant le modele de
  56. * RAYLEIGH
  57. * FC 'FLOTTANT' : frequence de coupure pour la deconvolution,
  58. * par defaut FC = 50 Hz
  59. * P_GAMMA 'TABLE' : Description des accelerogrammes d'entree et de sorti
  60. * pour la deconvolution (facultatif)
  61. * indice 'ENTREE' :'TABLE' : description de la nature de l'accelerogramme
  62. * GAMMAO autre que sur la surface libre ou description
  63. * de l'onde incidente inclinée SH dans le cas d'un sol
  64. * demi-espace homogène.
  65. * (facultatif)
  66. * sous-indice 'NATURE' : nature du point de controle :
  67. * 'MOT' INSIDE : dans le sol
  68. * 'MOT' OUTCROP : outcrop du bedrock
  69. * 'MOT' SH : Onde incidente SH inclinée dans le cas
  70. * de la methode Bielak
  71. * DIR = UX implique onde SH dans le plan YZ,
  72. * DIR = UY implique onde SH dans le plan XZ,
  73. *
  74. * sous-indice 'ANGLE' : Angle d'incidence de l'onde SH si 'NATURE' = SH
  75. *
  76. * sous-indice 'CONTROLE' :'MAILLAGE':
  77. * si 'NATURE' = INSIDE, point de controle sur la
  78. * frontiere verticale
  79. * si 'NATURE' = 'SH', point de controle à la
  80. * surface du sol pour lequel on impose
  81. * l'accélérogramme du champ libre GAMMAO
  82. *
  83. * indice 'I' :'MAILLAGE': Ieme (i = 1, 2, 3,...) points sur la
  84. * frontiere verticale pour lesquels on desire sortir
  85. * l'accelerogramme en champ libre (resultats de
  86. * deconvolution)
  87. * RESULTATS:
  88. * ----------
  89. * TABRESU 'TABLE' : table qui contient les resultats du calcul
  90. *
  91. * indice 'CHAR' 'CHARGEMENT' : excitation sur la frontiere du sol
  92. * indice 'AMOR' 'RIGIDITE' : frontiere absorbante
  93. * indice 'DEFO' 'EVOLUTIO' : deformation maximale en fonction
  94. * de la profondeur
  95. * indice 'ACCE' 'TABLE' : table qui contient les accelerations
  96. * obtenues par la deconvolution
  97. * sous-indice I acceleration du point I defini dans la
  98. * table P_GAMMA
  99. * sous-indice 'OUTCROP' acceleration du outcrop de bedrock
  100. *
  101. * indice 'PAS' 'FLOTTANT'
  102. * indice 'FCDYN' 'FLOTTANT' : pas de temps et frequence de coupure
  103. * a utiliser pour le calcul de
  104. * l'interaction sol-structure
  105. * a l'aide de la procedure DYNAMIC
  106. *
  107. * AUTEUR, DATE DE CREATION ET DE MODIFICATION:
  108. * --------------------------------------------
  109. *
  110. * F. WANG 20/05/2009 : Creation.
  111. * F. WANG 07/10/2010 : Mise a zero des vitesses initiales
  112. * au sens moyen sur les 70 premiers pas
  113. * eliminant ainsi la rotation du bloc de sol,
  114. * Changement de format du chargement reduisant
  115. * largement le temps de calcul dynamique.
  116. * F. WANG 01/02/2012 : Correction d'un bug MAT_S -> MAT_SOL,
  117. * Elimination des accents dans les
  118. * commentaires pour eviter des problemes
  119. * F. WANG 20/02/2013 : Ajout des options concernant le signal
  120. * d'entree : INSIDE et OUTCROP
  121. * Ajout du signal de sortie outcrop de bedrock
  122. * F. WANG 01/02/2014 : Implantation de la methode de Bielak
  123. * permettant d'alleger le calcul
  124. * A. FRAU 01/07/2015 : Correction Bug
  125. *
  126. * F. WANG 01/10/2015 : Implantation d'une nouvelle option: Onde SH
  127. * inclinée dans l'option Bielak
  128. *
  129. ************************************************************************
  130. 'SAUT' 1 'LIGNE' ;
  131.  
  132. SOL = 'EXTR' MOD_SOL 'MAILLAGE';
  133.  
  134. 'SI' (EXIS COUCHE BLK) ;
  135. BIELAK = VRAI ;
  136. NB_COU = ('DIME' COUCHE) - 1 ;
  137. 'MESS' 'DECONVOLUTION POUR LA METHODE DE BIELAK' ;
  138. 'SINON' ;
  139. BIELAK = FAUX ;
  140. NB_COU = 'DIME' COUCHE ;
  141. 'FINSI' ;
  142.  
  143. *-----------DEBUT DE MODIFICATION 01/10/2015. WANG)--------------------
  144.  
  145. SH = FAUX ;
  146.  
  147. 'SI' (EXIS P_GAMMA) ;
  148. 'SI' (EXIS P_GAMMA ENTREE) ;
  149. 'SI' (EGA P_GAMMA.ENTREE.NATURE 'SH') ;
  150. ANGLE = P_GAMMA.ENTREE.ANGLE ;
  151. SH = VRAI ;
  152. SI (EGA DIR 'UX') ;
  153. 'MESS' 'ONDE SH SE PROPAGEANT DANS LE PLAN YZ' ;
  154. 'MESS' 'ANGLE D"INCIDENCE = ' ANGLE 'DEGREES' ;
  155. FINSI ;
  156. SI (EGA DIR 'UY') ;
  157. 'MESS' 'ONDE SH SE PROPAGEANT DANS LE PLAN XZ' ;
  158. 'MESS' 'ANGLE D"INCIDENCE =' ANGLE 'DEGREES';
  159. FINSI ;
  160. SI (NB_COU > 1);
  161. 'SAUT' 1 'LIGNE' ;
  162. 'MESS' '***** OPTION NON PREVUE POUR UN SOL MULTICOUCHE *****';
  163. 'MESS' '***** ARRET DE LA PROCEDURE DECONV3D *****' ;
  164. 'SAUT' 1 'LIGNE' ;
  165. QUIT DECONV3D ;
  166. FINSI ;
  167. SI (NON BIELAK) ;
  168. 'SAUT' 1 'LIGNE' ;
  169. 'MESS' '***** OPTION PREVUE SEULEMENT DANS OPTION BIELAK *****';
  170. 'MESS' '***** ARRET DE LA PROCEDURE DECONV3D *****' ;
  171. 'SAUT' 1 'LIGNE' ;
  172. QUIT DECONV3D ;
  173. FINSI ;
  174. 'FINSI' ;
  175. 'FINSI' ;
  176. 'FINSI' ;
  177.  
  178. *-----------FIN DE MODIFICATION 01/10/2015 F. WANG)--------------------
  179.  
  180. * Verification du maillage de la frontiere du sol :
  181. * Types d'elements de frontiere : QUA4 + TRI3 ou QUA8 + TRI6
  182.  
  183. FRSOL = FOND_SOL;
  184.  
  185. I = 1;
  186. 'REPE' BCL0 NB_COU;
  187. FRSOL = FRSOL 'ET' COUCHE.I.'FRONTIERE';
  188. I = I + 1;
  189. 'FIN' BCL0;
  190.  
  191. LTYPF = 'ELEM' FRSOL 'TYPE';
  192.  
  193. 'SI' ((DIME LTYPF) > 2);
  194. 'SAUT' 2 'LIGNE' ;
  195. 'MESS' '***** ARRET DE LA PROCEDURE DECONV3D *****';
  196. 'MESS' '***** FRONTIERE : MAILLAGE INCORRECT *****';
  197. 'SAUT' 2 'LIGNE' ;
  198. 'QUIT' DECONV3D;
  199. 'FINSI';
  200.  
  201. 'SI' ((DIME LTYPF) 'EGA' 2);
  202. TYPF1 = 'EXTR' LTYPF 1;
  203. TYPF2 = 'EXTR' LTYPF 2;
  204. 'SI' ((('EGA' TYPF1 'QUA4') ET ('EGA' TYPF2 'TRI3')) OU
  205. (('EGA' TYPF1 'TRI3') ET ('EGA' TYPF2 'QUA4')));
  206. TY1 = 'CUB8';
  207. TY2 = 'PRI6';
  208. 'SINON';
  209. 'SI' ((('EGA' TYPF1 'QUA8') ET ('EGA' TYPF2 'TRI6')) OU
  210. (('EGA' TYPF1 'TRI6') ET ('EGA' TYPF2 'QUA8')));
  211. TY1 = 'CU20';
  212. TY2 = 'PR15';
  213. 'SINON';
  214. 'SAUT' 2 'LIGNE' ;
  215. 'MESS' '***** ARRET DE LA PROCEDURE DECONV3D *****';
  216. 'MESS' '***** FRONTIERE : ELEMENTS INCOMPATIBLES *****';
  217. 'SAUT' 2 'LIGNE' ;
  218. 'QUIT' DECONV3D;
  219. 'FINSI';
  220. 'FINSI';
  221. 'FINSI';
  222.  
  223. 'SI' ((DIME LTYPF) 'EGA' 1);
  224. TYPF1 = 'EXTR' LTYPF 1;
  225. 'SI' (('EGA' TYPF1 'QUA4') OU ('EGA' TYPF1 'TRI3'));
  226. TY1 = 'CUB8';
  227. TY2 = 'PRI6';
  228. 'SINON';
  229. 'SI' (('EGA' TYPF1 'QUA8') OU ('EGA' TYPF1 'TRI6'));
  230. TY1 = 'CU20';
  231. TY2 = 'PR15';
  232. 'SINON';
  233. 'SAUT' 2 'LIGNE' ;
  234. 'MESS' '***** ARRET DE LA PROCEDURE DECONV3D *****';
  235. 'MESS' '***** FRONTIERE : ELEMENTS INCOMPATIBLES *****';
  236. 'SAUT' 2 'LIGNE' ;
  237. 'QUIT' DECONV3D;
  238. 'FINSI';
  239. 'FINSI';
  240. 'FINSI';
  241.  
  242. 'OPTI' 'ELEM' TY1 ;
  243.  
  244. 'SAUT' 5 'LIGNE' ;
  245. 'MESS' '**********************************************************' ;
  246. 'MESS' '* *' ;
  247. 'MESS' '* CALCUL DU CHAMP SISMIQUE INCIDENT PAR LA METHODE *' ;
  248. 'MESS' '* DE LA DECONVOLUTION *' ;
  249. 'MESS' '* *' ;
  250. 'MESS' '**********************************************************' ;
  251. 'SAUT' 2 'LIGNE' ;
  252. 'MESS' 'CARACTERISTIQUES MECANIQUES DU SOL' ;
  253.  
  254. I = 0 ;
  255. 'REPE' BOUCL0 NB_COU ;
  256. I = I + 1 ;
  257. E_I = COUCHE.I.'YOUNG' ;
  258. NU_I = COUCHE.I.'POISSON' ;
  259. COUCHE.I.'MODULE_G' = E_I / ( 2. * ( 1. + NU_I ) ) ;
  260. CS_I = ( COUCHE.I.'MODULE_G' / COUCHE.I.'MASSE_VOLUMIQUE' ) ** .5 ;
  261. CP_I = ((2.0 * (1.0 - NU_I))/(1.0 - (2.0 * NU_I))) ** 0.5 ;
  262. CP_I = CP_I * CS_I ;
  263. FR_I = COUCHE.I.'FRONTIERE' ;
  264. Z_I = 'COOR' 3 FR_I ;
  265. Z_MAX = 'MAXI' Z_I ;
  266. Z_MIN = 'MINI' Z_I ;
  267. COUCHE.I.'EPAISSEUR' = Z_MAX - Z_MIN ;
  268.  
  269. 'SAUT' 'LIGNE' ;
  270. 'MESS' 'COUCHE NUMERO ' I ;
  271. 'SAUT' 'LIGNE' ;
  272. 'MESS' 'EPAISSEUR DE LA COUCHE H ' COUCHE.I.'EPAISSEUR' ;
  273. 'MESS' 'MODULE D"YOUNG E ' COUCHE.I.'YOUNG' ;
  274. 'MESS' 'MASSE VOLUMIQUE RHO' COUCHE.I.'MASSE_VOLUMIQUE' ;
  275. 'MESS' 'COEFFICIENT DE POISSON NU ' COUCHE.I.'POISSON' ;
  276. 'MESS' 'VITESSE DES ONDES S CS ' CS_I ;
  277. 'MESS' 'VITESSE DES ONDES P CP ' CP_I ;
  278. 'MESS' 'AMORTISSEMENT EQUIVALENT KSI' COUCHE.I.'AMORTISSEMENT' ;
  279. 'FIN' BOUCL0 ;
  280.  
  281.  
  282.  
  283. ************* Construction d'une couche de sol enveloppe ***************
  284. *
  285. * La couche enveloppe est construite a l'exterieur de la
  286. * frontiere du sol (en utilisant le point de reference PC)
  287. *
  288. ************************************************************************
  289.  
  290. 'SAUT' 3 'LIGNE' ;
  291. 'MESS' 'CONSTRUCTION D"UNE ENVELOPPE DE SOL' ;
  292. A_I = 'MESU' FR_I 'SURF' ;
  293. NE_I = 'NBEL' FR_I ;
  294. DR = (A_I/NE_I) ** 0.5 ;
  295. 'SI' BIELAK ;
  296. 'SI' ('EXIS' COUCHE.BLK EP_H) ;
  297. DR = COUCHE.BLK.EP_H ;
  298. 'FINSI' ;
  299. 'FINSI' ;
  300. XMAX = 'MAXI' 'ABS' (('COOR' 1 FR_I) - ('COOR' 1 PC)) ;
  301. YMAX = 'MAXI' 'ABS' (('COOR' 2 FR_I) - ('COOR' 2 PC)) ;
  302. R_FR = ((XMAX**2) + (YMAX**2)) ** 0.5 ;
  303. RAPP = (R_FR + DR) / R_FR ;
  304.  
  305. 'TITR' 'ENVELOPPE DE SOL POUR LA DECONVOLUTION (EN ROSE)' ;
  306.  
  307. COLONN = 'TABLE' ;
  308. COLMOD = 'TABLE' ;
  309. COLMAT = 'TABLE' ;
  310. COLMAS = 'TABLE' ;
  311. COLRIG = 'TABLE' ;
  312. COLBLO = 'TABLE' ;
  313. COLAMO = 'TABLE' ;
  314.  
  315. 'SI' ( 'NON' ( 'EXIS' F1 ) ) ;
  316. F1 = 1.0 ;
  317. F2 = 25.0 ;
  318. 'FINSI' ;
  319. 'MESS' 'AMORTISSEMENT DE RAYLEIGH POUR LE SOL' ;
  320. 'MESS' 'F1 = ' F1 'Hz F2 = ' F2 'Hz' ;
  321. ALPHA = PI * 4 * F1 * F2 / ( F1 + F2 ) ;
  322. BETA = 1 / ( PI * ( F1 + F2 ) ) ;
  323.  
  324. I = 0 ;
  325. 'REPE' BOUCL1 NB_COU ;
  326. I = I + 1 ;
  327. KSI = COUCHE.I.'AMORTISSEMENT' ;
  328. FR_I = COUCHE.I.'FRONTIERE' ;
  329. FR_I2 = (FR_I 'HOMO' RAPP PC) 'AFFI' (1./RAPP)
  330. PC ('PLUS' PC (0 0 -1)) ;
  331. COLONN.I = FR_I 'VOLU' 1 FR_I2 ;
  332. COLMOD.I = 'MODE' ( COLONN.I ) 'MECANIQUE' 'ELASTIQUE'
  333. 'ISOTROPE' TY1 TY2 ;
  334. COLMAT.I = 'MATE' ( COLMOD.I ) 'YOUNG' ( COUCHE.I.'YOUNG' )
  335. 'NU' ( COUCHE.I.'POISSON' )
  336. 'RHO' ( COUCHE.I.'MASSE_VOLUMIQUE' ) ;
  337. COLMAS.I = 'MASS' ( COLMOD.I ) ( COLMAT.I ) ;
  338. COLRIG.I = 'RIGI' ( COLMOD.I ) ( COLMAT.I ) ;
  339. 'SI' (('EGA' DIR 'UX') OU ('EGA' DIR 'UY')) ;
  340. COLBLO.I = 'BLOQ' 'UZ' COLONN.I ;
  341. 'SINON' ;
  342. 'SI' ('EGA' DIR 'UZ') ;
  343. COLBLO.I = 'BLOQ' 'UX' 'UY' COLONN.I ;
  344. 'FINSI' ;
  345. 'FINSI' ;
  346. COLAMO.I = KSI * (( ALPHA * ( COLMAS.I ) ) 'ET'
  347. ( BETA * ( COLRIG.I 'ET' COLBLO.I ))) ;
  348.  
  349. 'SI' ( I 'EGA' 1 ) ;
  350. FRON = COUCHE.I.'FRONTIERE' ;
  351.  
  352. COL1 = COLONN.I ;
  353. MOD1 = COLMOD.I ;
  354. MAT1 = COLMAT.I ;
  355. MAS1 = COLMAS.I ;
  356. RIG1 = COLRIG.I ;
  357. BLO1 = COLBLO.I ;
  358. AMO1 = COLAMO.I ;
  359. 'SINON' ;
  360. FRON = FRON 'ET' ( COUCHE.I.'FRONTIERE' ) ;
  361. COL1 = COL1 'ET' ( COLONN.I ) ;
  362. MOD1 = MOD1 'ET' ( COLMOD.I ) ;
  363. MAT1 = MAT1 'ET' ( COLMAT.I ) ;
  364. MAS1 = MAS1 'ET' ( COLMAS.I ) ;
  365. RIG1 = RIG1 'ET' ( COLRIG.I ) ;
  366. BLO1 = BLO1 'ET' ( COLBLO.I ) ;
  367. AMO1 = AMO1 'ET' ( COLAMO.I ) ;
  368. 'FINSI' ;
  369. 'FIN' BOUCL1 ;
  370.  
  371. 'ELIM' COL1 0.01 ;
  372. COL1 = COL1 'COUL' 'ROSE' ;
  373. RIGT = RIG1 'ET' BLO1 ;
  374. 'SI' ( 'EXIS' SOL ) ;
  375. 'TRAC' ( SOL 'ET' COL1 ) 'FACE' 'NCLK' ;
  376. 'SINON' ;
  377. 'TRAC' COL1 'FACE' 'NCLK' ;
  378. 'FINSI' ;
  379.  
  380. * Amortisseurs a la base de l'enveloppe
  381.  
  382. 'SAUT' 'LIGNE' ;
  383. 'MESS' 'AMORTISSEURS A LA BASE DE L ENVELOPPE' ;
  384.  
  385. ZBA = 'MINI' ('COOR' 3 COLONN.NB_COU) ;
  386. EBA = 'ENVE' COLONN.NB_COU ;
  387. PBA = EBA 'POIN' 'PLAN' (0 0 ZBA) (1 0 ZBA)
  388. (0 1 ZBA) 0.001 ;
  389. SBAS = EBA 'ELEM' 'APPUYE' 'STRICTEMENT' PBA ;
  390. BAS_COL = SBAS ;
  391. AMO_BAS = AMOR COLMOD.NB_COU SBAS COLMAT.NB_COU ;
  392. AMOT = AMO_BAS 'ET' AMO1 ;
  393.  
  394. * Point surface libre et point base du sol
  395.  
  396. ZSUR = 'MAXI' ('COOR' 3 (COUCHE. 1 . 'FRONTIERE')) ;
  397. PSUR = (COUCHE. 1 . 'FRONTIERE') 'POIN' 'PLAN' (0 0 ZSUR)
  398. (1 0 ZSUR) (0 1 ZSUR) 0.001 ;
  399. P_SUR = PSUR 'POINT' 'INITIAL' ; ;
  400.  
  401. ZBAS = 'MINI' ('COOR' 3 (COUCHE.NB_COU.'FRONTIERE')) ;
  402. PBAS = (COUCHE.NB_COU.'FRONTIERE') 'POIN' 'PLAN' (0 0 ZBAS)
  403. (1 0 ZBAS) (0 1 ZBAS) 0.001 ;
  404. P_BAS = PBAS 'POINT' 'INITIAL' ;
  405.  
  406. * Renumerotation des noeuds sur la frontiere : TASSER "FRON"
  407.  
  408. NB_NOEU = 'NBNO' FRON ;
  409. 'MESS' 'NOMBRE DE NOEUDS SUR LA FRONTIERE :' NB_NOEU ;
  410.  
  411. * Acces aux noeuds sur la frontiere
  412.  
  413. NUM_SUR = 'NOEU' P_SUR ;
  414. NUM_BAS = 'NOEU' P_BAS ;
  415.  
  416. POI_FRO = 'TABLE' ;
  417. I = 0 ;
  418. 'REPE' BOUCL2 NB_NOEU ;
  419. I = I + 1 ;
  420. POI_FRO.I = 'NOEU' I ;
  421. 'FIN' BOUCL2 ;
  422.  
  423.  
  424. ******************* Reponse dynamique de L'enveloppe *****************
  425. *
  426. * Pour eviter des problemes de precision lies a l'interpolation du
  427. * chargement produit par cette procedure, le pas de temps utilise ici
  428. * pour la deconvolution sera egalement utilise pour le calcul d'ISS.
  429. *
  430. * Le pas de temps est egale a 1/2, 1/4, 1/8, ... de celui de GAMMAO
  431. * pour eviter des erreurs d'interpolation sur le signal d'entree. Il
  432. * doit etre defini de sorte que la frequence de coupure utilisee dans
  433. * la procedure DYNAMIC est au moins 4 fois FC.
  434. *
  435. * Duree de calcul
  436. *
  437. * sol monocouche : 3 aller-retours onde S
  438. * sol multicouche : 5 aller-retours onde S (prise en compte des
  439. * reflections sur les interfaces des couches)
  440. *
  441. ************************************************************************
  442.  
  443. * Frequence de coupure FC
  444.  
  445. 'SI' ( 'NON' ( 'EXIS' FC ) ) ;
  446. FC = 50.0 ;
  447. 'FINSI' ;
  448. 'SAUT' 'LIGNE' ;
  449. 'MESS' 'FREQUENCE DE COUPURE = ' FC 'Hz' ;
  450.  
  451. 'SAUT' 3 'LIGNE' ;
  452. 'MESS' 'REPONSE DYNAMIQUE DE L ENVELOPPE' ;
  453. 'SAUT' 'LIGNE' ;
  454. T_GAMO = 'EXTR' GAMMAO 'ABSC' ;
  455. A_GAMO = 'EXTR' GAMMAO 'ORDO' ;
  456. NP = 'DIME' T_GAMO ;
  457. TEM1 = 'EXTR' T_GAMO 1 ;
  458. TEM2 = 'EXTR' T_GAMO 2 ;
  459. TEMNP = 'EXTR' T_GAMO NP ;
  460. PAS_TEM = TEM2 - TEM1 ;
  461. PAS_2FC = 1.0 / ( 8 * FC ) ;
  462.  
  463. IDIV = 0 ;
  464. 'REPE' BB1 ;
  465. ERR = (( PAS_TEM / ( 2**IDIV )) - PAS_2FC ) / PAS_2FC ;
  466. 'SI' ( ERR < 0.01 ) ;
  467. 'QUIT' BB1 ;
  468. 'FINSI' ;
  469. IDIV = IDIV + 1 ;
  470. 'FIN' BB1 ;
  471. PAS_TEM = PAS_TEM / (2**IDIV) ;
  472.  
  473. *----------------------------------------------------------------------
  474. * Aller a la partie (Bielak et SH) (modif du 01/10/2015 par F. WANG)
  475. *
  476. SI (NON (ET BIELAK SH)) ;
  477. *
  478. *----------------------------------------------------------------------
  479.  
  480. 'SI' ( NB_COU 'EGA' 1 ) ;
  481. G = ( COUCHE. 1 . 'MODULE_G' ) ;
  482. CS = ( G / ( COUCHE. 1 . 'MASSE_VOLUMIQUE' ) ) ** 0.5 ;
  483. DUREE = 6.0 * ( COUCHE. 1 . 'EPAISSEUR' ) / CS ;
  484.  
  485. 'SINON' ;
  486. DUREE = 0.0 ;
  487. I = 0 ;
  488. 'REPE' BOUCD NB_COU ;
  489. I = I + 1 ;
  490. G = ( COUCHE.I.'MODULE_G' ) ;
  491. CS = ( G / ( COUCHE.I.'MASSE_VOLUMIQUE' ) ) ** 0.5 ;
  492. DUREE = DUREE + ( 10.0 * ( COUCHE.I.'EPAISSEUR' ) / CS ) ;
  493. 'FIN' BOUCD ;
  494. 'FINSI' ;
  495.  
  496. * Impulsion de force horizontale a la base de l'enveloppe
  497. * Sa transforme de Fourier doit etre non nulle dans
  498. * l'intervalle (0, FC). On a DT = 7 * PAS_TEM
  499.  
  500. 'SAUT' 'LIGNE' ;
  501. 'MESS' 'FORCE APPLIQUEE A LA BASE DE L ENVELOPPE' ;
  502. 'TITRE' 'FORCE APPLIQUEE A LA BASE DE L ENVELOPPE' ;
  503. DT = 7 * PAS_TEM ;
  504. NT = 300 ;
  505. L_TIM = 'PROG' 0.0 'PAS' DT 'NPAS' NT ;
  506. L_FOR = 'PROG' 0. 1.E5 0. -1.E5 297 * 0. ;
  507. EV_FOR = 'EVOL' 'MANU' 'TEMPS(S)' L_TIM 'FORCE(N)' L_FOR ;
  508.  
  509. DUREE = DUREE + ( 4. * DT ) ;
  510. 'SI' ( DUREE < ( 8. * DT ) ) ;
  511. DUREE = 8. * DT ;
  512. 'FINSI' ;
  513. NB_PAS = 'ENTI' ( DUREE / PAS_TEM ) ;
  514. DUREE = NB_PAS * PAS_TEM ;
  515. 'DESS' EV_FOR 'XBOR' 0.0 DUREE 'NCLK' ;
  516. 'SAUT' 'LIGNE' ;
  517. 'MESS' 'CALCUL DYNAMIQUE POUR LA DECONVOLUTION' ;
  518. 'MESS' 'PAS DE CALCUL = ' PAS_TEM ' DUREE = ' DUREE ;
  519.  
  520. 'SI' ( 'EGA' DIR 'UX' ) ;
  521. FOR_P = 'PRES' 'MASS' COLMOD.NB_COU 1.0 SBAS ;
  522. FOR_BAS = 'EXCO' 'FZ' FOR_P 'FX' ;
  523. 'SINON' ;
  524.  
  525. 'SI' ( 'EGA' DIR 'UY' ) ;
  526. FOR_P = 'PRES' 'MASS' COLMOD.NB_COU 1.0 SBAS ;
  527. FOR_BAS = 'EXCO' 'FZ' FOR_P 'FY' ;
  528. 'SINON' ;
  529.  
  530. 'SI' ( 'EGA' DIR 'UZ' ) ;
  531. FOR_BAS = 'PRES' 'MASS' COLMOD.NB_COU 1.0 SBAS ;
  532. 'FINSI' ;
  533. 'FINSI' ;
  534. 'FINSI' ;
  535.  
  536. CHA_BAS = 'CHAR' FOR_BAS EV_FOR ;
  537. 'LIST' FOR_BAS ;
  538.  
  539. CH_DEPI = 'MANU' 'CHPO' 3 COL1 'UX' 0. 'UY' 0. 'UZ' 0. ;
  540. CH_VITI = 'MANU' 'CHPO' 3 COL1 'UX' 0. 'UY' 0. 'UZ' 0. ;
  541.  
  542. LINST ='PROG' TEM1 'PAS' PAS_TEM 'NPAS' (NB_PAS - 1) ;
  543. FCDYN = 1.0 / (4 * PAS_TEM) ;
  544.  
  545. TAB_DYN ='TABLE' ;
  546. TAB_DYN.'DEBU' = TEM1 ;
  547. TAB_DYN.'VITE' = CH_VITI ;
  548. TAB_DYN.'DEPL' = CH_DEPI ;
  549. TAB_DYN.'CHAR' = CHA_BAS ;
  550. TAB_DYN.'RIGI' = RIGT ;
  551. TAB_DYN.'MASS' = MAS1 ;
  552. TAB_DYN.'AMOR' = AMOT ;
  553. TAB_DYN.'INST' = LINST ;
  554. TAB_DYN.'FREQ' = FCDYN ;
  555.  
  556. 'TEMP' ;
  557. RESU = DYNAMIC TAB_DYN ;
  558. 'SAUT' 'LIGNE' ;
  559. 'MESS' 'FIN DE CALCUL DYNAMIQUE SUR L ENVELOPPE' ;
  560. 'MENA' ;
  561. 'TEMP' ;
  562.  
  563.  
  564. * Deplacements, vitesses, deformations et reactions
  565.  
  566. 'SI' ( 'EGA' DIR 'UX' ) ;
  567. UMOT = 'MOT' 'UX' ;
  568. EMOT = 'MOT' 'GAXZ' ;
  569. FMOT = 'MOT' 'FZ' ;
  570. 'SINON' ;
  571.  
  572. 'SI' ( 'EGA' DIR 'UY' ) ;
  573. UMOT = 'MOT' 'UY' ;
  574. EMOT = 'MOT' 'GAYZ' ;
  575. FMOT = 'MOT' 'FZ' ;
  576. 'SINON' ;
  577.  
  578. 'SI' ( 'EGA' DIR 'UZ' ) ;
  579. UMOT = 'MOT' 'UZ' ;
  580. EMOT = 'MOT' 'EPZZ' ;
  581. FMOT1 = 'MOT' 'FX' ;
  582. FMOT2 = 'MOT' 'FY' ;
  583. 'FINSI' ;
  584. 'FINSI' ;
  585. 'FINSI' ;
  586.  
  587. 'SAUT' 3 'LIGNE' ;
  588. 'MESS' 'FONCTION DE TRANSFERT POUR LES DEPLACEMENTS, LES VITESSES,' ;
  589. 'MESS' 'LES DEFORMATIONS DE CISAILLEMENT ET LES REACTIONS ' ;
  590.  
  591. U_FRON = 'TABLE' ;
  592. V_FRON = 'TABLE' ;
  593. E_FRON = 'TABLE' ;
  594. R_FRON = 'TABLE' ;
  595. R1_FRON = 'TABLE' ;
  596. R2_FRON = 'TABLE' ;
  597.  
  598. J = 0 ;
  599. 'REPE' BOUCL3 NB_NOEU ;
  600. J = J + 1 ;
  601. U_FRON.J = 'PROG' 0.0 ;
  602. V_FRON.J = 'PROG' 0.0 ;
  603. E_FRON.J = 'PROG' 0.0 ;
  604. R_FRON.J = 'PROG' 0.0 ;
  605. R1_FRON.J = 'PROG' 0.0 ;
  606. R2_FRON.J = 'PROG' 0.0 ;
  607. 'FIN' BOUCL3 ;
  608.  
  609. L_TEM = 'PROG' 0.0 ;
  610. I_TEM = 1 ;
  611. 'REPE' BOUCL4 ( NB_PAS - 1 ) ;
  612. I_TEM = I_TEM + 1 ;
  613. L_TEM = L_TEM 'ET' ( 'PROG' ( RESU.I_TEM.'TEMP' ) ) ;
  614. CHD_I = RESU.I_TEM.'DEPL' ;
  615. CHV_I = RESU.I_TEM.'VITE' ;
  616. CHE_I ='CHAN' 'CHPO' MOD1 ( 'EPSI' MOD1 CHD_I MAT1 ) ;
  617. CHR_I ='REAC' BLO1 CHD_I ;
  618.  
  619. 'SI' (('EGA' DIR 'UX') OU ('EGA' DIR 'UY')) ;
  620. J = 0 ;
  621. 'REPE' BOUCL4_1 NB_NOEU ;
  622. J = J + 1 ;
  623. U_FRON.J = U_FRON.J 'ET' ('PROG' ('EXTR' CHD_I POI_FRO.J UMOT)) ;
  624. V_FRON.J = V_FRON.J 'ET' ('PROG' ('EXTR' CHV_I POI_FRO.J UMOT)) ;
  625. E_FRON.J = E_FRON.J 'ET' ('PROG' ('EXTR' CHE_I POI_FRO.J EMOT)) ;
  626. R_FRON.J = R_FRON.J 'ET' ('PROG' ('EXTR' CHR_I POI_FRO.J FMOT)) ;
  627. 'FIN' BOUCL4_1 ;
  628. 'SINON' ;
  629.  
  630. 'SI' ('EGA' DIR 'UZ') ;
  631. J = 0 ;
  632. 'REPE' BOUCL4_2 NB_NOEU ;
  633. J = J + 1 ;
  634. U_FRON.J = U_FRON.J 'ET' ('PROG' ('EXTR' CHD_I POI_FRO.J UMOT)) ;
  635. V_FRON.J = V_FRON.J 'ET' ('PROG' ('EXTR' CHV_I POI_FRO.J UMOT)) ;
  636. E_FRON.J = E_FRON.J 'ET' ('PROG' ('EXTR' CHE_I POI_FRO.J EMOT)) ;
  637. R1_FRON.J = R1_FRON.J 'ET' ('PROG' ('EXTR' CHR_I POI_FRO.J FMOT1)) ;
  638. R2_FRON.J = R2_FRON.J 'ET' ('PROG' ('EXTR' CHR_I POI_FRO.J FMOT2)) ;
  639. 'FIN' BOUCL4_2 ;
  640.  
  641. 'FINSI' ;
  642. 'FINSI' ;
  643. 'FIN' BOUCL4 ;
  644.  
  645. * TFR de l'acceleration en surface GAMMAO
  646.  
  647. 'TITRE' 'TRANSFORMATION DE FOURIER DE GAMMAO' ;
  648. NP = 'DIME' ( 'EXTR' GAMMAO 'ABSC' ) ;
  649. XX = ( LOG NP ) / ( LOG 2 ) ;
  650. NN = 'ENTI' XX ;
  651. 'SI' ( XX > ( 1.0 * NN ) ) ;
  652. NN = NN + 1 ;
  653. 'FINSI' ;
  654.  
  655. TF_GAMO = 'TFR' NN GAMMAO 'MOPH' ;
  656. FR_GAMO = 'EXTR' TF_GAMO 'ABSC' ;
  657. MO_GAMO = 'EXTR' TF_GAMO 'ORDO' 1 ;
  658. PH_GAMO = 'EXTR' TF_GAMO 'ORDO' 2 ;
  659. NFREQ = 'DIME' FR_GAMO ;
  660. DFREQ = 'EXTR' FR_GAMO 2 ;
  661. FREQN = 'EXTR' FR_GAMO NFREQ ;
  662. MODUN = 'EXTR' MO_GAMO NFREQ ;
  663.  
  664. 'SI' ( IDIV NEG 0 ) ;
  665. NN = NN + IDIV ;
  666. 'REMP' MO_GAMO NFREQ ( MODUN / 2.0 ) ;
  667.  
  668. NFREQ1 = (2**(NN - 1)) + 1 ;
  669. FR_GAMO = 'PROG' 0.0 'PAS' DFREQ 'NPAS' ( NFREQ1 - 1 ) ;
  670. LIST ( DIME FR_GAMO ) ;
  671. MO_GAMO = MO_GAMO 'ET' ('PROG' (NFREQ1 - NFREQ ) * 0.0) ;
  672. LIST ( DIME MO_GAMO ) ;
  673. PH_GAMO = PH_GAMO 'ET' ('PROG' (NFREQ1 - NFREQ ) * 0.0) ;
  674. LIST ( DIME PH_GAMO ) ;
  675. TF_GAMO = 'EVOL' 'COMP' 'MOPH' 'FREQ(HZ)' FR_GAMO 'MODULE'
  676. MO_GAMO 'PHASE' PH_GAMO ;
  677. 'FINSI' ;
  678.  
  679. *-------------------- Debut de modif 1 du 20/02/2013 -------------------
  680.  
  681. * TFR du deplacement de controle
  682.  
  683. 'TITRE' 'TFR DU DEPLACEMENT DE CONTROLE' ;
  684. OMEGA2 = ( FR_GAMO * 2. * PI ) ** 2 ;
  685. 'REMP' OMEGA2 1 1.0 ;
  686. MOD = MO_GAMO / ( OMEGA2 * ( -1 ) ) ;
  687. 'REMP' MOD 1 0.0 ;
  688. TF_DEPLO = 'EVOL' 'COMP' 'MOPH' 'FREQ(HZ)' FR_GAMO
  689. 'MODULE' MOD 'PHASE' PH_GAMO ;
  690.  
  691. * TFR du deplacement du outcrop de bedrock sous l'impulsion
  692. * Calcul de vitesse VOUT à partir de l'impulsion à la base F et
  693. * l'amortissement à la base C (VOUT = F/C, sur une unite de surface)
  694.  
  695. G = ( COUCHE.NB_COU.'MODULE_G' ) ;
  696. RO = ( COUCHE.NB_COU.'MASSE_VOLUMIQUE' ) ;
  697. NU = ( COUCHE.NB_COU.'POISSON') ;
  698. CS = ( G / RO ) ** 0.5 ;
  699. CP = ((2.0 * (1.0 - NU))/(1.0 - (2.0 * NU))) ** 0.5 ;
  700. CP = CP * CS ;
  701.  
  702. 'SI' (('EGA' DIR 'UX') OU ('EGA' DIR 'UY')) ;
  703. VOUT = EV_FOR / (RO * CS) ;
  704. 'SINON' ;
  705. 'SI'( 'EGA' DIR 'UZ') ;
  706. VOUT = EV_FOR / (RO * CP) ;
  707. 'FINSI' ;
  708. 'FINSI' ;
  709. 'TITR' 'VITESSE OUTCROP SOUS L IMPULSION' ;
  710. VOUT = 'EVOL' 'MANU' L_TEM ('IPOL' L_TEM VOUT) ;
  711. TF_VOUT = 'TFR' NN VOUT 'REIM' ;
  712.  
  713. 'TITR' 'TFR DEPLACEMENT OUTCROP SOUS L IMPULSION' ;
  714. LF_VOUT = EXTR TF_VOUT ABSC ;
  715. IOMEGA = 2.*PI*LF_VOUT ;
  716. 'REMP' IOMEGA 1 1.0 ;
  717. EVIOMEGA = EVOL COMP 'REIM' LF_VOUT (LF_VOUT*0) IOMEGA ;
  718. TF_UOUT = TF_VOUT / EVIOMEGA ;
  719. RIMP TF_UOUT ;
  720.  
  721. * Fonction de transfert
  722.  
  723. H_DEPL = 'TABLE' ;
  724. H_VITE = 'TABLE' ;
  725. H_EPSI = 'TABLE' ;
  726. H_REAC = 'TABLE' ;
  727. H1_REAC = 'TABLE' ;
  728. H2_REAC = 'TABLE' ;
  729.  
  730. * Point de controle en surface libre (option par defaut)
  731.  
  732. 'TITRE' 'DEPLACEMENT EN SURFACE' ;
  733. UO = 'EVOL' 'MANU' 'TEMPS' L_TEM 'DEPL' U_FRON.NUM_SUR ;
  734. TF_UO = 'TFR' NN UO 'MOPH' ;
  735.  
  736. * Remplacer le debut zero de TF_UOUT par celui de TF_UO
  737.  
  738. UOM = EXTR (EXTR TF_UO ORDO 1) 1 ;
  739. UOP = EXTR (EXTR TF_UO ORDO 2) 1 ;
  740. LF_OUT = EXTR TF_UOUT ABSC ;
  741. LM_OUT = EXTR TF_UOUT ORDO 1 ;
  742. LP_OUT = EXTR TF_UOUT ORDO 2 ;
  743. REMP LM_OUT 1 UOM ;
  744. REMP LP_OUT 1 UOP ;
  745. TF_UOUT = 'EVOL' 'COMP' 'MOPH' 'FREQ(HZ)' LF_OUT
  746. 'MODULE' LM_OUT 'PHASE' LP_OUT ;
  747.  
  748. 'SI' ('EXIS' P_GAMMA ) ;
  749. 'SI' ('EXIS' P_GAMMA 'ENTREE') ;
  750.  
  751. * Option point de contole "INSIDE"
  752.  
  753. 'SI' (EGA P_GAMMA.ENTREE.NATURE 'INSIDE');
  754. NUM_CTR = 'NOEU' P_GAMMA.ENTREE.CONTROLE;
  755. UO = 'EVOL' 'MANU' 'TEMPS' L_TEM 'DEPL' U_FRON.NUM_CTR ;
  756. TF_UO = 'TFR' NN UO 'MOPH' ;
  757. 'FINSI' ;
  758.  
  759. * Option point de controle "OUTCROP" de bedrock
  760.  
  761. 'SI' (EGA P_GAMMA.ENTREE.NATURE 'OUTCROP') ;
  762. TF_UO = TF_UOUT ;
  763. 'FINSI' ;
  764. 'FINSI' ;
  765. 'FINSI' ;
  766.  
  767. *--------------------- Fin de modif 1 du 20/02/2013 --------------------
  768.  
  769. * Elimination des zeros dans TF_UO
  770.  
  771. LABS = 'PROG' 0.0 FC (FC + DFREQ) 9000.0 ;
  772. LFIL1 = 'PROG' 1.0 1.0 0.0 0.0 ;
  773. LFIL2 = 'PROG' 0.0 0.0 0.0 0.0 ;
  774. LFIL3 = 'PROG' 0.0 0.0 1.0 1.0 ;
  775.  
  776. LFIL1 = 'IPOL' FR_GAMO LABS LFIL1 ;
  777. LFIL2 = 'IPOL' FR_GAMO LABS LFIL2 ;
  778. LFIL3 = 'IPOL' FR_GAMO LABS LFIL3 ;
  779.  
  780. EVFIL = 'EVOL' 'COMP' 'MOPH' FR_GAMO LFIL1 LFIL2 ;
  781. EVADD = 'EVOL' 'COMP' 'MOPH' FR_GAMO LFIL3 LFIL2 ;
  782.  
  783. TF_UO = TF_UO * EVFIL ;
  784. TF_UO = TF_UO + EVADD ;
  785.  
  786.  
  787. TF_GAMO = TF_GAMO * EVFIL ;
  788. TF_DEPLO = TF_DEPLO * EVFIL ;
  789.  
  790. 'TITR' 'ACCELERATION FILTREE AU POINT DE CONTROLE' ;
  791. GAMMAO = 'TFRI' TF_GAMO ;
  792. 'TITR' 'DEPLACEMENT FILTREE AU POINT DE CONTROLE' ;
  793. DEPLO = 'TFRI' TF_DEPLO ;
  794.  
  795. 'TITRE' 'DEPLACEMENT A LA BASE' ;
  796. UB = 'EVOL' 'MANU' 'TEMPS' L_TEM 'DEPL' U_FRON.NUM_BAS ;
  797. 'TITRE' 'VITESSE A LA BASE' ;
  798. VO = 'EVOL' 'MANU' 'TEMPS' L_TEM 'VITE' V_FRON.NUM_BAS ;
  799. 'TITRE' 'DEFORMATION A LA BASE' ;
  800. EO = 'EVOL' 'MANU' 'TEMPS' L_TEM 'EPSI' E_FRON.NUM_BAS ;
  801. 'TITRE' 'REACTION A LA BASE' ;
  802.  
  803. 'SI' (('EGA' DIR 'UX') OU ('EGA' DIR 'UY')) ;
  804. RO = 'EVOL' 'MANU' 'TEMPS' L_TEM 'REAC' R_FRON.NUM_BAS ;
  805. 'SINON' ;
  806. 'SI' ('EGA' DIR 'UZ') ;
  807. RO1 = 'EVOL' 'MANU' 'TEMPS' L_TEM 'REAC' R1_FRON.NUM_BAS ;
  808. RO2 = 'EVOL' 'MANU' 'TEMPS' L_TEM 'REAC' R2_FRON.NUM_BAS ;
  809. 'FINSI' ;
  810. 'FINSI' ;
  811.  
  812. J = 0 ;
  813. 'REPE' BOUCL5 NB_NOEU ;
  814. J = J + 1 ;
  815. 'TITRE' 'FONCTION DE TRANSFERT HU DU NOEUD ' J ;
  816. U_J = 'EVOL' 'MANU' 'TEMPS' L_TEM 'DEPL' U_FRON.J ;
  817. TF_UJ = 'TFR' NN U_J 'MOPH' ;
  818. H_DEPL.J = TF_UJ / TF_UO ;
  819.  
  820. 'TITRE' 'FONCTION DE TRANSFERT HV DU NOEUD' J ;
  821. V_J = 'EVOL' 'MANU' 'TEMPS' L_TEM 'VITE' V_FRON.J ;
  822. TF_VJ = 'TFR' NN V_J 'MOPH' ;
  823. H_VITE.J = TF_VJ / TF_UO ;
  824.  
  825. 'TITRE' 'FONCTION DE TRANSFERT HE DU NOEUD' J ;
  826. E_J = 'EVOL' 'MANU' 'TEMPS' L_TEM 'EPSI' E_FRON.J ;
  827. TF_EJ = 'TFR' NN E_J 'MOPH' ;
  828. H_EPSI.J = TF_EJ / TF_UO ;
  829.  
  830. 'TITRE' 'FONCTION DE TRANSFERT HR DU NOEUD' J ;
  831.  
  832. 'SI' (('EGA' DIR 'UX') OU ('EGA' DIR 'UY')) ;
  833. R_J = 'EVOL' 'MANU' 'TEMPS' L_TEM 'REAC' R_FRON.J ;
  834. TF_RJ = 'TFR' NN R_J 'MOPH' ;
  835. H_REAC.J = TF_RJ / TF_UO ;
  836. 'SINON' ;
  837.  
  838. 'SI' ('EGA' DIR 'UZ') ;
  839. R1_J = 'EVOL' 'MANU' 'TEMPS' L_TEM 'REAC' R1_FRON.J ;
  840. R2_J = 'EVOL' 'MANU' 'TEMPS' L_TEM 'REAC' R2_FRON.J ;
  841. TF_R1J = 'TFR' NN R1_J 'MOPH' ;
  842. TF_R2J = 'TFR' NN R2_J 'MOPH' ;
  843. H1_REAC.J = TF_R1J / TF_UO ;
  844. H2_REAC.J = TF_R2J / TF_UO ;
  845.  
  846. 'FINSI' ;
  847. 'FINSI' ;
  848.  
  849. 'FIN' BOUCL5 ;
  850. 'MENA' ;
  851.  
  852. *-------------------- Debut de modif 2 du 20/02/2013 -------------------
  853.  
  854. * Acceleration apres deconvolution
  855.  
  856. 'SAUT' 2 'LIGNE' ;
  857. 'MESS' 'ACCELERATION DU CHAMP LIBRE' ;
  858. 'SI' ( 'EXIS' P_GAMMA ) ;
  859. NB_GAM = 'DIME' P_GAMMA ;
  860. GAMMA = 'TABLE' ;
  861.  
  862. 'SI' ( 'EXIS' P_GAMMA ENTREE ) ;
  863. NB_GAM = NB_GAM - 1 ;
  864. 'FINSI' ;
  865.  
  866. K = 0 ;
  867. 'REPE' BOUCL6 NB_GAM ;
  868. K = K + 1 ;
  869. NUM_P = 'NOEU' P_GAMMA.K ;
  870. HU = H_DEPL.NUM_P ;
  871.  
  872. 'TITRE' 'ACCELERATION DU POINT' K ;
  873. TF_GAM = HU * TF_GAMO ;
  874. GAMMA.K = 'TFRI' TF_GAM ;
  875. GAMMA.K = CHTITR ( GAMMA.K ) 'TEMPS' 'ACCE(M/S*S)' ;
  876. 'FIN' BOUCL6 ;
  877.  
  878. HU = TF_UOUT / TF_UO ;
  879. 'TITRE' 'ACCELERATION OUTCROP DE BEDROCK' ;
  880. TF_GAM = HU * TF_GAMO ;
  881. GAMMA.OUTCROP = 'TFRI' TF_GAM ;
  882. GAMMA.OUTCROP = CHTITR GAMMA.OUTCROP 'TEMPS' 'ACCE(M/S*S)' ;
  883. 'FINSI' ;
  884.  
  885. *--------------------- Fin de modif 2 du 20/02/2013 --------------------
  886.  
  887. 'SAUT' 'LIGNE' ;
  888. 'MESS' 'VITESSE, DEFORMATION ET REACTION' ;
  889.  
  890. J = 0 ;
  891. 'REPE' BOUCL7 NB_NOEU ;
  892. J = J + 1 ;
  893.  
  894. * Vitesse compatible avec GAMMAO
  895.  
  896. 'TITRE' 'VITESSE DU NOEUD' J ;
  897. TF_VITE = ( H_VITE.J ) * TF_DEPLO ;
  898. V_FRON.J = 'TFRI' TF_VITE ;
  899.  
  900. * On met la vitesse initiale (moyenne sur NV point) a zero
  901.  
  902. NV = 1 ;
  903. LT = 'EXTR' ( V_FRON.J ) 'ABSC' ;
  904. LY = 'EXTR' ( V_FRON.J ) 'ORDO' ;
  905.  
  906. Y1 = 0 ;
  907. IV = 1 ;
  908. 'REPE' BV NV ;
  909. Y1 = Y1 + ('EXTR' LY IV) ;
  910. IV = IV + 1 ;
  911. 'FIN' BV ;
  912. Y1 = Y1 / NV ;
  913.  
  914. NY = 'DIME' LY ;
  915. LY1 = 'PROG' NY * Y1 ;
  916. LY = LY - LY1 ;
  917. V_FRON.J = 'EVOL' 'MANU' 'TEMPS' LT 'VITE(M/S)' LY ;
  918.  
  919. * Deformation
  920.  
  921. 'TITRE' 'DEFORMATION AU NOEUD' J ;
  922. TF_EPSI = H_EPSI.J * TF_DEPLO ;
  923. E_FRON.J = 'TFRI' TF_EPSI ;
  924.  
  925. * Reactions des appuis : DIR = UX ou UY, Reaction FZ
  926. * DIR = UZ, Reaction Fx et FY
  927.  
  928.  
  929. 'SI' (('EGA' DIR 'UX') OU ('EGA' DIR 'UY')) ;
  930. 'TITRE' 'REACTION VERTICALE AU NOEUD' J ;
  931. TF_REAC = ( H_REAC.J ) * TF_DEPLO ;
  932. R_FRON.J = 'TFRI' TF_REAC ;
  933.  
  934. * On met la reaction intiale a zero
  935.  
  936. LT = 'EXTR' ( R_FRON.J ) 'ABSC' ;
  937. LY = 'EXTR' ( R_FRON.J ) 'ORDO' ;
  938. Y1 = 'EXTR' LY 1 ;
  939. NY = 'DIME' LY ;
  940. LY1 = 'PROG' NY * Y1 ;
  941. LY = LY - LY1 ;
  942. R_FRON.J = 'EVOL' 'MANU' 'TEMPS' LT 'REAC' LY ;
  943. 'SINON' ;
  944.  
  945. 'SI' ('EGA' DIR 'UZ') ;
  946. 'TITRE' 'REACTIONS HORIZONTALES AU NOEUD' J ;
  947. TF1_REAC = ( H1_REAC.J ) * TF_DEPLO ;
  948. TF2_REAC = ( H2_REAC.J ) * TF_DEPLO ;
  949. R1_FRON.J = 'TFRI' TF1_REAC ;
  950. R2_FRON.J = 'TFRI' TF2_REAC ;
  951.  
  952. * On met les reactions intiales a zero
  953.  
  954. LT = 'EXTR' ( R1_FRON.J ) 'ABSC' ;
  955. LY = 'EXTR' ( R1_FRON.J ) 'ORDO' ;
  956. Y1 = 'EXTR' LY 1 ;
  957. NY = 'DIME' LY ;
  958. LY1 = 'PROG' NY * Y1 ;
  959. LY = LY - LY1 ;
  960. R1_FRON.J = 'EVOL' 'MANU' 'TEMPS' LT 'REAC' LY ;
  961.  
  962. LT = 'EXTR' ( R2_FRON.J ) 'ABSC' ;
  963. LY = 'EXTR' ( R2_FRON.J ) 'ORDO' ;
  964. Y1 = 'EXTR' LY 1 ;
  965. NY = 'DIME' LY ;
  966. LY1 = 'PROG' NY * Y1 ;
  967. LY = LY - LY1 ;
  968. R2_FRON.J = 'EVOL' 'MANU' 'TEMPS' LT 'REAC' LY ;
  969.  
  970. 'FINSI' ;
  971. 'FINSI' ;
  972.  
  973. 'FIN' BOUCL7 ;
  974. ************************************************************************
  975.  
  976. * Force d'amortissement a la base
  977.  
  978. 'SAUT' 'LIGNE' ;
  979. 'MESS' 'FORCE D"AMORTISSEMENT A LA BASE : LYSMER' ;
  980. 'TITR' 'CONTRAINTE D"AMORTISSEMENT A LA BASE' ;
  981. G = ( COUCHE.NB_COU.'MODULE_G' ) ;
  982. RO = ( COUCHE.NB_COU.'MASSE_VOLUMIQUE' ) ;
  983. NU = ( COUCHE.NB_COU.'POISSON') ;
  984. CS = ( G / RO ) ** 0.5 ;
  985. CP = ((2.0 * (1.0 - NU))/(1.0 - (2.0 * NU))) ** 0.5 ;
  986. CP = CP * CS ;
  987.  
  988. 'SI' (('EGA' DIR 'UX') OU ('EGA' DIR 'UY')) ;
  989. SIG_AMO = RO * CS * V_FRON.NUM_BAS ;
  990. SIG_AMO = CHTITR SIG_AMO 'TEMPS(S)' 'SIGMA(PA)' ;
  991.  
  992. 'SINON' ;
  993. 'SI'('EGA' DIR 'UZ') ;
  994. SIG_AMO = RO * CP * V_FRON.NUM_BAS ;
  995. SIG_AMO = CHTITR SIG_AMO 'TEMPS(S)' 'SIGMA(PA)' ;
  996. 'FINSI' ;
  997. 'FINSI' ;
  998.  
  999. * Contrainte a la base
  1000.  
  1001. 'MESS' 'CONTRAINTE A LA BASE' ;
  1002. 'MESS' ;
  1003. 'TITR' 'IMPULSION A LA BASE' ;
  1004. EV_FOR = 'EVOL' 'MANU' L_TEM ( 'IPOL' L_TEM L_TIM L_FOR ) ;
  1005.  
  1006. 'TITR' 'TFR DE L"IMPULSION' ;
  1007. TF_FOR = 'TFR' NN EV_FOR 'MOPH' ;
  1008. 'TITR' 'FONCTION DE TRANSFERT DE L"IMPULSION' ;
  1009. HS = TF_FOR / TF_UO ;
  1010. TF_SIG = HS * TF_DEPLO ;
  1011.  
  1012. 'TITR' 'CONTRAINTE A LA BASE' ;
  1013. SIG_H = ( 'TFRI' TF_SIG ) - SIG_AMO ;
  1014.  
  1015. * On met la contrainte initiale a zero
  1016.  
  1017. LT = 'EXTR' SIG_H 'ABSC' ;
  1018. LY = 'EXTR' SIG_H 'ORDO' ;
  1019. Y1 = 'EXTR' LY 1 ;
  1020. NY = 'DIME' LY ;
  1021. LY1 = 'PROG' NY * Y1 ;
  1022. LY = LY - LY1 ;
  1023.  
  1024. SIG_H = 'EVOL' 'MANU' 'TEMPS(S)' LT 'SIGMA(PA)' LY ;
  1025.  
  1026. 'MENA' ;
  1027. ************************************************************************
  1028. *** FRONTIERE ABSORBANTE DU SOL PROCHE ***
  1029. ************************************************************************
  1030. 'SAUT' 3 'LIGNE' ;
  1031. 'MESS' 'FRONTIERE ABSORBANTE DU SOL PROCHE' ;
  1032. 'SAUT' 'LIGNE' ;
  1033. 'MESS' 'FRONTIERE VERTICALE DU SOL ' ;
  1034.  
  1035. I = 0 ;
  1036. 'REPE' BOUCL8 NB_COU ;
  1037. I = I + 1 ;
  1038. 'SI' ( I 'EGA' 1 ) ;
  1039. AM_V = 'AMOR' COLMOD.I (COUCHE.I.'FRONTIERE') COLMAT.I ;
  1040.  
  1041. 'SINON' ;
  1042. AM_V = AM_V 'ET'('AMOR' COLMOD.I (COUCHE.I.'FRONTIERE') COLMAT.I) ;
  1043. 'FINSI' ;
  1044. 'FIN' BOUCL8 ;
  1045.  
  1046. 'MESS' 'FRONTIERE HORIZONTALE DU SOL' ;
  1047. AM_H = 'AMOR' MOD_SOL FOND_SOL MAT_SOL ;
  1048. AMOF = AM_V 'ET' AM_H ;
  1049.  
  1050. ************************************************************************
  1051. *** CHARGEMENT SISMIQUE SUR LA FRONTIERE HORIZONTALE ***
  1052. ************************************************************************
  1053.  
  1054. 'SAUT' 3 'LIGNE' ;
  1055. 'MESS' 'CHARGEMENT SISMIQUE SUR LA FRONTIERE HORIZONTALE' ;
  1056.  
  1057. * FO : forces nodales equivalentes de la contrainte
  1058.  
  1059. 'SI' ( 'EGA' DIR 'UX' ) ;
  1060. FOR_P = 'PRES' 'MASS' MOD_SOL 1.0 FOND_SOL ;
  1061. FOR_H = 'EXCO' 'FZ' FOR_P 'FX' ;
  1062. 'SINON' ;
  1063.  
  1064. 'SI' ( 'EGA' DIR 'UY' ) ;
  1065. FOR_P = 'PRES' 'MASS' MOD_SOL 1.0 FOND_SOL ;
  1066. FOR_H = 'EXCO' 'FZ' FOR_P 'FY' ;
  1067. 'SINON' ;
  1068.  
  1069. 'SI' ( 'EGA' DIR 'UZ' ) ;
  1070. FOR_P = 'PRES' 'MASS' MOD_SOL 1.0 FOND_SOL ;
  1071. FOR_H = FOR_P ;
  1072.  
  1073. 'FINSI' ;
  1074. 'FINSI' ;
  1075. 'FINSI' ;
  1076.  
  1077. CHA_HFO = 'CHAR' FOR_H SIG_H ;
  1078.  
  1079. * Amortissement * vitesse (A*VO)
  1080.  
  1081. 'SI' (NON BIELAK) ;
  1082.  
  1083. 'SI' ( 'EGA' DIR 'UX' ) ;
  1084. CH_V = 'MANU' 'CHPO' FOND_SOL 1 'UX' 1.0 ;
  1085. 'SINON' ;
  1086.  
  1087. 'SI' ( 'EGA' DIR 'UY' ) ;
  1088. CH_V = 'MANU' 'CHPO' FOND_SOL 1 'UY' 1.0 ;
  1089. 'SINON' ;
  1090.  
  1091. 'SI' ( 'EGA' DIR 'UZ' ) ;
  1092. CH_V = 'MANU' 'CHPO' FOND_SOL 1 'UZ' 1.0 ;
  1093. 'FINSI' ;
  1094. 'FINSI' ;
  1095. 'FINSI' ;
  1096.  
  1097. F_BAS = AM_H * CH_V ;
  1098. CHA_HAX = 'CHAR' F_BAS ( V_FRON.NUM_BAS ) ;
  1099. 'MENA' ;
  1100.  
  1101. 'FINSI' ;
  1102.  
  1103. ************************************************************************
  1104. *** CHARGEMENT SISMIQUE SUR LA FRONTIERE VERTICALE ***
  1105. ************************************************************************
  1106.  
  1107. * FO = - Reaction
  1108.  
  1109. 'MESS' 'CHARGEMENT SISMIQUE SUR LA FRONTIERE VERTICALE' ;
  1110.  
  1111. 'SI' (('EGA' DIR 'UX') OU ('EGA' DIR 'UY')) ;
  1112. J = 0 ;
  1113. 'REPE' BOUCL9_1 NB_NOEU ;
  1114. J = J + 1 ;
  1115. 'SI' ( J 'EGA' 1 ) ;
  1116. CHA_VFO = 'CHAR' ( 'FORC' FMOT -1.0 POI_FRO.J ) ( R_FRON.J ) ;
  1117. 'SINON' ;
  1118. CHA_VFO = ('CHAR' ( 'FORC' FMOT -1.0 POI_FRO.J ) ( R_FRON.J ))
  1119. 'ET' CHA_VFO ;
  1120. 'FINSI' ;
  1121. 'FIN' BOUCL9_1 ;
  1122.  
  1123. 'SINON' ;
  1124. 'SI' ('EGA' DIR 'UZ') ;
  1125. J = 0 ;
  1126. 'REPE' BOUCL9_2 NB_NOEU ;
  1127. J = J + 1 ;
  1128. 'SI' ( J 'EGA' 1 ) ;
  1129. CHA_VFO = ('CHAR' ( 'FORC' FMOT1 -1.0 POI_FRO.J ) ( R1_FRON.J )) ET
  1130. ('CHAR' ( 'FORC' FMOT2 -1.0 POI_FRO.J ) ( R2_FRON.J )) ;
  1131. 'SINON' ;
  1132. CHA_VFO = ('CHAR' ( 'FORC' FMOT1 -1.0 POI_FRO.J ) ( R1_FRON.J )) ET
  1133. ('CHAR' ( 'FORC' FMOT2 -1.0 POI_FRO.J ) ( R2_FRON.J )) ET
  1134. CHA_VFO ;
  1135. 'FINSI' ;
  1136. 'FIN' BOUCL9_2 ;
  1137.  
  1138. 'FINSI' ;
  1139. 'FINSI' ;
  1140.  
  1141. * Amortissement * viteese : A*VO
  1142.  
  1143. 'SI' (NON BIELAK) ;
  1144.  
  1145. V_ABSC = 'EXTR' (V_FRON. 1) 'ABSC' ;
  1146. N_PAS = 'DIME' V_ABSC ;
  1147.  
  1148. * DIR = UZ
  1149.  
  1150. 'SI' ( 'EGA' DIR 'UZ' ) ;
  1151.  
  1152. VISC = 'TABLE' ;
  1153. K = 0 ;
  1154. 'REPE' BOUCL10 NB_NOEU ;
  1155. K = K + 1 ;
  1156. EV01 = V_FRON.K ;
  1157. V_FRON.K = 'EXTR' EV01 'ORDO' ;
  1158. VISC.K = 'PROG' N_PAS * 0.0 ;
  1159. 'FIN' BOUCL10 ;
  1160.  
  1161. J = 0 ;
  1162. 'REPE' BOUCL11 NB_NOEU ;
  1163. J = J + 1 ;
  1164. VEC_U = 'MANU' 'CHPO' POI_FRO.J 1 'UZ' 1.0 ;
  1165. VEC_F = AM_V * VEC_U ;
  1166.  
  1167. K = 0 ;
  1168. 'REPE' BOUC11B NB_NOEU ;
  1169. K = K + 1 ;
  1170. AM_JK = 'EXTR' VEC_F POI_FRO.K 'FZ' ;
  1171. VISC.K = VISC.K + ( AM_JK * V_FRON.J ) ;
  1172. 'FIN' BOUC11B ;
  1173. 'FIN' BOUCL11 ;
  1174.  
  1175. * Recombinaison
  1176.  
  1177. FOR_H = 'FORC' 'FZ' 1.0 POI_FRO.1 ;
  1178. CHA_VAX = 'CHAR' FOR_H ( 'EVOL' 'MANU'
  1179. V_ABSC ( VISC. 1 ) ) ;
  1180. K = 1 ;
  1181. 'REPE' BOUCL12 ( NB_NOEU - 1 ) ;
  1182. K = K + 1 ;
  1183. FOR_H = 'FORC' 'FZ' 1.0 POI_FRO.K ;
  1184. CHA_VAX =( 'CHAR' FOR_H ( 'EVOL' 'MANU'
  1185. V_ABSC ( VISC.K ) ) ) 'ET' CHA_VAX ;
  1186. 'FIN' BOUCL12 ;
  1187. 'FINSI' ;
  1188.  
  1189. * Dir = UX ou UY
  1190.  
  1191. 'SI' (( 'EGA' DIR 'UX' ) OU ( 'EGA' DIR 'UY' )) ;
  1192. UDIR = DIR ;
  1193.  
  1194. VISC_X = 'TABLE' ;
  1195. VISC_Y = 'TABLE' ;
  1196. K = 0 ;
  1197. 'REPE' BOUCL16 NB_NOEU ;
  1198. K = K + 1 ;
  1199. EV01 = V_FRON.K ;
  1200. V_FRON.K = 'EXTR' EV01 'ORDO' ;
  1201. VISC_X.K = 'PROG' N_PAS * 0.0 ;
  1202. VISC_Y.K = 'PROG' N_PAS * 0.0 ;
  1203. 'FIN' BOUCL16 ;
  1204. J = 0 ;
  1205. 'REPE' BOUCL17 NB_NOEU ;
  1206. J = J + 1 ;
  1207. VEC_U = 'MANU' 'CHPO' POI_FRO.J 1 UDIR 1.0 ;
  1208. VEC_F = AM_V * VEC_U ;
  1209. K = 0 ;
  1210. 'REPE' BOUC17B NB_NOEU ;
  1211. K = K + 1 ;
  1212. AMX_JK = 'EXTR' VEC_F POI_FRO.K 'FX' ;
  1213. AMY_JK = 'EXTR' VEC_F POI_FRO.K 'FY' ;
  1214. VISC_X.K = VISC_X.K + ( AMX_JK * V_FRON.J ) ;
  1215. VISC_Y.K = VISC_Y.K + ( AMY_JK * V_FRON.J ) ;
  1216. 'FIN' BOUC17B ;
  1217. 'FIN' BOUCL17 ;
  1218.  
  1219. * Recombinaison
  1220.  
  1221. FOR_X = 'FORC' 'FX' 1.0 POI_FRO.1 ;
  1222. FOR_Y = 'FORC' 'FY' 1.0 POI_FRO.1 ;
  1223. CHA_VAX = 'CHAR' FOR_X ( 'EVOL' 'MANU'
  1224. V_ABSC ( VISC_X. 1 ) ) ;
  1225. CHA_VAY = 'CHAR' FOR_Y ( 'EVOL' 'MANU'
  1226. V_ABSC ( VISC_Y. 1 ) ) ;
  1227. K = 1 ;
  1228. 'REPE' BOUCL18 ( NB_NOEU - 1 ) ;
  1229. K = K + 1 ;
  1230. FOR_X = 'FORC' 'FX' 1.0 POI_FRO.K ;
  1231. CHA_VAX = CHA_VAX 'ET' ( 'CHAR' FOR_X ( 'EVOL'
  1232. 'MANU' V_ABSC ( VISC_X.K ) ) ) ;
  1233. FOR_Y = 'FORC' 'FY' 1.0 POI_FRO.K ;
  1234. CHA_VAY = CHA_VAY 'ET' ( 'CHAR' FOR_Y ( 'EVOL'
  1235. 'MANU' V_ABSC ( VISC_Y.K ) ) ) ;
  1236. 'FIN' BOUCL18 ;
  1237. CHA_VAX = CHA_VAX 'ET' CHA_VAY ;
  1238.  
  1239. 'FINSI' ;
  1240.  
  1241. 'FINSI' ;
  1242.  
  1243. 'SI' BIELAK ;
  1244. CHA1 = CHA_HFO 'ET' CHA_VFO ;
  1245. 'SINON' ;
  1246. CHA1 = CHA_HFO 'ET' CHA_HAX 'ET' CHA_VFO 'ET' CHA_VAX ;
  1247. 'FINSI' ;
  1248.  
  1249. * Changement de format du chargement
  1250.  
  1251. CHA1 = 'CHAN' 'TABL' CHA1 'MECA' ;
  1252.  
  1253. ************************************************************************
  1254. *** Deformation de cisaillement maximale ***
  1255. ************************************************************************
  1256. 'SAUT' 2 'LIGNE' ;
  1257. 'MESS' 'DEFORMATION MAXIMALE' ;
  1258. PROF = 'PROG' NB_NOEU * 0.0 ;
  1259. GMAX = 'PROG' NB_NOEU * 0.0 ;
  1260. J = 0 ;
  1261. 'REPE' BOUCL19 NB_NOEU ;
  1262. J = J + 1 ;
  1263. ZJ = 'COOR' 3 ( POI_FRO.J ) ;
  1264. CISA = 'EXTR' ( E_FRON.J ) 'ORDO' ;
  1265. GX = 'MAXI' CISA 'ABS' ;
  1266. 'REMP' PROF J ZJ ;
  1267. 'REMP' GMAX J GX ;
  1268. 'FIN' BOUCL19 ;
  1269. GMAXMAX = 'MAXI' GMAX ;
  1270.  
  1271. * Evolution de deformation en profondeur
  1272.  
  1273. 'SI' (('EGA' DIR 'UX') OU ('EGA' DIR 'UY')) ;
  1274. 'TITR' 'DEFORMATION DE CISAILLEMENT MAXIMALE' ;
  1275. DEFZ = 'EVOL' 'MANU' 'PROFONDEUR' PROF 'GAM_MAX' GMAX ;
  1276. DEFZ = 'ORDO' 'DECROISSANT' DEFZ ;
  1277. ZFROF = 'EXTR' DEFZ 'ABSC' ;
  1278. ZGMAX = 'EXTR' DEFZ 'ORDO' ;
  1279. DEFZ = 'EVOL' 'MANU' 'GAM_MAX' ZGMAX 'PROFONDEUR' ZFROF ;
  1280. 'DESS' DEFZ 'NCLK' ;
  1281. 'FINSI' ;
  1282.  
  1283. 'SI' ( 'EGA' DIR 'UZ' ) ;
  1284. 'TITR' 'DEFORMATION VERTICALE MAXIMALE' ;
  1285. DEFZ = 'EVOL' 'MANU' 'PROFONDEUR' PROF 'EPS_MAX' GMAX ;
  1286. DEFZ = 'ORDO' 'DECROISSANT' DEFZ ;
  1287. ZFROF = 'EXTR' DEFZ 'ABSC' ;
  1288. ZGMAX = 'EXTR' DEFZ 'ORDO' ;
  1289. DEFZ = 'EVOL' 'MANU' 'EPS_MAX' ZGMAX 'PROFONDEUR' ZFROF ;
  1290. 'DESS' DEFZ 'NCLK' ;
  1291. 'FINSI' ;
  1292.  
  1293. *-------------DEBUT DE MODIFICATION 01/02/2014 (F. WANG)----------------
  1294. *
  1295. *-----------------------------------------------------------------------
  1296. * IMPLANTATION DE LA METHODE DE BIELAK :
  1297. * GENERATION DE LA ZONE INTERMEDIAIRE ET LE CHARGEMENT CORRESPONDANT
  1298. *-----------------------------------------------------------------------
  1299.  
  1300. 'SI' BIELAK ;
  1301.  
  1302. * Calcul de dépalcement et d'acceleration
  1303.  
  1304. A_FRON = 'TABLE' ;
  1305. J = 0 ;
  1306. 'REPE' BBLK1 NB_NOEU ;
  1307. J = J + 1 ;
  1308. 'TITRE' 'DEPLACEMENT AU NOEUD' J ;
  1309. TF_DEPL = ( H_DEPL.J ) * TF_DEPLO ;
  1310. U_FRON.J = 'TFRI' TF_DEPL ;
  1311.  
  1312. LT = 'EXTR' ( U_FRON.J ) 'ABSC' ;
  1313. LY = 'EXTR' ( U_FRON.J ) 'ORDO' ;
  1314. Y1 = 'EXTR' LY 1 ;
  1315. NY = 'DIME' LY ;
  1316. LY1 = 'PROG' NY * Y1 ;
  1317. LY = LY - LY1 ;
  1318. U_FRON.J = 'EVOL' 'MANU' 'TEMPS' LT 'DEPL' LY ;
  1319.  
  1320. 'TITR' 'ACCELARATION AU NOEUD' J ;
  1321. * A_FRON.J = DERIV1 V_FRON.J ;
  1322.  
  1323. TF_ACCE = ( H_DEPL.J ) * TF_GAMO ;
  1324. A_FRON.J = 'TFRI' TF_ACCE ;
  1325.  
  1326. LT = 'EXTR' ( A_FRON.J ) 'ABSC' ;
  1327. LY = 'EXTR' ( A_FRON.J ) 'ORDO' ;
  1328. Y1 = 'EXTR' LY 1 ;
  1329. NY = 'DIME' LY ;
  1330. LY1 = 'PROG' NY * Y1 ;
  1331. LY = LY - LY1 ;
  1332. A_FRON.J = 'EVOL' 'MANU' 'TEMPS' LT 'ACCE' LY ;
  1333. 'FIN' BBLK1 ;
  1334.  
  1335. * RECUPERATION DE LA COLONNE DE DECONVOLUTION
  1336.  
  1337. BLKV_MAI = COL1 ;
  1338. BLKV_MOD = MOD1 ;
  1339. BLKV_MAT = MAT1 ;
  1340. BLKV_MAS = MAS1 ;
  1341. BLKV_RIG = RIG1 ;
  1342. BLKV_AMO = AMO1 ;
  1343.  
  1344. * GENERATION DE LA ZONE HORIZONTALE
  1345.  
  1346. VEC_V = 0 0 (-1*COUCHE.BLK.EP_V) ;
  1347. BLKH_MAI = VOLU TRAN 1 (FOND_SOL ET BAS_COL) VEC_V ;
  1348. BLKH_MOD = 'MODE' BLKH_MAI 'MECANIQUE' 'ELASTIQUE' 'ISOTROPE'
  1349. TY1 TY2 ;
  1350. BLKH_MAT = 'MATE' BLKH_MOD 'YOUNG' (COUCHE.NB_COU.'YOUNG')
  1351. 'NU' (COUCHE.NB_COU.'POISSON')
  1352. 'RHO' (COUCHE.NB_COU.'MASSE_VOLUMIQUE') ;
  1353. BLKH_MAS = 'MASS' BLKH_MOD BLKH_MAT ;
  1354. BLKH_RIG = 'RIGI' BLKH_MOD BLKH_MAT ;
  1355. BLKH_AMO = KSI * ((ALPHA * BLKH_MAS) 'ET' (BETA * BLKH_RIG)) ;
  1356.  
  1357. * ZONE INTERMEDIAIRE COMPLETE
  1358.  
  1359. BLK_MAI = BLKV_MAI 'ET' BLKH_MAI ;
  1360. BLK_MOD = BLKV_MOD 'ET' BLKH_MOD ;
  1361. BLK_MAT = BLKV_MAT 'ET' BLKH_MAT ;
  1362. BLK_MAS = BLKV_MAS 'ET' BLKH_MAS ;
  1363. BLK_RIG = BLKV_RIG 'ET' BLKH_RIG ;
  1364. BLK_AMO = BLKV_AMO 'ET' BLKH_AMO ;
  1365.  
  1366. * TRACE DE LA ZONE
  1367.  
  1368. 'TITR' 'ZONE INTERNE ET INTERMEDIAIRE' ;
  1369. 'ELIM' BLK_MAI 0.001 ;
  1370. BLK_MAI = BLK_MAI 'COUL' 'ROUG' ;
  1371. 'TRAC' (SOL 'ET' BLK_MAI) 'FACE' 'NCLK' ;
  1372.  
  1373. *-----------------------------------------------------------------------
  1374. * CALCUL DU CHARGEMENT SUR LA ZONE INTERMEDIAIRE
  1375. *-----------------------------------------------------------------------
  1376. 'SI' ('EGA' DIR 'UX') ;
  1377. FDIR = 'MOT' 'FX' ;
  1378. 'FINSI' ;
  1379. 'SI' ('EGA' DIR 'UY') ;
  1380. FDIR = 'MOT' 'FY' ;
  1381. 'FINSI' ;
  1382. 'SI' ('EGA' DIR 'UZ') ;
  1383. FDIR = 'MOT' 'FZ' ;
  1384. 'FINSI' ;
  1385.  
  1386. * FRONTIERE HORIZONTALE
  1387.  
  1388. NBFOND = 'NBNO' FOND_SOL ;
  1389. F1 = 1.* NBFOND ;
  1390. FOR_H = 'FORC' FDIR F1 FOND_SOL ;
  1391. CHU_H = 'CHAR' FOR_H U_FRON.NUM_BAS ;
  1392. CHV_H = 'CHAR' FOR_H V_FRON.NUM_BAS ;
  1393. CHA_H = 'CHAR' FOR_H A_FRON.NUM_BAS ;
  1394.  
  1395. * FRONTIERE VERTICALE (SAUF LES NOEUDS A LA BASE
  1396. * DEJA COMPTES SUR LA FRONTIERE HORIZONTALE)
  1397.  
  1398. FOR_V = 'FORC' FDIR 0.0 POI_FRO.1 ;
  1399. CHU_V = 'CHAR' FOR_V U_FRON.1 ;
  1400. CHV_V = 'CHAR' FOR_V V_FRON.1 ;
  1401. CHA_V = 'CHAR' FOR_V A_FRON.1 ;
  1402.  
  1403. K = 0 ;
  1404. 'REPE' BBLK2 NB_NOEU ;
  1405. K = K + 1 ;
  1406. ZK = COOR 3 POI_FRO.K ;
  1407. 'SI' ((ABS (ZK - ZBAS)) > 0.001) ;
  1408. FOR_V = 'FORC' FDIR 1.0 POI_FRO.K ;
  1409. CHU_V = CHU_V 'ET' ('CHAR' FOR_V U_FRON.K ) ;
  1410. CHV_V = CHV_V 'ET' ('CHAR' FOR_V V_FRON.K ) ;
  1411. CHA_V = CHA_V 'ET' ('CHAR' FOR_V A_FRON.K ) ;
  1412. 'FINSI' ;
  1413. 'FIN' BBLK2 ;
  1414.  
  1415. * FRONTIERE HORIZONTALE + VERTICALE
  1416.  
  1417. CHU = CHU_V 'ET' CHU_H ;
  1418. CHV = CHV_V 'ET' CHV_H ;
  1419. CHA = CHA_V 'ET' CHA_H ;
  1420.  
  1421. CHU = 'CHAN' 'TABL' CHU 'MECA' ;
  1422. CHV = 'CHAN' 'TABL' CHV 'MECA' ;
  1423. CHA = 'CHAN' 'TABL' CHA 'MECA' ;
  1424.  
  1425. TAB_T TAB_U = 'EXTR' CHU 'MECA' 'TABL' ;
  1426. TAB_T TAB_V = 'EXTR' CHV 'MECA' 'TABL' ;
  1427. TAB_T TAB_A = 'EXTR' CHA 'MECA' 'TABL' ;
  1428.  
  1429. LM1 = 'MOTS' FDIR ;
  1430. LM2 = 'MOTS' DIR ;
  1431.  
  1432. TAB_F = 'TABLE' ;
  1433. TAB_FD = 'TABLE' ;
  1434. TAB_FV = 'TABLE' ;
  1435. TAB_FA = 'TABLE' ;
  1436.  
  1437. N_T = 'DIME' TAB_T ;
  1438.  
  1439. I = 0 ;
  1440. 'REPE' BBLK3 N_T ;
  1441. CHU_I = 'EXCO' LM1 (TAB_U.I) LM2 ;
  1442. CHV_I = 'EXCO' LM1 (TAB_V.I) LM2 ;
  1443. CHA_I = 'EXCO' LM1 (TAB_A.I) LM2 ;
  1444.  
  1445. CHU_I = CHU_I * BLK_RIG ;
  1446. CHV_I = CHV_I * BLK_AMO ;
  1447. CHA_I = CHA_I * BLK_MAS ;
  1448. TAB_F.I = CHU_I + CHV_I + CHA_I ;
  1449.  
  1450. TAB_FD.I = CHU_I ;
  1451. TAB_FV.I = CHV_I ;
  1452. TAB_FA.I = CHA_I ;
  1453.  
  1454. I = I + 1 ;
  1455. 'FIN' BBLK3 ;
  1456.  
  1457. *-----------------------------------------------------------------------
  1458. *-----------------------------------------------------------------------
  1459.  
  1460. CHA2 = 'CHAR' 'MECA' TAB_T TAB_F ;
  1461.  
  1462. 'FINSI' ;
  1463.  
  1464. * Sortie des resultats
  1465.  
  1466. TABRESU = 'TABLE' ;
  1467.  
  1468. 'SI' BIELAK ;
  1469. TABRESU.'CHAR' = CHA1 ET CHA2 ;
  1470.  
  1471. * -- pour tester la procédure -----
  1472. TABRESU.'CHA1' = CHA1 ;
  1473. TABRESU.'CHA2' = CHA2 ;
  1474. *----------------------------------
  1475.  
  1476. TABRESU.'BLK_MAI' = BLK_MAI ;
  1477. TABRESU.'BLK_MOD' = BLK_MOD ;
  1478. TABRESU.'BLK_MAT' = BLK_MAT ;
  1479. TABRESU.'BLK_MAS' = BLK_MAS ;
  1480. TABRESU.'BLK_RIG' = BLK_RIG ;
  1481. TABRESU.'BLK_AMO' = BLK_AMO ;
  1482. 'SINON' ;
  1483. TABRESU.'CHAR' = CHA1 ;
  1484. TABRESU.'AMOR' = AMOF ;
  1485. 'FINSI' ;
  1486.  
  1487. *-----------FIN DE MODIFICATION 01/02/2014 (F. WANG)-------------------
  1488.  
  1489. TABRESU.'DEFO' = DEFZ ;
  1490. TABRESU.'ACCE' = GAMMA ;
  1491. TABRESU.'PAS' = PAS_TEM ;
  1492. TABRESU.'FCDYN' = FCDYN ;
  1493.  
  1494. *----------------------------------------------------------------------
  1495. 'SINON' ;
  1496. *----------------------------------------------------------------------
  1497. * BIELAK ET ONDE SH
  1498. * DEBUT DE MODIFICATION 01/10/2015. WANG)
  1499. *----------------------------------------------------------------------
  1500.  
  1501. SI SH ;
  1502. MESS 'BIELAK ET ONDE SH' ;
  1503.  
  1504. * RECUPERATION DE L ENVELOPPE DE DECONVOLUTION
  1505.  
  1506. BLKV_MAI = COL1 ;
  1507. BLKV_MOD = MOD1 ;
  1508. BLKV_MAT = MAT1 ;
  1509. BLKV_MAS = MAS1 ;
  1510. BLKV_RIG = RIG1 ;
  1511. BLKV_AMO = AMO1 ;
  1512.  
  1513. * GENERATION DE LA ZONE HORIZONTALE
  1514.  
  1515. VEC_V = 0 0 (-1*COUCHE.BLK.EP_V) ;
  1516. BLKH_MAI = 'VOLU' 'TRAN' 1 (FOND_SOL 'ET' BAS_COL) VEC_V ;
  1517. BLKH_MOD = 'MODE' BLKH_MAI 'MECANIQUE' 'ELASTIQUE' 'ISOTROPE'
  1518. TY1 TY2 ;
  1519. BLKH_MAT = 'MATE' BLKH_MOD 'YOUNG' (COUCHE.NB_COU.'YOUNG')
  1520. 'NU' (COUCHE.NB_COU.'POISSON')
  1521. 'RHO' (COUCHE.NB_COU.'MASSE_VOLUMIQUE') ;
  1522. BLKH_MAS = 'MASS' BLKH_MOD BLKH_MAT ;
  1523. BLKH_RIG = 'RIGI' BLKH_MOD BLKH_MAT ;
  1524. BLKH_AMO = KSI * ((ALPHA * BLKH_MAS) 'ET' (BETA * BLKH_RIG)) ;
  1525.  
  1526. * ZONE INTERMEDIAIRE COMPLETE
  1527.  
  1528. BLK_MAI = BLKV_MAI 'ET' BLKH_MAI ;
  1529. BLK_MOD = BLKV_MOD 'ET' BLKH_MOD ;
  1530. BLK_MAT = BLKV_MAT 'ET' BLKH_MAT ;
  1531. BLK_MAS = BLKV_MAS 'ET' BLKH_MAS ;
  1532. BLK_RIG = BLKV_RIG 'ET' BLKH_RIG ;
  1533. BLK_AMO = BLKV_AMO 'ET' BLKH_AMO ;
  1534.  
  1535. * TRACE DE LA ZONE INTERNE ET INTERMEDIAIRE
  1536.  
  1537. 'TITR' 'ZONE INTERNE ET INTERMEDIAIRE' ;
  1538. 'ELIM' BLK_MAI 0.001 ;
  1539. BLK_MAI = BLK_MAI 'COUL' 'ROUG' ;
  1540. 'TRAC' (SOL 'ET' BLK_MAI) 'FACE' 'NCLK' ;
  1541.  
  1542. * SURFACE INTERIEURE
  1543.  
  1544. 'TITR' 'SURFACE INTERIEURE' ;
  1545. BLK_INT = FRON 'ET' FOND_SOL ;
  1546. 'TRAC' BLK_INT CACH ;
  1547.  
  1548. * ACCES AUX NOEUDS
  1549.  
  1550. 'TASS' BLK_INT ;
  1551. NB_INT = 'NBNO' BLK_INT ;
  1552. 'MESS' 'NB. DE NOEUDS, SURFACE INTERIEURE' NB_INT ;
  1553. POI_INT = 'TABLE' ;
  1554. J = 0 ;
  1555. 'REPE' BINT1 NB_INT ;
  1556. J = J + 1 ;
  1557. POI_INT.J = 'NOEU' J ;
  1558. 'FIN' BINT1 ;
  1559.  
  1560. 'TASS' BLK_MAI ;
  1561. NB_ZON = 'NBNO' BLK_MAI ;
  1562. 'MESS' 'NB. DE NOEUDS, ZONE INTERMEDIAIRE' NB_ZON ;
  1563. POI_ZON = 'TABLE' ;
  1564. J = 0 ;
  1565. 'REPE' BZON1 NB_ZON ;
  1566. J = J + 1 ;
  1567. POI_ZON.J = 'NOEU' J ;
  1568. 'FIN' BZON1 ;
  1569.  
  1570. * TFR: ACCELERATION, VITESSE ET DEPLACEMENT DU POINT DE CONTROLE
  1571. * (FC a prendre en compte ...)
  1572.  
  1573. NP = 'DIME' ( 'EXTR' GAMMAO 'ABSC' ) ;
  1574. XX = ( 'LOG' NP ) / ( 'LOG' 2 ) ;
  1575. NN = 'ENTI' XX ;
  1576. 'SI' ( XX > ( 1.0 * NN ) ) ;
  1577. NN = NN + 1 ;
  1578. 'FINSI' ;
  1579.  
  1580. 'TITRE' 'TFR ACCELERATION' ;
  1581. TF_GAMMO = 'TFR' NN GAMMAO 'MOPH' ;
  1582. FR_GAMMO = 'EXTR' TF_GAMMO 'ABSC' ;
  1583. MO_GAMMO = 'EXTR' TF_GAMMO 'ORDO' 1 ;
  1584. PH_GAMMO = 'EXTR' TF_GAMMO 'ORDO' 2 ;
  1585. NFREQ = 'DIME' FR_GAMMO ;
  1586. DFREQ = 'EXTR' FR_GAMMO 2 ;
  1587. FREQN = 'EXTR' FR_GAMMO NFREQ ;
  1588. MODUN = 'EXTR' MO_GAMMO NFREQ ;
  1589.  
  1590. 'SI' ( IDIV NEG 0 ) ;
  1591. NN = NN + IDIV ;
  1592. 'REMP' MO_GAMMO NFREQ ( MODUN / 2.0 ) ;
  1593.  
  1594. NFREQ1 = (2**(NN - 1)) + 1 ;
  1595. FR_GAMMO = 'PROG' 0.0 'PAS' DFREQ 'NPAS' ( NFREQ1 - 1 ) ;
  1596. LIST ( DIME FR_GAMMO ) ;
  1597. MO_GAMMO = MO_GAMMO 'ET' ('PROG' (NFREQ1 - NFREQ ) * 0.0) ;
  1598. PH_GAMMO = PH_GAMMO 'ET' ('PROG' (NFREQ1 - NFREQ ) * 0.0) ;
  1599. TF_GAMMO = 'EVOL' 'COMP' 'MOPH' 'FREQ(HZ)' FR_GAMMO 'MODULE'
  1600. MO_GAMMO 'PHASE' PH_GAMMO ;
  1601. 'FINSI' ;
  1602.  
  1603. OMEGA = 2*PI*FR_GAMMO ;
  1604. 'TITRE' 'TFR VITESSE' ;
  1605. TFIOM = 'EVOL' 'COMP' 'REIM' FR_GAMMO (FR_GAMMO*0) OMEGA ;
  1606. 'RIMP' TFIOM ;
  1607. TF_VITEO = TF_GAMMO / TFIOM ;
  1608.  
  1609. 'TITRE' 'TFR DEPLACEMENT' ;
  1610. TF_DEPLO = TF_VITEO / TFIOM ;
  1611.  
  1612. * ACCELERATION, VITESSE ET DEPLACEMENT
  1613.  
  1614. TABDON = 'TABLE' ;
  1615. TABDON.PDC = P_GAMMA.ENTREE.CONTROLE ;
  1616. TABDON.DIR = DIR ;
  1617. TABDON.ANGLE = ANGLE ;
  1618. TABDON.VS = CS_I ;
  1619. TABDON.KSI = KSI ;
  1620. TABDON.F1 = F1 ;
  1621. TABDON.F2 = F2 ;
  1622. TABDON.LF = FR_GAMMO ;
  1623.  
  1624. * SURFACE INTERIEURE
  1625.  
  1626. A_INT = 'TABLE' ;
  1627. V_INT = 'TABLE' ;
  1628. D_INT = 'TABLE' ;
  1629.  
  1630. J = 0 ;
  1631. 'REPE' BINT2 NB_INT ;
  1632. J = J + 1 ;
  1633. 'TITR' 'FONCTION DE TRANSFERT BLK_INT, NOEUD' J ;
  1634. TABDON.PDF = POI_INT.J ;
  1635. H_INT = SHFDT TABDON ;
  1636.  
  1637. 'TITR' 'ACCELARATION BLK_INT, NOEUD' J ;
  1638. A_INT.J = 'TFRI' (H_INT * TF_GAMMO) ;
  1639. LT = 'EXTR' A_INT.J 'ABSC' ;
  1640. LY = 'EXTR' A_INT.J 'ORDO' ;
  1641. Y1 = 'EXTR' LY 1 ;
  1642. NY = 'DIME' LY ;
  1643. LY1 = 'PROG' NY * Y1 ;
  1644. LY = LY - LY1 ;
  1645. A_INT.J = 'EVOL' 'MANU' 'TEMPS' LT 'DEPL' LY ;
  1646.  
  1647. 'TITR' 'VITESSE BLK_INT, NOEUD' J ;
  1648. V_INT.J = 'TFRI' (H_INT * TF_VITEO) ;
  1649. LT = 'EXTR' V_INT.J 'ABSC' ;
  1650. LY = 'EXTR' V_INT.J 'ORDO' ;
  1651. Y1 = 'EXTR' LY 1 ;
  1652. NY = 'DIME' LY ;
  1653. LY1 = 'PROG' NY * Y1 ;
  1654. LY = LY - LY1 ;
  1655. V_INT.J = 'EVOL' 'MANU' 'TEMPS' LT 'DEPL' LY ;
  1656.  
  1657. 'TITR' 'DEPLACEMENT BLK_INT, NOEUD' J ;
  1658. D_INT.J = 'TFRI' (H_INT * TF_DEPLO) ;
  1659. LT = 'EXTR' D_INT.J 'ABSC' ;
  1660. LY = 'EXTR' D_INT.J 'ORDO' ;
  1661. Y1 = 'EXTR' LY 1 ;
  1662. NY = 'DIME' LY ;
  1663. LY1 = 'PROG' NY * Y1 ;
  1664. LY = LY - LY1 ;
  1665. D_INT.J = 'EVOL' 'MANU' 'TEMPS' LT 'DEPL' LY ;
  1666.  
  1667. 'DETR' H_INT ;
  1668. 'FIN' BINT2 ;
  1669.  
  1670. * ZONE INTERMEDIAIRE
  1671.  
  1672. A_ZON = 'TABLE' ;
  1673. V_ZON = 'TABLE' ;
  1674. D_ZON = 'TABLE' ;
  1675.  
  1676. J = 0 ;
  1677. 'REPE' BZON2 NB_ZON ;
  1678. J = J + 1 ;
  1679. 'TITR' 'FONCTION DE TRANSFERT BLK_MAI, NOEUD' J ;
  1680. TABDON.PDF = POI_ZON.J ;
  1681. H_ZON = SHFDT TABDON ;
  1682.  
  1683. 'TITR' 'ACCELARATION BLK_MAI, NOEUD' J ;
  1684. A_ZON.J = 'TFRI' (H_ZON * TF_GAMMO) ;
  1685. LT = 'EXTR' A_ZON.J 'ABSC' ;
  1686. LY = 'EXTR' A_ZON.J 'ORDO' ;
  1687. Y1 = 'EXTR' LY 1 ;
  1688. NY = 'DIME' LY ;
  1689. LY1 = 'PROG' NY * Y1 ;
  1690. LY = LY - LY1 ;
  1691. A_ZON.J = 'EVOL' 'MANU' 'TEMPS' LT 'DEPL' LY ;
  1692.  
  1693. 'TITR' 'VITESSE BLK_MAI, NOEUD' J ;
  1694. V_ZON.J = 'TFRI' (H_ZON * TF_VITEO) ;
  1695. LT = 'EXTR' V_ZON.J 'ABSC' ;
  1696. LY = 'EXTR' V_ZON.J 'ORDO' ;
  1697. Y1 = 'EXTR' LY 1 ;
  1698. NY = 'DIME' LY ;
  1699. LY1 = 'PROG' NY * Y1 ;
  1700. LY = LY - LY1 ;
  1701. V_ZON.J = 'EVOL' 'MANU' 'TEMPS' LT 'DEPL' LY ;
  1702.  
  1703. 'TITR' 'DEPLACEMENT BLK_MAI, NOEUD' J ;
  1704. D_ZON.J = 'TFRI' (H_ZON * TF_DEPLO) ;
  1705. LT = 'EXTR' D_ZON.J 'ABSC' ;
  1706. LY = 'EXTR' D_ZON.J 'ORDO' ;
  1707. Y1 = 'EXTR' LY 1 ;
  1708. NY = 'DIME' LY ;
  1709. LY1 = 'PROG' NY * Y1 ;
  1710. LY = LY - LY1 ;
  1711. D_ZON.J = 'EVOL' 'MANU' 'TEMPS' LT 'DEPL' LY ;
  1712.  
  1713. 'DETR' H_ZON ;
  1714. 'FIN' BZON2 ;
  1715.  
  1716. *-----------------------------------------------------------------------
  1717. * CHARGEMENT SUR LA ZONE INTERNE (REACTION PAR LA ZONE INTERMEDIAIRE)
  1718. * ZONE INTERMEDIARE COMPLETE SOUMISE AU MOUVEMENT DU CHAMP LIBRE
  1719. *-----------------------------------------------------------------------
  1720.  
  1721. 'SI' ('EGA' DIR 'UX') ;
  1722. FDIR = 'MOT' 'FX' ;
  1723. 'FINSI' ;
  1724. 'SI' ('EGA' DIR 'UY') ;
  1725. FDIR = 'MOT' 'FY' ;
  1726. 'FINSI' ;
  1727.  
  1728. FOR_Z = 'FORC' FDIR 1.0 POI_ZON.1 ;
  1729. CHD_Z = 'CHAR' FOR_Z D_ZON.1 ;
  1730. CHV_Z = 'CHAR' FOR_Z V_ZON.1 ;
  1731. CHA_Z = 'CHAR' FOR_Z A_ZON.1 ;
  1732.  
  1733. J = 1 ;
  1734. 'REPE' BZON3 (NB_ZON - 1) ;
  1735. J = J + 1 ;
  1736. FOR_Z = 'FORC' FDIR 1.0 POI_ZON.J ;
  1737. CHD_Z = CHD_Z 'ET' ('CHAR' FOR_Z D_ZON.J ) ;
  1738. CHV_Z = CHV_Z 'ET' ('CHAR' FOR_Z V_ZON.J ) ;
  1739. CHA_Z = CHA_Z 'ET' ('CHAR' FOR_Z A_ZON.J ) ;
  1740. 'FIN' BZON3 ;
  1741.  
  1742. CHD_Z = 'CHAN' 'TABL' CHD_Z 'MECA' ;
  1743. CHV_Z = 'CHAN' 'TABL' CHV_Z 'MECA' ;
  1744. CHA_Z = 'CHAN' 'TABL' CHA_Z 'MECA' ;
  1745.  
  1746. TAB_T TABD_Z = 'EXTR' CHD_Z 'MECA' 'TABL' ;
  1747. TAB_T TABV_Z = 'EXTR' CHV_Z 'MECA' 'TABL' ;
  1748. TAB_T TABA_Z = 'EXTR' CHA_Z 'MECA' 'TABL' ;
  1749.  
  1750. LM1 = 'MOTS' FDIR ;
  1751. LM2 = 'MOTS' DIR ;
  1752.  
  1753. TABF_Z = 'TABLE' ;
  1754. N_T = 'DIME' TAB_T ;
  1755.  
  1756. I = 0 ;
  1757. 'REPE' BZON4 N_T ;
  1758. CHD_Z = 'EXCO' LM1 (TABD_Z.I) LM2 ;
  1759. CHV_Z = 'EXCO' LM1 (TABV_Z.I) LM2 ;
  1760. CHA_Z = 'EXCO' LM1 (TABA_Z.I) LM2 ;
  1761.  
  1762. CHD_Z = CHD_Z * BLK_RIG ;
  1763. CHV_Z = CHV_Z * BLK_AMO ;
  1764. CHA_Z = CHA_Z * BLK_MAS ;
  1765.  
  1766. TABF_Z.I = CHD_Z + CHV_Z + CHA_Z ;
  1767. I = I + 1 ;
  1768. 'FIN' BZON4 ;
  1769.  
  1770. TABREA = TABLE ;
  1771. I = 0 ;
  1772. 'REPE' BINT5 N_T ;
  1773. TABREA.I = -1*(REDU BLK_INT TABF_Z.I);
  1774. I = I + 1 ;
  1775. 'FIN' BINT5 ;
  1776.  
  1777. CHA1 = 'CHAR' 'MECA' TAB_T TABREA ;
  1778.  
  1779. *-----------------------------------------------------------------------
  1780. * CHARGEMENT SUR LA ZONE INTERMEDIAIRE
  1781. *
  1782. * -SURFACE INTERIEURE: SOUMISE AU MOUVEMENT CHAMP LIBRE
  1783. * -LE RESTE DE LA ZONE INTERMEDIARE Y COMPRIS LES NOEUDS INTERMEDIAIRES
  1784. * SI ELEMENTS CU20 OU PR15): MOUVEMENT BLOQUE (ON NE MET RIEN)
  1785. *-----------------------------------------------------------------------
  1786.  
  1787. FOR_I = 'FORC' FDIR 1.0 POI_INT.1 ;
  1788. CHD_I = 'CHAR' FOR_I D_INT.1 ;
  1789. CHV_I = 'CHAR' FOR_I V_INT.1 ;
  1790. CHA_I = 'CHAR' FOR_I A_INT.1 ;
  1791.  
  1792. J = 1 ;
  1793. 'REPE' BINT3 (NB_INT - 1) ;
  1794. J = J + 1 ;
  1795. FOR_I = 'FORC' FDIR 1.0 POI_INT.J ;
  1796. CHD_I = CHD_I 'ET' ('CHAR' FOR_I D_INT.J ) ;
  1797. CHV_I = CHV_I 'ET' ('CHAR' FOR_I V_INT.J ) ;
  1798. CHA_I = CHA_I 'ET' ('CHAR' FOR_I A_INT.J ) ;
  1799. 'FIN' BINT3 ;
  1800.  
  1801. CHD_I = 'CHAN' 'TABL' CHD_I 'MECA' ;
  1802. CHV_I = 'CHAN' 'TABL' CHV_I 'MECA' ;
  1803. CHA_I = 'CHAN' 'TABL' CHA_I 'MECA' ;
  1804.  
  1805. TAB_T TABD_I = 'EXTR' CHD_I 'MECA' 'TABL' ;
  1806. TAB_T TABV_I = 'EXTR' CHV_I 'MECA' 'TABL' ;
  1807. TAB_T TABA_I = 'EXTR' CHA_I 'MECA' 'TABL' ;
  1808.  
  1809. TABF_I = 'TABLE' ;
  1810. N_T = 'DIME' TAB_T ;
  1811.  
  1812. I = 0 ;
  1813. 'REPE' BINT4 N_T ;
  1814. CHD_I = 'EXCO' LM1 (TABD_I.I) LM2 ;
  1815. CHV_I = 'EXCO' LM1 (TABV_I.I) LM2 ;
  1816. CHA_I = 'EXCO' LM1 (TABA_I.I) LM2 ;
  1817.  
  1818. CHD_I = CHD_I * BLK_RIG ;
  1819. CHV_I = CHV_I * BLK_AMO ;
  1820. CHA_I = CHA_I * BLK_MAS ;
  1821.  
  1822. TABF_I.I = CHD_I + CHV_I + CHA_I ;
  1823. I = I + 1 ;
  1824. 'FIN' BINT4 ;
  1825.  
  1826. CHA2 = 'CHAR' 'MECA' TAB_T TABF_I ;
  1827.  
  1828. * Sortie des resultats
  1829.  
  1830. TABRESU = 'TABLE' ;
  1831. TABRESU.'CHAR' = CHA1 ET CHA2 ;
  1832. TABRESU.'BLK_MAI' = BLK_MAI ;
  1833. TABRESU.'BLK_MOD' = BLK_MOD ;
  1834. TABRESU.'BLK_MAT' = BLK_MAT ;
  1835. TABRESU.'BLK_MAS' = BLK_MAS ;
  1836. TABRESU.'BLK_RIG' = BLK_RIG ;
  1837. TABRESU.'BLK_AMO' = BLK_AMO ;
  1838.  
  1839. TABRESU.'ACCE' = GAMMA ;
  1840. TABRESU.'PAS' = PAS_TEM ;
  1841. TABRESU.'FCDYN' = 1./(4*PAS_TEM) ;
  1842.  
  1843. FINSI ;
  1844. FINSI ;
  1845. *------------FIN DE MODIFICATION 01/10/2015. WANG)---------------------
  1846.  
  1847.  
  1848. 'SAUT' 5 'LIGNE' ;
  1849. 'MESS' '*********************************************************' ;
  1850. 'MESS' '* *' ;
  1851. 'MESS' '* FIN DE LA PROCEDURE DE LA DECONVOLUTION *' ;
  1852. 'MESS' '* *' ;
  1853. 'MESS' '*********************************************************' ;
  1854. 'SAUT' 5 'LIGNE' ;
  1855.  
  1856.  
  1857. 'FINPROC' TABRESU ;
  1858. ************************************************************************
  1859.  
  1860.  

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