Télécharger devfb5.eso

Retour à la liste

Numérotation des lignes :

devfb5
  1. C DEVFB5 SOURCE BP208322 20/09/18 21:15:30 10718
  2. SUBROUTINE DEVFB5(ITYP,FTOTB,XPTB,IPALB,IPLIB,XPALB,XVALB,
  3. & NLIAB,NPLB,IND,IND1,INDM1,NPA,NPAM1,IND2,PDT,PDTS2,
  4. & FEXPSM,NPC1,I,XABSCI,XORDON,NIP,IANNUL)
  5. IMPLICIT INTEGER(I-N)
  6. IMPLICIT REAL*8(A-H,O-Z)
  7. *--------------------------------------------------------------------*
  8. * *
  9. * Operateur DYNE : algorithme de Fu - de Vogelaere *
  10. * ________________________________________________ *
  11. * *
  12. * Calcul des forces de choc sur base B pour les liaisons de *
  13. * type POINT_POINT_DEPLACEMENT_PLASTIQUE. *
  14. * *
  15. * Parametres: *
  16. * *
  17. * e ITYP type de la liaison. *
  18. * es FTOTB Forces exterieures totalisees sur la base B. *
  19. * e XPTB Tableau des deplacements des points *
  20. * e IPALB Renseigne sur la liaison. *
  21. * e IPLIB Tableau contenant les numeros "DYNE" de la liaison. *
  22. * e XPALB Tableau contenant les parametres de la liaison. *
  23. * es XVALB Tableau contenant les variables internes de liaisons. *
  24. * e NLIAB Nombre de liaisons sur la base B. *
  25. * e NPLB Nombre total de points intervenant dans les liaisons. *
  26. * e IND Indice du pas. *
  27. * e I numero de la liaison. *
  28. * e XABSCI Tableau contenant les abscisses de la loi plastique *
  29. * pour la liaison point-point-plastique *
  30. * e XORDON Tableau contenant les ordonnees de la loi plastique *
  31. * pour la liaison point-point-plastique *
  32. * e NIP Nombre de points dans l'evolution de la loi *
  33. * *
  34. * Auteur, date de creation: *
  35. * *
  36. * Nicolas WECXSTEEN 04/96 point-point- ... -plastique *
  37. * *
  38. *--------------------------------------------------------------------*
  39. *
  40. INTEGER IPALB(NLIAB,*),IPLIB(NLIAB,*)
  41. REAL*8 XPALB(NLIAB,*),XPTB(NPLB,2,*),FTOTB(NPLB,*)
  42. REAL*8 XVALB(NLIAB,4,*),FEXPSM(NPLB,NPC1,2,*)
  43. REAL*8 XABSCI(NLIAB,*),XORDON(NLIAB,*)
  44.  
  45. *
  46. * --- choc elementaire POINT_POINT_DEPLACEMENT_PLASTIQUE sans amortissement
  47. *
  48. IF (ITYP.EQ.16) THEN
  49. NPOA = IPLIB(I,1)
  50. NPOB = IPLIB(I,2)
  51. IDIM = IPALB(I,3)
  52. IPERM = IPALB(I,5)
  53. XJEU = XPALB(I,1)
  54. XDPLAS = XPALB(I,2+IDIM)
  55. XELA = XPALB(I,3+IDIM)
  56. XDPLAC = XPALB(I,4+IDIM)
  57. XDEP = 0.D0
  58. XAMO = 0.d0
  59. XVIT = 0.d0
  60. DO 10 ID = 1,IDIM
  61. IDA = 3 + ID
  62. IDB = 3 + IDIM + ID
  63. XDEA = XPTB(NPOA,1,ID)
  64. XDEB = XPTB(NPOB,1,ID)
  65. XVALB(I,IND,IDA) = XDEA
  66. XVALB(I,IND,IDB) = XDEB
  67. XDEA = XDEA + FEXPSM(NPOA,NPA,IND1,ID)
  68. XDEB = XDEB + FEXPSM(NPOB,NPA,IND1,ID)
  69. * XPALB(I,1+ID) = normale
  70. XDEP = XDEP + (XDEA - XDEB) * XPALB(I,1+ID)
  71. 10 CONTINUE
  72. * On appel DYCHEC, SP qui calcul ,avec le deplacement xdep,
  73. * la force xfla et le dep plastique xdplas sur l'evolution xabsci/xordon
  74. * (loi de comportement)
  75. *
  76. call DYCHEC(XDEP,XDPLAS,XDPLAC,XJEU,IPERM,XABSCI,
  77. & XORDON,I,XFLA,NLIAB,NIP,XVIT,XAMO,iannul)
  78.  
  79. XFLB = -1.D0 * XFLA
  80. XVALB(I,IND,1) = XFLA
  81. XVALB(I,IND,2) = XFLB
  82. XPALB(I,2+IDIM) = XDPLAS
  83. XPALB(I,3+IDIM) = XELA
  84. XPALB(I,4+IDIM) = XDPLAC
  85. XVALB(I,IND,13) = XDPLAS
  86. XVALB(I,IND,14) = XELA
  87. XVALB(I,IND,15) = XDPLAC
  88.  
  89. DO 12 ID = 1,IDIM
  90. FTOTB(NPOA,ID) = FTOTB(NPOA,ID) + XFLA * XPALB(I,1+ID)
  91. FTOTB(NPOB,ID) = FTOTB(NPOB,ID) + XFLB * XPALB(I,1+ID)
  92. 12 CONTINUE
  93. *
  94. * --- choc elementaire POINT_POINT_DEPLACEMENT_PLASTIQUE avec amortissement
  95. *
  96. ELSE IF (ITYP.EQ.17) THEN
  97. NPOA = IPLIB(I,1)
  98. NPOB = IPLIB(I,2)
  99. IDIM = IPALB(I,3)
  100. IPERM = IPALB(I,5)
  101. XJEU = XPALB(I,1)
  102. XAMO = XPALB(I,2)
  103. XDPLAS = XPALB(I,3+IDIM)
  104. XELA = XPALB(I,4+IDIM)
  105. XDPLAC = XPALB(I,5+IDIM)
  106. XDEP = 0.D0
  107. cbp,2020-09 XDEPM1 = 0.D0
  108. XVIT = 0.D0
  109. DO 20 ID = 1,IDIM
  110. IDA = 3 + ID
  111. IDB = 3 + IDIM + ID
  112. * Ici, l'indice IND2 sert a calculer les vitesses
  113. XDEA = XPTB(NPOA,1,ID)
  114. cbp,2020-09 XDMA = XPTB(NPOA,IND2,ID)
  115. XDEB = XPTB(NPOB,1,ID)
  116. cbp,2020-09 XDMB = XPTB(NPOB,IND2,ID)
  117. XVALB(I,IND,IDA) = XDEA
  118. XVALB(I,IND,IDB) = XDEB
  119. XDEA = XDEA + FEXPSM(NPOA,NPA,IND1,ID)
  120. XDEB = XDEB + FEXPSM(NPOB,NPA,IND1,ID)
  121. cbp,2020-09 XDMA = XDMA + FEXPSM(NPOA,NPAM1,INDM1,ID)
  122. cbp,2020-09 XDMB = XDMB + FEXPSM(NPOB,NPAM1,INDM1,ID)
  123. cbp,2020-09:erreur de copier-coller? XDEB = XDEB + FEXPSM(NPOB,NPA,IND1,ID)
  124. *
  125. * XPALB(I,2+ID) = normale
  126. XDEP = XDEP + (XDEA - XDEB) * XPALB(I,2+ID)
  127. cbp,2020-09 XDEPM1 = XDEPM1 + (XDMA - XDMB) * XPALB(I,2+ID)
  128. cbp,2020-09: nouveau calcul de la vitesse (neglige les pseudo-modes)
  129. XVIT = XVIT
  130. & + (XPTB(NPOA,2,ID)-XPTB(NPOB,2,ID))*XPALB(I,2+ID)
  131. 20 CONTINUE
  132. cbp,2020-09 XVIT = (XDEP - XDEPM1) / PDTS2
  133. XVALB(I,IND,3) = XVIT
  134. *
  135. * Appel a DYCHEC pour calcul de la force et depla plastique
  136. call DYCHEC(XDEP,XDPLAS,XDPLAC,XJEU,IPERM,XABSCI,
  137. & XORDON,I,XFLA,NLIAB,NIP,XVIT,XAMO,iannul)
  138.  
  139. XFLB = -1.D0 * XFLA
  140. XVALB(I,IND,1) = XFLA
  141. XVALB(I,IND,2) = XFLB
  142. XPALB(I,3+IDIM) = XDPLAS
  143. XPALB(I,4+IDIM) = XELA
  144. XPALB(I,5+IDIM) = XDPLAC
  145. XVALB(I,IND,13) = XDPLAS
  146. XVALB(I,IND,14) = XELA
  147. XVALB(I,IND,15) = XDPLAC
  148. *
  149. DO 22 ID = 1,IDIM
  150. FTOTB(NPOA,ID) = FTOTB(NPOA,ID) + XFLA * XPALB(I,2+ID)
  151. FTOTB(NPOB,ID) = FTOTB(NPOB,ID) + XFLB * XPALB(I,2+ID)
  152. 22 CONTINUE
  153. *
  154. C Rotule [
  155. *
  156. * --- choc elementaire POINT_POINT_ROTATION_PLASTIQUE sans amortissement
  157. *
  158. ELSE IF (ITYP.EQ.50) THEN
  159. NPOA = IPLIB(I,1)
  160. NPOB = IPLIB(I,2)
  161. IDIM = IPALB(I,3)
  162. IPERM = IPALB(I,5)
  163. XJEU = XPALB(I,1)
  164. XDPLAS = XPALB (I,2+IDIM)
  165. XELA = XPALB (I,3+IDIM)
  166. XDPLAC = XPALB(I,4+IDIM)
  167. XROT = 0.D0
  168. xamo = 0.d0
  169. xvit = 0.d0
  170. DO 30 ID = 1,IDIM
  171. IDA = 3 + ID
  172. IDB = 3 + IDIM + ID
  173. *
  174. * On recupere les rotations des points A et B
  175. * XROA = rotation point A
  176. * XROB = rotation point B
  177. *
  178. XROA = XPTB(NPOA,1,ID+3)
  179. XROB = XPTB(NPOB,1,ID+3)
  180. XVALB(I,IND,IDA) = XROA
  181. XVALB(I,IND,IDB) = XROB
  182. XROA = XROA + FEXPSM(NPOA,NPA,IND1,ID+3)
  183. XROB = XROB + FEXPSM(NPOB,NPA,IND1,ID+3)
  184. * XPALB(I,1+ID) = axe de rotation
  185. XROT = XROT + (XROA - XROB) * XPALB(I,1+ID)
  186. 30 CONTINUE
  187. * On appel DYCHEC, SP qui calcul ,avec la rotation xrot,
  188. * le moment xmla et la rota plastique xdplas sur l'evolution xabsci/xordon
  189. * (loi de comportement)
  190. *
  191. call DYCHEC(XROT,XDPLAS,XDPLAC,XJEU,IPERM,XABSCI,
  192. & XORDON,I,XMLA,NLIAB,NIP,XVIT,XAMO,iannul)
  193.  
  194. XMLB = -1.D0 * XMLA
  195. XVALB(I,IND,1) = XMLA
  196. XVALB(I,IND,2) = XMLB
  197. XPALB(I,2+IDIM) = XDPLAS
  198. XPALB(I,3+IDIM) = XELA
  199. XPALB(I,4+IDIM) = XDPLAC
  200. XVALB(I,IND,13) = XDPLAS
  201. XVALB(I,IND,14) = XELA
  202. XVALB(I,IND,15) = XDPLAC
  203. *
  204. DO 32 ID = 1,IDIM
  205. FTOTB(NPOA,ID+3) = FTOTB(NPOA,ID+3) + XMLA * XPALB(I,1+ID)
  206. FTOTB(NPOB,ID+3) = FTOTB(NPOB,ID+3) + XMLB * XPALB(I,1+ID)
  207. 32 CONTINUE
  208. *
  209. * --- choc elementaire POINT_POINT_ROTATION_PLASTIQUE avec amortissement
  210. *
  211. ELSE IF (ITYP.EQ.51) THEN
  212. NPOA = IPLIB(I,1)
  213. NPOB = IPLIB(I,2)
  214. IDIM = IPALB(I,3)
  215. IPERM = IPALB(I,5)
  216. XJEU = XPALB(I,1)
  217. XAMO = XPALB(I,2)
  218. XDPLAS = XPALB(I,3+IDIM)
  219. XELA = XPALB(I,4+IDIM)
  220. XDPLAC = XPALB(I,5+IDIM)
  221. XROT = 0.D0
  222. cbp,2020-09 XDRPM1 = 0.D0
  223. XVIT = 0.D0
  224. DO 40 ID = 1,IDIM
  225. IDA = 3 + ID
  226. IDB = 3 + IDIM + ID
  227. * Ici, l'indice IND2 sert a calculer les vitesses
  228. XROA = XPTB(NPOA,1,ID+3)
  229. cbp,2020-09 XDMA = XPTB(NPOA,IND2,ID+3)
  230. XROB = XPTB(NPOB,1,ID+3)
  231. cbp,2020-09 XDMB = XPTB(NPOB,IND2,ID+3)
  232. XVALB(I,IND,IDA) = XROA
  233. XVALB(I,IND,IDB) = XROB
  234. ** Verifier indice pseudo-modes***
  235. XROA = XROA + FEXPSM(NPOA,NPA,IND1,ID+3)
  236. XROB = XROB + FEXPSM(NPOB,NPA,IND1,ID+3)
  237. cbp,2020-09 XDMA = XDMA + FEXPSM(NPOA,NPAM1,INDM1,ID+3)
  238. cbp,2020-09 XDMB = XDMB + FEXPSM(NPOB,NPAM1,INDM1,ID+3)
  239. C
  240. * XPALB(I,2+ID) = normale
  241. XROT = XROT + (XROA - XROB) * XPALB(I,2+ID)
  242. cbp,2020-09 XDRPM1 = XDRPM1 + (XDMA - XDMB) * XPALB(I,2+ID)
  243. cbp,2020-09: nouveau calcul de la vitesse (neglige les pseudo-modes)
  244. XVIT = XVIT
  245. & + (XPTB(NPOA,2,ID+3)-XPTB(NPOB,2,ID+3))*XPALB(I,2+ID)
  246. 40 CONTINUE
  247. * end do
  248. cbp,2020-09 XVIT = (XROT - XDRPM1) / PDTS2
  249. XVALB(I,IND,3) = XVIT
  250. *
  251. * Appel a DYCHEC pour calcul du moment et rotation plastique XDPLAS
  252. *
  253. call DYCHEC(XROT,XDPLAS,XDPLAC,XJEU,IPERM,XABSCI,
  254. & XORDON,I,XMLA,NLIAB,NIP,XVIT,XAMO,iannul)
  255.  
  256. XMLB = -1.D0 * XMLA
  257. XVALB(I,IND,1) = XMLA
  258. XVALB(I,IND,2) = XMLB
  259. XPALB(I,3+IDIM) = XDPLAS
  260. XPALB(I,4+IDIM) = XELA
  261. XPALB(I,5+IDIM) = XDPLAC
  262. XVALB(I,IND,13) = XDPLAS
  263. XVALB(I,IND,14) = XELA
  264. XVALB(I,IND,15) = XDPLAC
  265. *
  266. DO 42 ID = 1,IDIM
  267. FTOTB(NPOA,ID+3) = FTOTB(NPOA,ID+3) + XMLA * XPALB(I,2+ID)
  268. FTOTB(NPOB,ID+3) = FTOTB(NPOB,ID+3) + XMLB * XPALB(I,2+ID)
  269. 42 CONTINUE
  270. *
  271. C Rotule ]
  272. C
  273. * end do
  274. *
  275. * --- choc ...........
  276. *
  277. * ELSE IF (ITYP.EQ. ) THEN
  278. * .......
  279. * .......
  280. *
  281. ENDIF
  282. *
  283. END
  284.  
  285.  
  286.  
  287.  
  288.  
  289.  
  290.  
  291.  
  292.  
  293.  

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