Télécharger @USINIB.procedur

Retour à la liste

Numérotation des lignes :

  1. * @USINIB PROCEDUR MB234859 21/10/21 21:15:01 11111
  2. ***********************************************************************
  3. * PROCEDURE @USINIB
  4. *
  5. * Procedure qui initialise les indices de la table 'BOITES_USURE' ou
  6. * seront stockes les resultats de calcul
  7. *
  8. * Entrees :
  9. * T1 : Table de PASAPAS
  10. * ID_BU : Entier donnant le numero de la BOITE D'USURE a considerer
  11. *
  12. * Appelee par @USURE
  13. *
  14. ***********************************************************************
  15. 'DEBP' @USINIB T1*'TABLE' ID_BU*'ENTIER' ;
  16. *
  17. BOITE_US = T1.'BOITES_USURE' ;
  18. SUR_APPL = BOITE_US. ID_BU .'SURFACE_APPLICATION' ;
  19. 'SI' ('NON' ('EXIS' (BOITE_US. ID_BU) 'CYCLE_DE_FRETTING')) ;
  20. *
  21. *----------------------------------------------------------------------*
  22. * - INITIALISATIONS DE DEBUT DE CALCUL *
  23. *----------------------------------------------------------------------*
  24. * Informations communes aux boites d'usure
  25. 'SI' ('EGA' ID_BU 1) ;
  26. *
  27. * Verification qu'il y a un nombre pair d'increments a calculer
  28. NbIncCy = 'ENTI' (BOITE_US.'DONNEES'.'INCREMENTS_CYCLE') ;
  29. 'SI' ('NEG' (@MOD NbIncCy 2) 0) ;
  30. 'MESS' 'Nombre d increment par cycle incorrect' ;
  31. 'ERRE' 21 ;
  32. 'FINSI' ;
  33. *
  34. * Compteur cycle, increment par cycle, traces debug
  35. BOITE_US.'INFOS' = 'TABLE' ;
  36. BOITE_US.'INFOS'.'INDICE_CYCLE_ACTUEL' = 1 ;
  37. BOITE_US.'INFOS'.'INDICE_INCREMENT_ACTUEL' = 1 ;
  38. BOITE_US.'INFOS'.'NB_INCREMENTS_PAR_CYCLE' = NbIncCy ;
  39. BOITE_US.'INFOS'.'NB_CYCLES_RESTANTS' =
  40. 'ENTI' (BOITE_US.'DONNEES'.'NB_CYCLES');
  41. BOITE_US.'INFOS'.'TRACE_DEBUG' = FAUX ;
  42. *
  43. * Doit-on recalculer les pas de temps
  44. BOITE_US.'INFOS'.'CALCUL_PAS' = VRAI ;
  45. 'SI' ('EXIS' BOITE_US.'DONNEES' 'CALCUL_TEMPS') ;
  46. BOITE_US.'INFOS'.'CALCUL_PAS' = BOITE_US.'DONNEES'.'CALCUL_TEMPS';
  47. 'FINSI' ;
  48. *
  49. * Dimension du calcul effectue
  50. BOITE_US.'INFOS'.'ITRID' = 'EGA' ('VALE' 'DIME') 3 ;
  51. *
  52. * Listes de composantes et de valeurs (pour @USCALC)
  53. MODEME = 'EXTR' T1.'MODELE' 'FORM' 'MECANIQUE' ;
  54. LCOMPF = 'EXTR' MODEME 'FORC' ;
  55. BOITE_US.'INFOS'.'LFORCE' = LCOMPF ;
  56. BOITE_US.'INFOS'.'LDEPLA' = 'EXTR' MODEME 'DEPL' ;
  57. BOITE_US.'INFOS'.'LVALE0' = 'PROG' ('DIME' LCOMPF) * 0. ;
  58. BOITE_US.'INFOS'.'LVALE1' = 'PROG' ('DIME' LCOMPF) * 1. ;
  59. BOITE_US.'INFOS'.'LSCAL' = 'MOTS' ('DIME' LCOMPF) * 'SCAL' ;
  60. *
  61. * Informations sur le chargement en deplacement impose
  62. CGDEPI = 'EXTR' TAB1.'CHARGEMENT' 'DIMP' ;
  63. CHDEPI = 'EXTR' CGDEPI 'CHAM' ;
  64. EVDEPI = 'EXTR' CGDEPI 'EVOL' ;
  65. * --- Instant de debut du chargement
  66. ORDEPI = 'EXTR' EVDEPI 'ORDO' ;
  67. MASQUZ = 'MASQ' ORDEPI 'DIFFERENT' 0. ;
  68. POSIUN = 'POSI' 1. 'DANS' MASQUZ ;
  69. TDEDEP = 'EXTR' ('EXTR' EVDEPI 'ABSC') (POSIUN - 1) ;
  70. BOITE_US.'INFOS'.'T_DEBUT_DEPI' = TDEDEP ;
  71. * --- Valeur max. du chargement
  72. ORDMAX = 'MAXI' ORDEPI ;
  73. FLXVAL = 'EXTR' ('EXTR' CHDEPI 'VALE') 1 ;
  74. BOITE_US.'INFOS'.'DEPLA_IMPOSE' = ORDMAX '*' FLXVAL ;
  75. * --- Composante concernee
  76. MDEP = 'EXTR' CHDEPI 'MAIL' ;
  77. MBLO = 'EXTR' TAB1.'BLOCAGES_MECANIQUES' 'MAIL' ;
  78. ELTR = MBLO 'ELEM' 'CONTENANT' (MDEP 'POIN' 1) ;
  79. RIGD = 'REDU' TAB1.'BLOCAGES_MECANIQUES' ELTR ;
  80. BOITE_US.'INFOS'.'COMP_DEPI' = 'EXTR' ('EXTR' RIGD 'COMP') 2 ;
  81. BOITE_US.'INFOS'.'PTSZ_DEPI' = ('EXTR' RIGD 'MAIL' 'NOMU')
  82. 'POIN' 1 ;
  83. *
  84. * Indices et temps des cycles
  85. BOITE_US.'POST' = 'TABLE' ;
  86. BOITE_US.'POST'.'INDICES_CYCLE' = 'TABLE' ;
  87. BOITE_US.'POST'.'CYCLES_CALCULES' = 'PROG' ;
  88. BOITE_US.'POST'.'CYCLES_REELS' = 'PROG' ;
  89. BOITE_US.'POST'.'FACTEUR_ACCELERATION' = 'LECT' ;
  90. *
  91. 'FINSI' ;
  92. *
  93. CZERO = 'MANU' 'CHPO' SUR_APPL 1 'SCAL' 0. 'NATURE' 'DISCRET' ;
  94. BOITE_US. ID_BU .'CZERO' = CZERO;
  95. *
  96. * Indices remplis dans @USCALC
  97. BOITE_US. ID_BU .'GLISSEMENT' = 'TABLE' 'ESCLAVE' ;
  98. BOITE_US. ID_BU .'CISAILLEMENT' = 'TABLE' 'ESCLAVE' ;
  99. BOITE_US. ID_BU .'PRESSION_CONTACT' = 'TABLE' 'ESCLAVE' ;
  100. BOITE_US. ID_BU .'PRESSION_NBF' = CZERO ;
  101. BOITE_US. ID_BU .'DENS_ENER_DISS_CYCLE' = 'CHAN' 'COMP' CZERO 'ED';
  102. BOITE_US. ID_BU .'DENS_ENER_DISS_TOTALE' = 'CHAN' 'COMP' CZERO 'ED';
  103. BOITE_US. ID_BU .'DELTAS' = 'PROG' ;
  104. BOITE_US. ID_BU .'FORCES_TANGENTIELLES' = 'PROG' ;
  105. BOITE_US. ID_BU .'CYCLE_DE_FRETTING' = 'TABLE' ;
  106. *
  107. * Indices remplis dans @USPROF
  108. BOITE_US. ID_BU .'USURE_TOTALE' = CZERO ;
  109. BOITE_US. ID_BU .'EVO_USURE_TOTALE' = 'TABLE' ;
  110. *
  111. * Indices remplis dans @USPOST
  112. BOITE_US. ID_BU .'PRESSION_MAX_CYCLE' = 'PROG' ;
  113. BOITE_US. ID_BU .'CISAILLEMENT_MAX_CYCLE' = 'PROG' ;
  114. BOITE_US. ID_BU .'DELTA_G' = 'PROG' ;
  115. BOITE_US. ID_BU .'DELTA_T' = 'PROG' ;
  116. BOITE_US. ID_BU .'ENERGIE_DISSIPEE_CYCLE' = 'PROG' ;
  117. BOITE_US. ID_BU .'ENERGIE_DISSIPEE_TOTALE' = 'PROG' 0. ;
  118. BOITE_US. ID_BU .'VOLUME_USE_CYCLE' = 'PROG' ;
  119. BOITE_US. ID_BU .'VOLUME_USE_TOTAL' = 'PROG' 0. ;
  120. BOITE_US. ID_BU .'PROF_USEE_MAX_CYCLE' = 'PROG' ;
  121. BOITE_US. ID_BU .'PROF_USEE_MAX_TOTALE' = 'PROG' ;
  122. BOITE_US. ID_BU .'LARGEUR_CONTACT_CYCLE' = 'PROG' ;
  123. BOITE_US. ID_BU .'PRESSION_MOYENNE_CYCLE' = 'TABLE' ;
  124. BOITE_US. ID_BU .'CISAILLEMENT_MOYEN_CYCLE' = 'TABLE' ;
  125. BOITE_US. ID_BU .'GLISSEMENT_CYCLE' = 'TABLE' ;
  126. BOITE_US. ID_BU .'PRESSION_CYCLE' = 'TABLE' ;
  127. BOITE_US. ID_BU .'CISAILLEMENT_CYCLE' = 'TABLE' ;
  128. *
  129. * Creation de maillages utilises dans @USDEPL
  130. 'SI' (BOITE_US.'INFOS'.'ITRID') ;
  131. TATMP = 'PART' 'SEPA' ('CONT' SUR_APPL) 'ANGL' 60. ;
  132. MESHZ = TATMP. 1 ;
  133. 'SINON' ;
  134. MESHZ = SUR_APPL 'POIN' 'INIT' ;
  135. 'FINSI' ;
  136. BOITE_US. ID_BU .'MAIL_PSIP' = MESHZ ;
  137. *
  138. * Modele utilise pour les calculs avec INTG
  139. MODINTG = 'MODE' SUR_APPL 'MECANIQUE' 'ELASTIQUE' ;
  140. BOITE_US. ID_BU .'MODINTG' = MODINTG ;
  141. *
  142. * Direction selon laquelle est appliquee l'usure
  143. MODREPA = 'REDU' T1.'MODELE' BOITE_US. ID_BU .'VOLUME_REPARTITION';
  144. CHVNINT = 'PRES' 'MASS' SUR_APPL MODREPA 1. ;
  145. LCOMPF = BOITE_US.'INFOS'.'LFORCE' ;
  146. NORVINT = 'PSCA' CHVNINT CHVNINT LCOMPF LCOMPF ;
  147. NORVINT = NORVINT ** 0.5 ;
  148. CHVNINT = CHVNINT '/' NORVINT ;
  149. CHVNINT = 'CHAN' 'ATTRIBUT' CHVNINT 'NATURE' 'DISCRET' ;
  150. BOITE_US. ID_BU .'VNORM_INTE' = CHVNINT ;
  151. *
  152. * Direction(s) tangentielle(s) pour le cycle d'usure
  153. * VTANGENT n'est pas utilise mais on le conserve pour le moment
  154. 'SI' (BOITE_US.'INFOS'.'ITRID') ;
  155. CHPTTMP = 'MANU' 'CHPO' SUR_APPL LCOMPF ('PROG' 0. 0. 1.) ;
  156. CHVTGT1 = 'PVEC' CHVNINT CHPTTMP LCOMPF LCOMPF LCOMPF ;
  157. NORVTG1 = 'PSCA' CHVTGT1 CHVTGT1 LCOMPF LCOMPF ;
  158. NORMAXI = ('MAXI' NORVTG1) ** 0.5 ;
  159. NORMINI = ('MINI' NORVTG1) ** 0.5 ;
  160. 'SI' (('<EG' NORMAXI 1.E-6) 'OU' ('<EG' NORMINI 1.E-6)) ;
  161. CHPTTMP = 'MANU' 'CHPO' SUR_APPL LCOMPF ('PROG' 0. 1. 0.) ;
  162. CHVTGT1 = 'PVEC' CHVNINT CHPTTMP LCOMPF LCOMPF LCOMPF ;
  163. NORVTG1 = 'PSCA' CHVTGT1 CHVTGT1 LCOMPF LCOMPF ;
  164. 'FINSI' ;
  165. NORVTG1 = NORVTG1 ** 0.5 ;
  166. CHVTGT1 = CHVTGT1 '/' NORVTG1 ;
  167. CHVTGT1 = 'CHAN' 'ATTRIBUT' CHVTGT1 'NATURE' 'DISCRET' ;
  168. CHVTGT2 = 'PVEC' CHVNINT CHVTGT1 LCOMPF LCOMPF LCOMPF ;
  169. NORVTG2 = 'PSCA' CHVTGT2 CHVTGT2 LCOMPF LCOMPF ;
  170. NORVTG2 = NORVTG2 ** 0.5 ;
  171. CHVTGT2 = CHVTGT2 '/' NORVTG2 ;
  172. CHVTGT2 = 'CHAN' 'ATTRIBUT' CHVTGT2 'NATURE' 'DISCRET' ;
  173. BOITE_US. ID_BU .'VTANGEN1' = CHVTGT1 ;
  174. BOITE_US. ID_BU .'VTANGEN2' = CHVTGT2 ;
  175. 'SINON' ;
  176. CHTANGT = 'PVEC' CHVNINT LCOMPF LCOMPF ;
  177. BOITE_US. ID_BU .'VTANGENT' = CHTANGT ;
  178. 'FINSI' ;
  179. *
  180. * Direction pour calculer la reaction tangentielle du cycle d'usure
  181. LCOMPU = BOITE_US.'INFOS'.'LDEPLA' ;
  182. POSIND = 'POSI' BOITE_US.'INFOS'.'COMP_DEPI' 'DANS' LCOMPU ;
  183. LVALEU = 'PROG' ('DIME' LCMPF) 0. ;
  184. 'REMP' LVALEU POSIND 1. ;
  185. CHREACT = 'MANU' 'CHPO' SUR_APPL LCOMPF LVALEU ;
  186. BOITE_US. ID_BU .'DIRE_REACTION' = CHREACT ;
  187. *
  188. 'SINON' ;
  189. *
  190. *----------------------------------------------------------------------*
  191. * - REINITIALISATIONS A LA FIN DE CHAQUE CYCLE *
  192. *----------------------------------------------------------------------*
  193. 'SI' (BOITE_US.'INFOS'.'FINCYCLE') ;
  194. BOITE_US. ID_BU .'GLISSEMENT' = 'TABLE' 'ESCLAVE' ;
  195. BOITE_US. ID_BU .'CISAILLEMENT' = 'TABLE' 'ESCLAVE' ;
  196. BOITE_US. ID_BU .'PRESSION_CONTACT' = 'TABLE' 'ESCLAVE' ;
  197. CHPINI = 'CHAN' 'COMP' BOITE_US. ID_BU .'CZERO' 'ED' ;
  198. BOITE_US. ID_BU .'DENS_ENER_DISS_CYCLE' = CHPINI ;
  199. 'FINSI' ;
  200. 'FINSI' ;
  201. *
  202. 'FINP' ;
  203.  
  204.  

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