Télécharger thetun.eso

Retour à la liste

Numérotation des lignes :

thetun
  1. C THETUN SOURCE BP208322 17/03/01 21:18:31 9325
  2. SUBROUTINE THETUN(MFR,MELE,VALMAT,LHOOK,NSTRS,TEMP,THIF,
  3. 1 THM,THSU,SD,EPAIST,TXR,XLOC,XGLOB,
  4. 2 ROTS,DHOOK,RES,KERRE)
  5. *******************************************************************
  6. * APPELE PAR THETAP :CONTRAINTES THERMIQUES POUR LES MATERIAUX
  7. * UNIDIRECTIONNELS
  8. *
  9. * ENTREES :
  10. * MFR = NUMERO DE LA FORMULATION
  11. * MELE = NUMERO DE L'ELEMENT FINI
  12. * VALMAT = TABLEAU DE MATERIAU
  13. * LHOOK = DIMENSION DE LA MATRICE DE HOOKE
  14. * NSTRS = NOMBRE DE COMPOSANTES DES CONTRAINTES
  15. * TEMP,THIF,THM,THSU = TEMPERATURES
  16. * SD = SECTION
  17. * EPAIST = EPAISSEUR
  18. * TXR,XLOC,XGLOB,ROTS,DHOOK = TABLEAUX DE TRAVAIL
  19. * SORTIES :
  20. * RES = TABLEAU DE CONTRAINTES
  21. * KERRE= INDICATEUR D'ERREUR
  22. *
  23. * P DOWLATYARI MARS 92
  24. ***********************************************************************
  25. IMPLICIT INTEGER(I-N)
  26. IMPLICIT REAL*8(A-H,O-Z)
  27. *
  28.  
  29. -INC PPARAM
  30. -INC CCOPTIO
  31. -INC CCHAMP
  32. *
  33. DIMENSION XLOC(3,3),XGLOB(3,3)
  34. DIMENSION ROTS(NSTRS,*),DHOOK(LHOOK,*)
  35. DIMENSION TXR(IDIM,*),RES(NSTRS)
  36. DIMENSION VALMAT(*)
  37. *
  38. DIMENSION SIG1(6),SIG2(6)
  39. *
  40. KERRE=0
  41. *
  42. * TEST SUR LA FORMULATION
  43. *
  44. *--------------------------------------------------------------
  45. * CAS MASSIF ET POREUX
  46. *--------------------------------------------------------------
  47. IF(MFR.EQ.1.OR.MFR.EQ.33) THEN
  48. *
  49. CALL ZERO (XGLOB,IDIM,IDIM)
  50.  
  51. *
  52. * CONTRAINTES PLANES
  53. * OU
  54. * DEFORMATIONS PLANES OU AXI OU FOURIER
  55. *
  56. IF(IFOUR.EQ.-2.OR.IFOUR.EQ.-1.OR.IFOUR.EQ.0
  57. 1 .OR.IFOUR.EQ.1)THEN
  58. *
  59. YG = VALMAT(1)
  60. ALPH= VALMAT(2)
  61. XLOC(1,1)=VALMAT(3)
  62. XLOC(2,1)=VALMAT(4)
  63. XLOC(1,2)=-XLOC(2,1)
  64. XLOC(2,2)=XLOC(1,1)
  65. C DEFINITION DES AXES ORTHO./AXES GLOBAUX
  66. DO 4310 K=1,IDIM
  67. DO 4310 J=1,IDIM
  68. DO 4310 I=1,IDIM
  69. XGLOB(J,K)=TXR(J,I)*XLOC(I,K)+XGLOB(J,K)
  70. 4310 CONTINUE
  71. CC=XGLOB(1,1)*XGLOB(1,1)
  72. SS=XGLOB(2,1)*XGLOB(2,1)
  73. CS=XGLOB(1,1)*XGLOB(2,1)
  74. *
  75. * EN AXES D'ORTHOTROPIE
  76. *
  77. SIG1(1)=YG*ALPH
  78. *
  79. * CHGT D'AXES
  80. *
  81. SIG2(1)=CC*SIG1(1)
  82. SIG2(2)=SS*SIG1(1)
  83. SIG2(3)=0.D0
  84. SIG2(4)=CS*SIG1(1)
  85. *
  86. RES(1)=SIG2(1)*TEMP
  87. RES(2)=SIG2(2)*TEMP
  88. RES(3)=0.D0
  89. RES(4)=SIG2(4)*TEMP
  90. IF(IFOUR.EQ.1) THEN
  91. RES(5)=0.D0
  92. RES(6)=0.D0
  93. ENDIF
  94. *
  95. * TRIDIMENSIONNEL
  96. *
  97. ELSE
  98. YG = VALMAT(1)
  99. ALPH= VALMAT(2)
  100. XLOC(1,1)=VALMAT(3)
  101. XLOC(2,1)=VALMAT(4)
  102. XLOC(3,1)=VALMAT(5)
  103. XLOC(1,2)=VALMAT(6)
  104. XLOC(2,2)=VALMAT(7)
  105. XLOC(3,2)=VALMAT(8)
  106. CALL CROSS2(XLOC(1,1),XLOC(1,2),XLOC(1,3),IRR)
  107. C DEFINITION DES AXES ORTHO./AXES GLOBAUX
  108. DO 2330 K=1,IDIM
  109. DO 2330 J=1,IDIM
  110. DO 2330 I=1,IDIM
  111. XGLOB(J,K)=TXR(J,I)*XLOC(I,K)+XGLOB(J,K)
  112. 2330 CONTINUE
  113. *
  114. * MATRICE DE TRANSFORMATION
  115. *
  116. DO 2331 IC=1,3
  117. DO 2331 IL=1,3
  118. ROTS(IL,IC)=XGLOB(IL,IC)*XGLOB(IL,IC)
  119. 2331 CONTINUE
  120. C
  121. DO 2332 IL=1,3
  122. ROTS(IL,4)=2.D0*XGLOB(IL,1)*XGLOB(IL,2)
  123. ROTS(IL,5)=2.D0*XGLOB(IL,2)*XGLOB(IL,3)
  124. ROTS(IL,6)=2.D0*XGLOB(IL,1)*XGLOB(IL,3)
  125. 2332 CONTINUE
  126. C
  127. DO 2333 IC=1,3
  128. ROTS(4,IC)=XGLOB(1,IC)*XGLOB(2,IC)
  129. ROTS(5,IC)=XGLOB(2,IC)*XGLOB(3,IC)
  130. ROTS(6,IC)=XGLOB(1,IC)*XGLOB(3,IC)
  131. 2333 CONTINUE
  132. C
  133. DO 2334 IL=4,6
  134. IL1=IL-3
  135. IL2=IL1+1
  136. IF(IL2.GT.3)IL2=IL2-3
  137. DO 2334 IC=4,6
  138. IC1=IC-3
  139. IC2=IC1+1
  140. IF(IC2.GT.3)IC2=IC2-3
  141. ROTS(IL,IC)=XGLOB(IL1,IC1)*XGLOB(IL2,IC2)+
  142. . XGLOB(IL1,IC2)*XGLOB(IL2,IC1)
  143. 2334 CONTINUE
  144. DO 2335 IC=1,6
  145. AA=ROTS(6,IC)
  146. ROTS(6,IC)=ROTS(5,IC)
  147. ROTS(5,IC)=AA
  148. 2335 CONTINUE
  149. DO 2336 IL=1,6
  150. AA=ROTS(IL,6)
  151. ROTS(IL,6)=ROTS(IL,5)
  152. ROTS(IL,5)=AA
  153. 2336 CONTINUE
  154. *
  155. * EN AXES D'ORTHOTROPIE
  156. *
  157. SIG1(1)=YG*ALPH
  158. DO 2340 I=2,6
  159. SIG1(I)=0.D0
  160. 2340 CONTINUE
  161. *
  162. * CHGT D'AXES
  163. *
  164. DO 2350 I=1,6
  165. SIG2(I)=0.D0
  166. DO 2350 J=1,6
  167. SIG2(I)= SIG2(I) +ROTS(I,J)*SIG1(J)
  168. 2350 CONTINUE
  169. *
  170. RES(1)=SIG2(1)*TEMP
  171. RES(2)=SIG2(2)*TEMP
  172. RES(3)=SIG2(3)*TEMP
  173. RES(4)=SIG2(4)*TEMP
  174. RES(5)=SIG2(5)*TEMP
  175. RES(6)=SIG2(6)*TEMP
  176. ENDIF
  177. *____________________________________________________________________
  178. *
  179. * SECTEUR DE CALCUL POUR LES ELEMENTS JOINTS 2D JOI2 et JOI3
  180. *____________________________________________________________________
  181. *
  182. ELSEIF (MELE.EQ.85.OR.MELE.EQ.86) THEN
  183. *
  184. ZKN = VALMAT(2)
  185. ALPN= VALMAT(3)
  186. C
  187. IF (IFOUR.EQ.-2.OR.IFOUR.EQ.-1.OR.IFOUR.EQ.0) THEN
  188. RES(1)=0.D0
  189. RES(2)=ALPN * ZKN * TEMP
  190. ELSE
  191. KERRE=19
  192. GOTO 99
  193. ENDIF
  194. *____________________________________________________________________
  195. *
  196. * SECTEUR DE CALCUL POUR LES ELEMENTS JOINTS 3D JOI4
  197. *____________________________________________________________________
  198. *
  199. ELSE IF (MELE.EQ.88) THEN
  200. ZKN = VALMAT(3)
  201. ALPN= VALMAT(4)
  202. IF (IFOUR.EQ.2) THEN
  203. RES(1)=0.D0
  204. RES(2)=0.D0
  205. RES(3)=ALPN * ZKN * TEMP
  206. ELSE
  207. KERRE=19
  208. GOTO 99
  209. ENDIF
  210. *____________________________________________________________________
  211. *
  212. * SECTEUR DE CALCUL POUR LES ELEMENTS COQUES MINCES SAUF COQ2
  213. *____________________________________________________________________
  214. *
  215. ELSE IF(MELE.EQ.27.OR.MELE.EQ.28.OR.
  216. 1 MELE.EQ.49)THEN
  217. YG = VALMAT(1)
  218. ALPH=VALMAT(2)
  219. V1X= VALMAT(3)
  220. V1Y= VALMAT(4)
  221. CC=V1X*V1X
  222. SS=V1Y*V1Y
  223. CS=V1X*V1Y
  224. THMO=(THSU+THIF+4.D0*THM)/6.D0
  225. THDI=THSU-THIF
  226. EXCEN =0.D0
  227. EP2=EPAIST*EPAIST/12.D0
  228. FACM=THMO*EPAIST
  229. FACF=THMO*EPAIST*EXCEN+THDI*EP2
  230. *
  231. * EN AXES D'ORTHOTROPIE
  232. *
  233. SIG1(1)=YG*ALPH
  234. SIG1(2)=0.D0
  235. SIG1(3)=0.D0
  236. *
  237. * CHGT D'AXES
  238. *
  239. SIG2(1)=CC*SIG1(1)
  240. SIG2(2)=SS*SIG1(1)
  241. SIG2(3)=CS*SIG1(1)
  242. *
  243. IF(IFOUR.GT.0) THEN
  244. RES(1)=SIG2(1)*FACM
  245. RES(2)=SIG2(2)*FACM
  246. RES(3)=SIG2(3)*FACM
  247. RES(4)=SIG2(1)*FACF
  248. RES(5)=SIG2(2)*FACF
  249. RES(6)=SIG2(3)*FACF
  250. ELSE IF(IFOUR.LE.0) THEN
  251. *
  252. * PAS GRAND SENS DANS CE CAS
  253. *
  254. KERRE=19
  255. GO TO 99
  256. ENDIF
  257. C____________________________________________________________________
  258. C
  259. C SECTEUR DE CALCUL POUR LES ELEMENTS COQ2
  260. C____________________________________________________________________
  261. C
  262. ELSEIF(MELE.EQ.44)THEN
  263. YG =VALMAT(1)
  264. ALPH=VALMAT(2)
  265. V1X =VALMAT(3)
  266. V1Y =VALMAT(4)
  267. CC=V1X*V1X
  268. SS=V1Y*V1Y
  269. CS=V1X*V1Y
  270. THMO=(THSU+THIF+4.D0*THM)/6.D0
  271. THDI=THSU-THIF
  272. EXCEN =0.D0
  273. EP2=EPAIST*EPAIST/12.D0
  274. FACM=THMO*EPAIST
  275. FACF=THMO*EPAIST*EXCEN+THDI*EP2
  276. *
  277. * EN AXES D'ORTHOTROPIE
  278. *
  279. SIG1(1)=YG*ALPH
  280. SIG1(2)=0.D0
  281. SIG1(3)=0.D0
  282. *
  283. * CHGT D'AXES
  284. *
  285. SIG2(1)=CC*SIG1(1)
  286. SIG2(2)=SS*SIG1(1)
  287. SIG2(3)=CS*SIG1(1)
  288. *
  289. IF(IFOUR.GT.0) THEN
  290. RES(1)=SIG2(1)*FACM
  291. RES(2)=SIG2(2)*FACM
  292. RES(3)=SIG2(3)*FACM
  293. RES(4)=SIG2(1)*FACF
  294. RES(5)=SIG2(2)*FACF
  295. RES(6)=SIG2(3)*FACF
  296. ELSE IF(IFOUR.LE.0) THEN
  297. RES(1)=SIG2(1)*FACM
  298. RES(2)=SIG2(2)*FACM
  299. RES(3)=SIG2(1)*FACF
  300. RES(4)=SIG2(2)*FACF
  301. ELSE
  302. KERRE=19
  303. GO TO 99
  304. ENDIF
  305. *
  306. *____________________________________________________________________
  307. *
  308. * ELEMENTS POUTRES ET TUYAUX
  309. *____________________________________________________________________
  310. *
  311. ELSEIF(MELE.EQ.29.OR.MELE.EQ.42.OR.MELE.EQ.84)THEN
  312. YOU=VALMAT(1)
  313. ALPH=VALMAT(2)
  314. AUX = YOU*ALPH*SD
  315. *
  316. RES(1)= AUX*TEMP
  317. *
  318. *____________________________________________________________________
  319. *
  320. * ELEMENTS BARRES CERCES ET POINT
  321. *____________________________________________________________________
  322. *
  323. ELSEIF(MELE.EQ.46.OR.MELE.EQ.95.OR.MELE.EQ.45)THEN
  324. *
  325. IF(MELE.EQ.45.AND.IFOUR.NE.-3) THEN
  326. KERRE=86
  327. GO TO 99
  328. ENDIF
  329. IF(MELE.EQ.95.AND.IFOUR.NE.0) THEN
  330. KERRE=86
  331. GO TO 99
  332. ENDIF
  333. *
  334. YOU=VALMAT(1)
  335. ALPH=VALMAT(2)
  336. AUX = YOU*ALPH*SD
  337. RES(1)= AUX*TEMP
  338. ELSE
  339. KERRE=19
  340. ENDIF
  341. *
  342. 99 CONTINUE
  343. RETURN
  344. END
  345.  
  346.  
  347.  
  348.  
  349.  
  350.  
  351.  
  352.  
  353.  

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