Télécharger thetan.eso

Retour à la liste

Numérotation des lignes :

thetan
  1. C THETAN SOURCE CB215821 26/08/24 21:18:30 12622
  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 3352 K=1,IDIM
  85. DO 3351 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. 3351 CONTINUE
  90. 3352 CONTINUE
  91. CC=XGLOB(1,1)*XGLOB(1,1)
  92. SS=XGLOB(2,1)*XGLOB(2,1)
  93. CS=XGLOB(1,1)*XGLOB(2,1)
  94. *
  95. * EN AXES D'ORTHOTROPIE
  96. *
  97. DO 3315 I=1,4
  98. SIG1(I)=DHOOK(I,1)*ALP1+DHOOK(I,2)*ALP2+DHOOK(I,3)*ALP3
  99. 1 + DHOOK(I,4)*AL12
  100. 3315 CONTINUE
  101. *
  102. * CHGT D'AXES
  103. *
  104. SIG2(1)=CC*SIG1(1)+SS*SIG1(2)-2.D0*CS*SIG1(4)
  105. SIG2(2)=CC*SIG1(2)+SS*SIG1(1)+2.D0*CS*SIG1(4)
  106. SIG2(4)=CS*(SIG1(1)-SIG1(2))+(CC-SS)*SIG1(4)
  107. *
  108. RES(1)=SIG2(1)*TEMP
  109. RES(2)=SIG2(2)*TEMP
  110. RES(3)=0.D0
  111. RES(4)=SIG2(4)*TEMP
  112.  
  113. *
  114. * DEFORMATIONS PLANES OU AXI OU FOURIER
  115. *
  116. ELSEIF(IFOUR.EQ.-1.OR.IFOUR.EQ.0
  117. 1 .OR.IFOUR.EQ.1.OR.IFOUR.EQ.-3)THEN
  118. DHOOK(1,1)=VALMAT(1)
  119. DHOOK(2,1)=VALMAT(2)
  120. DHOOK(1,2)=DHOOK(2,1)
  121. DHOOK(2,2)=VALMAT(3)
  122. DHOOK(3,1)=VALMAT(4)
  123. DHOOK(1,3)=DHOOK(3,1)
  124. DHOOK(3,2)=VALMAT(5)
  125. DHOOK(2,3)=DHOOK(3,2)
  126. DHOOK(3,3)=VALMAT(6)
  127. DHOOK(4,1)=VALMAT(7)
  128. DHOOK(1,4)=DHOOK(4,1)
  129. DHOOK(4,2)=VALMAT(8)
  130. DHOOK(2,4)=DHOOK(4,2)
  131. DHOOK(4,3)=VALMAT(9)
  132. DHOOK(3,4)=DHOOK(4,3)
  133. DHOOK(4,4)=VALMAT(10)
  134. ALP1= VALMAT(11)
  135. ALP2= VALMAT(12)
  136. AL12= VALMAT(13)
  137. ALP3= VALMAT(14)
  138. XLOC(1,1)=VALMAT(15)
  139. XLOC(2,1)=VALMAT(16)
  140. XLOC(1,2)=-XLOC(2,1)
  141. XLOC(2,2)=XLOC(1,1)
  142. C DEFINITION DES AXES ORTHO./AXES GLOBAUX
  143. DO 3354 K=1,IDIM
  144. DO 3353 J=1,IDIM
  145. DO 3320 I=1,IDIM
  146. XGLOB(J,K)=TXR(J,I)*XLOC(I,K)+XGLOB(J,K)
  147. 3320 CONTINUE
  148. 3353 CONTINUE
  149. 3354 CONTINUE
  150. CC=XGLOB(1,1)*XGLOB(1,1)
  151. SS=XGLOB(2,1)*XGLOB(2,1)
  152. CS=XGLOB(1,1)*XGLOB(2,1)
  153. *
  154. * EN AXES D'ORTHOTROPIE
  155. *
  156. DO 3300 I=1,4
  157. SIG1(I)=DHOOK(I,1)*ALP1+DHOOK(I,2)*ALP2+DHOOK(I,3)*ALP3
  158. 1 +DHOOK(I,4)*AL12
  159. 3300 CONTINUE
  160. *
  161. * CHGT D'AXES
  162. *
  163. SIG2(1)=CC*SIG1(1)+SS*SIG1(2)-2.D0*CS*SIG1(4)
  164. SIG2(2)=CC*SIG1(2)+SS*SIG1(1)+2.D0*CS*SIG1(4)
  165. SIG2(4)=CS*(SIG1(1)-SIG1(2))+(CC-SS)*SIG1(4)
  166. SIG2(3)=SIG1(3)
  167. *
  168. IF(IFOUR.EQ.-1.OR.IFOUR.EQ.0)THEN
  169. RES(1)=SIG2(1)*TEMP
  170. RES(2)=SIG2(2)*TEMP
  171. RES(3)=SIG2(3)*TEMP
  172. RES(4)=SIG2(4)*TEMP
  173. ELSE
  174. RES(1)=SIG2(1)*TEMP
  175. RES(2)=SIG2(2)*TEMP
  176. RES(3)=SIG2(3)*TEMP
  177. RES(4)=SIG2(4)*TEMP
  178. RES(5)=0.D0
  179. RES(6)=0.D0
  180. ENDIF
  181. *
  182. * TRIDIMENSIONNEL
  183. *
  184. ELSEIF(IFOUR.EQ.2)THEN
  185. DHOOK(1,1)=VALMAT(1)
  186. DHOOK(2,1)=VALMAT(2)
  187. DHOOK(1,2)=DHOOK(2,1)
  188. DHOOK(2,2)=VALMAT(3)
  189. DHOOK(3,1)=VALMAT(4)
  190. DHOOK(1,3)=DHOOK(3,1)
  191. DHOOK(3,2)=VALMAT(5)
  192. DHOOK(2,3)=DHOOK(3,2)
  193. DHOOK(3,3)=VALMAT(6)
  194. DHOOK(4,1)=VALMAT(7)
  195. DHOOK(1,4)=DHOOK(4,1)
  196. DHOOK(4,2)=VALMAT(8)
  197. DHOOK(2,4)=DHOOK(4,2)
  198. DHOOK(4,3)=VALMAT(9)
  199. DHOOK(3,4)=DHOOK(4,3)
  200. DHOOK(4,4)=VALMAT(10)
  201. DHOOK(5,1)=VALMAT(11)
  202. DHOOK(1,5)=DHOOK(5,1)
  203. DHOOK(5,2)=VALMAT(12)
  204. DHOOK(2,5)=DHOOK(5,2)
  205. DHOOK(5,3)=VALMAT(13)
  206. DHOOK(3,5)=DHOOK(5,3)
  207. DHOOK(5,4)=VALMAT(14)
  208. DHOOK(4,5)=DHOOK(5,4)
  209. DHOOK(5,5)=VALMAT(15)
  210. DHOOK(6,1)=VALMAT(16)
  211. DHOOK(1,6)=DHOOK(6,1)
  212. DHOOK(6,2)=VALMAT(17)
  213. DHOOK(2,6)=DHOOK(6,2)
  214. DHOOK(6,3)=VALMAT(18)
  215. DHOOK(3,6)=DHOOK(6,3)
  216. DHOOK(6,4)=VALMAT(19)
  217. DHOOK(4,6)=DHOOK(6,4)
  218. DHOOK(6,5)=VALMAT(20)
  219. DHOOK(5,6)=DHOOK(6,5)
  220. DHOOK(6,6)=VALMAT(21)
  221. ALP1= VALMAT(22)
  222. ALP2= VALMAT(23)
  223. ALP3= VALMAT(24)
  224. AL12= VALMAT(25)
  225. AL13= VALMAT(26)
  226. AL23= VALMAT(27)
  227. XLOC(1,1)=VALMAT(28)
  228. XLOC(2,1)=VALMAT(29)
  229. XLOC(3,1)=VALMAT(30)
  230. XLOC(1,2)=VALMAT(31)
  231. XLOC(2,2)=VALMAT(32)
  232. XLOC(3,2)=VALMAT(33)
  233. CALL CROSS2(XLOC(1,1),XLOC(1,2),XLOC(1,3),IRR)
  234. C DEFINITION DES AXES ORTHO./AXES GLOBAUX
  235. DO 3356 K=1,IDIM
  236. DO 3355 J=1,IDIM
  237. DO 3330 I=1,IDIM
  238. XGLOB(J,K)=TXR(J,I)*XLOC(I,K)+XGLOB(J,K)
  239. 3330 CONTINUE
  240. 3355 CONTINUE
  241. 3356 CONTINUE
  242. *
  243. * MATRICE DE TRANSFORMATION
  244. *
  245. DO 3357 IC=1,3
  246. DO 3331 IL=1,3
  247. ROTS (IL,IC)=XGLOB(IL,IC)*XGLOB(IL,IC)
  248. 3331 CONTINUE
  249. 3357 CONTINUE
  250. C
  251. DO 3332 IL=1,3
  252. ROTS (IL,4)=2.D0*XGLOB(IL,1)*XGLOB(IL,2)
  253. ROTS (IL,5)=2.D0*XGLOB(IL,2)*XGLOB(IL,3)
  254. ROTS (IL,6)=2.D0*XGLOB(IL,1)*XGLOB(IL,3)
  255. 3332 CONTINUE
  256. C
  257. DO 3333 IC=1,3
  258. ROTS (4,IC)=XGLOB(1,IC)*XGLOB(2,IC)
  259. ROTS (5,IC)=XGLOB(2,IC)*XGLOB(3,IC)
  260. ROTS (6,IC)=XGLOB(1,IC)*XGLOB(3,IC)
  261. 3333 CONTINUE
  262. C
  263. DO 3358 IL=4,6
  264. IL1=IL-3
  265. IL2=IL1+1
  266. IF(IL2.GT.3)IL2=IL2-3
  267. DO 3334 IC=4,6
  268. IC1=IC-3
  269. IC2=IC1+1
  270. IF(IC2.GT.3)IC2=IC2-3
  271. ROTS (IL,IC)=XGLOB(IL1,IC1)*XGLOB(IL2,IC2)+
  272. . XGLOB(IL1,IC2)*XGLOB(IL2,IC1)
  273. 3334 CONTINUE
  274. 3358 CONTINUE
  275. DO 3335 IC=1,6
  276. AA=ROTS (6,IC)
  277. ROTS (6,IC)=ROTS (5,IC)
  278. ROTS (5,IC)=AA
  279. 3335 CONTINUE
  280. DO 3336 IL=1,6
  281. AA=ROTS (IL,6)
  282. ROTS (IL,6)=ROTS (IL,5)
  283. ROTS (IL,5)=AA
  284. 3336 CONTINUE
  285. *
  286. * EN AXES D'ORTHOTROPIE
  287. *
  288. DO 3340 I=1,6
  289. SIG1(I)=DHOOK(I,1)*ALP1+DHOOK(I,2)*ALP2+DHOOK(I,3)*ALP3
  290. 1 +DHOOK(I,4)*AL12+DHOOK(I,5)*AL13+DHOOK(I,6)*AL23
  291. 3340 CONTINUE
  292. *
  293. * CHGT D'AXES
  294. *
  295. DO 3359 I=1,6
  296. SIG2(I)=0.D0
  297. DO 3350 J=1,6
  298. SIG2(I)=ROTS(I,J)*SIG1(J)+SIG2(I)
  299. 3350 CONTINUE
  300. 3359 CONTINUE
  301. *
  302. RES(1)=SIG2(1)*TEMP
  303. RES(2)=SIG2(2)*TEMP
  304. RES(3)=SIG2(3)*TEMP
  305. RES(4)=SIG2(4)*TEMP
  306. RES(5)=SIG2(5)*TEMP
  307. RES(6)=SIG2(6)*TEMP
  308. ELSE
  309. KERRE=19
  310. GOTO 99
  311. ENDIF
  312. *____________________________________________________________________
  313. *
  314. * SECTEUR DE CALCUL POUR LES ELEMENTS JOINTS 2D JOI2 ET JOI3
  315. *____________________________________________________________________
  316. *
  317. ELSEIF (MELE.EQ.85.OR.MELE.EQ.86) THEN
  318. *
  319. ZKN = VALMAT(2)
  320. ALPN= VALMAT(3)
  321. C
  322. IF (IFOUR.EQ.-2.OR.IFOUR.EQ.-1.OR.IFOUR.EQ.0) THEN
  323. RES(1)=0.D0
  324. RES(2)=ALPN * ZKN * TEMP
  325. ELSE
  326. KERRE=19
  327. GOTO 99
  328. ENDIF
  329. *____________________________________________________________________
  330. *
  331. * SECTEUR DE CALCUL POUR LES ELEMENTS JOINTS 3D JOI4
  332. *____________________________________________________________________
  333. *
  334. ELSE IF (MELE.EQ.88) THEN
  335. ZKN = VALMAT(3)
  336. ALPN= VALMAT(4)
  337. IF (IFOUR.EQ.2) THEN
  338. RES(1)=0.D0
  339. RES(2)=0.D0
  340. RES(3)=ALPN * ZKN * TEMP
  341. ELSE
  342. KERRE=19
  343. GOTO 99
  344. ENDIF
  345. *____________________________________________________________________
  346. *
  347. * ELEMENTS POUTRES ET TUYAUX
  348. *____________________________________________________________________
  349. *
  350. ELSEIF(MELE.EQ.29.OR.MELE.EQ.42.OR.MELE.EQ.84)THEN
  351. YOU=VALMAT(1)
  352. ALPH=VALMAT(2)
  353. AUX = YOU*ALPH*SD
  354. *
  355. RES(1)= AUX*TEMP
  356. *
  357. *____________________________________________________________________
  358. *
  359. * ELEMENTS BARRES CERCES ET POINT
  360. *____________________________________________________________________
  361. *
  362. ELSEIF(MELE.EQ.46.OR.MELE.EQ.95.OR.MELE.EQ.45)THEN
  363. *
  364. IF(MELE.EQ.45.AND.IFOUR.NE.-3) THEN
  365. KERRE=86
  366. GO TO 99
  367. ENDIF
  368. IF(MELE.EQ.95.AND.IFOUR.NE.0) THEN
  369. KERRE=86
  370. GO TO 99
  371. ENDIF
  372. *
  373. YOU=VALMAT(1)
  374. ALPH=VALMAT(2)
  375. AUX = YOU*ALPH*SD
  376. RES(1)= AUX*TEMP
  377. ELSE
  378. KERRE=19
  379. ENDIF
  380. *
  381. 99 CONTINUE
  382. RETURN
  383. END
  384.  
  385.  
  386.  
  387.  
  388.  
  389.  
  390.  
  391.  
  392.  
  393.  

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