Télécharger epthor.eso

Retour à la liste

Numérotation des lignes :

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

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