Télécharger devfb1.eso

Retour à la liste

Numérotation des lignes :

devfb1
  1. C DEVFB1 SOURCE BP208322 20/09/18 21:15:26 10718
  2.  
  3. SUBROUTINE DEVFB1(ITYP,FTOTB,XPTB,IPALB,IPLIB,XPALB,XVALB,NLIAB,
  4. & NPLB,IND,IND1,INDM1,NPA,NPAM1,IND2,PDT,PDTS2,
  5. & FEXPSM,NPC1,XABSCI,XORDON,NIP,I,iannul,
  6. & KTOTXB,KTOTVB,IDIMB,GETJAC)
  7.  
  8. *--------------------------------------------------------------------*
  9. * *
  10. * Operateur DYNE et DYNC : *
  11. * Calcul des forces de choc pour les liaisons B de type : *
  12. * - POINT_PLAN avec ou sans amortissement *
  13. * - POINT_PLAN_FROTTEMENT avec ou sans amortissement *
  14. * - CERCLE_PLAN_FROTTEMENT avec ou sans amortissement *
  15. * - POINT_PLAN_FLUIDE *
  16. * *
  17. *--------------------------------------------------------------------*
  18. * *
  19. * Parametres: *
  20. * *
  21. * e ITYP type de la liaison. *
  22. * es FTOTB Forces exterieures totalisees sur la base B. *
  23. * e XPTB Tableau des deplacements des points *
  24. * e IPALB Renseigne sur la liaison. *
  25. * e IPLIB Tableau contenant les numeros "DYNE" de la liaison. *
  26. * e XPALB Tableau contenant les parametres de la liaison. *
  27. * es XVALB Tableau contenant les variables internes de liaisons. *
  28. * e NLIAB Nombre de liaisons sur la base B. *
  29. * e NPLB Nombre total de points intervenant dans les liaisons. *
  30. * e IND Indice du pas. *
  31. * e IND1 Indice du pas (ou demi-pas si De Vogelaere) precedent. *
  32. * e I numero de la liaison. *
  33. * e PDT pas de temps *
  34. * e PDTS2 = | pas de temps/2 si devogelaere *
  35. * | pas de temps si differences centrees *
  36. * *
  37. *--------------------------------------------------------------------*
  38.  
  39. IMPLICIT INTEGER(I-N)
  40. IMPLICIT REAL*8(A-H,O-Z)
  41. *
  42. INTEGER IPALB(NLIAB,*),IPLIB(NLIAB,*)
  43. REAL*8 XPALB(NLIAB,*),XPTB(NPLB,2,*),FTOTB(NPLB,*)
  44. REAL*8 XVALB(NLIAB,4,*),FEXPSM(NPLB,NPC1,2,*)
  45. REAL*8 XPTP2(3),XPTPP2(3),XFNT(3),XPSMP(3),XPSMPM(3)
  46. REAL*8 XABSCI(NLIAB,NIP),XORDON(NLIAB,NIP)
  47. * en + pour DYNC :
  48. REAL*8 KTOTXB(NPLB,IDIMB,IDIMB),KTOTVB(NPLB,IDIMB,IDIMB)
  49. LOGICAL GETJAC
  50. *
  51. *--------------------------------------------------------------------*
  52. * --- choc elementaire POINT_PLAN
  53. * avec ou sans amortissement
  54. *--------------------------------------------------------------------*
  55. *
  56. IF (ITYP.EQ.1 .OR. ITYP.EQ.100
  57. & .OR. ITYP.EQ.101 .OR. ITYP.EQ.102) THEN
  58. NPOI = IPLIB(I,1)
  59. IDIM = IPALB(I,3)
  60. IPERM = IPALB(I,4)
  61. XRAID = XPALB(I,1)
  62. XJEU = XPALB(I,2)
  63. XAMO = XPALB(I,3)
  64. ETA = 0.D0
  65. IF (ITYP.EQ.1 .OR. ITYP.EQ.102) THEN
  66. ID1 = 3
  67. ELSE
  68. ID1 = 4
  69. XSEUIL = XPALB(I,ID1)
  70. XDPLAS = XPALB(I,(ID1+IDIM+1))
  71. ENDIF
  72. *
  73. c XDEP : deplacement normal = x(t_{ind})*n
  74. c XDEPM1 : deplacement normal = x(t_{ind2})*n
  75. c XVIT : vitesse normale = v(t_{ind})*n
  76. XDEP = 0.D0
  77. DO 10 ID = 1,IDIM
  78. IDD1 = 3 + ID
  79. XDE2 = XPTB(NPOI,1,ID)
  80. XVALB(I,IND,IDD1) = XDE2
  81. XDE2 = XDE2 + FEXPSM(NPOI,NPA,IND1,ID)
  82. XDEP = XDEP + XDE2 * XPALB(I,ID1+ID)
  83. 10 CONTINUE
  84. c XDEPM1 = 0.D0
  85. c DO 12 ID = 1,IDIM
  86. c XDM2 = XPTB(NPOI,IND2,ID) + FEXPSM(NPOI,NPAM1,INDM1,ID)
  87. c XDEPM1 = XDEPM1 + XDM2 * XPALB(I,ID1+ID)
  88. c 12 CONTINUE
  89. c XVIT = (XDEP - XDEPM1) / PDTS2
  90. cbp,2020-09 : la vitesse liee aux pseudo modes FEXPSM est negligee...
  91. cbp,2020-09 : XPTB(,2,)=vitesse
  92. XVIT = 0.D0
  93. DO 12 ID = 1,IDIM
  94. XVIT = XVIT + XPTB(NPOI,2,ID) * XPALB(I,ID1+ID)
  95. 12 CONTINUE
  96. XVALB(I,IND,3) = XVIT
  97.  
  98. IF (ITYP.EQ.1) THEN
  99. CALL DYCHAM(XDEP,XVIT,XRAID,XJEU,XAMO,ETA,
  100. & XFL,DFDX,DFDV,IPERM,iannul)
  101. ELSEIF (ITYP.EQ.102) THEN
  102. CALL DYCHAM2(XDEP,XVIT,XJEU,XAMO,XABSCI,XORDON,NIP,
  103. & NLIAB,I,XFL,IPERM,iannul)
  104. ELSEIF (ITYP.EQ.101) THEN
  105. CALL DYCHPL2(XDEP,XVIT,XDPLAS,XRAID,XJEU,XAMO,XSEUIL,
  106. & XABSCI,XORDON,NIP,NLIAB,I,XFL,IPERM,iannul)
  107. ELSEIF (ITYP.EQ.100) THEN
  108. CALL DYCHPL(XDEP,XVIT,XDPLAS,XRAID,XJEU,XAMO,XSEUIL,
  109. & XFL,IPERM,iannul)
  110. ENDIF
  111.  
  112. IF (ITYP.EQ.100 .OR. ITYP.EQ.101) THEN
  113. XPALB(I,(ID1+IDIM+1)) = XDPLAS
  114. XVALB(I,IND,13) = XDPLAS
  115. ENDIF
  116. XVALB(I,IND,1) = XFL
  117.  
  118. DO 14 ID = 1,IDIM
  119. FTOTB(NPOI,ID) = FTOTB(NPOI,ID) + XFL * XPALB(I,ID1+ID)
  120. 14 CONTINUE
  121. IF(GETJAC.AND.ITYP.EQ.1) THEN
  122. DO IE = 1,IDIM
  123. DO ID = 1,IDIM
  124. KTOTXB(NPOI,ID,IE) = KTOTXB(NPOI,ID,IE) +
  125. & DFDX*(XPALB(I,ID1+ID)*XPALB(I,ID1+IE))
  126. KTOTVB(NPOI,ID,IE) = KTOTVB(NPOI,ID,IE) +
  127. & DFDV*(XPALB(I,ID1+ID)*XPALB(I,ID1+IE))
  128. ENDDO
  129. ENDDO
  130. ENDIF
  131.  
  132. *
  133. *--------------------------------------------------------------------*
  134. * --- choc elementaire POINT_PLAN_FROTTEMENT
  135. * avec ou sans amortissement
  136. *--------------------------------------------------------------------*
  137. *
  138. ELSEIF (ITYP.EQ.3 .OR. ITYP.EQ.103) THEN
  139. NPOI = IPLIB(I,1)
  140. IGP = IPALB(I,2)
  141. IDIM = IPALB(I,3)
  142. Cbp, 2020 : on intercale 2 regul + Ve
  143. ID1 = 9
  144. IDVe = ID1 + IDIM
  145. ID2 = ID1 + 2*IDIM
  146. ID3 = ID1 + 3*IDIM
  147. ID4 = ID1 + 4*IDIM
  148. ID5 = ID1 + 5*IDIM
  149. ID6 = ID1 + 6*IDIM
  150. ID7 = ID1 + 7*IDIM
  151.  
  152. * Si glissement au pas precedent, reactualisation de la position
  153. * origine d'adherence
  154. IF (IGP.EQ.1 .OR. IGP.EQ.-1) THEN
  155. DO 30 ID=1,IDIM
  156. XPALB(I,ID5+ID) = XPTB(NPOI,1,ID) +
  157. & FEXPSM(NPOI,NPA,IND1,ID)
  158. 30 CONTINUE
  159. c si adherence et entrainement, le point d'origine avance !
  160. ELSEIF (IND.ne.3) THEN
  161. DO ID=1,IDIM
  162. XPALB(I,ID5+ID)=XPALB(I,ID5+ID) + XPALB(I,IDVe+ID)*PDTS2
  163. ENDDO
  164. ENDIF
  165.  
  166. * Calcul de l'enfoncement et de la vitesse normale
  167. c XDEP : deplacement normal = x(t_{ind})*n
  168. c XVITN : vitesse normale = v(t_{ind})*n = (dx*n)/dt
  169. XDEP = 0.D0
  170. XVITN = 0.D0
  171. PSN0 = 0.D0
  172. DO 32 ID = 1,IDIM
  173. IDD1 = 3 + ID
  174. XDE2 = XPTB(NPOI,1,ID)
  175. cbp,2020-09 XDM2 = XPTB(NPOI,IND2,ID)
  176. XVALB(I,IND,IDD1) = XDE2
  177. XDE2 = XDE2 + FEXPSM(NPOI,NPA,IND1,ID)
  178. cbp,2020-09 XDM2 = XDM2 + FEXPSM(NPOI,NPAM1,INDM1,ID)
  179. cbp,2020-09c XPALB(I,ID2+ID) = dx = x(t_ind)-x(t_ind2)
  180. cbp,2020-09 XPALB(I,ID2+ID) = XDE2 - XDM2
  181. cbp,2020-09 : la vitesse liee aux pseudo modes FEXPSM est negligee...
  182. c XPALB(I,ID2+ID) = v(t_ind)
  183. XPALB(I,ID2+ID) = XPTB(NPOI,2,ID)
  184. c XPALB(I,ID3+ID) = dx_adhe = x(t_ind)-x(t_adherence)
  185. XPALB(I,ID3+ID) = XDE2 - XPALB(I,ID5+ID)
  186. XDEP = XDEP + XDE2 * XPALB(I,ID1+ID)
  187. XVITN = XVITN + XPALB(I,ID2+ID) * XPALB(I,ID1+ID)
  188. PSN0 = PSN0 + XPALB(I,ID3+ID) * XPALB(I,ID1+ID)
  189. 32 CONTINUE
  190. * Projette sur le plan tangent la vitesse et la variation de deplacement
  191. * par rapport a la position origine d'adherence sur le plan tangent
  192. * XPALB(I,ID2+ID) = (dx - (dx*n)*n)/dt
  193. * avec dx = x(t_ind)-x(t_ind2)
  194. * XPALB(I,ID3+ID) = dx_adhe - (dx_adhe*n)*n
  195. * avec dx_adhe = x(t_ind)-x(t_adherence)
  196. DO 34 ID = 1,IDIM
  197. XPALB(I,ID2+ID) = (XPALB(I,ID2+ID) - XVITN*XPALB(I,ID1+ID))
  198. cbp,2020-09 & / PDTS2
  199. XPALB(I,ID3+ID) = XPALB(I,ID3+ID) - PSN0 * XPALB(I,ID1+ID)
  200. 34 CONTINUE
  201. cbp,2020 vitesse relative = absolue - entrainement
  202. DO ID=1,IDIM
  203. XPALB(I,ID2+ID)=XPALB(I,ID2+ID) - XPALB(I,IDVe+ID)
  204. ENDDO
  205. c Vitesse normale
  206. cbp,2020-09 XVITN = XVITN / PDTS2
  207. XVALB(I,IND,3) = XVITN
  208. IF (ITYP.EQ.3) THEN
  209. cbp,2020 CALL DYCHA4(XDEP,XVITN,IDIM,IGP,XPALB,NLIAB,I,XFN,XFT,XPUS,
  210. CALL DYCHA1(XDEP,XVITN,IDIM,IGP,XPALB,NLIAB,I,XFN,XFT,XPUS,
  211. & iannul)
  212. ELSE
  213. cbp,2020 CALL DYCHA41(XDEP,XVITN,IDIM,IGP,XPALB,NLIAB,I,XFN,XFT,XPUS,
  214. CALL DYCHA11(XDEP,XVITN,IDIM,IGP,XPALB,NLIAB,I,XFN,XFT,XPUS,
  215. & XABSCI,XORDON,NIP,iannul)
  216. ENDIF
  217. XVALB(I,IND,1) = XFN
  218. XVALB(I,IND,10) = ABS(XFT)
  219. XVALB(I,IND,12) = XPUS
  220. IGPM1 = IPALB(I,2)
  221. IPALB(I,2) = IGP
  222. * vitesse tangentielle de glissement
  223. IF (IGP.EQ.1) THEN
  224. PS = 0.D0
  225. DO 20 ID = 1,IDIM
  226. PS = PS + (XPALB(I,ID2+ID)*XPALB(I,ID2+ID))
  227. 20 CONTINUE
  228. XVITT = SQRT(PS)
  229. ELSE
  230. XVITT = 0.D0
  231. ENDIF
  232. XVALB(I,IND,11) = XVITT
  233. * si glissement, stockage de la vitesse et force tangentielle
  234. IF (IGP.EQ.1.OR.IGP.EQ.-1) THEN
  235. DO 36 ID = 1,IDIM
  236. XPALB(I,ID6+ID) = XPALB(I,ID2+ID)
  237. XPALB(I,ID7+ID) = XPALB(I,ID4+ID)
  238. 36 CONTINUE
  239. ENDIF
  240. * Stockage de la force F = F + Fn*n + Ft
  241. DO 38 ID = 1,IDIM
  242. FTOTB(NPOI,ID) = FTOTB(NPOI,ID) + XFN * XPALB(I,ID1+ID)
  243. & + XPALB(I,ID4+ID)
  244. 38 CONTINUE
  245.  
  246.  
  247. *--------------------------------------------------------------------*
  248. * --- choc elementaire CERCLE_PLAN_FROTTEMENT
  249. * avec ou sans amortissement
  250. *--------------------------------------------------------------------*
  251. *
  252. ELSE IF (ITYP.EQ.5 .OR. ITYP.EQ.6) THEN
  253. NPOI = IPLIB(I,1)
  254. IGP = IPALB(I,2)
  255. IDIM = IPALB(I,3)
  256. IF (ITYP.EQ.5) THEN
  257. ID1 = 6
  258. ELSE
  259. ID1 = 7
  260. ENDIF
  261. ID2 = ID1 + IDIM
  262. ID3 = ID1 + 2*IDIM
  263. ID4 = ID1 + 3*IDIM
  264. ID5 = ID1 + 4*IDIM
  265. ID6 = ID1 + 5*IDIM
  266. ID7 = ID1 + 6*IDIM
  267. ID8 = ID1 + 1 + 7*IDIM
  268. * XMP = n * Rayon
  269. XMP1 = XPALB(I,ID1+1) * XPALB(I,ID8)
  270. XMP2 = XPALB(I,ID1+2) * XPALB(I,ID8)
  271. XMP3 = XPALB(I,ID1+3) * XPALB(I,ID8)
  272. cbp,2020-09* calcul du deplacement du point de contact au pas precedent
  273. cbp,2020-09* XPTPP2 = Ucontact(t) = Ucentre(t) + R(t) ∧ (n * Rayon)
  274. cbp,2020-09 XPTPP2(1) = XPTB(NPOI,IND2,1) +
  275. cbp,2020-09 & ( ( XPTB(NPOI,IND2,5) * XMP3 ) -
  276. cbp,2020-09 & ( XPTB(NPOI,IND2,6) * XMP2 ) )
  277. cbp,2020-09 XPTPP2(2) = XPTB(NPOI,IND2,2) +
  278. cbp,2020-09 & ( ( XPTB(NPOI,IND2,6) * XMP1 ) -
  279. cbp,2020-09 & ( XPTB(NPOI,IND2,4) * XMP3 ) )
  280. cbp,2020-09 XPTPP2(3) = XPTB(NPOI,IND2,3) +
  281. cbp,2020-09 & ( ( XPTB(NPOI,IND2,4) * XMP2 ) -
  282. cbp,2020-09 & ( XPTB(NPOI,IND2,5) * XMP1 ) )
  283. cbp,2020-09 XPSMPM(1) = FEXPSM(NPOI,NPAM1,INDM1,1) +
  284. cbp,2020-09 & ( ( FEXPSM(NPOI,NPAM1,INDM1,5) * XMP3 ) -
  285. cbp,2020-09 & ( FEXPSM(NPOI,NPAM1,INDM1,6) * XMP2 ) )
  286. cbp,2020-09 XPSMPM(2) = FEXPSM(NPOI,NPAM1,INDM1,2) +
  287. cbp,2020-09 & ( ( FEXPSM(NPOI,NPAM1,INDM1,6) * XMP1 ) -
  288. cbp,2020-09 & ( FEXPSM(NPOI,NPAM1,INDM1,4) * XMP3 ) )
  289. cbp,2020-09 XPSMPM(3) = FEXPSM(NPOI,NPAM1,INDM1,3) +
  290. cbp,2020-09 & ( ( FEXPSM(NPOI,NPAM1,INDM1,4) * XMP2 ) -
  291. cbp,2020-09 & ( FEXPSM(NPOI,NPAM1,INDM1,5) * XMP1 ) )
  292. cbp,2020-09 : la vitesse liee aux pseudo modes FEXPSM est negligee...
  293. * calcul de la vitesse du point de contact au pas courant
  294. * XPTPP2 = Vcontact(t) = Vcentre(t) + dR/dt(t) ∧ (n * Rayon)
  295. XPTPP2(1) = XPTB(NPOI,2,1) +
  296. & ( ( XPTB(NPOI,2,5) * XMP3 ) -
  297. & ( XPTB(NPOI,2,6) * XMP2 ) )
  298. XPTPP2(2) = XPTB(NPOI,2,2) +
  299. & ( ( XPTB(NPOI,2,6) * XMP1 ) -
  300. & ( XPTB(NPOI,2,4) * XMP3 ) )
  301. XPTPP2(3) = XPTB(NPOI,2,3) +
  302. & ( ( XPTB(NPOI,2,4) * XMP2 ) -
  303. & ( XPTB(NPOI,2,5) * XMP1 ) )
  304. * calcul du deplacement du point de contact au pas courant
  305. * XPTP2 = Ucontact(t+dt) = Ucentre(t+dt) + R(t+dt) ∧ (n * Rayon)
  306. XPTP2(1) = XPTB(NPOI,1,1) +
  307. & ( ( XPTB(NPOI,1,5) * XMP3 ) -
  308. & ( XPTB(NPOI,1,6) * XMP2 ) )
  309. XPTP2(2) = XPTB(NPOI,1,2) +
  310. & ( ( XPTB(NPOI,1,6) * XMP1 ) -
  311. & ( XPTB(NPOI,1,4) * XMP3 ) )
  312. XPTP2(3) = XPTB(NPOI,1,3) +
  313. & ( ( XPTB(NPOI,1,4) * XMP2 ) -
  314. & ( XPTB(NPOI,1,5) * XMP1 ) )
  315. XPSMP(1) = FEXPSM(NPOI,NPA,IND1,1) +
  316. & ( ( FEXPSM(NPOI,NPA,IND1,5) * XMP3 ) -
  317. & ( FEXPSM(NPOI,NPA,IND1,6) * XMP2 ) )
  318. XPSMP(2) = FEXPSM(NPOI,NPA,IND1,2) +
  319. & ( ( FEXPSM(NPOI,NPA,IND1,6) * XMP1 ) -
  320. & ( FEXPSM(NPOI,NPA,IND1,4) * XMP3 ) )
  321. XPSMP(3) = FEXPSM(NPOI,NPA,IND1,3) +
  322. & ( ( FEXPSM(NPOI,NPA,IND1,4) * XMP2 ) -
  323. & ( FEXPSM(NPOI,NPA,IND1,5) * XMP1 ) )
  324. c write(*,*) 'devfb1: XPTB(ind )=',(XPTB(NPOI,IND,iou),iou=1,6)
  325. c write(*,*) 'devfb1: XPTB(ind2)=',(XPTB(NPOI,IND2,iou),iou=1,6)
  326. *
  327. * Si glissement au pas precedent, reactualisation de la position
  328. * origine d'adherence
  329. IF (IGP.EQ.1 .OR. IGP.EQ.-1) THEN
  330. DO 50 ID=1,IDIM
  331. XPALB(I,ID5+ID) = XPTP2(ID) + XPSMP(ID)
  332. 50 CONTINUE
  333. ENDIF
  334. * Calcul de l'enfoncement et de la vitesse normale
  335. XDEP = 0.D0
  336. XVITN = 0.D0
  337. PSN0 = 0.D0
  338. DO 52 ID = 1,IDIM
  339. IDD1 = 3 + ID
  340. IDD2 = 6 + ID
  341. IDD3 = 15 + ID
  342. XDE2 = XPTP2(ID)
  343. cbp,2020-09 XDM2 = XPTPP2(ID)
  344. XVI2 = XPTPP2(ID)
  345. XVALB(I,IND,IDD1) = XPTB(NPOI,1,ID)
  346. cbp,2020-09 XVALB(I,IND,IDD2) = (XDE2 - XDM2 ) / pdts2
  347. XVALB(I,IND,IDD2) = XVI2
  348. XVALB(I,IND,IDD3) = XPTB(NPOI,1,ID+3)
  349. XDE2 = XDE2 + XPSMP(ID)
  350. cbp,2020-09 XDM2 = XDM2 + XPSMPM(ID)
  351. cbp,2020-09 XPALB(I,ID2+ID) = XDE2 - XDM2
  352. XPALB(I,ID2+ID) = XVI2
  353. c XPALB(I,ID3+ID) = dx_adhe = x(t_ind)-x(t_adherence)
  354. XPALB(I,ID3+ID) = XDE2 - XPALB(I,ID5+ID)
  355. XDEP = XDEP + XDE2 * XPALB(I,ID1+ID)
  356. XVITN= XVITN+ XPALB(I,ID2+ID) * XPALB(I,ID1+ID)
  357. PSN0 = PSN0 + XPALB(I,ID3+ID) * XPALB(I,ID1+ID)
  358. 52 CONTINUE
  359. * Projette la vitesse et la variation de deplacement par rapport a
  360. * la position origine d'adherence sur le plan tangent
  361. DO 54 ID = 1,IDIM
  362. XPALB(I,ID2+ID) = (XPALB(I,ID2+ID) - XVITN*XPALB(I,ID1+ID))
  363. cbp,2020-09 & / PDTS2
  364. XPALB(I,ID3+ID) = XPALB(I,ID3+ID) - PSN0 * XPALB(I,ID1+ID)
  365. 54 CONTINUE
  366. IF (ITYP.EQ.5) THEN
  367. CALL DYCHE4(XDEP,IDIM,IGP,XPALB,NLIAB,I,XFN,XFT,XPUS,
  368. & iannul)
  369. ELSE
  370. cbp,2020-09 XVITN = PSN / PDTS2
  371. XVALB(I,IND,3) = XVITN
  372. CALL DYCHA4(XDEP,XVITN,IDIM,IGP,XPALB,NLIAB,I,XFN,XFT,XPUS,
  373. & iannul)
  374. ENDIF
  375. XVALB(I,IND, 1) = XFN
  376. XVALB(I,IND,10) = ABS(XFT)
  377. XVALB(I,IND,12) = XPUS
  378. IPALB(I,2) = IGP
  379. * Si glissement, memorisation de la vitesse tangentielle et de la force
  380. * tangentielle
  381. IF (IGP.EQ.1.OR.IGP.EQ.-1) THEN
  382. DO 56 ID = 1,IDIM
  383. XPALB(I,ID6+ID) = XPALB(I,ID2+ID)
  384. XPALB(I,ID7+ID) = XPALB(I,ID4+ID)
  385. 56 CONTINUE
  386. ENDIF
  387. * calcul de la force : F = Fn*n + Ft
  388. DO 58 ID = 1,IDIM
  389. XFOR = ( XFN * XPALB(I,ID1+ID) ) + XPALB(I,ID4+ID)
  390. XFNT(ID) = XFOR
  391. FTOTB(NPOI,ID) = FTOTB(NPOI,ID) + XFOR
  392. 58 CONTINUE
  393. * calcul du moment : M = R ∧ F
  394. XMPFP1 = ( XMP2 * XFNT(3) ) - ( XMP3 * XFNT(2) )
  395. XMPFP2 = ( XMP3 * XFNT(1) ) - ( XMP1 * XFNT(3) )
  396. XMPFP3 = ( XMP1 * XFNT(2) ) - ( XMP2 * XFNT(1) )
  397. XVALB(I,IND,13) = XMPFP1
  398. XVALB(I,IND,14) = XMPFP2
  399. XVALB(I,IND,15) = XMPFP3
  400. FTOTB(NPOI,4) = FTOTB(NPOI,4) + XMPFP1
  401. FTOTB(NPOI,5) = FTOTB(NPOI,5) + XMPFP2
  402. FTOTB(NPOI,6) = FTOTB(NPOI,6) + XMPFP3
  403.  
  404.  
  405. *--------------------------------------------------------------------*
  406. * --- choc elementaire POINT_PLAN_FLUIDE
  407. *--------------------------------------------------------------------*
  408. *
  409. ELSE IF (ITYP.EQ.7) THEN
  410. NPOI = IPLIB(I,1)
  411. IDIM = IPALB(I,3)
  412. XINER = XPALB(I,1)
  413. XCONV = XPALB(I,2)
  414. XVISC = XPALB(I,3)
  415. XPCEL = XPALB(I,4)
  416. XPCRA = XPALB(I,5)
  417. XJEU = XPALB(I,6)
  418. ID1 = 6
  419. ID2 = ID1 + IDIM
  420. XDEP = 0.D0
  421. DO 70 ID = 1,IDIM
  422. XDE2 = XPTB(NPOI,1,ID)
  423. XVALB(I,IND,ID) = XDE2
  424. XDE2 = XDE2 + FEXPSM(NPOI,NPA,IND1,ID)
  425. XDEP = XDEP + XDE2 * XPALB(I,ID1+ID)
  426. 70 CONTINUE
  427. XDEPM1 = XPALB(I,ID2+1)
  428. XVITM1 = XPALB(I,ID2+2)
  429. XACCM1 = XPALB(I,ID2+3)
  430. XVIT = (XDEP - XDEPM1) / PDTS2
  431. XACC = (XVIT - XVITM1) / PDTS2
  432. XPALB(I,ID2+1) = XDEP
  433. XPALB(I,ID2+2) = XVIT
  434. XPALB(I,ID2+3) = XACC
  435. XDH = XJEU - XDEP
  436. * Calcul de la force d'inertie
  437. CALL DYFINE(XDH,XDEP,XACC,XJEU,XINER,XFI,iannul)
  438. * Calcul de la force de convection
  439. CALL DYFCON(XDH,XDEP,XVIT,XJEU,XCONV,XFC,iannul)
  440. * Calcul de la force de viscosite
  441. CALL DYFVIS(XDH,XDEP,XVIT,XJEU,XVISC,XFV,iannul)
  442. * Calcul de la force de perte de charge
  443. CALL DYFPDC(XDH,XDEP,XVIT,XJEU,XPCEL,XPCRA,XFP,iannul)
  444. *
  445. XFL = XFI + XFC + XFV + XFP
  446. DO 72 ID = 1,IDIM
  447. FTOTB(NPOI,ID) = FTOTB(NPOI,ID) + XFL * XPALB(I,ID1+ID)
  448. 72 CONTINUE
  449. XVALB(I,IND,IDIM+1) = XVIT
  450. XVALB(I,IND,IDIM+2) = XACC
  451. XVALB(I,IND,IDIM+3) = XFI
  452. XVALB(I,IND,IDIM+4) = XFC
  453. XVALB(I,IND,IDIM+5) = XFV
  454. XVALB(I,IND,IDIM+6) = XFP
  455. *
  456. *--------------------------------------------------------------------*
  457. * --- choc ...........
  458. *--------------------------------------------------------------------*
  459. *
  460. * ELSE IF (ITYP.EQ. ) THEN
  461. * .......
  462. * .......
  463. *
  464. ENDIF
  465. *
  466. END
  467.  
  468.  
  469.  
  470.  
  471.  
  472.  
  473.  
  474.  
  475.  
  476.  
  477.  

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