Télécharger devfb5.eso

Retour à la liste

Numérotation des lignes :

  1. C DEVFB5 SOURCE CHAT 05/01/12 22:45:35 5004
  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,4,*),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,IND,ID)
  64. XDEB = XPTB(NPOB,IND,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. *
  70. * Dans le tableau XPALB(I,1+ID) se trouve les coord de la normale
  71. *
  72. XDEP = XDEP + (XDEA - XDEB) * XPALB(I,1+ID)
  73. 10 CONTINUE
  74. * end do
  75. * On appel DYCHEC, SP qui calcul ,avec le deplacement xdep,
  76. * la force xfla et le dep plastique xdplas sur l'evolution xabsci/xordon
  77. * (loi de comportement)
  78. *
  79. call DYCHEC(XDEP,XDPLAS,XDPLAC,XJEU,IPERM,XABSCI,
  80. & XORDON,I,XFLA,NLIAB,NIP,XVIT,XAMO,iannul)
  81.  
  82. *
  83. XFLB = -1.D0 * XFLA
  84. XVALB(I,IND,1) = XFLA
  85. XVALB(I,IND,2) = XFLB
  86. XPALB(I,2+IDIM) = XDPLAS
  87. XPALB(I,3+IDIM) = XELA
  88. XPALB(I,4+IDIM) = XDPLAC
  89. XVALB(I,IND,13) = XDPLAS
  90. XVALB(I,IND,14) = XELA
  91. XVALB(I,IND,15) = XDPLAC
  92. *
  93. DO 12 ID = 1,IDIM
  94. FTOTB(NPOA,ID) = FTOTB(NPOA,ID) + XFLA * XPALB(I,1+ID)
  95. FTOTB(NPOB,ID) = FTOTB(NPOB,ID) + XFLB * XPALB(I,1+ID)
  96. 12 CONTINUE
  97. * end do
  98. *
  99. * --- choc elementaire POINT_POINT_DEPLACEMENT_PLASTIQUE avec amortissement
  100. *
  101. ELSE IF (ITYP.EQ.17) THEN
  102. NPOA = IPLIB(I,1)
  103. NPOB = IPLIB(I,2)
  104. IDIM = IPALB(I,3)
  105. IPERM = IPALB(I,5)
  106. XJEU = XPALB(I,1)
  107. XAMO = XPALB(I,2)
  108. XDPLAS = XPALB(I,3+IDIM)
  109. XELA = XPALB(I,4+IDIM)
  110. XDPLAC = XPALB(I,5+IDIM)
  111. XDEP = 0.D0
  112. XDEPM1 = 0.D0
  113. DO 20 ID = 1,IDIM
  114. IDA = 3 + ID
  115. IDB = 3 + IDIM + ID
  116. *
  117. * Ici, l'indice IND2 sert a calculer les vitesses
  118. *
  119. XDEA = XPTB(NPOA,IND,ID)
  120. XDMA = XPTB(NPOA,IND2,ID)
  121. XDEB = XPTB(NPOB,IND,ID)
  122. XDMB = XPTB(NPOB,IND2,ID)
  123. XVALB(I,IND,IDA) = XDEA
  124. XVALB(I,IND,IDB) = XDEB
  125. XDEA = XDEA + FEXPSM(NPOA,NPA,IND1,ID)
  126. XDEB = XDEB + FEXPSM(NPOB,NPA,IND1,ID)
  127. XDMA = XDMA + FEXPSM(NPOA,NPAM1,INDM1,ID)
  128. XDMB = XDMB + FEXPSM(NPOB,NPAM1,INDM1,ID)
  129. XDEB = XDEB + FEXPSM(NPOB,NPA,IND1,ID)
  130. *
  131. * Dans le tableau XPALB(I,2+ID) on trouve les coord de la normale
  132. *
  133. XDEP = XDEP + (XDEA - XDEB) * XPALB(I,2+ID)
  134. XDEPM1 = XDEPM1 + (XDMA - XDMB) * XPALB(I,2+ID)
  135. 20 CONTINUE
  136. * end do
  137. XVIT = (XDEP - XDEPM1) / PDTS2
  138. XVALB(I,IND,3) = XVIT
  139. *
  140. * Appel a DYCHEC pour calcul de la force et depla plastique
  141. *
  142. call DYCHEC(XDEP,XDPLAS,XDPLAC,XJEU,IPERM,XABSCI,
  143. & XORDON,I,XFLA,NLIAB,NIP,XVIT,XAMO,iannul)
  144.  
  145. XFLB = -1.D0 * XFLA
  146. XVALB(I,IND,1) = XFLA
  147. XVALB(I,IND,2) = XFLB
  148. XPALB(I,3+IDIM) = XDPLAS
  149. XPALB(I,4+IDIM) = XELA
  150. XPALB(I,5+IDIM) = XDPLAC
  151. XVALB(I,IND,13) = XDPLAS
  152. XVALB(I,IND,14) = XELA
  153. XVALB(I,IND,15) = XDPLAC
  154. *
  155. DO 22 ID = 1,IDIM
  156. FTOTB(NPOA,ID) = FTOTB(NPOA,ID) + XFLA * XPALB(I,2+ID)
  157. FTOTB(NPOB,ID) = FTOTB(NPOB,ID) + XFLB * XPALB(I,2+ID)
  158. 22 CONTINUE
  159. *
  160. C Rotule [
  161. *
  162. * --- choc elementaire POINT_POINT_ROTATION_PLASTIQUE sans amortissement
  163. *
  164. ELSE IF (ITYP.EQ.50) THEN
  165. NPOA = IPLIB(I,1)
  166. NPOB = IPLIB(I,2)
  167. IDIM = IPALB(I,3)
  168. IPERM = IPALB(I,5)
  169. XJEU = XPALB(I,1)
  170. XDPLAS = XPALB (I,2+IDIM)
  171. XELA = XPALB (I,3+IDIM)
  172. XDPLAC = XPALB(I,4+IDIM)
  173. XROT = 0.D0
  174. xamo = 0.d0
  175. xvit = 0.d0
  176. DO 30 ID = 1,IDIM
  177. IDA = 3 + ID
  178. IDB = 3 + IDIM + ID
  179. *
  180. * On recupere les rotations des points A et B
  181. * XROA = rotation point A
  182. * XROB = rotation point B
  183. *
  184. XROA = XPTB(NPOA,IND,ID+3)
  185. XROB = XPTB(NPOB,IND,ID+3)
  186. XVALB(I,IND,IDA) = XROA
  187. XVALB(I,IND,IDB) = XROB
  188. XROA = XROA + FEXPSM(NPOA,NPA,IND1,ID+3)
  189. XROB = XROB + FEXPSM(NPOB,NPA,IND1,ID+3)
  190. *
  191. * Dans le tableau XPALB(I,1+ID) se trouve les coord de l'axe de rotation
  192. *
  193. XROT = XROT + (XROA - XROB) * XPALB(I,1+ID)
  194. 30 CONTINUE
  195. * end do
  196. * On appel DYCHEC, SP qui calcul ,avec la rotation xrot,
  197. * le moment xmla et la rota plastique xdplas sur l'evolution xabsci/xordon
  198. * (loi de comportement)
  199. *
  200. call DYCHEC(XROT,XDPLAS,XDPLAC,XJEU,IPERM,XABSCI,
  201. & XORDON,I,XMLA,NLIAB,NIP,XVIT,XAMO,iannul)
  202.  
  203. XMLB = -1.D0 * XMLA
  204. XVALB(I,IND,1) = XMLA
  205. XVALB(I,IND,2) = XMLB
  206. XPALB(I,2+IDIM) = XDPLAS
  207. XPALB(I,3+IDIM) = XELA
  208. XPALB(I,4+IDIM) = XDPLAC
  209. XVALB(I,IND,13) = XDPLAS
  210. XVALB(I,IND,14) = XELA
  211. XVALB(I,IND,15) = XDPLAC
  212. *
  213. DO 32 ID = 1,IDIM
  214. FTOTB(NPOA,ID+3) = FTOTB(NPOA,ID+3) + XMLA * XPALB(I,1+ID)
  215. FTOTB(NPOB,ID+3) = FTOTB(NPOB,ID+3) + XMLB * XPALB(I,1+ID)
  216. 32 CONTINUE
  217. * end do
  218. *
  219. * --- choc elementaire POINT_POINT_ROTATION_PLASTIQUE avec amortissement
  220. *
  221. ELSE IF (ITYP.EQ.51) THEN
  222. NPOA = IPLIB(I,1)
  223. NPOB = IPLIB(I,2)
  224. IDIM = IPALB(I,3)
  225. IPERM = IPALB(I,5)
  226. XJEU = XPALB(I,1)
  227. XAMO = XPALB(I,2)
  228. XDPLAS = XPALB(I,3+IDIM)
  229. XELA = XPALB(I,4+IDIM)
  230. XDPLAC = XPALB(I,5+IDIM)
  231. XROT = 0.D0
  232. XDRPM1 = 0.D0
  233. DO 40 ID = 1,IDIM
  234. IDA = 3 + ID
  235. IDB = 3 + IDIM + ID
  236. * Ici, l'indice IND2 sert a calculer les vitesses
  237. *
  238. XROA = XPTB(NPOA,IND,ID+3)
  239. XDMA = XPTB(NPOA,IND2,ID+3)
  240. XROB = XPTB(NPOB,IND,ID+3)
  241. XDMB = XPTB(NPOB,IND2,ID+3)
  242. XVALB(I,IND,IDA) = XROA
  243. XVALB(I,IND,IDB) = XROB
  244. ** Verifier indice pseudo-modes***
  245. XROA = XROA + FEXPSM(NPOA,NPA,IND1,ID+3)
  246. XROB = XROB + FEXPSM(NPOB,NPA,IND1,ID+3)
  247. XDMA = XDMA + FEXPSM(NPOA,NPAM1,INDM1,ID+3)
  248. XDMB = XDMB + FEXPSM(NPOB,NPAM1,INDM1,ID+3)
  249. C
  250. * Dans le tableau XPALB(I,2+ID) on trouve les coord de l'axe de rotation
  251. *
  252. XROT = XROT + (XROA - XROB) * XPALB(I,2+ID)
  253. XDRPM1 = XDRPM1 + (XDMA - XDMB) * XPALB(I,2+ID)
  254. 40 CONTINUE
  255. * end do
  256. XVIT = (XROT - XDRPM1) / PDTS2
  257. XVALB(I,IND,3) = XVIT
  258. *
  259. * Appel a DYCHEC pour calcul du moment et rotation plastique XDPLAS
  260. *
  261. call DYCHEC(XROT,XDPLAS,XDPLAC,XJEU,IPERM,XABSCI,
  262. & XORDON,I,XMLA,NLIAB,NIP,XVIT,XAMO,iannul)
  263.  
  264. XMLB = -1.D0 * XMLA
  265. XVALB(I,IND,1) = XMLA
  266. XVALB(I,IND,2) = XMLB
  267. XPALB(I,3+IDIM) = XDPLAS
  268. XPALB(I,4+IDIM) = XELA
  269. XPALB(I,5+IDIM) = XDPLAC
  270. XVALB(I,IND,13) = XDPLAS
  271. XVALB(I,IND,14) = XELA
  272. XVALB(I,IND,15) = XDPLAC
  273. *
  274. DO 42 ID = 1,IDIM
  275. FTOTB(NPOA,ID+3) = FTOTB(NPOA,ID+3) + XMLA * XPALB(I,2+ID)
  276. FTOTB(NPOB,ID+3) = FTOTB(NPOB,ID+3) + XMLB * XPALB(I,2+ID)
  277. 42 CONTINUE
  278. *
  279. C Rotule ]
  280. C
  281. * end do
  282. *
  283. * --- choc ...........
  284. *
  285. * ELSE IF (ITYP.EQ. ) THEN
  286. * .......
  287. * .......
  288. *
  289. ENDIF
  290. *
  291. END
  292.  
  293.  
  294.  
  295.  
  296.  
  297.  
  298.  
  299.  

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