Télécharger bst2.eso

Retour à la liste

Numérotation des lignes :

  1. C BST2 SOURCE FANDEUR 05/12/07 21:15:01 5269
  2.  
  3. SUBROUTINE BST2 (SHP,XDDL,XEL,NBNO,IFOU,XDEFO,TRACE,IGAU,
  4. & XDPGE,YDPGE,UDPGE,NN)
  5.  
  6. C=======================================================================
  7. C= B S T 2 =
  8. C= ------- =
  9. C= Fonction : =
  10. C= ---------- =
  11. C= Calcul de la partie quadratique des deformations en un point de =
  12. C= Gauss d'un element fini massif. =
  13. C= =
  14. C= Parametres : (E)=Entree (S)=Sortie =
  15. C= ------------ =
  16. C= SHP (E) Fonctions de forme et leurs derivees actuelles par =
  17. C= rapport aux coordonnees reelles x,y,z =
  18. C= XDDL (E) Valeurs des ddls aux noeuds de l'element etudie =
  19. C= XEL (E) Coordonnees des noeuds de l'element fini etudie =
  20. C= NBNO (E) Nombre de noeuds de l'element fini massif =
  21. C= IFOU (E) Mode de calcul utilise (cf. IFOUR dans CCOPTIO) =
  22. C= XDEFO (E/S) En entree : partie lineaire des deformations au =
  23. C= point de Gauss considere. En sortie : deformations =
  24. C= (parties lineaire et quadratique) en ce meme point =
  25. C= TRACE (S) Trace de la partie quadratique des deformations =
  26. C= au point de Gauss considere (IGAU) =
  27. C= IGAU (E) Numero du point de Gauss considere =
  28. C= XDPGE,YDPGE (E) Coordonnees du noeud support si necessaire =
  29. C= UDPGE (E) DDL associes au noeud support si necessaire =
  30. C= NN (E) Numero du mode de Fourier si necessaire (=NIFOUR) =
  31. C=======================================================================
  32.  
  33. IMPLICIT INTEGER(I-N)
  34. IMPLICIT REAL*8(A-H,O-Z)
  35.  
  36. PARAMETER (XZER=0.D0,UNDEMI=.5D0)
  37. DIMENSION SHP(6,*),XDDL(*),XEL(3,*),UDPGE(*), XDEFO(*),TRACE(*)
  38.  
  39. IFOR=IFOU+4
  40. GOTO (10,20,20,30,40,50,60,60,60,60,60,60,60,60,60,
  41. & 70,70,70,80),IFOR
  42. GOTO 100
  43.  
  44. C ===
  45. C 1 - Elements MASSIFS 2D PLAN GENE
  46. C ===
  47. 10 k=0
  48. C XXX=XZER
  49. C YYY=XZER
  50. DUDX=XZER
  51. DUDY=XZER
  52. DVDX=XZER
  53. DVDY=XZER
  54. DO i=1,NBNO
  55. C XXX=XXX+SHP(1,i)*XEL(1,i)
  56. C YYY=YYY+SHP(1,i)*XEL(2,i)
  57. k=k+1
  58. DUDX=DUDX+SHP(2,i)*XDDL(k)
  59. DUDY=DUDY+SHP(3,i)*XDDL(k)
  60. k=k+1
  61. DVDX=DVDX+SHP(2,i)*XDDL(k)
  62. DVDY=DVDY+SHP(3,i)*XDDL(k)
  63. ENDDO
  64. EPS1=UNDEMI*(DUDX*DUDX+DVDX*DVDX)
  65. EPS2=UNDEMI*(DUDY*DUDY+DVDY*DVDY)
  66. C EPS3=UDPGE(1)+UDPGE(2)*(XDPGE-XXX)+UDPGE(3)*(YYY-YDPGE)
  67. C EPS3=UNDEMI*EPS3*EPS3
  68. C Plus rapide pour un meme resultat :
  69. EPS3=UNDEMI*XDEFO(3)*XDEFO(3)
  70. XDEFO(1)=XDEFO(1)+EPS1
  71. XDEFO(2)=XDEFO(2)+EPS2
  72. XDEFO(3)=XDEFO(3)+EPS3
  73. XDEFO(4)=XDEFO(4)+(DUDX*DUDY+DVDX*DVDY)
  74. TRACE(IGAU)=EPS1+EPS2+EPS3
  75. GOTO 100
  76. C ===
  77. C 2 - Elements MASSIFS 2D PLAN DEFO ou PLAN CONT
  78. C ===
  79. 20 k=0
  80. DUDX=XZER
  81. DUDY=XZER
  82. DVDX=XZER
  83. DVDY=XZER
  84. DO i=1,NBNO
  85. k=k+1
  86. DUDX=DUDX+SHP(2,i)*XDDL(k)
  87. DUDY=DUDY+SHP(3,i)*XDDL(k)
  88. k=k+1
  89. DVDX=DVDX+SHP(2,i)*XDDL(k)
  90. DVDY=DVDY+SHP(3,i)*XDDL(k)
  91. ENDDO
  92. EPS1=UNDEMI*(DUDX*DUDX+DVDX*DVDX)
  93. EPS2=UNDEMI*(DUDY*DUDY+DVDY*DVDY)
  94. XDEFO(1)=XDEFO(1)+EPS1
  95. XDEFO(2)=XDEFO(2)+EPS2
  96. C XDEFO(3)=XDEFO(3)+XZER
  97. XDEFO(4)=XDEFO(4)+(DUDX*DUDY+DVDX*DVDY)
  98. TRACE(IGAU)=EPS1+EPS2
  99. GOTO 100
  100. C ===
  101. C 3 - Elements MASSIFS 2D AXISymetrique
  102. C ===
  103. 30 k=0
  104. RR=XZER
  105. UR=XZER
  106. DUDX=XZER
  107. DUDY=XZER
  108. DVDX=XZER
  109. DVDY=XZER
  110. DO i=1,NBNO
  111. RR=RR+SHP(1,i)*XEL(1,i)
  112. k=k+1
  113. UR=UR+SHP(1,i)*XDDL(k)
  114. DUDX=DUDX+SHP(2,i)*XDDL(k)
  115. DUDY=DUDY+SHP(3,i)*XDDL(k)
  116. k=k+1
  117. DVDX=DVDX+SHP(2,i)*XDDL(k)
  118. DVDY=DVDY+SHP(3,i)*XDDL(k)
  119. ENDDO
  120. EPS1=UNDEMI*(DUDX*DUDX+DVDX*DVDX)
  121. EPS2=UNDEMI*(DUDY*DUDY+DVDY*DVDY)
  122. EPS3=UNDEMI*(UR*UR)/(RR*RR)
  123. XDEFO(1)=XDEFO(1)+EPS1
  124. XDEFO(2)=XDEFO(2)+EPS2
  125. XDEFO(3)=XDEFO(3)+EPS3
  126. XDEFO(4)=XDEFO(4)+(DUDX*DUDY+DVDX*DVDY)
  127. TRACE(IGAU)=EPS1+EPS2+EPS3
  128. GOTO 100
  129. C ===
  130. C 4 - Elements MASSIFS 2D FOURIER
  131. C ===
  132. 40 k=0
  133. RR=XZER
  134. UR=XZER
  135. DUDX=XZER
  136. DUDY=XZER
  137. UZ=XZER
  138. DVDX=XZER
  139. DVDY=XZER
  140. UT=XZER
  141. DWDX=XZER
  142. DWDY=XZER
  143. DO i=1,NBNO
  144. RR=RR+SHP(1,i)*XEL(1,i)
  145. k=k+1
  146. UR=UR+SHP(1,i)*XDDL(k)
  147. DUDX=DUDX+SHP(2,i)*XDDL(k)
  148. DUDY=DUDY+SHP(3,i)*XDDL(k)
  149. k=k+1
  150. UZ=UZ+SHP(1,i)*XDDL(k)
  151. DVDX=DVDX+SHP(2,i)*XDDL(k)
  152. DVDY=DVDY+SHP(3,i)*XDDL(k)
  153. k=k+1
  154. UT=UT+SHP(1,i)*XDDL(k)
  155. DWDX=DWDX+SHP(2,i)*XDDL(k)
  156. DWDY=DWDY+SHP(3,i)*XDDL(k)
  157. ENDDO
  158. HHRT=-NN*UR-UT
  159. HHTT=UR+NN*UT
  160. HHZT=-NN*UZ
  161. EPS1=UNDEMI*(DUDX*DUDX+DVDX*DVDX+DWDX*DWDX)
  162. EPS2=UNDEMI*(DUDY*DUDY+DVDY*DVDY+DWDY*DWDY)
  163. EPS3=UNDEMI*(HHRT*HHRT+HHTT*HHTT+HHZT*HHZT)/(RR*RR)
  164. XDEFO(1)=XDEFO(1)+EPS1
  165. XDEFO(2)=XDEFO(2)+EPS2
  166. XDEFO(3)=XDEFO(3)+EPS3
  167. XDEFO(4)=XDEFO(4)+(DUDX*DUDY+DVDX*DVDY+DWDX*DWDY)
  168. XDEFO(5)=XDEFO(5)+(DUDX*HHRT+DVDX*HHTT+DWDX*HHZT)/RR
  169. XDEFO(6)=XDEFO(6)+(DUDY*HHRT+DVDY*HHTT+DWDY*HHZT)/RR
  170. TRACE(IGAU)=EPS1+EPS2+EPS3
  171. GOTO 100
  172. C ===
  173. C 5 - Elements MASSIFS 3D
  174. C ===
  175. 50 k=0
  176. DUDX=XZER
  177. DUDY=XZER
  178. DUDZ=XZER
  179. DVDX=XZER
  180. DVDY=XZER
  181. DVDZ=XZER
  182. DWDX=XZER
  183. DWDY=XZER
  184. DWDZ=XZER
  185. DO i=1,NBNO
  186. k=k+1
  187. DUDX=DUDX+SHP(2,i)*XDDL(k)
  188. DUDY=DUDY+SHP(3,i)*XDDL(k)
  189. DUDZ=DUDZ+SHP(4,i)*XDDL(k)
  190. k=k+1
  191. DVDX=DVDX+SHP(2,i)*XDDL(k)
  192. DVDY=DVDY+SHP(3,i)*XDDL(k)
  193. DVDZ=DVDZ+SHP(4,i)*XDDL(k)
  194. k=k+1
  195. DWDX=DWDX+SHP(2,i)*XDDL(k)
  196. DWDY=DWDY+SHP(3,i)*XDDL(k)
  197. DWDZ=DWDZ+SHP(4,i)*XDDL(k)
  198. ENDDO
  199. EPS1=UNDEMI*(DUDX*DUDX+DVDX*DVDX+DWDX*DWDX)
  200. EPS2=UNDEMI*(DUDY*DUDY+DVDY*DVDY+DWDY*DWDY)
  201. EPS3=UNDEMI*(DUDZ*DUDZ+DVDZ*DVDZ+DWDZ*DWDZ)
  202. XDEFO(1)=XDEFO(1)+EPS1
  203. XDEFO(2)=XDEFO(2)+EPS2
  204. XDEFO(3)=XDEFO(3)+EPS3
  205. XDEFO(4)=XDEFO(4)+(DUDX*DUDY+DVDX*DVDY+DWDX*DWDY)
  206. XDEFO(5)=XDEFO(5)+(DUDX*DUDZ+DVDX*DVDZ+DWDX*DWDZ)
  207. XDEFO(6)=XDEFO(6)+(DUDY*DUDZ+DVDY*DVDZ+DWDY*DWDZ)
  208. TRACE(IGAU)=EPS1+EPS2+EPS3
  209. GOTO 100
  210. C ===
  211. C 6 - Elements MASSIFS 1D
  212. C ===
  213. C= 6.1 - Modes 1D PLAN
  214. 60 DUDX=XZER
  215. DO i=1,NBNO
  216. DUDX=DUDX+SHP(2,i)*XDDL(i)
  217. ENDDO
  218. EPS1=UNDEMI*DUDX*DUDX
  219. XDEFO(1)=XDEFO(1)+EPS1
  220. TRACE(IGAU)=EPS1
  221. IF (IFOU.EQ.7.OR.IFOU.EQ.8) THEN
  222. EPS2=UNDEMI*(UDPGE(1)*UDPGE(1))
  223. XDEFO(2)=XDEFO(2)+EPS2
  224. TRACE(IGAU)=EPS1+EPS2
  225. ELSE IF (IFOU.EQ.9.OR.IFOU.EQ.10) THEN
  226. EPS3=UNDEMI*(UDPGE(1)*UDPGE(1))
  227. XDEFO(3)=XDEFO(3)+EPS3
  228. TRACE(IGAU)=EPS1+EPS3
  229. ELSE IF (IFOU.EQ.11) THEN
  230. EPS2=UNDEMI*(UDPGE(1)*UDPGE(1))
  231. EPS3=UNDEMI*(UDPGE(2)*UDPGE(2))
  232. XDEFO(2)=XDEFO(2)+EPS2
  233. XDEFO(3)=XDEFO(3)+EPS3
  234. TRACE(IGAU)=EPS1+EPS2+EPS3
  235. ENDIF
  236. GOTO 100
  237. C= 6.2 - Modes 1D AXIS
  238. 70 RR=XZER
  239. UR=XZER
  240. DUDX=XZER
  241. DO i=1,NBNO
  242. RR=RR+SHP(1,i)*XEL(1,i)
  243. UR=UR+SHP(1,i)*XDDL(i)
  244. DUDX=DUDX+SHP(2,i)*XDDL(i)
  245. ENDDO
  246. EPS1=UNDEMI*(DUDX*DUDX)
  247. EPS3=UNDEMI*(UR*UR)/(RR*RR)
  248. XDEFO(1)=XDEFO(1)+EPS1
  249. C XDEFO(2)=XDEFO(2)+XZER
  250. XDEFO(3)=XDEFO(3)+EPS3
  251. TRACE(IGAU)=EPS1+EPS3
  252. IF (IFOU.EQ.14) THEN
  253. EPS2=UNDEMI*(UDPGE(1)*UDPGE(1))
  254. XDEFO(2)=XDEFO(2)+EPS2
  255. TRACE(IGAU)=TRACE(IGAU)+EPS2
  256. ENDIF
  257. GOTO 100
  258. C= 6.3 - Mode 1D SPHE
  259. 80 RR=XZER
  260. UR=XZER
  261. DUDX=XZER
  262. DO i=1,NBNO
  263. RR=RR+SHP(1,i)*XEL(1,i)
  264. UR=UR+SHP(1,i)*XDDL(i)
  265. DUDX=DUDX+SHP(2,i)*XDDL(i)
  266. ENDDO
  267. EPS1=UNDEMI*(DUDX*DUDX)
  268. EPS2=UNDEMI*(UR*UR)/(RR*RR)
  269. XDEFO(1)=XDEFO(1)+EPS1
  270. XDEFO(2)=XDEFO(2)+EPS2
  271. XDEFO(3)=XDEFO(3)+EPS2
  272. TRACE(IGAU)=EPS1+EPS2+EPS2
  273. GOTO 100
  274.  
  275. 100 CONTINUE
  276. RETURN
  277. END
  278.  
  279.  
  280.  

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