Télécharger thetan.eso

Retour à la liste

Numérotation des lignes :

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

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