Télécharger @PRCA1.procedur

Retour à la liste

Numérotation des lignes :

  1. * @PRCA1 PROCEDUR MB234859 18/11/21 21:15:02 10007
  2. ***********************************************************************
  3. *
  4. * CETTE PROCEDURE A ETE MISE GRACIEUSEMENT A DISPOSITION DES
  5. * UTILISATEURS PAR LE LTDS - Ecole Centrale Lyon (S. Fouvry et S.Garcin)
  6. *
  7. ***********************************************************************
  8. * PROCEDURE DE CALCUL @PRCA1
  9. *
  10. * Cette procedure recupere les valeurs de glissement et calcule le
  11. * cisaillement, la pression de contact et l'energie dissipee sur
  12. * l'increment. Elle realise aussi le cumul de l'energie dissipee sur
  13. * le cycle et l'energie dissipee totale
  14. *
  15. * Entrees :
  16. * T1 : Table de PASAPAS
  17. * ID_BU : Entier donnant le numero de la BOITE D'USURE a considerer
  18. *
  19. * Sortie :
  20. * T1 : Table de PASAPAS contenant les champs calculesr
  21. *
  22. * Appelee par @EVN_MNG
  23. *
  24. ***********************************************************************
  25. DEBP @PRCA1 T1*'TABLE' ID_BU*'ENTIER';
  26.  
  27. * Booleen pour le trace
  28. OPCntEvo = FAUX ;
  29. *
  30. *---------------------------------------------------------------------*
  31. * - CREATION DES MAILLAGES POUR LES TRACES/EVOLS
  32. *---------------------------------------------------------------------*
  33. WTAB = T1.'WTABLE' ;
  34. * Recuperation des mult associes au CL unil (cont et fro melanges)
  35. MCAC = 'EXTR' WTAB.'RIBLO_M' 'MAIL' 'MULT' ;
  36. * Recuperation des mult de Lag associe de contact (actif)
  37. MUCA = MCAC 'INTE' (T1.'MESH-CON') ;
  38. *
  39. * Equivalence mult cont-mult fro a recreer (au cas ou on renumerote)
  40. MUFRO = 'VIDE' 'MAILLAGE' ;
  41. LVALF = 'PROG' ;
  42. *
  43. * Traite les difference cas (SYME, MESC, FAIB)
  44. NODEF = 'NBNO' (T1.'MESH-MFRO' 'ELEM' 1) ;
  45. 'SI' ('EGA' NODEF 5) ;
  46. NOTOT = 'NBNO' T1.'MESH1' ;
  47. 'SINON' ;
  48. NOTOT = 'NBEL' T1.'MESH1' ;
  49. 'FINSI' ;
  50. *
  51. 'REPE' BCL NOTOT ;
  52. 'SI' ('EGA' NODEF 5) ;
  53. ELZ = 'CHAN' (T1.'MESH-MFRO' 'ELEM' &BCL) 'POI1' ;
  54. 'SINON' ;
  55. INDZ = NOTOT*(&BCL-1) + 1 ;
  56. ELZ = 'CHAN' (T1.'MESH-MFRO' 'ELEM' INDZ) 'POI1' ;
  57. 'FINSI' ;
  58. PTZ = ELZ 'POIN' 1 ;
  59. VAL = 'NOEU' (ELZ 'POIN' NODEF) ;
  60. MUFRO = MUFRO ET PTZ ;
  61. LVALF = LVALF ET VAL ;
  62. 'FIN' BCL ;
  63. *
  64. TESTEL = ('NBEL' T1.'MESH2') * NOTOT ;
  65. 'SI' (('NEG' TESTEL ('NBEL' T1.'MESH-MFRO')) 'ET' ('EGA' NODEF 5));
  66. NOTOT = 'NBNO' T1.'MESH2' ;
  67. 'REPE' BCL NOTOT ;
  68. ELZ = 'CHAN' (T1.'MESH-MFRO' 'ELEM' (TESTEL + &BCL)) 'POI1' ;
  69. PTZ = ELZ 'POIN' 1 ;
  70. VAL = 'NOEU' (ELZ 'POIN' NODEF) ;
  71. MUFRO = MUFRO ET PTZ ;
  72. LVALF = LVALF ET VAL ;
  73. 'FIN' BCL ;
  74. 'FINSI' ;
  75. CHPZ = 'MANU' 'CHPO' MUFRO 1 'CORR' LVALF ;
  76. T1.'MESH-CORR' = CHPZ ;
  77. *
  78. * Recuperation des mult de Lag de fro associe a ceux de cont
  79. MUFR = 'VIDE' 'MAILLAGE' ;
  80. 'REPE' BCL ('NBNO' MUCA) ;
  81. PZ = MUCA 'POIN' &BCL ;
  82. VV = EXTR (T1.'MESH-CORR') 'CORR' PZ ;
  83. MUFR = MUFR ET (NOEU (ENTI VV)) ;
  84. 'FIN' BCL ;
  85.  
  86. * Recuperation des mult de Lag de fro qui glissent (inactif)
  87. MUFA = MUFR 'INTE' MCAC ;
  88. MUGL = 'VIDE' 'MAILLAGE' ;
  89. LNOE = 'LECT' ;
  90. 'REPE' BCL ('NBNO' MUFR) ;
  91. PTZ = MUFR 'POIN' &BCL ;
  92. 'SI' ('NON' ('DANS' PTZ MUFA)) ;
  93. MUGL = MUGL 'ET' PTZ ;
  94. LNOE = LNOE 'ET' ('NOEU' PTZ) ;
  95. 'FINSI' ;
  96. 'FIN' BCL ;
  97. *
  98. IGLI = 'NEG' ('DIME' LNOE) 0 ;
  99. BOITE_US = T1.'BOITES_USURES'. ID_BU ;
  100. IdIniVCu = BOITE_US.'INDICATEUR_INITIALISATION_VAR_CUMUL' ;
  101. SUR_APPL = BOITE_US.'SURFACE_APPLICATION' ;
  102. *
  103. *---------------------------------------------------------------------*
  104. * - RECUPERATION DU GLISSEMENT
  105. *---------------------------------------------------------------------*
  106. 'SI' (IGLI 'ET' ('NEG' IdIniVCu 0)) ;
  107. GLI = -1.* (T1.'WTABLE'.'DFLX') ;
  108. MPO1 = 'VIDE' MAILLAGE ;
  109. LGLI = 'PROG' ;
  110. 'REPE' BCL ('NBNO' MUGL) ;
  111. PTSZ = MUGL 'POIN' &BCL ;
  112. POIZ = SUR_APPL 'POIN' 'PROC' PTSZ ;
  113. MPO1 = MPO1 'ET' POIZ ;
  114. VGLI = 'EXTR' GLI 'FLX' PTSZ ;
  115. LGLI = LGLI 'ET' VGLI ;
  116. 'FIN' BCL;
  117. * EVOL donnant la valeur du glissement le long de SUR_APPL
  118. DCSlip = 'MANU' 'CHPO' MPO1 1 'ETA1' LGLI ;
  119. EvDCSlip = 'EVOL' 'VERT' 'CHPO' DCSlip SUR_APPL ;
  120. EvDCSlip = 'EXTR' EvDCSlip 'COUR' 1 ;
  121. 'SINON' ;
  122. DCSlip = 'MANU' 'CHPO' SUR_APPL 1 'ETA1' 0. ;
  123. EvDCSlip = 'EVOL' 'VERT' 'CHPO' DCSlip SUR_APPL ;
  124. EvDCSlip = 'EXTR' EvDCSlip 'COUR' 1 ;
  125. 'FINSI' ;
  126. EvDCSlip = 'CHAN' EvDCSlip 'LEGE' 'Glissement' ;
  127. *
  128. *---------------------------------------------------------------------*
  129. * - DETERMINATION DU CISAILLEMENT ET DE LA PRESSION
  130. *---------------------------------------------------------------------*
  131. LXIN = 'EXCO' (T1.'ESTIMATION'.'DEPLACEMENTS') 'LX' 'LX' ;
  132. LXCO = 'REDU' LXIN MUCA ;
  133. LXCI = 'REDU' LXIN MUFR ;
  134. *
  135. * CHPOINT donnant la longueur de chaque element de SUR_APPL
  136. CHLE = 'MANU' 'CHPO' SUR_APPL 1 'LELT' 0. 'NATURE' 'DISCRET' ;
  137. 'REPE' BELT ('NBEL' SUR_APPL) ;
  138. ELZ = SUR_APPL 'ELEM' &BELT ;
  139. LEZ = 'MESU' ELZ ;
  140. CHPZ = 'MANU' 'CHPO' ELZ 1 'LELT' (LEZ/2.) 'NATURE' 'DISCRET' ;
  141. CHLE = CHLE 'ET' CHPZ ;
  142. 'FIN' BELT ;
  143. *
  144. * Determination du cisaillement et de la pression de contact
  145. MPO2 = 'VIDE' MAILLAGE ;
  146. VLPR = 'PROG' ; VALC = 'PROG' ;
  147. 'REPE' BCL ('NBNO' MUCA) ;
  148. PMUCO = MUCA 'POIN' &BCL ;
  149. PSURA = SUR_APPL 'POIN' 'PROC' PMUCO ;
  150. MPO2 = MPO2 ET PSURA ;
  151. PMUFR = EXTR (T1.'MESH-CORR') 'CORR' PMUCO ;
  152. VV = 'EXTR' LXCI 'LX ' ('NOEU' ('ENTI' PMUFR)) ;
  153. VS = 'EXTR' CHLE 'LELT' PSURA ;
  154. VP = 'EXTR' LXCO 'LX ' PMUCO ;
  155. VALC = VALC 'ET' (VV/VS) ;
  156. VLPR = VLPR 'ET' (VP/VS) ;
  157. 'FIN' BCL ;
  158. * - Cisaillement
  159. CShear = 'MANU' 'CHPO' MPO2 'CILI' VALC ;
  160. EvCShear = 'EVOL' 'ROUG' 'CHPO' CShear SUR_APPL ;
  161. EvCShear = 'EXTR' EvCShear 'COUR' 1 ;
  162. EvCShear = 'CHAN' EvCShear 'LEGE' 'Shear' ;
  163. CShearMu = 'MANU' 'CHPO' MUFR 'CILI' VALC ;
  164. * - Pression de contact
  165. CPress = 'MANU' 'CHPO' MPO2 'PRES' VLPR ;
  166. EvCPress = 'EVOL' 'BLEU' 'CHPO' CPress SUR_APPL ;
  167. EvCPress = 'EXTR' EvCPress 'COUR' 1 ;
  168. EvCPress = 'CHAN' EvCPress 'LEGE' 'Pressure' ;
  169. *
  170. *---------------------------------------------------------------------*
  171. * - CALCUL DE L ENERGIE DISSIPEE
  172. *---------------------------------------------------------------------*
  173. * Energie dissipee sur l increment
  174. NCNECC = BOITE_US . 'NCNECC' ;
  175. 'SI' (IdIniVCu 'EGA' 0) ;
  176. BOITE_US.'INDICATEUR_INITIALISATION_VAR_CUMUL' = 1 ;
  177. EnDisInc = MANU 'CHPO' SUR_APPL 1 'ED' 0. 'NATURE' 'DISCRET' ;
  178. EnDisCyc = MANU 'CHPO' SUR_APPL 1 'ED' 0. 'NATURE' 'DISCRET' ;
  179. EnDisTot = MANU 'CHPO' SUR_APPL 1 'ED' 0. 'NATURE' 'DISCRET' ;
  180. BOITE_US.'CISAILL_PREC' = CShearMu ;
  181. 'SINON' ;
  182. 'SI' ('EXIS' (BOITE_US.'ENERGIE_DISSIPEE_SUR_CYCLE') NCNECC) ;
  183. EnDisCyc = BOITE_US.'ENERGIE_DISSIPEE_SUR_CYCLE'. NCNECC ;
  184. 'SINON' ;
  185. EnDisCyc = 'MANU' 'CHPO' SUR_APPL 1 'ED' 0. 'NATURE' 'DISCRET' ;
  186. 'FINSI' ;
  187. EnDisTot = BOITE_US.'ENERGIE_DISSIPEE_TOTALE' ;
  188. * Pour le cisaillement, on realise une moyenne
  189. CShearPr = BOITE_US.'CISAILL_PREC' ;
  190. BOITE_US.'CISAILL_PREC' = CShearMu ;
  191. CShearMu = (CShearMu + CShearPr) / 2. ;
  192. 'FINSI' ;
  193. *
  194. 'SI' (IGLI 'ET' ('NEG' IdIniVCu 0)) ;
  195. LVA = 'PROG' ;
  196. 'REPE' BCL ('NBNO' MUGL) ;
  197. MAIZ = MUGL POIN &BCL ;
  198. VGLI = 'EXTR' GLI 'FLX' MAIZ ;
  199. VCIS = 'EXTR' CShearMu 'CILI' MAIZ ;
  200. VEND = 'ABS' (VGLI*VCIS) ;
  201. LVA = LVA ET VEND ;
  202. 'FIN' BCL ;
  203. EnDisInc = 'MANU' 'CHPO' MPO1 1 'ED' LVA ;
  204. 'SINON' ;
  205. EnDisInc = 'MANU' 'CHPO' SUR_APPL 1 'ED' 0. ;
  206. 'FINSI';
  207. *
  208. * Evolution donnant le profil de l'energie dissipee sur le pas de temps
  209. * le long de SUR_APPL
  210. EvDltEnD = 'EVOL' 'JAUN' 'CHPO' EnDisInc SUR_APPL ;
  211. EvDltEnD = 'EXTR' EvDltEnD 'COUR' 1 ;
  212. EvDltEnD = 'CHAN' EvDltEnD 'LEGE' 'Energie dis. Inc.' ;
  213.  
  214. * Evolution donnant le profil de l'energie dissipee sur le cycle
  215. * le long de SUR_APPL
  216. EnDisCyc = EnDisCyc + EnDisInc ;
  217. EvEnDCyc = 'EVOL' 'BLAN' 'CHPO' EnDisCyc SUR_APPL ;
  218. EvEnDCyc = 'EXTR' EvEnDCyc 'COUR' 1 ;
  219. EvEnDCyc = 'CHAN' EvEnDCyc 'LEGE' 'Energie dis. Cyc.' ;
  220.  
  221. * Evolution donnant le profil de l'energie dissipee sur l'ensemble des
  222. * cycles le long de SUR_APPL
  223. EnDisTot = EnDisTot + EnDisInc ;
  224. EvEnDTot = 'EVOL' 'GRIS' 'CHPO' (EnDisTot) SUR_APPL ;
  225. EvEnDTot = 'EXTR' EvEnDTot 'COUR' 1 ;
  226. EvEnDTot = 'CHAN' EvEnDTot 'LEGE' 'Energie dis. Tot.' ;
  227. *
  228. * Trace
  229. SI OPCntEvo ;
  230. DESS (EvCPress ET EvCShear ET (500000. * EvDCSlip)
  231. ET (100. * EvDltEnD) ET (100. * EvEnDCyc)
  232. ET (50. * EvEnDTot )) 'LEGE' 'NCLK' ;
  233. FINSI ;
  234. *
  235. * Stockage des resultats
  236. Inc = BOITE_US.'INDICE-STOCKAGE' ;
  237. BOITE_US.'EVO_GLISSEMENT_CONTACT'. Inc = EvDCSlip ;
  238. BOITE_US.'CISAILLEMENT_DE_CONTACT'. Inc = CShear ;
  239. BOITE_US.'EVO_CISAILLEMENT_CONTACT'. Inc = EvCShear ;
  240. BOITE_US.'PRESSION_DE_CONTACT'. Inc = CPress ;
  241. BOITE_US.'EVO_PRESSION_CONTACT'. Inc = EvCPress ;
  242. BOITE_US.'ENERGIE_DISSIPEE_SUR_INCREMENT'. Inc = EnDisInc ;
  243. BOITE_US.'ENERGIE_DISSIPEE_SUR_CYCLE'. NCNECC = EnDisCyc ;
  244. BOITE_US.'ENERGIE_DISSIPEE_TOTALE' = EnDisTot ;
  245. BOITE_US.'EVO_ENERGIE_DISSIPEE_INCR'. Inc = EvDltEnD ;
  246. BOITE_US.'EVO_ENERGIE_DISSIPEE_CYCLE'. NCNECC = EvEnDCyc ;
  247. BOITE_US.'EVO_ENERGIE_DISSIPEE_TOTALE' = EvEnDTot ;
  248.  
  249. FINP T1 ;
  250.  
  251.  

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