Télécharger epthor.eso

Retour à la liste

Numérotation des lignes :

  1. C EPTHOR SOURCE BP208322 17/03/01 21:17:27 9325
  2.  
  3. C=======================================================================
  4. C= E P T H O R =
  5. C= ----------- =
  6. C= =
  7. C= Fonction : =
  8. C= ---------- =
  9. C= Calcul des deformations d'origine THERMIQUE dans le cas des mate- =
  10. C= riaux ORTHOTROPES. Sous-programme appele par EPTHP (epthp.eso). =
  11. C= =
  12. C= Parametres : (E)=Entree (S)=Sortie =
  13. C= ------------ =
  14. C= MFR (E) Numero de la FORMULATION utilisee =
  15. C= MELE (E) Numero de l'element fini dans NOMTP (cf. CCHAMP) =
  16. C= VALMAT (E) Tableau des caracteristiques du materiau =
  17. C= NDEFS (E) Nombre de composantes de deformations =
  18. C= TEMP (E) Temperature au point de Gauss considere =
  19. C= THIF (E) | Temperatures des differentes couches =
  20. C= THM (E) | dans les cas des elements coques =
  21. C= THSU (E) | (couches INFErieure, MOYEnne, SUPErieure) =
  22. C= E3 (E) Excentrement dans la cas d'elements coques =
  23. C= EPAIST (E) Epaisseur dans le cas d'elements coques =
  24. C= RES (S) Tableau des valeurs des deformation thermiques =
  25. C= KERRE (S) Indicateur d'erreur si non nul =
  26. C= TXR,XLOC,XGLOB,ROTS (E/S) Tableaux de travail =
  27. C=======================================================================
  28.  
  29. SUBROUTINE EPTHOR (MFR,MELE,VALMAT,NDEFS,TEMP,THIF,THM,THSU,E3,
  30. . EPAIST,TXR,XLOC,XGLOB,ROTS,RES,KERRE)
  31.  
  32. IMPLICIT INTEGER(I-N)
  33. IMPLICIT REAL*8 (A-H,O-Z)
  34.  
  35. -INC CCOPTIO
  36. -INC CCREEL
  37.  
  38. DIMENSION VALMAT(*),RES(*),XLOC(3,3),XGLOB(3,3),
  39. . TXR(IDIM,*),ROTS(NDEFS,*),EPS1(6)
  40.  
  41. KERRE=0
  42.  
  43. C 1 - Elements MASSIFS et POREUX
  44. C ================================
  45. IF (MFR.EQ.1.OR.MFR.EQ.33.OR.MFR.EQ.31) THEN
  46. C =====
  47. C 1.1 - Bidimensionnel PLAN Contraintes Planes
  48. C =====
  49. IF (IFOUR.EQ.-2) THEN
  50. ALP1=VALMAT(1)
  51. ALP2=VALMAT(2)
  52. XLOC(1,1)=VALMAT(3)
  53. XLOC(2,1)=VALMAT(4)
  54. XLOC(1,2)=-XLOC(2,1)
  55. XLOC(2,2)=XLOC(1,1)
  56. DO k=1,IDIM
  57. DO j=1,IDIM
  58. ZZ=XZero
  59. DO i=1,IDIM
  60. ZZ=ZZ+TXR(j,i)*XLOC(i,k)
  61. ENDDO
  62. XGLOB(j,k)=ZZ
  63. ENDDO
  64. ENDDO
  65. CC=XGLOB(1,1)*XGLOB(1,1)
  66. SS=XGLOB(2,1)*XGLOB(2,1)
  67. CS=XGLOB(1,1)*XGLOB(2,1)
  68. RES(1)=(CC*ALP1+SS*ALP2)*TEMP
  69. RES(2)=(CC*ALP2+SS*ALP1)*TEMP
  70. RES(3)=XZero
  71. RES(4)=2.*CS*(ALP1-ALP2)*TEMP
  72. C =====
  73. C 1.2 - Bidimensionnel PLAN (DP/DPGE) et Axisymetrie
  74. C =====
  75. ELSE IF (IFOUR.EQ.-1.OR.IFOUR.EQ.-3.OR.IFOUR.EQ.0) THEN
  76. ALP1=VALMAT(1)
  77. ALP2=VALMAT(2)
  78. ALP3=VALMAT(3)
  79. XLOC(1,1)=VALMAT(4)
  80. XLOC(2,1)=VALMAT(5)
  81. XLOC(1,2)=-XLOC(2,1)
  82. XLOC(2,2)=XLOC(1,1)
  83. DO k=1,IDIM
  84. DO j=1,IDIM
  85. ZZ=XZero
  86. DO i=1,IDIM
  87. ZZ=ZZ+TXR(j,i)*XLOC(i,k)
  88. ENDDO
  89. XGLOB(j,k)=ZZ
  90. ENDDO
  91. ENDDO
  92. CC=XGLOB(1,1)*XGLOB(1,1)
  93. SS=XGLOB(2,1)*XGLOB(2,1)
  94. CS=XGLOB(1,1)*XGLOB(2,1)
  95. RES(1)=(CC*ALP1+SS*ALP2)*TEMP
  96. RES(2)=(CC*ALP2+SS*ALP1)*TEMP
  97. RES(3)=ALP3*TEMP
  98. RES(4)=2.*CS*(ALP1-ALP2)*TEMP
  99. IF (IFOUR.EQ.1) THEN
  100. RES(5)=XZero
  101. RES(6)=XZero
  102. ENDIF
  103. C =====
  104. C 1.3 - Tridimensionnel et 2D Fourier
  105. C =====
  106. ELSE IF (IFOUR.EQ.2.OR.IFOUR.EQ.1) THEN
  107. ALP1=VALMAT(1)
  108. ALP2=VALMAT(2)
  109. ALP3=VALMAT(3)
  110. XLOC(1,1)=VALMAT(4)
  111. XLOC(2,1)=VALMAT(5)
  112. XLOC(3,1)=VALMAT(6)
  113. XLOC(1,2)=VALMAT(7)
  114. XLOC(2,2)=VALMAT(8)
  115. XLOC(3,2)=VALMAT(9)
  116. CALL CROSS2(XLOC(1,1),XLOC(1,2),XLOC(1,3),IRR)
  117. DO k=1,3
  118. DO j=1,IDIM
  119. ZZ=XZero
  120. DO i=1,IDIM
  121. ZZ=ZZ+TXR(j,i)*XLOC(i,k)
  122. ENDDO
  123. cbp_doute : dans dohmao, il s'agit du terme XGLOB(k,j)
  124. XGLOB(j,k)=ZZ
  125. ROTS(j,k)=ZZ*ZZ
  126. ENDDO
  127. ENDDO
  128. cbp en 2D Fourier, vrai TXR = [TXR(2x2) [0] ; [0] 1]
  129. IF(IFOUR.EQ.1) THEN
  130. cbp : dans le doute, on n'ecrit pas dans le meme sens que dohmao...
  131. XGLOB(3,1)=XLOC(3,1)
  132. XGLOB(3,2)=XLOC(3,2)
  133. XGLOB(3,3)=XLOC(3,3)
  134. ENDIF
  135. DO i=1,3
  136. ROTS(i,4)=XGLOB(i,1)*XGLOB(i,2)
  137. ROTS(i,5)=XGLOB(i,2)*XGLOB(i,3)
  138. ROTS(i,6)=XGLOB(i,1)*XGLOB(i,3)
  139. ROTS(4,i)=2.*XGLOB(1,i)*XGLOB(2,i)
  140. ROTS(5,i)=2.*XGLOB(2,i)*XGLOB(3,i)
  141. ROTS(6,i)=2.*XGLOB(1,i)*XGLOB(3,i)
  142. ENDDO
  143. DO i=4,6
  144. i1=i-3
  145. i2=i1+1
  146. IF (i2.GT.3) i2=i2-3
  147. DO j=4,6
  148. j1=j-3
  149. j2=j1+1
  150. IF (j2.GT.3) j2=j2-3
  151. ROTS(i,j)= XGLOB(i1,j1)*XGLOB(i2,j2)
  152. . +XGLOB(i1,j2)*XGLOB(i2,j1)
  153. ENDDO
  154. ENDDO
  155. DO i=1,6
  156. ZZ=ROTS(6,i)
  157. ROTS(6,i)=ROTS(5,i)
  158. ROTS(5,i)=ZZ
  159. ENDDO
  160. DO i=1,6
  161. ZZ=ROTS(i,6)
  162. ROTS(i,6)=ROTS(i,5)
  163. ROTS(i,5)=ZZ
  164. ENDDO
  165. RES(1)=(ROTS(1,1)*ALP1+ROTS(1,2)*ALP2+ROTS(1,3)*ALP3)*TEMP
  166. RES(2)=(ROTS(2,1)*ALP1+ROTS(2,2)*ALP2+ROTS(2,3)*ALP3)*TEMP
  167. RES(3)=(ROTS(3,1)*ALP1+ROTS(3,2)*ALP2+ROTS(3,3)*ALP3)*TEMP
  168. RES(4)=(ROTS(4,1)*ALP1+ROTS(4,2)*ALP2+ROTS(4,3)*ALP3)*TEMP
  169. RES(5)=(ROTS(5,1)*ALP1+ROTS(5,2)*ALP2+ROTS(5,3)*ALP3)*TEMP
  170. RES(6)=(ROTS(6,1)*ALP1+ROTS(6,2)*ALP2+ROTS(6,3)*ALP3)*TEMP
  171. C =====
  172. C 1.4 - Unidimensionnel (1D)
  173. C =====
  174. ELSE IF (IFOUR.GE.3.AND.IFOUR.LE.15.AND.MFR.EQ.1) THEN
  175. RES(1)=VALMAT(1)*TEMP
  176. IF (IFOUR.EQ.6) THEN
  177. RES(2)=XZero
  178. RES(3)=XZero
  179. ELSE IF (IFOUR.EQ.4.OR.IFOUR.EQ.8) THEN
  180. RES(2)=VALMAT(2)*TEMP
  181. RES(3)=XZero
  182. ELSE IF (IFOUR.EQ.5.OR.IFOUR.EQ.10.OR.IFOUR.EQ.13) THEN
  183. RES(2)=XZero
  184. RES(3)=VALMAT(2)*TEMP
  185. ELSE
  186. RES(2)=VALMAT(2)*TEMP
  187. RES(3)=VALMAT(3)*TEMP
  188. ENDIF
  189. C =====
  190. C 1.5 - Cas non prevus
  191. C =====
  192. ELSE
  193. KERRE=19
  194. ENDIF
  195.  
  196. C 2 - Element JOINT 3D : JOI4
  197. C ==============================
  198. ELSE IF (MELE.EQ.88) THEN
  199. IF (IFOUR.EQ.2) THEN
  200. RES(1)=XZero
  201. RES(2)=XZero
  202. RES(3)=VALMAT(1)*TEMP
  203. ELSE
  204. KERRE=19
  205. ENDIF
  206.  
  207. C 3 - Elements COQUES MINCES sauf COQ2
  208. C ======================================
  209. ELSE IF (MELE.EQ.27.OR.MELE.EQ.28.OR.MELE.EQ.49.OR.
  210. . MELE.EQ.93) THEN
  211. IF (IFOUR.GT.0) THEN
  212. FACM=(THSU+THIF+4.D0*THM)/6.D0
  213. FACF=(THSU-THIF)/EPAIST
  214. ALP1=VALMAT(1)
  215. ALP2=VALMAT(2)
  216. V1X=VALMAT(3)
  217. V1Y=VALMAT(4)
  218. CC=V1X*V1X
  219. SS=V1Y*V1Y
  220. CS=V1X*V1Y
  221. RES(4)=CC*ALP1+SS*ALP2
  222. RES(5)=CC*ALP2+SS*ALP1
  223. RES(6)=2.*CS*(ALP1-ALP2)
  224. RES(1)=RES(4)*FACM
  225. RES(2)=RES(5)*FACM
  226. RES(3)=RES(6)*FACM
  227. RES(4)=RES(4)*FACF
  228. RES(5)=RES(5)*FACF
  229. RES(6)=RES(6)*FACF
  230. ELSE IF (IFOUR.LE.0) THEN
  231. KERRE=19
  232. ENDIF
  233.  
  234. C 4 - Element COQ2
  235. C ==================
  236. ELSE IF (MELE.EQ.44)THEN
  237. FACM=(THSU+THIF+4.D0*THM)/6.D0
  238. FACF=(THSU-THIF)/EPAIST
  239. ALP1=VALMAT(1)
  240. ALP2=VALMAT(2)
  241. V1X=VALMAT(3)
  242. V1Y=VALMAT(4)
  243. CC=V1X*V1X
  244. SS=V1Y*V1Y
  245. IF (IFOUR.GT.0) THEN
  246. CS=V1X*V1Y
  247. RES(4)=CC*ALP1+SS*ALP2
  248. RES(5)=CC*ALP2+SS*ALP1
  249. RES(6)=2.*CS*(ALP1-ALP2)
  250. RES(1)=RES(4)*FACM
  251. RES(2)=RES(5)*FACM
  252. RES(3)=RES(6)*FACM
  253. RES(4)=RES(4)*FACF
  254. RES(5)=RES(5)*FACF
  255. RES(6)=RES(6)*FACF
  256. ELSE IF (IFOUR.EQ.0) THEN
  257. RES(3)=CC*ALP1+SS*ALP2
  258. RES(4)=CC*ALP2+SS*ALP1
  259. RES(1)=RES(3)*FACM
  260. RES(2)=RES(4)*FACM
  261. RES(3)=RES(3)*FACF
  262. RES(4)=RES(4)*FACF
  263. ELSE
  264. KERRE=19
  265. ENDIF
  266.  
  267. C 5 - Elements COQUES EPAISSES
  268. C ==============================
  269. ELSE IF (MELE.EQ.41.OR.MELE.EQ.56) THEN
  270. THG=0.5*E3*((E3+1.)*THSU+(E3-1.)*THIF)+(1.-E3*E3)*THM
  271. ALP1=VALMAT(1)
  272. ALP2=VALMAT(2)
  273. V1X=VALMAT(3)
  274. V1Y=VALMAT(4)
  275. CC=V1X*V1X
  276. SS=V1Y*V1Y
  277. CS=V1X*V1Y
  278. RES(1)=(CC*ALP1+SS*ALP2)*THG
  279. RES(2)=(CC*ALP2+SS*ALP1)*THG
  280. RES(3)=2.*CS*(ALP1-ALP2)*THG
  281. RES(4)=XZero
  282. RES(5)=XZero
  283.  
  284. C 6 - Elements JOI1
  285. C ==============================
  286. ELSE IF (MELE.EQ.265) THEN
  287. IF (IDIM.EQ.3) THEN
  288. ALPN=VALMAT(1)
  289. ALP1=VALMAT(2)
  290. ALP2=VALMAT(3)
  291. ALQN=VALMAT(4)
  292. ALQ1=VALMAT(5)
  293. ALQ2=VALMAT(6)
  294. *
  295. EPS1(1)=ALPN
  296. EPS1(2)=ALP1
  297. EPS1(3)=ALP2
  298. EPS1(4)=ALQN
  299. EPS1(5)=ALQ1
  300. EPS1(6)=ALQ2
  301. *
  302. DO I=1,6
  303. RES(I)=EPS1(I)*TEMP
  304. ENDDO
  305. *
  306. ELSE IF (IDIM.EQ.2) THEN
  307. ALPN=VALMAT(1)
  308. ALPS=VALMAT(2)
  309. ALQS=VALMAT(3)
  310. *
  311. EPS1(1)=ALPN
  312. EPS1(2)=ALPS
  313. EPS1(2)=ALQS
  314. *
  315. DO I=1,3
  316. RES(I)=EPS1(I)*TEMP
  317. ENDDO
  318. ENDIF
  319.  
  320. C 7 - Autres cas non prevus
  321. C ===========================
  322. ELSE
  323. KERRE=19
  324. ENDIF
  325.  
  326. RETURN
  327. END
  328.  
  329.  
  330.  
  331.  
  332.  
  333.  
  334.  
  335.  
  336.  

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