Télécharger transfer.procedur

Retour à la liste

Numérotation des lignes :

  1. * TRANSFER PROCEDUR OF166741 25/10/02 21:15:02 12372
  2. ***********************************************************************
  3. * CALCUL D UNE FONCTION DE TRANSFERT *
  4. * *
  5. * MOD : LES MODES DE LA STRUCTURE *
  6. * LAMOR : LES AMORTISSEMENTS MODAUX (ENTRE 0 ET 1) *
  7. * MOT1 : DIRECTION DE LA SOLLICITATION (UX, UY, UZ ...) *
  8. * OU 'SEISME' POUR ACCELERATION D'ENSEMBLE *
  9. * POINT1 : POINT D APPLICATION DE LA SOLLICITATION *
  10. * OU DIRECTION DU SEISME *
  11. * MOT2 : DIRECTION DE LA REPONSE *
  12. * POINT2 : POINT OU ON CHERCHE LA REPONSE *
  13. * MOSOR : NATURE DES SORTIES (DEPL, VITE OU ACCE) *
  14. * LFREQ : LES FREQUENCES DE CALCUL *
  15. * MOCHO : TYPE DES SORTIES (MOPH OU REIM) *
  16. * *
  17. * EVENTUELLEMENT *
  18. * MOCOU : COULEUR DES COURBES *
  19. * *
  20. * EN SORTIE *
  21. * TRA : OBJET EVOLUTION COMPLEXE *
  22. ***********************************************************************
  23.  
  24. 'DEBPROC' TRANSFER MOD/'SOLUTION' TA/'TABLE' LAMOR*'LISTREEL' MOT1*'MOT' ;
  25.  
  26.  
  27. 'SI' ('EGA' MOT1 'SEISME');
  28. 'ARGU' DIRECT*'MOT' ;
  29. SEIS = VRAI;
  30. 'SINON';
  31. 'ARGU' POINT1*'POINT' ;
  32. SEIS=FAUX;
  33. 'FINSI';
  34.  
  35. 'ARGU' MOT2*'MOT' POINT2*'POINT' MOSOR*'MOT' LFREQ*'LISTREEL' MOCHO*'MOT' ;
  36.  
  37. 'ARGU' MOCOU/'MOT' ;
  38. 'SI' ('NON' ('EXISTE' MOCOU));
  39. MOCOU = VALEUR 'COUL';
  40. 'FINSI';
  41.  
  42. 'SI' ('EXIS' TA) ;
  43. TAB_LOG = VRAI;
  44. 'SINON';
  45. TAB_LOG = FAUX;
  46. 'SI' ('NON' ('EXIS' MOD)) ;
  47. 'ERREUR' 'IL MANQUE LA DONNEE DES MODES PROPRES';
  48. 'QUITTER' TRANSFER ;
  49. 'FINSI';
  50. 'FINSI';
  51.  
  52. EDIR = 0 ;
  53. 'SI' SEIS;
  54. 'SI' ('EGA' DIRECT 'UX'); QDIR = 'MOT' 'QX'; EDIR = 1; 'FINSI';
  55. 'SI' ('EGA' DIRECT 'UY'); QDIR = 'MOT' 'QY'; EDIR = 2; 'FINSI';
  56. 'SI' ('EGA' DIRECT 'UZ'); QDIR = 'MOT' 'QZ'; EDIR = 3; 'FINSI';
  57. 'SI' ('EGA' EDIR 0) ;
  58. 'ERREUR' 'IL MANQUE LA DIRECTION DE SEISME';
  59. 'QUITTER' TRANSFER ;
  60. 'FINSI' ;
  61. 'FINSI';
  62.  
  63. ISOR = 0 ;
  64. 'SI' ('EGA' MOSOR 'ACCE');ISOR=1;'FINSI';
  65. 'SI' ('EGA' MOSOR 'VITE');ISOR=2;'FINSI';
  66. 'SI' ('EGA' MOSOR 'DEPL');ISOR=3;'FINSI';
  67. 'SI' (ISOR 'EGA' 0) ;
  68. 'ERREUR' 'IL FAUT DONNER DEPL, VITE OU ACCE';
  69. 'QUITTER' TRANSFER ;
  70. 'FINSI';
  71.  
  72. ICHO=0;
  73. 'SI' ('EGA' MOCHO 'MOPH');ICHO=1;'FINSI';
  74. 'SI' ('EGA' MOCHO 'REIM');ICHO=2;'FINSI';
  75. 'SI' (ICHO 'EGA' 0);
  76. 'ERREUR' 'IL FAUT DONNER MOPH OU REIM';
  77. 'QUITTER' TRANSFER ;
  78. 'FINSI';
  79.  
  80. 'SI' TAB_LOG;
  81. NMOD = ('DIME' (TA . 'MODES')) - 2;
  82. 'SINON';
  83. NMOD='DIME' MOD;
  84. 'FINSI';
  85. NAMO = 'DIME' LAMOR;
  86. 'SI' (NMOD '>' NAMO);
  87. 'ERREUR' 'IL MANQUE UNE OU PLUSIEURS VALEURS D AMORTISSEMENT MODAL';
  88. 'QUITTER' TRANSFER ;
  89. 'FINSI';
  90.  
  91. FRE2 = LFREQ**2 ;
  92.  
  93. I=0;
  94. 'REPETER' BMOD NMOD;
  95. I=I+1;
  96. 'SI' TAB_LOG;
  97. XI = TA . 'MODES' . I . 'DEFORMEE_MODALE';
  98. FI = TA . 'MODES' . I . 'FREQUENCE';
  99. MI = TA . 'MODES' . I . 'MASSE_GENERALISEE';
  100. 'SINON';
  101. XI='TIRE' MOD 'DEPL' 'RANG' I;
  102. FI='TIRE' MOD 'FREQ' 'RANG' I;
  103. MI='TIRE' MOD 'MGEN' 'RANG' I;
  104. 'FINSI';
  105. EI = 'EXTR' LAMOR I;
  106. FI2 = FI*FI;
  107. Q4E2F2 = 4. * (FI2*(EI**2));
  108. M2EIFI = -2. * (EI*FI);
  109. 'SI' SEIS;
  110. 'SI' TAB_LOG;
  111. X1=-1. * (TA.'MODES'. I . 'DEPLACEMENTS_GENERALISES' . EDIR);
  112. 'SINON';
  113. X1=-1. * ('TIRE' MOD QDIR 'RANG' I);
  114. 'FINSI';
  115. 'SINON';
  116. X1='EXTR' XI MOT1 POINT1;
  117. 'FINSI';
  118. X2='EXTR' XI MOT2 POINT2;
  119. COEF = (X1*X2)/MI;
  120. NUMRE='PROG' 'LINE' 'A' -1 'B' FI2 FRE2;
  121. NUMIM='PROG' 'LINE' 'A' M2EIFI LFREQ;
  122. DEN1='PROG' 'LINE' 'A' Q4E2F2 FRE2;
  123. DEN2=NUMRE**2;
  124. DENOM=DEN1+DEN2;
  125. UNSDE=DENOM**-1;
  126. RES1 = COEF * (NUMRE*UNSDE) ;
  127. IMS1 = COEF * (NUMIM*UNSDE) ;
  128. 'SI' (I 'EGA' 1);
  129. RES=RES1;
  130. IMS=IMS1;
  131. 'SINON';
  132. RES=RES+RES1;
  133. IMS=IMS+IMS1;
  134. 'FINSI';
  135. 'FIN' BMOD;
  136.  
  137. 'SI' (ISOR 'EGA' 1);
  138. lr_z = -1. * FRE2 ;
  139. RES = RES * lr_z ;
  140. IMS = IMS * lr_z ;
  141. 'SI' SEIS;
  142. 'SI' ('EGA' DIRECT MOT2);
  143. RES = RES '+' 1. ;
  144. 'FINSI' ;
  145. 'FINSI' ;
  146. 'FINSI';
  147. 'SI' (ISOR 'EGA' 2);
  148. lr_z = IMS * LFREQ * (-0.5D0 / PI) ;
  149. IMS = RES * LFREQ * (+0.5D0 / PI) ;
  150. RES = lr_z ;
  151. 'FINSI';
  152. 'SI' (ISOR 'EGA' 3);
  153. r_z = 0.25D0 / (PI * PI) ;
  154. RES = RES * r_z ;
  155. IMS = IMS * r_z ;
  156. 'FINSI';
  157.  
  158. TRA = 'EVOL' MOCOU 'COMP' 'REIM' 'FREQUENCE' LFREQ 'PREE' RES 'PIMA' IMS;
  159. 'SI' (ICHO 'EGA' 1);
  160. TRA = 'RIMP' TRA;
  161. 'FINSI';
  162.  
  163. 'FINPROC' TRA;
  164.  
  165.  
  166.  

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