Télécharger thetun.eso

Retour à la liste

Numérotation des lignes :

thetun
  1. C THETUN SOURCE CB215821 26/08/24 21:18:30 12622
  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 4312 K=1,IDIM
  67. DO 4311 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. 4311 CONTINUE
  72. 4312 CONTINUE
  73. CC=XGLOB(1,1)*XGLOB(1,1)
  74. SS=XGLOB(2,1)*XGLOB(2,1)
  75. CS=XGLOB(1,1)*XGLOB(2,1)
  76. *
  77. * EN AXES D'ORTHOTROPIE
  78. *
  79. SIG1(1)=YG*ALPH
  80. *
  81. * CHGT D'AXES
  82. *
  83. SIG2(1)=CC*SIG1(1)
  84. SIG2(2)=SS*SIG1(1)
  85. SIG2(3)=0.D0
  86. SIG2(4)=CS*SIG1(1)
  87. *
  88. RES(1)=SIG2(1)*TEMP
  89. RES(2)=SIG2(2)*TEMP
  90. RES(3)=0.D0
  91. RES(4)=SIG2(4)*TEMP
  92. IF(IFOUR.EQ.1) THEN
  93. RES(5)=0.D0
  94. RES(6)=0.D0
  95. ENDIF
  96. *
  97. * TRIDIMENSIONNEL
  98. *
  99. ELSE
  100. YG = VALMAT(1)
  101. ALPH= VALMAT(2)
  102. XLOC(1,1)=VALMAT(3)
  103. XLOC(2,1)=VALMAT(4)
  104. XLOC(3,1)=VALMAT(5)
  105. XLOC(1,2)=VALMAT(6)
  106. XLOC(2,2)=VALMAT(7)
  107. XLOC(3,2)=VALMAT(8)
  108. CALL CROSS2(XLOC(1,1),XLOC(1,2),XLOC(1,3),IRR)
  109. C DEFINITION DES AXES ORTHO./AXES GLOBAUX
  110. DO 4314 K=1,IDIM
  111. DO 4313 J=1,IDIM
  112. DO 2330 I=1,IDIM
  113. XGLOB(J,K)=TXR(J,I)*XLOC(I,K)+XGLOB(J,K)
  114. 2330 CONTINUE
  115. 4313 CONTINUE
  116. 4314 CONTINUE
  117. *
  118. * MATRICE DE TRANSFORMATION
  119. *
  120. DO 4315 IC=1,3
  121. DO 2331 IL=1,3
  122. ROTS(IL,IC)=XGLOB(IL,IC)*XGLOB(IL,IC)
  123. 2331 CONTINUE
  124. 4315 CONTINUE
  125. C
  126. DO 2332 IL=1,3
  127. ROTS(IL,4)=2.D0*XGLOB(IL,1)*XGLOB(IL,2)
  128. ROTS(IL,5)=2.D0*XGLOB(IL,2)*XGLOB(IL,3)
  129. ROTS(IL,6)=2.D0*XGLOB(IL,1)*XGLOB(IL,3)
  130. 2332 CONTINUE
  131. C
  132. DO 2333 IC=1,3
  133. ROTS(4,IC)=XGLOB(1,IC)*XGLOB(2,IC)
  134. ROTS(5,IC)=XGLOB(2,IC)*XGLOB(3,IC)
  135. ROTS(6,IC)=XGLOB(1,IC)*XGLOB(3,IC)
  136. 2333 CONTINUE
  137. C
  138. DO 4316 IL=4,6
  139. IL1=IL-3
  140. IL2=IL1+1
  141. IF(IL2.GT.3)IL2=IL2-3
  142. DO 2334 IC=4,6
  143. IC1=IC-3
  144. IC2=IC1+1
  145. IF(IC2.GT.3)IC2=IC2-3
  146. ROTS(IL,IC)=XGLOB(IL1,IC1)*XGLOB(IL2,IC2)+
  147. . XGLOB(IL1,IC2)*XGLOB(IL2,IC1)
  148. 2334 CONTINUE
  149. 4316 CONTINUE
  150. DO 2335 IC=1,6
  151. AA=ROTS(6,IC)
  152. ROTS(6,IC)=ROTS(5,IC)
  153. ROTS(5,IC)=AA
  154. 2335 CONTINUE
  155. DO 2336 IL=1,6
  156. AA=ROTS(IL,6)
  157. ROTS(IL,6)=ROTS(IL,5)
  158. ROTS(IL,5)=AA
  159. 2336 CONTINUE
  160. *
  161. * EN AXES D'ORTHOTROPIE
  162. *
  163. SIG1(1)=YG*ALPH
  164. DO 2340 I=2,6
  165. SIG1(I)=0.D0
  166. 2340 CONTINUE
  167. *
  168. * CHGT D'AXES
  169. *
  170. DO 4317 I=1,6
  171. SIG2(I)=0.D0
  172. DO 2350 J=1,6
  173. SIG2(I)= SIG2(I) +ROTS(I,J)*SIG1(J)
  174. 2350 CONTINUE
  175. 4317 CONTINUE
  176. *
  177. RES(1)=SIG2(1)*TEMP
  178. RES(2)=SIG2(2)*TEMP
  179. RES(3)=SIG2(3)*TEMP
  180. RES(4)=SIG2(4)*TEMP
  181. RES(5)=SIG2(5)*TEMP
  182. RES(6)=SIG2(6)*TEMP
  183. ENDIF
  184. *____________________________________________________________________
  185. *
  186. * SECTEUR DE CALCUL POUR LES ELEMENTS JOINTS 2D JOI2 et JOI3
  187. *____________________________________________________________________
  188. *
  189. ELSEIF (MELE.EQ.85.OR.MELE.EQ.86) THEN
  190. *
  191. ZKN = VALMAT(2)
  192. ALPN= VALMAT(3)
  193. C
  194. IF (IFOUR.EQ.-2.OR.IFOUR.EQ.-1.OR.IFOUR.EQ.0) THEN
  195. RES(1)=0.D0
  196. RES(2)=ALPN * ZKN * TEMP
  197. ELSE
  198. KERRE=19
  199. GOTO 99
  200. ENDIF
  201. *____________________________________________________________________
  202. *
  203. * SECTEUR DE CALCUL POUR LES ELEMENTS JOINTS 3D JOI4
  204. *____________________________________________________________________
  205. *
  206. ELSE IF (MELE.EQ.88) THEN
  207. ZKN = VALMAT(3)
  208. ALPN= VALMAT(4)
  209. IF (IFOUR.EQ.2) THEN
  210. RES(1)=0.D0
  211. RES(2)=0.D0
  212. RES(3)=ALPN * ZKN * TEMP
  213. ELSE
  214. KERRE=19
  215. GOTO 99
  216. ENDIF
  217. *____________________________________________________________________
  218. *
  219. * SECTEUR DE CALCUL POUR LES ELEMENTS COQUES MINCES SAUF COQ2
  220. *____________________________________________________________________
  221. *
  222. ELSE IF(MELE.EQ.27.OR.MELE.EQ.28.OR.
  223. 1 MELE.EQ.49)THEN
  224. YG = VALMAT(1)
  225. ALPH=VALMAT(2)
  226. V1X= VALMAT(3)
  227. V1Y= VALMAT(4)
  228. CC=V1X*V1X
  229. SS=V1Y*V1Y
  230. CS=V1X*V1Y
  231. THMO=(THSU+THIF+4.D0*THM)/6.D0
  232. THDI=THSU-THIF
  233. EXCEN =0.D0
  234. EP2=EPAIST*EPAIST/12.D0
  235. FACM=THMO*EPAIST
  236. FACF=THMO*EPAIST*EXCEN+THDI*EP2
  237. *
  238. * EN AXES D'ORTHOTROPIE
  239. *
  240. SIG1(1)=YG*ALPH
  241. SIG1(2)=0.D0
  242. SIG1(3)=0.D0
  243. *
  244. * CHGT D'AXES
  245. *
  246. SIG2(1)=CC*SIG1(1)
  247. SIG2(2)=SS*SIG1(1)
  248. SIG2(3)=CS*SIG1(1)
  249. *
  250. IF(IFOUR.GT.0) THEN
  251. RES(1)=SIG2(1)*FACM
  252. RES(2)=SIG2(2)*FACM
  253. RES(3)=SIG2(3)*FACM
  254. RES(4)=SIG2(1)*FACF
  255. RES(5)=SIG2(2)*FACF
  256. RES(6)=SIG2(3)*FACF
  257. ELSE IF(IFOUR.LE.0) THEN
  258. *
  259. * PAS GRAND SENS DANS CE CAS
  260. *
  261. KERRE=19
  262. GO TO 99
  263. ENDIF
  264. C____________________________________________________________________
  265. C
  266. C SECTEUR DE CALCUL POUR LES ELEMENTS COQ2
  267. C____________________________________________________________________
  268. C
  269. ELSEIF(MELE.EQ.44)THEN
  270. YG =VALMAT(1)
  271. ALPH=VALMAT(2)
  272. V1X =VALMAT(3)
  273. V1Y =VALMAT(4)
  274. CC=V1X*V1X
  275. SS=V1Y*V1Y
  276. CS=V1X*V1Y
  277. THMO=(THSU+THIF+4.D0*THM)/6.D0
  278. THDI=THSU-THIF
  279. EXCEN =0.D0
  280. EP2=EPAIST*EPAIST/12.D0
  281. FACM=THMO*EPAIST
  282. FACF=THMO*EPAIST*EXCEN+THDI*EP2
  283. *
  284. * EN AXES D'ORTHOTROPIE
  285. *
  286. SIG1(1)=YG*ALPH
  287. SIG1(2)=0.D0
  288. SIG1(3)=0.D0
  289. *
  290. * CHGT D'AXES
  291. *
  292. SIG2(1)=CC*SIG1(1)
  293. SIG2(2)=SS*SIG1(1)
  294. SIG2(3)=CS*SIG1(1)
  295. *
  296. IF(IFOUR.GT.0) THEN
  297. RES(1)=SIG2(1)*FACM
  298. RES(2)=SIG2(2)*FACM
  299. RES(3)=SIG2(3)*FACM
  300. RES(4)=SIG2(1)*FACF
  301. RES(5)=SIG2(2)*FACF
  302. RES(6)=SIG2(3)*FACF
  303. ELSE IF(IFOUR.LE.0) THEN
  304. RES(1)=SIG2(1)*FACM
  305. RES(2)=SIG2(2)*FACM
  306. RES(3)=SIG2(1)*FACF
  307. RES(4)=SIG2(2)*FACF
  308. ELSE
  309. KERRE=19
  310. GO TO 99
  311. ENDIF
  312. *
  313. *____________________________________________________________________
  314. *
  315. * ELEMENTS POUTRES ET TUYAUX
  316. *____________________________________________________________________
  317. *
  318. ELSEIF(MELE.EQ.29.OR.MELE.EQ.42.OR.MELE.EQ.84)THEN
  319. YOU=VALMAT(1)
  320. ALPH=VALMAT(2)
  321. AUX = YOU*ALPH*SD
  322. *
  323. RES(1)= AUX*TEMP
  324. *
  325. *____________________________________________________________________
  326. *
  327. * ELEMENTS BARRES CERCES ET POINT
  328. *____________________________________________________________________
  329. *
  330. ELSEIF(MELE.EQ.46.OR.MELE.EQ.95.OR.MELE.EQ.45)THEN
  331. *
  332. IF(MELE.EQ.45.AND.IFOUR.NE.-3) THEN
  333. KERRE=86
  334. GO TO 99
  335. ENDIF
  336. IF(MELE.EQ.95.AND.IFOUR.NE.0) THEN
  337. KERRE=86
  338. GO TO 99
  339. ENDIF
  340. *
  341. YOU=VALMAT(1)
  342. ALPH=VALMAT(2)
  343. AUX = YOU*ALPH*SD
  344. RES(1)= AUX*TEMP
  345. ELSE
  346. KERRE=19
  347. ENDIF
  348. *
  349. 99 CONTINUE
  350. RETURN
  351. END
  352.  
  353.  
  354.  
  355.  
  356.  
  357.  
  358.  
  359.  
  360.  
  361.  

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