Télécharger bbar.eso

Retour à la liste

Numérotation des lignes :

bbar
  1. C BBAR SOURCE SP204843 25/07/11 21:15:01 12317
  2.  
  3. SUBROUTINE BBAR(IGAU,NBPGAU,POIGAU,QSIGAU,ETAGAU,DZEGAU,
  4. 1 MELE,NBNO,LRE,IFOU,NST,XE,DJAC,A,BB,BGENE)
  5.  
  6. C=======================================================================
  7. C= B B A R =
  8. C= ----------- =
  9. C= Fonction : =
  10. C= ---------- =
  11. C= CALCUL DE LA MATRICE B-BARRE - ELEMENTS INCOMPRESSIBLES 'IC--' =
  12. C= - EN 2D : ELEMENTS ICT3, ICT6, ICQ4, ICQ8 =
  13. C= - EN 3D : ELEMENTS ICC8, IC20, ICT4, ICY5 =
  14. C= ELEMENTS IC10, ICP6, IC15, IC13 -> A voir =
  15. C= =
  16. C= Calcul de la matrice B reliant les deformations en un point d'un =
  17. C= element fini aux ddls de deplacement aux noeuds de cet element =
  18. C= Le jacobien est egalement evalue au point de Gauss pour verifier =
  19. C= ulterieurement si l'element fini n'est pas trop distordu. =
  20. C= =
  21. C= Parametres : (E)=Entree (S)=Sortie =
  22. C= ------------ =
  23. C= IGAU (E) Numero du point de Gauss considere =
  24. C= NBPGAU (E) Nombre de points de Gauss de l'element fini =
  25. C= POIGAU,QSIGAU (E) | Poids et coordonnees de reference des =
  26. C= ETAGAU,DZEGAU (E) | differents points de Gauss de l'element =
  27. C= MELE (E) Type de l'element fini (cf. NOMTP dans bdata.eso) =
  28. C= NBNO (E) Nombre de noeuds de l'element fini =
  29. C= LRE (E) Nombre de DDL de l'element fini =
  30. C= IFOU (E) Mode de calcul utilise (cf. IFOUR dans CCOPTIO) =
  31. C= NST (E) Nombre de composantes de deformations =
  32. C= XE (E) Coordonnees des noeuds de l'element fini etudie =
  33. C= DJAC (S) Jacobien au point de Gauss etudie =
  34. C= BGENE (E/S) Matrice de gradients (B) calcule au point de Gauss =
  35. C= A,BB (S) Matrices utiles pour la methode BBar =
  36. C=======================================================================
  37. C LRE = NOMBRE DE COLONNES DE LA MATRICE B
  38. C A = COEFFICIENTS DE MODIFICATION
  39. C BB(3,LRE) = MATRICE B-BARRE DILATATION
  40. C BGENE(NST,LRE) = MATRICE B
  41. C=======================================================================
  42.  
  43. IMPLICIT INTEGER(I-N)
  44. IMPLICIT REAL*8(A-H,O-Z)
  45.  
  46. PARAMETER (XZero=0.D0, XUn=1.D0, X1s2=0.5D0,
  47. & X1s3=0.333333333333333333333333333333333333333333D0)
  48.  
  49. DIMENSION XE(3,*),BGENE(NST,*),
  50. & POIGAU(*),QSIGAU(*),ETAGAU(*),DZEGAU(*),
  51. & A(4,*),BB(3,*)
  52.  
  53. * WRITE(6,*) 'Entree dans le sousprogramme BBAR'
  54. * WRITE(6,*) 'Element',MELE,NST,IFOU
  55. * WRITE(6,*) 'Point Gauss: xsi=',QSIGAU(IGAU),'eta=',ETAGAU(IGAU),
  56. * & 'dze=',DZEGAU(IGAU)
  57.  
  58. C-----------------------------------------------------------------------
  59. C---- Elements incompressibles (MFR = 31) ------------------------------
  60. C-----------------------------------------------------------------------
  61. C NOM : ICT3, ICQ4, ICT6, ICQ8, ICC8, ICT4, ICP6, IC20, IC10, IC15
  62. C MELE : 69 , 70 , 71 , 72 , 73 , 74 , 75 , 76 , 77 , 78
  63. C NOM : ICY5, IC13
  64. C MELE : 273 , 274 ,
  65. C-----------------------------------------------------------------------
  66. C= 0 = Quelques initialisations ========================================
  67. IFR = IFOU+4
  68. C= Indices des composantes diagonales du gradient / deformation
  69. C= Attention : NST = 9 pour gradient et NST = 6/4/3 pour deformations
  70. I1BG = 1
  71. IF (NST.EQ.9) THEN
  72. I2BG = 5
  73. I3BG = 9
  74. ELSE
  75. I2BG = 2
  76. I3BG = 3
  77. ENDIF
  78.  
  79. C= 1 = Branchement selon l'Element Fini BBAR ============================
  80. IF (MELE.EQ.273) GOTO 273
  81. IF (MELE.EQ.274) GOTO 274
  82. GOTO ( 69, 70, 71, 72, 73, 74, 75, 76, 77, 78 ), (MELE-68)
  83. GOTO 666
  84.  
  85. C-----------------------------------------------------------------------
  86. C----- Element massif bidimensionnel ICT3 ------------------------------
  87. C-----------------------------------------------------------------------
  88. 69 CONTINUE
  89. *W WRITE(*,*) 'Element ICT3',IFOU
  90. GOTO (691,691,691,693),IFR
  91. GOTO 666
  92. *----- Contraintes planes ou deformations planes (IFOU=-2,-1)
  93. 691 CONTINUE
  94. K = 1
  95. DO i = 1,NBNO
  96. BGENE(I2BG,K) = X1s2 * (BB(1,K)-BGENE(I1BG,K))
  97. BGENE(I1BG,K) = X1s2 * (BB(1,K)+BGENE(I1BG,K))
  98. K = K+1
  99. BGENE(I1BG,K) = X1s2 * (BB(2,K)-BGENE(I2BG,K))
  100. BGENE(I2BG,K) = X1s2 * (BB(2,K)+BGENE(I2BG,K))
  101. K = K+1
  102. ENDDO
  103. GOTO 999
  104. *----- Axisymetrie (IFOU=0)
  105. 693 CONTINUE
  106. K = 1
  107. DO i = 1,NBNO
  108. r_z = X1s3 * (BB(1,K)-BGENE(I1BG,K)+BB(3,K)-BGENE(I3BG,K))
  109. BGENE(I1BG,K) = BGENE(I1BG,K) + r_z
  110. BGENE(I2BG,K) = r_z
  111. BGENE(I3BG,K) = BGENE(I3BG,K) + r_z
  112. K = K + 1
  113. r_z = X1s3 * (BB(2,K)-BGENE(I2BG,K))
  114. BGENE(I1BG,K) = r_z
  115. BGENE(I2BG,K) = BGENE(I2BG,K) + r_z
  116. BGENE(I3BG,K) = r_z
  117. K = K + 1
  118. ENDDO
  119. GOTO 999
  120.  
  121. C-----------------------------------------------------------------------
  122. C----- Element massif bidimensionnel ICQ4 ------------------------------
  123. C-----------------------------------------------------------------------
  124. 70 CONTINUE
  125. *W WRITE(*,*) 'Element ICQ4',IFOU
  126. GOTO (700,701,701,703),IFR
  127. GOTO 666
  128. *----- Deformations planes generalisees (IFOU=-3)
  129. 700 CONTINUE
  130. K = 1
  131. DO i = 1,NBNO
  132. BGENE(I2BG,K) = X1s2 * (BB(1,K)-BGENE(I1BG,K))
  133. BGENE(I1BG,K) = BGENE(I1BG,K) + BGENE(I2BG,K)
  134. BGENE(I3BG,K) = BGENE(I2BG,K)
  135. K = K + 1
  136. BGENE(I1BG,K) = X1s2 * (BB(2,K)-BGENE(I2BG,K))
  137. BGENE(I2BG,K) = BGENE(I2BG,K) + BGENE(I1BG,K)
  138. BGENE(I3BG,K) = BGENE(I1BG,K)
  139. K = K + 1
  140. ENDDO
  141. BGENE(I3BG,K+1) = BB(I3BG,K+1)
  142. BGENE(I3BG,K+2) = BB(I3BG,K+2)
  143. GOTO 999
  144.  
  145. *----- Contraintes planes ou deformations planes (IFOU=-2,-1)
  146. 701 CONTINUE
  147. K = 1
  148. DO i = 1,NBNO
  149. BGENE(I2BG,K) = X1s2 * (BB(1,K)-BGENE(I1BG,K))
  150. BGENE(I1BG,K) = X1s2 * (BB(1,K)+BGENE(I1BG,K))
  151. K = K + 1
  152. BGENE(I1BG,K) = X1s2 * (BB(2,K)-BGENE(I2BG,K))
  153. BGENE(I2BG,K) = X1s2 * (BB(2,K)+BGENE(I2BG,K))
  154. K = K + 1
  155. ENDDO
  156. GOTO 999
  157. *----- Axisymetrie (IFOU=0)
  158. 703 CONTINUE
  159. K = 1
  160. DO i = 1,NBNO
  161. r_z = X1s3 * (BB(1,K)-BGENE(I1BG,K)+BB(3,K)-BGENE(I3BG,K))
  162. BGENE(I1BG,K) = BGENE(I1BG,K) + r_z
  163. BGENE(I2BG,K) = r_z
  164. BGENE(I3BG,K) = BGENE(I3BG,K) + r_z
  165. K = K + 1
  166. r_z = X1s3 * (BB(2,K)-BGENE(I2BG,K))
  167. BGENE(I1BG,K) = r_z
  168. BGENE(I2BG,K) = BGENE(I2BG,K) + r_z
  169. BGENE(I3BG,K) = r_z
  170. K = K + 1
  171. ENDDO
  172. GOTO 999
  173.  
  174. C-----------------------------------------------------------------------
  175. C----- Element massif bidimensionnel ICT6 ------------------------------
  176. C-----------------------------------------------------------------------
  177. 71 CONTINUE
  178. * WRITE(6,*) 'Element ICT6',IFOU
  179. GOTO (711,711,711,713),IFR
  180. GOTO 666
  181. *----- Contraintes planes ou deformations planes (IFOU=-2,-1)
  182. 711 CONTINUE
  183. K = 1
  184. DO i = 1,NBNO
  185. BGENE(I2BG,K) = X1s2 * (BB(1,K)-BGENE(I1BG,K))
  186. BGENE(I1BG,K) = X1s2 * (BB(1,K)+BGENE(I1BG,K))
  187. K = K + 1
  188. BGENE(I1BG,K) = X1s2 * (BB(2,K)-BGENE(I2BG,K))
  189. BGENE(I2BG,K) = X1s2 * (BB(2,K)+BGENE(I2BG,K))
  190. K = K + 1
  191. ENDDO
  192. GOTO 999
  193. *----- Axisymetrie (IFOU=0)
  194. 713 CONTINUE
  195. K = 1
  196. DO i = 1,NBNO
  197. r_z = X1s3 * (BB(1,K)-BGENE(I1BG,K)+BB(3,K)-BGENE(I3BG,K))
  198. BGENE(I1BG,K) = BGENE(I1BG,K) + r_z
  199. BGENE(I2BG,K) = r_z
  200. BGENE(I3BG,K) = BGENE(I3BG,K) + r_z
  201. K = K + 1
  202. r_z = X1s3 * (BB(2,K)-BGENE(I2BG,K))
  203. BGENE(I1BG,K) = r_z
  204. BGENE(I2BG,K) = BGENE(I2BG,K) + r_z
  205. BGENE(I3BG,K) = r_z
  206. K = K + 1
  207. ENDDO
  208. GOTO 999
  209.  
  210. C-----------------------------------------------------------------------
  211. C----- Element massif bidimensionnel ICQ8 ------------------------------
  212. C-----------------------------------------------------------------------
  213. 72 CONTINUE
  214. *W WRITE(*,*) 'Element ICQ8',IFOU
  215. QSI_z = QSIGAU(IGAU)
  216. ETA_z = ETAGAU(IGAU)
  217. GOTO (721,721,721,723),IFR
  218. GOTO 666
  219. *----- Contraintes planes ou deformations planes (IFOU=-2,-1)
  220. 721 CONTINUE
  221. *----- Calculs des composantes de BB-DILATATION
  222. BB(1, 1) = A(1, 1) + A(2, 1)*QSI_z + A(3, 1)*ETA_z
  223. BB(2, 2) = A(1, 2) + A(2, 2)*QSI_z + A(3, 2)*ETA_z
  224. BB(1, 3) = A(1, 3) + A(2, 3)*QSI_z + A(3, 3)*ETA_z
  225. BB(2, 4) = A(1, 4) + A(2, 4)*QSI_z + A(3, 4)*ETA_z
  226. BB(1, 5) = A(1, 5) + A(2, 5)*QSI_z + A(3, 5)*ETA_z
  227. BB(2, 6) = A(1, 6) + A(2, 6)*QSI_z + A(3, 6)*ETA_z
  228. BB(1, 7) = A(1, 7) + A(2, 7)*QSI_z + A(3, 7)*ETA_z
  229. BB(2, 8) = A(1, 8) + A(2, 8)*QSI_z + A(3, 8)*ETA_z
  230. BB(1, 9) = A(1, 9) + A(2, 9)*QSI_z + A(3, 9)*ETA_z
  231. BB(2,10) = A(1,10) + A(2,10)*QSI_z + A(3,10)*ETA_z
  232. BB(1,11) = A(1,11) + A(2,11)*QSI_z + A(3,11)*ETA_z
  233. BB(2,12) = A(1,12) + A(2,12)*QSI_z + A(3,12)*ETA_z
  234. BB(1,13) = A(1,13) + A(2,13)*QSI_z + A(3,13)*ETA_z
  235. BB(2,14) = A(1,14) + A(2,14)*QSI_z + A(3,14)*ETA_z
  236. BB(1,15) = A(1,15) + A(2,15)*QSI_z + A(3,15)*ETA_z
  237. BB(2,16) = A(1,16) + A(2,16)*QSI_z + A(3,16)*ETA_z
  238. *W WRITE (*,*) 'Ecriture de la matrice BB[ ]'
  239. *W WRITE (*,4) (('BB(',I,',',J,')=',BB(I,J),I=1,3),J=1,16)
  240. *W 4 FORMAT (3(A,I1,A,I1,A,F8.4,2X))
  241. *----- Calcul des composantes de B-BARRE
  242. K = 1
  243. DO i = 1,NBNO
  244. BGENE(I2BG,K) = X1s2 * (BB(1,K)-BGENE(I1BG,K))
  245. BGENE(I1BG,K) = X1s2 * (BB(1,K)+BGENE(I1BG,K))
  246. K = K + 1
  247. BGENE(I1BG,K) = X1s2 * (BB(2,K)-BGENE(I2BG,K))
  248. BGENE(I2BG,K) = X1s2 * (BB(2,K)+BGENE(I2BG,K))
  249. K = K + 1
  250. ENDDO
  251. GOTO 999
  252. *----- Axisymetrie (IFOU=0)
  253. 723 CONTINUE
  254. *----- Calculs des composantes de BB-DILATATION
  255. BB(1, 1) = A(1, 1) + A(2, 1)*QSI_z + A(3, 1)*ETA_z
  256. BB(2, 2) = A(1, 2) + A(2, 2)*QSI_z + A(3, 2)*ETA_z
  257. BB(3, 1) = A(1, 3) + A(2, 3)*QSI_z + A(3, 3)*ETA_z
  258. BB(1, 3) = A(1, 4) + A(2, 4)*QSI_z + A(3, 4)*ETA_z
  259. BB(2, 4) = A(1, 5) + A(2, 5)*QSI_z + A(3, 5)*ETA_z
  260. BB(3, 3) = A(1, 6) + A(2, 6)*QSI_z + A(3, 6)*ETA_z
  261. BB(1, 5) = A(1, 7) + A(2, 7)*QSI_z + A(3, 7)*ETA_z
  262. BB(2, 6) = A(1, 8) + A(2, 8)*QSI_z + A(3, 8)*ETA_z
  263. BB(3, 5) = A(1, 9) + A(2, 9)*QSI_z + A(3, 9)*ETA_z
  264. BB(1, 7) = A(1,10) + A(2,10)*QSI_z + A(3,10)*ETA_z
  265. BB(2, 8) = A(1,11) + A(2,11)*QSI_z + A(3,11)*ETA_z
  266. BB(3, 7) = A(1,12) + A(2,12)*QSI_z + A(3,12)*ETA_z
  267. BB(1, 9) = A(1,13) + A(2,13)*QSI_z + A(3,13)*ETA_z
  268. BB(2,10) = A(1,14) + A(2,14)*QSI_z + A(3,14)*ETA_z
  269. BB(3, 9) = A(1,15) + A(2,15)*QSI_z + A(3,15)*ETA_z
  270. BB(1,11) = A(1,16) + A(2,16)*QSI_z + A(3,16)*ETA_z
  271. BB(2,12) = A(1,17) + A(2,17)*QSI_z + A(3,17)*ETA_z
  272. BB(3,11) = A(1,18) + A(2,18)*QSI_z + A(3,18)*ETA_z
  273. BB(1,13) = A(1,19) + A(2,19)*QSI_z + A(3,19)*ETA_z
  274. BB(2,14) = A(1,20) + A(2,20)*QSI_z + A(3,20)*ETA_z
  275. BB(3,13) = A(1,21) + A(2,21)*QSI_z + A(3,21)*ETA_z
  276. BB(1,15) = A(1,22) + A(2,22)*QSI_z + A(3,22)*ETA_z
  277. BB(2,16) = A(1,23) + A(2,23)*QSI_z + A(3,23)*ETA_z
  278. BB(3,15) = A(1,24) + A(2,24)*QSI_z + A(3,24)*ETA_z
  279. *W WRITE (*,*) 'Ecriture de la matrice BB[ ]'
  280. *W WRITE (*,4) (('BB(',I,',',J,')=',BB(I,J),I=1,3),J=1,16)
  281. *----- Calcul des composantes de B-BARRE
  282. K = 1
  283. DO i = 1,NBNO
  284. r_z = X1s3 * (BB(1,K)-BGENE(I1BG,K)+BB(3,K)-BGENE(I3BG,K))
  285. BGENE(I1BG,K) = BGENE(I1BG,K) + r_z
  286. BGENE(I2BG,K) = r_z
  287. BGENE(I3BG,K) = BGENE(I3BG,K) + r_z
  288. K = K + 1
  289. r_z = X1s3 * (BB(2,K)-BGENE(I2BG,K))
  290. BGENE(I1BG,K) = r_z
  291. BGENE(I2BG,K) = BGENE(I2BG,K) + r_z
  292. BGENE(I3BG,K) = r_z
  293. K = K + 1
  294. ENDDO
  295. GOTO 999
  296.  
  297. C-----------------------------------------------------------------------
  298. C----- Element massif tridimensionnel ICC8,ICT4, ICP6 -----------------------------
  299. C-----------------------------------------------------------------------
  300. 73 CONTINUE
  301. *W WRITE(*,*) 'Element ICC8',IFOU
  302. 74 CONTINUE
  303. *W WRITE(*,*) 'Element ICT4',IFOU
  304. 75 CONTINUE
  305. *W WRITE(*,*) 'Element ICP6',IFOU
  306. 273 CONTINUE
  307. *W WRITE(*,*) 'Element ICY5',IFOU
  308. IF (IFOU.NE.2) GOTO 666
  309. * QSI_z = QSIGAU(IGAU)
  310. * ETA_z = ETAGAU(IGAU)
  311. * DZE_z = DZEGAU(IGAU)
  312. K = 1
  313. DO i = 1,NBNO
  314. BGENE(I3BG,K) = X1s3 * (BB(1,K)-BGENE(I1BG,K))
  315. BGENE(I2BG,K) = X1s3 * (BB(1,K)-BGENE(I1BG,K))
  316. BGENE(I1BG,K) = X1s3 * (BB(1,K) + 2.D0*BGENE(I1BG,K))
  317. K = K+1
  318. BGENE(I1BG,K) = X1s3 * (BB(2,K)-BGENE(I2BG,K))
  319. BGENE(I3BG,K) = X1s3 * (BB(2,K)-BGENE(I2BG,K))
  320. BGENE(I2BG,K) = X1s3 * (BB(2,K) + 2.D0*BGENE(I2BG,K))
  321. K = K+1
  322. BGENE(I1BG,K) = X1s3 * (BB(3,K)-BGENE(I3BG,K))
  323. BGENE(I2BG,K) = X1s3 * (BB(3,K)-BGENE(I3BG,K))
  324. BGENE(I3BG,K) = X1s3 * (BB(3,K) + 2.D0*BGENE(I3BG,K))
  325. K = K+1
  326. ENDDO
  327. GOTO 999
  328.  
  329. C-----------------------------------------------------------------------
  330. C----- Element massif tridimensionnel IC20 IC10 IC15 -------------------
  331. C-----------------------------------------------------------------------
  332. 76 CONTINUE
  333. *W WRITE(*,*) 'Element IC20',IFOU
  334. 77 CONTINUE
  335. *W WRITE(*,*) 'Element IC10',IFOU
  336. 78 CONTINUE
  337. *W WRITE(*,*) 'Element IC15',IFOU
  338. 274 CONTINUE
  339. *W WRITE(*,*) 'Element IC13',IFOU
  340. IF (IFOU.NE.2) GOTO 666
  341. QSI_z = QSIGAU(IGAU)
  342. ETA_z = ETAGAU(IGAU)
  343. DZE_z = DZEGAU(IGAU)
  344.  
  345. *----- Calculs des composantes de BB-DILATATION
  346. K = 0
  347. DO i = 1,NBNO
  348. BB(1,K+1) = A(1,K+1) + A(2,K+1)*QSI_z + A(3,K+1)*ETA_z +
  349. &A(4,K+1)*DZE_z
  350. BB(2,K+2) = A(1,K+2) + A(2,K+2)*QSI_z + A(3,K+2)*ETA_z +
  351. &A(4,K+2)*DZE_z
  352. BB(3,K+3) = A(1,K+3) + A(2,K+3)*QSI_z + A(3,K+3)*ETA_z +
  353. &A(4,K+3)*DZE_z
  354.  
  355. K = K+3
  356. ENDDO
  357.  
  358. *----- Calcul des composantes de B-BARRE
  359. K = 1
  360. DO i = 1,NBNO
  361. BGENE(I3BG,K) = X1s3 * (BB(1,K)-BGENE(I1BG,K))
  362. BGENE(I2BG,K) = X1s3 * (BB(1,K)-BGENE(I1BG,K))
  363. BGENE(I1BG,K) = X1s3 * (BB(1,K) + 2.D0*BGENE(I1BG,K))
  364. K = K+1
  365. BGENE(I1BG,K) = X1s3 * (BB(2,K)-BGENE(I2BG,K))
  366. BGENE(I3BG,K) = X1s3 * (BB(2,K)-BGENE(I2BG,K))
  367. BGENE(I2BG,K) = X1s3 * (BB(2,K) + 2.D0*BGENE(I2BG,K))
  368. K = K+1
  369. BGENE(I1BG,K) = X1s3 * (BB(3,K)-BGENE(I3BG,K))
  370. BGENE(I2BG,K) = X1s3 * (BB(3,K)-BGENE(I3BG,K))
  371. BGENE(I3BG,K) = X1s3 * (BB(3,K) + 2.D0*BGENE(I3BG,K))
  372. K = K+1
  373. ENDDO
  374. GOTO 999
  375.  
  376. C-----------------------------------------------------------------------
  377. C----- ERREUR : Donnees incompatibles ----------------------------------
  378. C-----------------------------------------------------------------------
  379. 666 CONTINUE
  380. * WRITE(6,*) 'Mode de calcul ',IFOU,' incompatible avec ',
  381. * & 'element ',MELE
  382. CALL ERREUR(5)
  383.  
  384. C-----------------------------------------------------------------------
  385. C----- FIN du sousprogramme --------------------------------------------
  386. C-----------------------------------------------------------------------
  387. 999 CONTINUE
  388. * WRITE(6,*) 'Sortie du sousprogramme BBAR'
  389.  
  390. RETURN
  391. END
  392.  
  393.  
  394.  
  395.  
  396.  
  397.  

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