Télécharger bmatst.eso

Retour à la liste

Numérotation des lignes :

bmatst
  1. C BMATST SOURCE PV 20/09/16 21:15:05 10713
  2.  
  3. C=======================================================================
  4. C= B M A T S T =
  5. C= ----------- =
  6. C= Fonction : =
  7. C= ---------- =
  8. C= Calcul de la matrice B reliant les deformations en un point d'un =
  9. C= element fini aux ddls de deplacement aux noeuds de cet element =
  10. C= Le jacobien est egalement evalue au point de Gauss pour verifier =
  11. C= ulterieurement si l'element fini n'est pas trop distordu. =
  12. C= =
  13. C= Parametres : (E)=Entree (S)=Sortie =
  14. C= ------------ =
  15. C= iGau (E) Numero du point de Gauss considere =
  16. C= NBPGAU (E) Nombre de points de Gauss de l'element fini =
  17. C= POIGAU,QSIGAU (E) | Poids et coordonnees de reference des =
  18. C= ETAGAU,DZEGAU (E) | differents points de Gauss de l'element =
  19. C= ITEL (E) Type de l'element fini (cf. NOMTP dans bdata.eso) =
  20. C= MFR (E) Formulation associee a l'element fini =
  21. C= NBNO (E) Nombre de noeuds de l'element fini =
  22. C= LRE (E) Nombre de DDL de l'element fini =
  23. C= IFOU (E) Mode de calcul utilise (cf. IFOUR dans CCOPTIO) =
  24. C= NST (E) Nombre de composantes de deformations =
  25. C= NN (E) Numero du mode de Fourier (si IFOU=1) =
  26. C= DIM3 (E) Epaisseur dans l'hypothese des contraintes planes =
  27. C= XEL (E) Coordonnees des noeuds de l'element fini etudie =
  28. C= SHPTOT (E) Fonctions de forme et leurs derivees =
  29. C= SHP (S) Fonctions de forme et leurs derivees actuelles =
  30. C= BGENE (S) Matrice de gradients (B) calcule au point de Gauss =
  31. C= DJac (S) Jacobien au point de Gauss etudie =
  32. C= XDPGE,YDPGE (E) Coordonnees du noeud support (mode PLAN GENE) =
  33. C= =
  34. C= Remarque : =
  35. C= ---------- =
  36. C= Lors de l'entree dans le sous-programme, SHPTOT(2 a 4,*) contient =
  37. C= les DERIVEES des fonctions de forme par rapport aux coordonnees =
  38. C= de REFERENCE Qsi,Eta,Dzeta. =
  39. C= En sortie du sous-programme, SHP(2 a 4,*) contient les DERIVEES =
  40. C= des fonctions de FORME par rapport aux coordonnees REELLES x,y,z. =
  41. C= Pour les elements finis massifs incompressibles, la matrice B est =
  42. C= modifiee ulterieurement par appel au sous-programme BBAR. =
  43. C=======================================================================
  44.  
  45. SUBROUTINE BMATST (iGau,NBPGAU,POIGAU,QSIGAU,ETAGAU,DZEGAU,
  46. & ITEL,MFR,NBNO,LRE,IFOU,NST,NN,DIM3,XEL,
  47. & SHPTOT,SHP,BGENE,DJAC,XDPGE,YDPGE)
  48.  
  49. IMPLICIT INTEGER(I-N)
  50. IMPLICIT REAL*8 (A-H,O-Z)
  51.  
  52. -INC CCREEL
  53.  
  54. DIMENSION XEL(3,*),BGENE(NST,*),SHP(6,*),SHPTOT(6,NBNO,*),
  55. & POIGAU(*),QSIGAU(*),ETAGAU(*),DZEGAU(*)
  56.  
  57. RR=XZero
  58. ** semble inutile
  59. ** CALL ZERO(BGENE,NST,LRE)
  60.  
  61. IFOR=IFOU+4
  62. GOTO ( 5,10,10,20,30,40,50,50,50,50,50,50,50,50,50,
  63. & 60,60,60,70),IFOR
  64. GOTO 100
  65.  
  66. C ===
  67. C 1 - Elements MASSIFS 2D PLAN GENE
  68. C ===
  69. 5 XXX=XZero
  70. YYY=XZero
  71. DO i=1,NBNO
  72. SHP(1,i)=SHPTOT(1,i,iGau)
  73. SHP(2,i)=SHPTOT(2,i,iGau)
  74. SHP(3,i)=SHPTOT(3,i,iGau)
  75. XXX=XXX+SHP(1,i)*XEL(1,i)
  76. YYY=YYY+SHP(1,i)*XEL(2,i)
  77. ENDDO
  78. CALL DEVOLU(XEL,SHP,MFR,NBNO,IFOU,NN,2,DIM3,RR,DJAC)
  79. K=1
  80. DO i=1,NBNO
  81. BGENE(1,K)=SHP(2,i)
  82. BGENE(2,K+1)=SHP(3,i)
  83. BGENE(4,K)=SHP(3,i)
  84. BGENE(4,K+1)=SHP(2,i)
  85. K=K+2
  86. ENDDO
  87. BGENE(3,K)=1.D0
  88. BGENE(3,K+1)=XDPGE-XXX
  89. BGENE(3,K+2)=YYY-YDPGE
  90. GOTO 100
  91. C ===
  92. C 2 - Elements MASSIFS 2D PLAN DEFO ou PLAN CONT
  93. C ===
  94. 10 DO i=1,NBNO
  95. SHP(1,i)=SHPTOT(1,i,iGau)
  96. SHP(2,i)=SHPTOT(2,i,iGau)
  97. SHP(3,i)=SHPTOT(3,i,iGau)
  98. ENDDO
  99. CALL DEVOLU(XEL,SHP,MFR,NBNO,IFOU,NN,2,DIM3,RR,DJAC)
  100. K=1
  101. DO i=1,NBNO
  102. BGENE(1,K)=SHP(2,i)
  103. BGENE(2,K+1)=SHP(3,i)
  104. BGENE(4,K)=SHP(3,i)
  105. BGENE(4,K+1)=SHP(2,i)
  106. K=K+2
  107. ENDDO
  108. GOTO 100
  109. C ===
  110. C 3 - Elements MASSIFS 2D AXISymetrique
  111. C ===
  112. 20 DO i=1,NBNO
  113. SHP(1,i)=SHPTOT(1,i,iGau)
  114. SHP(2,i)=SHPTOT(2,i,iGau)
  115. SHP(3,i)=SHPTOT(3,i,iGau)
  116. ENDDO
  117. CALL DEVOLU(XEL,SHP,MFR,NBNO,IFOU,NN,2,DIM3,RR,DJAC)
  118. K=1
  119. DO i=1,NBNO
  120. BGENE(1,K)=SHP(2,i)
  121. BGENE(2,K+1)=SHP(3,i)
  122. BGENE(3,K)=SHP(1,i)/RR
  123. BGENE(4,K)=SHP(3,i)
  124. BGENE(4,K+1)=SHP(2,i)
  125. K=K+2
  126. ENDDO
  127. GOTO 100
  128. C ===
  129. C 4 - Elements MASSIFS 2D FOURIER
  130. C ===
  131. 30 DO i=1,NBNO
  132. SHP(1,i)=SHPTOT(1,i,iGau)
  133. SHP(2,i)=SHPTOT(2,i,iGau)
  134. SHP(3,i)=SHPTOT(3,i,iGau)
  135. ENDDO
  136. CALL DEVOLU(XEL,SHP,MFR,NBNO,IFOU,NN,2,DIM3,RR,DJAC)
  137. XNSUR=DBLE(NN)/RR
  138. K=1
  139. DO i=1,NBNO
  140. BGENE(1,K)=SHP(2,i)
  141. BGENE(2,K+1)=SHP(3,i)
  142. BGENE(3,K)=SHP(1,i)/RR
  143. BGENE(3,K+2)=SHP(1,i)*XNSUR
  144. BGENE(4,K)=SHP(3,i)
  145. BGENE(4,K+1)=SHP(2,i)
  146. BGENE(5,K)=-SHP(1,i)*XNSUR
  147. BGENE(5,K+2)=SHP(2,i)-SHP(1,i)/RR
  148. BGENE(6,K+1)=-SHP(1,i)*XNSUR
  149. BGENE(6,K+2)=SHP(3,i)
  150. K=K+3
  151. ENDDO
  152. GOTO 100
  153. C ===
  154. C 6 - Elements MASSIFS 3D
  155. C ===
  156. 40 DO i=1,NBNO
  157. SHP(1,i)=SHPTOT(1,i,iGau)
  158. SHP(2,i)=SHPTOT(2,i,iGau)
  159. SHP(3,i)=SHPTOT(3,i,iGau)
  160. SHP(4,i)=SHPTOT(4,i,iGau)
  161. ENDDO
  162. CALL DEVOLU(XEL,SHP,MFR,NBNO,IFOU,NN,3,DIM3,RR,DJAC)
  163. K=1
  164. DO i=1,NBNO
  165. BGENE(1,K)=SHP(2,i)
  166. BGENE(2,K+1)=SHP(3,i)
  167. BGENE(3,K+2)=SHP(4,i)
  168. BGENE(4,K)=SHP(3,i)
  169. BGENE(4,K+1)=SHP(2,i)
  170. BGENE(5,K)=SHP(4,i)
  171. BGENE(5,K+2)=SHP(2,i)
  172. BGENE(6,K+1)=SHP(4,i)
  173. BGENE(6,K+2)=SHP(3,i)
  174. K=K+3
  175. ENDDO
  176. GOTO 100
  177. C ===
  178. C 7 - Elements MASSIFS 1D
  179. C ===
  180. C= 7.1 - Modes 1D PLAN
  181. 50 DO i=1,NBNO
  182. SHP(1,i)=SHPTOT(1,i,iGau)
  183. SHP(2,i)=SHPTOT(2,i,iGau)
  184. ENDDO
  185. CALL DEVOLU(XEL,SHP,MFR,NBNO,IFOU,NN,1,DIM3,RR,DJAC)
  186. DO i=1,NBNO
  187. BGENE(1,i)=SHP(2,i)
  188. ENDDO
  189. IF (IFOU.EQ.7.OR.IFOU.EQ.8) THEN
  190. BGENE(2,i)=1.
  191. ELSE IF (IFOU.EQ.9.OR.IFOU.EQ.10) THEN
  192. BGENE(3,i)=1.
  193. ELSE IF (IFOU.EQ.11) THEN
  194. BGENE(2,i)=1.
  195. BGENE(3,i+1)=1.
  196. ENDIF
  197. GOTO 100
  198. C= 7.2 - Modes 1D AXIS
  199. 60 DO i=1,NBNO
  200. SHP(1,i)=SHPTOT(1,i,iGau)
  201. SHP(2,i)=SHPTOT(2,i,iGau)
  202. ENDDO
  203. CALL DEVOLU(XEL,SHP,MFR,NBNO,IFOU,NN,1,DIM3,RR,DJAC)
  204. DO i=1,NBNO
  205. BGENE(1,i)=SHP(2,i)
  206. BGENE(3,i)=SHP(1,i)/RR
  207. ENDDO
  208. IF (IFOU.EQ.14) BGENE(2,i)=1.
  209. GOTO 100
  210. C= 7.3 - Mode 1D SPHE
  211. 70 DO i=1,NBNO
  212. SHP(1,i)=SHPTOT(1,i,iGau)
  213. SHP(2,i)=SHPTOT(2,i,iGau)
  214. ENDDO
  215. CALL DEVOLU(XEL,SHP,MFR,NBNO,IFOU,NN,1,DIM3,RR,DJAC)
  216. DO i=1,NBNO
  217. BGENE(1,i)=SHP(2,i)
  218. ZZ=SHP(1,i)/RR
  219. BGENE(2,i)=ZZ
  220. BGENE(3,i)=ZZ
  221. ENDDO
  222. GOTO 100
  223. 100 CONTINUE
  224.  
  225. RETURN
  226. END
  227.  
  228.  
  229.  
  230.  
  231.  

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