Télécharger dbst2.eso

Retour à la liste

Numérotation des lignes :

dbst2
  1. C DBST2 SOURCE PV 07/11/23 21:16:19 5978
  2.  
  3. SUBROUTINE DBST2 (SHP,DD,XDDL,XEL,NBNO,IFOU,NSTRS,XSTRS,TRACE,
  4. & IGAU,XDPGE,YDPGE,UDPGE,NN)
  5.  
  6. C=======================================================================
  7. C= D B S T 2 =
  8. C= --------- =
  9. C= Fonction : =
  10. C= ---------- =
  11. C= Calcul des contraintes en tenant compte de la partie quadratique =
  12. c= des deformations en un point de 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= DD (E) Matrice de Hooke au point de Gauss considere =
  19. C= XDDL (E) Valeurs des ddls aux noeuds de l'element etudie =
  20. C= XEL (E) Coordonnees des noeuds de l'element fini etudie =
  21. C= NBNO (E) Nombre de noeuds de l'element fini massif =
  22. C= IFOU (E) Mode de calcul utilise (cf. IFOUR dans CCOPTIO) =
  23. C= NSTRS (E) Nombre de composantes de contraintes =
  24. C= XSTRS (E/S) Entree : contraintes calculees au point de Gauss =
  25. C considere a partir des deformations (linearisees) =
  26. C= Sortie : contraintes calculees en integrant les =
  27. C= termes lineaire et quadratique des deformations =
  28. C= TRACE (S) 1. Trace de la partie quadratique des deformations =
  29. C= 2. Valeur du coefficient de compressibilite K =
  30. C= 3. Valeur du coefficient de Lame Lambda =
  31. C= au point de Gauss considere (IGAU) =
  32. C= IGAU (E) Numero du point de Gauss considere =
  33. C= XDPGE,YDPGE (E) Coordonnees du noeud support si necessaire =
  34. C= UDPGE (E) DDL associes au noeud support si necessaire =
  35. C= NN (E) Numero du mode de Fourier si necessaire (=NIFOUR) =
  36. C=======================================================================
  37.  
  38. IMPLICIT INTEGER(I-N)
  39. IMPLICIT REAL*8(A-H,O-Z)
  40.  
  41. PARAMETER (XZER=0.,UNDEMI=0.5,X2SUR3=0.6666666666666666666666666)
  42.  
  43. DIMENSION SHP(6,*),DD(NSTRS,*),XDDL(*),XEL(3,*),
  44. & XSTRS(*),TRACE(3,*),UDPGE(3)
  45. DIMENSION EPS2(10)
  46.  
  47. IFOR=IFOU+4
  48. GOTO (10,20,20,30,40,50,60,60,60,60,60,60,60,60,60,
  49. & 70,70,70,80),IFOR
  50. GOTO 200
  51.  
  52. C ===
  53. C 1 - Elements MASSIFS 2D PLAN GENE
  54. C ===
  55. 10 k=0
  56. XXX=XZER
  57. YYY=XZER
  58. DUDX=XZER
  59. DUDY=XZER
  60. DVDX=XZER
  61. DVDY=XZER
  62. DO i=1,NBNO
  63. XXX=XXX+SHP(1,i)*XEL(1,i)
  64. YYY=YYY+SHP(1,i)*XEL(2,i)
  65. k=k+1
  66. DUDX=DUDX+SHP(2,i)*XDDL(k)
  67. DUDY=DUDY+SHP(3,i)*XDDL(k)
  68. k=k+1
  69. DVDX=DVDX+SHP(2,i)*XDDL(k)
  70. DVDY=DVDY+SHP(3,i)*XDDL(k)
  71. ENDDO
  72. EPS2(1)=UNDEMI*(DUDX*DUDX+DVDX*DVDX)
  73. EPS2(2)=UNDEMI*(DUDY*DUDY+DVDY*DVDY)
  74. EPS2(3)=UDPGE(1)+UDPGE(2)*(XDPGE-XXX)+UDPGE(3)*(YYY-YDPGE)
  75. EPS2(3)=UNDEMI*EPS2(3)*EPS2(3)
  76. EPS2(4)=DUDX*DUDY+DVDX*DVDY
  77. TRACE(1,IGAU)=EPS2(1)+EPS2(2)+EPS2(3)
  78. C A verifier : TRACE(2,IGAU)=...
  79. TRACE(2,IGAU)=DD(2,1)+DD(4,4)
  80. TRACE(3,IGAU)=DD(2,1)
  81. GOTO 100
  82. C ===
  83. C 2 - Elements MASSIFS 2D PLAN DEFO ou PLAN CONT
  84. C ===
  85. 20 k=0
  86. DUDX=XZER
  87. DUDY=XZER
  88. DVDX=XZER
  89. DVDY=XZER
  90. DO i=1,NBNO
  91. k=k+1
  92. DUDX=DUDX+SHP(2,i)*XDDL(k)
  93. DUDY=DUDY+SHP(3,i)*XDDL(k)
  94. k=k+1
  95. DVDX=DVDX+SHP(2,i)*XDDL(k)
  96. DVDY=DVDY+SHP(3,i)*XDDL(k)
  97. ENDDO
  98. EPS2(1)=UNDEMI*(DUDX*DUDX+DVDX*DVDX)
  99. EPS2(2)=UNDEMI*(DUDY*DUDY+DVDY*DVDY)
  100. EPS2(3)=XZER
  101. EPS2(4)=DUDX*DUDY+DVDX*DVDY
  102. TRACE(1,IGAU)=EPS2(1)+EPS2(2)
  103. TRACE(2,IGAU)=DD(2,1)+DD(4,4)
  104. TRACE(3,IGAU)=DD(2,1)
  105. GOTO 100
  106. C ===
  107. C 3 - Elements MASSIFS 2D AXISymetrique
  108. C ===
  109. 30 k=0
  110. RR=XZER
  111. UR=XZER
  112. DUDX=XZER
  113. DUDY=XZER
  114. DVDX=XZER
  115. DVDY=XZER
  116. DO i=1,NBNO
  117. RR=RR+SHP(1,i)*XEL(1,i)
  118. k=k+1
  119. UR=UR+SHP(1,i)*XDDL(k)
  120. DUDX=DUDX+SHP(2,i)*XDDL(k)
  121. DUDY=DUDY+SHP(3,i)*XDDL(k)
  122. k=k+1
  123. DVDX=DVDX+SHP(2,i)*XDDL(k)
  124. DVDY=DVDY+SHP(3,i)*XDDL(k)
  125. ENDDO
  126. EPS2(1)=UNDEMI*(DUDX*DUDX+DVDX*DVDX)
  127. EPS2(2)=UNDEMI*(DUDY*DUDY+DVDY*DVDY)
  128. EPS2(3)=UNDEMI*(UR*UR)/(RR*RR)
  129. EPS2(4)=DUDX*DUDY+DVDX*DVDY
  130. TRACE(1,IGAU)=EPS2(1)+EPS2(2)+EPS2(3)
  131. TRACE(2,IGAU)=DD(2,1)+X2SUR3*DD(4,4)
  132. TRACE(3,IGAU)=DD(2,1)
  133. GOTO 100
  134. C ===
  135. C 4 - Elements MASSIFS 2D FOURIER
  136. C ===
  137. 40 k=0
  138. RR=XZER
  139. UR=XZER
  140. DUDX=XZER
  141. DUDY=XZER
  142. UZ=XZER
  143. DVDX=XZER
  144. DVDY=XZER
  145. UT=XZER
  146. DWDX=XZER
  147. DWDY=XZER
  148. DO i=1,NBNO
  149. RR=RR+SHP(1,i)*XEL(1,i)
  150. k=k+1
  151. UR=UR+SHP(1,i)*XDDL(k)
  152. DUDX=DUDX+SHP(2,i)*XDDL(k)
  153. DUDY=DUDY+SHP(3,i)*XDDL(k)
  154. k=k+1
  155. UZ=UZ+SHP(1,i)*XDDL(k)
  156. DVDX=DVDX+SHP(2,i)*XDDL(k)
  157. DVDY=DVDY+SHP(3,i)*XDDL(k)
  158. k=k+1
  159. UT=UT+SHP(1,i)*XDDL(k)
  160. DWDX=DWDX+SHP(2,i)*XDDL(k)
  161. DWDY=DWDY+SHP(3,i)*XDDL(k)
  162. ENDDO
  163. HHRT=-NN*UR-UT
  164. HHTT=UR+NN*UT
  165. HHZT=-NN*UZ
  166. EPS2(1)=UNDEMI*(DUDX*DUDX+DVDX*DVDX+DWDX*DWDX)
  167. EPS2(2)=UNDEMI*(DUDY*DUDY+DVDY*DVDY+DWDY*DWDY)
  168. EPS2(3)=UNDEMI*(HHRT*HHRT+HHTT*HHTT+HHZT*HHZT)/(RR*RR)
  169. EPS2(4)=(DUDX*DUDY+DVDX*DVDY+DWDX*DWDY)
  170. EPS2(5)=(DUDX*HHRT+DVDX*HHTT+DWDX*HHZT)/RR
  171. EPS2(6)=(DUDY*HHRT+DVDY*HHTT+DWDY*HHZT)/RR
  172. TRACE(1,IGAU)=EPS2(1)+EPS2(2)+EPS2(3)
  173. TRACE(2,IGAU)=DD(2,1)+X2SUR3*DD(4,4)
  174. TRACE(3,IGAU)=DD(2,1)
  175. GOTO 100
  176. C ===
  177. C 5 - Elements MASSIFS 3D
  178. C ===
  179. 50 k=0
  180. DUDX=XZER
  181. DUDY=XZER
  182. DUDZ=XZER
  183. DVDX=XZER
  184. DVDY=XZER
  185. DVDZ=XZER
  186. DWDX=XZER
  187. DWDY=XZER
  188. DWDZ=XZER
  189. DO i=1,NBNO
  190. k=k+1
  191. DUDX=DUDX+SHP(2,i)*XDDL(k)
  192. DUDY=DUDY+SHP(3,i)*XDDL(k)
  193. DUDZ=DUDZ+SHP(4,i)*XDDL(k)
  194. k=k+1
  195. DVDX=DVDX+SHP(2,i)*XDDL(k)
  196. DVDY=DVDY+SHP(3,i)*XDDL(k)
  197. DVDZ=DVDZ+SHP(4,i)*XDDL(k)
  198. k=k+1
  199. DWDX=DWDX+SHP(2,i)*XDDL(k)
  200. DWDY=DWDY+SHP(3,i)*XDDL(k)
  201. DWDZ=DWDZ+SHP(4,i)*XDDL(k)
  202. ENDDO
  203. EPS2(1)=UNDEMI*(DUDX*DUDX+DVDX*DVDX+DWDX*DWDX)
  204. EPS2(2)=UNDEMI*(DUDY*DUDY+DVDY*DVDY+DWDY*DWDY)
  205. EPS2(3)=UNDEMI*(DUDZ*DUDZ+DVDZ*DVDZ+DWDZ*DWDZ)
  206. EPS2(4)=DUDX*DUDY+DVDX*DVDY+DWDX*DWDY
  207. EPS2(5)=DUDX*DUDZ+DVDX*DVDZ+DWDX*DWDZ
  208. EPS2(6)=DUDY*DUDZ+DVDY*DVDZ+DWDY*DWDZ
  209. TRACE(1,IGAU)=EPS2(1)+EPS2(2)+EPS2(3)
  210. TRACE(2,IGAU)=X2SUR3*(DD(2,1)+DD(4,4))
  211. TRACE(3,IGAU)=DD(2,1)
  212. GOTO 100
  213. C ===
  214. C 6 - Elements MASSIFS 1D
  215. C ===
  216. C= 6.1 - Modes 1D PLAN
  217. 60 DUDX=XZER
  218. DO i=1,NBNO
  219. DUDX=DUDX+SHP(2,i)*XDDL(i)
  220. ENDDO
  221. EPS2(1)=UNDEMI*DUDX*DUDX
  222. EPS2(2)=XZER
  223. EPS2(3)=XZER
  224. IF (IFOU.EQ.7.OR.IFOU.EQ.8) THEN
  225. EPS2(2)=UNDEMI*(UDPGE(1)*UDPGE(1))
  226. ELSE IF (IFOU.EQ.9.OR.IFOU.EQ.10) THEN
  227. EPS2(3)=UNDEMI*(UDPGE(1)*UDPGE(1))
  228. ELSE IF (IFOU.EQ.11) THEN
  229. EPS2(2)=UNDEMI*(UDPGE(1)*UDPGE(1))
  230. EPS2(3)=UNDEMI*(UDPGE(2)*UDPGE(2))
  231. ENDIF
  232. TRACE(1,IGAU)=EPS2(1)+EPS2(2)+EPS2(3)
  233. C A verifier : TRACE(2,IGAU)=... et TRACE(3,IGAU)=...
  234. TRACE(2,IGAU)=DD(1,1)
  235. TRACE(3,IGAU)=DD(1,1)
  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. EPS2(1)=UNDEMI*(DUDX*DUDX)
  247. EPS2(2)=XZER
  248. EPS2(3)=UNDEMI*(UR*UR)/(RR*RR)
  249. IF (IFOU.EQ.14) THEN
  250. EPS2(2)=UNDEMI*(UDPGE(1)*UDPGE(1))
  251. ENDIF
  252. TRACE(1,IGAU)=EPS2(1)+EPS2(2)+EPS2(3)
  253. C A verifier : TRACE(2,IGAU)=... et TRACE(3,IGAU)=...
  254. TRACE(2,IGAU)=DD(1,1)
  255. TRACE(3,IGAU)=DD(1,1)
  256. GOTO 100
  257. C= 6.3 - Mode 1D SPHE
  258. 80 RR=XZER
  259. UR=XZER
  260. DUDX=XZER
  261. DO i=1,NBNO
  262. RR=RR+SHP(1,i)*XEL(1,i)
  263. UR=UR+SHP(1,i)*XDDL(i)
  264. DUDX=DUDX+SHP(2,i)*XDDL(i)
  265. ENDDO
  266. EPS2(1)=UNDEMI*(DUDX*DUDX)
  267. EPS2(2)=UNDEMI*(UR*UR)/(RR*RR)
  268. EPS2(3)=EPS2(2)
  269. TRACE(1,IGAU)=EPS2(1)+EPS2(2)+EPS2(3)
  270. C A verifier : TRACE(2,IGAU)=... et TRACE(3,IGAU)=...
  271. TRACE(2,IGAU)=DD(1,1)
  272. TRACE(3,IGAU)=DD(1,1)
  273. GOTO 100
  274. C ====
  275. C Calcul des contraintes XSTRS(*) en ajoutant les contraintes associees
  276. C a la partie quadratique des deformations EPS2(*) - multiplication par
  277. C la matrice de Hooke DD(*,*)
  278. C ====
  279. 100 DO i=1,NSTRS
  280. ZSIG=XZER
  281. DO j=1,NSTRS
  282. ZSIG=ZSIG+DD(i,j)*EPS2(j)
  283. ENDDO
  284. XSTRS(i)=XSTRS(i)+ZSIG
  285. ENDDO
  286.  
  287. 200 CONTINUE
  288. RETURN
  289. END
  290.  
  291.  
  292.  
  293.  

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