Télécharger bgrmas.eso

Retour à la liste

Numérotation des lignes :

  1. C BGRMAS SOURCE CHAT 05/01/12 21:39:48 5004
  2.  
  3. C=======================================================================
  4. C= B G R M A S =
  5. C= ----------- =
  6. C= =
  7. C= Fonction : =
  8. C= ---------- =
  9. C= Calcul de la matrice de gradients BGR au point de Gauss iGau de =
  10. C= l'element fini de type iTEl. =
  11. C= Le jacobien est egalement evalue au point de Gauss pour verifier =
  12. C= ulterieurement si l'element fini n'est pas trop distordu. =
  13. C= =
  14. C= Parametres : (E)=Entree (S)=Sortie =
  15. C= ------------ =
  16. C= iGau (E) Numero du point de Gauss considere =
  17. C= iTEl (E) Type de l'element fini (cf. NOMTP dans bdata.eso) =
  18. C= NBNO (E) Nombre de noeuds de l'element fini =
  19. C= LRE (E) Nombre de DDL de l'element fini =
  20. C= IFOU (E) Mode de calcul utilise (cf. IFOUR dans CCOPTIO) =
  21. C= NGRA (E) Nombre de composantes du gradient =
  22. C= NN (E) Numero du mode de Fourier (si IFOU=1) =
  23. C= XEL (E) Coordonnees des noeuds de l'element fini etudie =
  24. C= Excen (E) Excentrement dans le cas d'un element coque =
  25. C= SHPTOT (E) Fonctions de forme et leurs derivees =
  26. C= SHP (S) Fonctions de forme et leurs derivees actuelles =
  27. C= BB (S) Matrice de travail =
  28. C= BGR (S) Matrice de gradients (B) calcule au point de Gauss =
  29. C= DJac (S) Jacobien au point de Gauss etudie =
  30. C= IIPDPG (E) Numero du noeud support en modes GENERALISEs =
  31. C= =
  32. C= Remarque : =
  33. C= ---------- =
  34. C= SHPTOT(2 a 4,*) contient les DERIVEES des fonctions de forme par =
  35. C= rapport aux coordonnees de REFERENCE Qsi,Eta,Dzeta. =
  36. C= En sortie du sousprogramme, SHPTOT(2 a 4,*) contient les DERIVEES =
  37. C= des fonctions de FORME par rapport aux coordonnees REELLES x,y,z. =
  38. C=======================================================================
  39.  
  40. SUBROUTINE BGRMAS (iGau,iTEl,NBNO,LRE,IFOU,NGRA,NN,
  41. . XEL,Excen,SHPTOT,SHP,BB,BGR,DJAC,IIPDPG)
  42.  
  43. IMPLICIT INTEGER(I-N)
  44. IMPLICIT REAL*8 (A-H,O-Z)
  45.  
  46. -INC CCOPTIO
  47. -INC CCREEL
  48. -INC SMCOORD
  49.  
  50. DIMENSION XEL(3,*),BGR(NGRA,*),SHP(6,*),SHPTOT(6,NBNO,*),BB(2,*)
  51. DIMENSION GEOM(20),XX(3),YY(3),BBF(4,9)
  52.  
  53. DATA XX / .5, .0, .5 /
  54. DATA YY / .0, .5, .5 /
  55.  
  56. C= Quelques constantes (2.Pi et 4.Pi)
  57. PARAMETER (X2Pi=6.283185307179586476925286766559D0)
  58. PARAMETER (X4Pi=12.566370614359172953850573533118D0)
  59.  
  60. CALL ZERO(BGR,NGRA,LRE)
  61. IF (iTEl.EQ.28.OR.iTEl.EQ.45) GOTO 28
  62. IF (iTEl.GE.57.AND.iTEl.LE.68) GOTO 57
  63.  
  64. C 1 - Elements MASSIFS en MECANIQUE
  65. C ===================================
  66. IFOR=IFOU+4
  67. GOTO (100,110,110,120,130,140,150,150,150,150,
  68. . 150,150,150,150,150,160,160,160,170 ),IFOR
  69. RETURN
  70. C =====
  71. C 1.1 - Elements MASSIFS 2D PLAN GENE
  72. C =====
  73. 100 XXX=XZero
  74. YYY=XZero
  75. DO i=1,NBNO
  76. SHP(1,i)=SHPTOT(1,i,iGau)
  77. SHP(2,i)=SHPTOT(2,i,iGau)
  78. SHP(3,i)=SHPTOT(3,i,iGau)
  79. XXX=XXX+SHP(1,i)*XEL(1,i)
  80. YYY=YYY+SHP(1,i)*XEL(2,i)
  81. ENDDO
  82. CALL JACOBI(XEL,SHP,2,NBNO,DJAC)
  83. K=1
  84. DO i=1,NBNO
  85. BGR(1,K)=SHP(2,i)
  86. BGR(2,K)=SHP(3,i)
  87. BGR(4,K+1)=SHP(2,i)
  88. BGR(5,K+1)=SHP(3,i)
  89. K=K+2
  90. ENDDO
  91. IREF=(IIPDPG-1)*(IDIM+1)
  92. BGR(9,K)=1.
  93. BGR(9,K+1)=XCOOR(IREF+1)-XXX
  94. BGR(9,K+2)=YYY-XCOOR(IREF+2)
  95. RETURN
  96. C =====
  97. C 1.2 - Elements MASSIFS 2D PLAN DEFO ou PLAN CONT
  98. C =====
  99. 110 DO i=1,NBNO
  100. SHP(1,i)=SHPTOT(1,i,iGau)
  101. SHP(2,i)=SHPTOT(2,i,iGau)
  102. SHP(3,i)=SHPTOT(3,i,iGau)
  103. ENDDO
  104. CALL JACOBI(XEL,SHP,2,NBNO,DJAC)
  105. K=1
  106. DO i=1,NBNO
  107. BGR(1,K)=SHP(2,i)
  108. BGR(2,K)=SHP(3,i)
  109. BGR(4,K+1)=SHP(2,i)
  110. BGR(5,K+1)=SHP(3,i)
  111. K=K+2
  112. ENDDO
  113. RETURN
  114. C =====
  115. C 1.3 - Elements MASSIFS 2D AXISymetrique
  116. C =====
  117. 120 DO i=1,NBNO
  118. SHP(1,i)=SHPTOT(1,i,iGau)
  119. SHP(2,i)=SHPTOT(2,i,iGau)
  120. SHP(3,i)=SHPTOT(3,i,iGau)
  121. ENDDO
  122. CALL JACOBI(XEL,SHP,2,NBNO,DJAC)
  123. CALL DISTRR(XEL,SHP,NBNO,RR)
  124. C*OF DJAC=X2Pi*DJAC*RR
  125. DJAC=DJAC*RR
  126. K=1
  127. DO i=1,NBNO
  128. BGR(1,K)=SHP(2,i)
  129. BGR(2,K)=SHP(3,i)
  130. BGR(4,K+1)=SHP(2,i)
  131. BGR(5,K+1)=SHP(3,i)
  132. BGR(9,K)=SHP(1,i)/RR
  133. K=K+2
  134. ENDDO
  135. RETURN
  136. C =====
  137. C 1.4 - Elements MASSIFS 2D FOURIER
  138. C =====
  139. 130 DO i=1,NBNO
  140. SHP(1,i)=SHPTOT(1,i,iGau)
  141. SHP(2,i)=SHPTOT(2,i,iGau)
  142. SHP(3,i)=SHPTOT(3,i,iGau)
  143. ENDDO
  144. CALL JACOBI(XEL,SHP,2,NBNO,DJAC)
  145. CALL DISTRR(XEL,SHP,NBNO,RR)
  146. C*OF DJAC=X2Pi*DJAC*RR
  147. C*OF IF (NN.EQ.0) DJAC=0.5*DJAC
  148. DJAC=DJAC*RR
  149. XNSUR=DBLE(NN)/RR
  150. K=1
  151. DO i=1,NBNO
  152. BGR(1,K)=SHP(2,i)
  153. BGR(2,K)=SHP(3,i)
  154. BGR(3,K)=-SHP(1,i)*XNSUR
  155. BGR(3,K+2)=-SHP(1,i)/RR
  156. BGR(4,K+1)=SHP(2,i)
  157. BGR(5,K+1)=SHP(3,i)
  158. BGR(6,K+1)=-SHP(1,i)*XNSUR
  159. BGR(7,K+2)=SHP(2,i)
  160. BGR(8,K+2)=SHP(3,i)
  161. BGR(9,K)=SHP(1,i)/RR
  162. BGR(9,K+2)=SHP(1,i)*XNSUR
  163. K=K+3
  164. ENDDO
  165. RETURN
  166. C =====
  167. C 1.6 - Elements MASSIFS 3D
  168. C =====
  169. 140 DO i=1,NBNO
  170. SHP(1,i)=SHPTOT(1,i,iGau)
  171. SHP(2,i)=SHPTOT(2,i,iGau)
  172. SHP(3,i)=SHPTOT(3,i,iGau)
  173. SHP(4,i)=SHPTOT(4,i,iGau)
  174. ENDDO
  175. CALL JACOBI(XEL,SHP,3,NBNO,DJAC)
  176. K=1
  177. DO i=1,NBNO
  178. BGR(1,K)=SHP(2,i)
  179. BGR(2,K)=SHP(3,i)
  180. BGR(3,K)=SHP(4,i)
  181. BGR(4,K+1)=SHP(2,i)
  182. BGR(5,K+1)=SHP(3,i)
  183. BGR(6,K+1)=SHP(4,i)
  184. BGR(7,K+2)=SHP(2,i)
  185. BGR(8,K+2)=SHP(3,i)
  186. BGR(9,K+2)=SHP(4,i)
  187. K=K+3
  188. ENDDO
  189. RETURN
  190. C =====
  191. C 1.7 - Elements MASSIFS 1D
  192. C =====
  193. C= 1.7.1 - Modes 1D PLAN
  194. 150 DO i=1,NBNO
  195. SHP(1,i)=SHPTOT(1,i,iGau)
  196. SHP(2,i)=SHPTOT(2,i,iGau)
  197. ENDDO
  198. CALL JACOBI(XEL,SHP,1,NBNO,DJAC)
  199. DO i=1,NBNO
  200. BGR(1,i)=SHP(2,i)
  201. ENDDO
  202. IF (IFOU.GE.7) THEN
  203. BGR(9,i)=1.
  204. IF (IFOU.EQ.11) BGR(5,i+1)=1.
  205. ENDIF
  206. RETURN
  207. C= 1.7.2 - Modes 1D AXIS
  208. 160 DO i=1,NBNO
  209. SHP(1,i)=SHPTOT(1,i,iGau)
  210. SHP(2,i)=SHPTOT(2,i,iGau)
  211. ENDDO
  212. CALL JACOBI(XEL,SHP,1,NBNO,DJAC)
  213. CALL DISTRR(XEL,SHP,NBNO,RR)
  214. C*OF DJAC=X2Pi*DJAC*RR
  215. DJAC=DJAC*RR
  216. DO i=1,NBNO
  217. BGR(1,i)=SHP(2,i)
  218. BGR(9,i)=SHP(1,i)/RR
  219. ENDDO
  220. IF (IFOU.EQ.14) BGR(5,i)=1.
  221. RETURN
  222. C= 1.7.3 - Mode 1D SPHE
  223. 170 DO i=1,NBNO
  224. SHP(1,i)=SHPTOT(1,i,iGau)
  225. SHP(2,i)=SHPTOT(2,i,iGau)
  226. ENDDO
  227. CALL JACOBI(XEL,SHP,1,NBNO,DJAC)
  228. CALL DISTRR(XEL,SHP,NBNO,RR)
  229. C*OF DJAC=X4Pi*DJAC*RR*RR
  230. DJAC=DJAC*RR*RR
  231. DO i=1,NBNO
  232. BGR(1,i)=SHP(2,i)
  233. ZZ=SHP(1,i)/RR
  234. BGR(5,i)=ZZ
  235. BGR(9,i)=ZZ
  236. ENDDO
  237. RETURN
  238.  
  239. C 2 - Elements MASSIFS en THERMIQUE
  240. C ===================================
  241. 57 IFOR=IFOU+4
  242. GOTO (200,200,200,210,210,220,230,230,230,230,
  243. . 230,230,230,230,230,230,230,230,230 ),IFOR
  244. RETURN
  245. C =====
  246. C 2.1 - Elements MASSIFS 2D
  247. C =====
  248. 200 DO i=1,NBNO
  249. SHP(1,i)=SHPTOT(1,i,iGau)
  250. SHP(2,i)=SHPTOT(2,i,iGau)
  251. SHP(3,i)=SHPTOT(3,i,iGau)
  252. ENDDO
  253. CALL JACOBI(XEL,SHP,2,NBNO,DJAC)
  254. DO i=1,NBNO
  255. BGR(1,i)=SHP(2,i)
  256. BGR(2,i)=SHP(3,i)
  257. ENDDO
  258. RETURN
  259. C =====
  260. C 2.2 - Elements MASSIFS 2D AXISymetrique
  261. C 2.3 - Elements MASSIFS 2D FOURIER
  262. C =====
  263. 210 DO i=1,NBNO
  264. SHP(1,i)=SHPTOT(1,i,iGau)
  265. SHP(2,i)=SHPTOT(2,i,iGau)
  266. SHP(3,i)=SHPTOT(3,i,iGau)
  267. ENDDO
  268. CALL JACOBI(XEL,SHP,2,NBNO,DJAC)
  269. CALL DISTRR(XEL,SHP,NBNO,RR)
  270. C*OF DJAC=X2Pi*DJAC*RR
  271. DJAC=DJAC*RR
  272. DO i=1,NBNO
  273. BGR(1,i)=SHP(2,i)
  274. BGR(2,i)=SHP(3,i)
  275. ENDDO
  276. RETURN
  277. C =====
  278. C 2.4 - Elements MASSIFS 3D
  279. C =====
  280. 220 DO i=1,NBNO
  281. SHP(1,i)=SHPTOT(1,i,iGau)
  282. SHP(2,i)=SHPTOT(2,i,iGau)
  283. SHP(3,i)=SHPTOT(3,i,iGau)
  284. SHP(4,i)=SHPTOT(4,i,iGau)
  285. ENDDO
  286. CALL JACOBI(XEL,SHP,3,NBNO,DJAC)
  287. DO i=1,NBNO
  288. BGR(1,i)=SHP(2,i)
  289. BGR(2,i)=SHP(3,i)
  290. BGR(3,i)=SHP(4,i)
  291. ENDDO
  292. RETURN
  293. C =====
  294. C 2.5 - Elements MASSIFS 1D
  295. C =====
  296. 230 DO i=1,NBNO
  297. SHP(1,i)=SHPTOT(1,i,iGau)
  298. SHP(2,i)=SHPTOT(2,i,iGau)
  299. ENDDO
  300. CALL JACOBI(XEL,SHP,1,NBNO,DJAC)
  301. IF (IFOUR.GE.12.AND.IFOUR.LE.14) THEN
  302. CALL DISTRR(XEL,SHP,NBNO,RR)
  303. C*OF DJAC=X2Pi*DJAC*RR
  304. DJAC=DJAC*RR
  305. ELSE IF (IFOUR.EQ.15) THEN
  306. CALL DISTRR(XEL,SHP,NBNO,RR)
  307. C*OF DJAC=X4Pi*DJAC*RR*RR
  308. DJAC=DJAC*RR*RR
  309. ENDIF
  310. DO i=1,NBNO
  311. BGR(1,i)=SHP(2,i)
  312. ENDDO
  313. RETURN
  314.  
  315. C 3 - Element COQUE DKT en MECANIQUE
  316. C ====================================
  317. 28 DO i=1,NBNO
  318. SHP(1,i)=SHPTOT(1,i,iGau)
  319. SHP(2,i)=SHPTOT(2,i,iGau)
  320. SHP(3,i)=SHPTOT(3,i,iGau)
  321. ENDDO
  322. CALL JACOBI(XEL,SHP,2,NBNO,DJAC)
  323. K=1
  324. DO i=1,NBNO
  325. BGR(1,K)=SHP(2,i)
  326. BGR(2,K)=SHP(3,i)
  327. BGR(4,K+1)=SHP(2,i)
  328. BGR(5,K+1)=SHP(3,i)
  329. K=K+6
  330. ENDDO
  331. C= Prise en compte de l'excentrement des elements
  332. CALL GEOCST(XEL,GEOM)
  333. CALL BBGFDK(XX(iGau),YY(iGau),GEOM,BBF)
  334. K=2
  335. KK=0
  336. DO i=1,NBNO
  337. DO j=1,3
  338. BGR(1,K+j)=Excen*BBF(1,j+KK)
  339. BGR(2,K+j)=Excen*BBF(2,j+KK)
  340. BGR(4,K+j)=Excen*BBF(3,j+KK)
  341. BGR(5,K+j)=Excen*BBF(4,j+KK)
  342. ENDDO
  343. K=K+6
  344. KK=KK+3
  345. ENDDO
  346. C= Fin du traitement de l'excentrement
  347. CALL GERADK(XEL,GEOM)
  348. CALL BBGRDK(XX(iGau),YY(iGau),GEOM,BB)
  349. K=2
  350. KK=0
  351. DO i=1,3
  352. DO j=1,3
  353. BGR(3,K+j)= BB(1,j+KK)
  354. BGR(6,K+j)= BB(2,j+KK)
  355. BGR(7,K+j)=-BB(1,j+KK)
  356. BGR(8,K+j)=-BB(2,j+KK)
  357. ENDDO
  358. K=K+6
  359. KK=KK+3
  360. ENDDO
  361. RETURN
  362.  
  363. END
  364.  
  365.  
  366.  
  367.  

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