Télécharger tpy13.eso

Retour à la liste

Numérotation des lignes :

tpy13
  1. C TPY13 SOURCE OF166741 23/12/04 21:15:16 11800
  2.  
  3. C=======================================================================
  4. C= T P Y 1 3 =
  5. C= --------- =
  6. C= =
  7. C= Fonction : =
  8. C= ---------- =
  9. C= Acquisition des caracteristiques d'integration aux noeuds, aux =
  10. C= points d'integration (Gauss) ou au centre de gravite pour =
  11. C= l'element thermique support PY13. =
  12. C= =
  13. C= Parametres : (E)=Entree (S)=Sortie =
  14. C= ------------ =
  15. C= ISUPTH (E) Indique le support d'integration demande =
  16. C= IPINTE (S) Pointeur sur le segment MINTE associe (ACTIF en S) =
  17. C=======================================================================
  18.  
  19. SUBROUTINE TPY13 (ISUPTH,IPINTE)
  20.  
  21. IMPLICIT INTEGER(I-N)
  22. IMPLICIT REAL*8(A-H,O-Z)
  23.  
  24. -INC SMINTE
  25.  
  26. PARAMETER ( UN=1.D0, XZER=0.D0, DEUX=2.D0, TROIS=3.D0 )
  27. PARAMETER ( QUATRE=4.D0 )
  28. PARAMETER ( UNDEMI=0.5D0, UNQUA=0.25D0 )
  29. PARAMETER ( UN239=2.D0/39.D0 )
  30. PARAMETER ( A1=0.788073483D0 )
  31. PARAMETER ( B6=0.499369002D0 )
  32. PARAMETER ( B =0.848418011D0 )
  33. PARAMETER ( C8=0.478508449D0 )
  34. PARAMETER ( C =0.652816472D0 )
  35. PARAMETER ( D12=0.032303742D0 )
  36. PARAMETER ( D =1.106412889D0 )
  37.  
  38. NBNO = 13
  39. IF (ISUPTH.EQ.1) THEN
  40. NBPGAU = 13
  41. ELSE IF (ISUPTH.EQ.2) THEN
  42. NBPGAU = 27
  43. ELSE IF (ISUPTH.EQ.3) THEN
  44. NBPGAU = 1
  45. ELSE
  46. CALL ERREUR(5)
  47. RETURN
  48. ENDIF
  49. SEGINI,MINTE
  50.  
  51. C COORDONNEES ET POIDS DES 13 NOEUDS
  52. IF (ISUPTH.EQ.1) THEN
  53. QSIGAU( 1) = UN
  54. QSIGAU( 2) = UNDEMI
  55. QSIGAU( 3) = XZER
  56. QSIGAU( 4) = -UNDEMI
  57. QSIGAU( 5) = -UN
  58. QSIGAU( 6) = -UNDEMI
  59. QSIGAU( 7) = XZER
  60. QSIGAU( 8) = UNDEMI
  61. QSIGAU( 9) = UNDEMI
  62. QSIGAU(10) = XZER
  63. QSIGAU(11) = -UNDEMI
  64. QSIGAU(12) = XZER
  65. QSIGAU(13) = XZER
  66.  
  67. ETAGAU( 1) = XZER
  68. ETAGAU( 2) = UNDEMI
  69. ETAGAU( 3) = UN
  70. ETAGAU( 4) = UNDEMI
  71. ETAGAU( 5) = XZER
  72. ETAGAU( 6) = -UNDEMI
  73. ETAGAU( 7) = -UN
  74. ETAGAU( 8) = -UNDEMI
  75. ETAGAU( 9) = XZER
  76. ETAGAU(10) = UNDEMI
  77. ETAGAU(11) = XZER
  78. ETAGAU(12) = -UNDEMI
  79. ETAGAU(13) = XZER
  80.  
  81. DZEGAU( 1) = XZER
  82. DZEGAU( 2) = XZER
  83. DZEGAU( 3) = XZER
  84. DZEGAU( 4) = XZER
  85. DZEGAU( 5) = XZER
  86. DZEGAU( 6) = XZER
  87. DZEGAU( 7) = XZER
  88. DZEGAU( 8) = XZER
  89. DZEGAU( 9) = UNDEMI
  90. DZEGAU(10) = UNDEMI
  91. DZEGAU(11) = UNDEMI
  92. DZEGAU(12) = UNDEMI
  93. DZEGAU(13) = UN
  94.  
  95. DO I = 1, 13
  96. POIGAU(I) = UN239
  97. ENDDO
  98.  
  99. C COORDONNEES ET POIDS DES 27 POINTS DE GAUSS
  100. C- Formules pour augmenter la precision des constantes B,C,D,A1,B6,C8,D12 ?
  101. C- Coordonnees DZETA des POINTS 6 et 7 a verifier ?
  102. C- Verifier les poids de Gauss : dependance en DZETA ?
  103. ELSE IF (ISUPTH.EQ.2) THEN
  104.  
  105. DZEGAU(1) = UNDEMI
  106. DZEGAU(2) = UNDEMI
  107. DZEGAU(3) = UNDEMI
  108. DZEGAU(4) = UNDEMI
  109. DZEGAU(5) = UNDEMI
  110. DZEGAU(6) = UNDEMI*(UN-B)
  111. DZEGAU(7) = UNDEMI*(UN+B)
  112. DO I = 8, 11
  113. DZEGAU(I ) = UNDEMI*(UN-C)
  114. DZEGAU(I+4 ) = UNDEMI*(UN+C)
  115. DZEGAU(I+8 ) = UNDEMI*(UN-D)
  116. DZEGAU(I+12) = UNDEMI
  117. DZEGAU(I+16) = UNDEMI*(UN+D)
  118. ENDDO
  119.  
  120. QSIGAU(1 ) = XZER
  121. QSIGAU(2 ) = UNDEMI*B*(UN-DZEGAU(2))
  122. QSIGAU(3 ) = -UNDEMI*B*(UN-DZEGAU(3))
  123. QSIGAU(4 ) = -UNDEMI*B*(UN-DZEGAU(4))
  124. QSIGAU(5 ) = UNDEMI*B*(UN-DZEGAU(5))
  125. QSIGAU(6 ) = XZER
  126. QSIGAU(7 ) = XZER
  127. QSIGAU(8 ) = C*(UN-DZEGAU(8))
  128. QSIGAU(9 ) = XZER
  129. QSIGAU(10) = -C*(UN-DZEGAU(10))
  130. QSIGAU(11) = XZER
  131. QSIGAU(12) = C*(UN-DZEGAU(12))
  132. QSIGAU(13) = XZER
  133. QSIGAU(14) = -C*(UN-DZEGAU(14))
  134. QSIGAU(15) = XZER
  135. QSIGAU(16) = UNDEMI*D*(UN-DZEGAU(16))
  136. QSIGAU(17) = -UNDEMI*D*(UN-DZEGAU(17))
  137. QSIGAU(18) = -UNDEMI*D*(UN-DZEGAU(18))
  138. QSIGAU(19) = UNDEMI*D*(UN-DZEGAU(19))
  139. QSIGAU(20) = D*(UN-DZEGAU(20))
  140. QSIGAU(21) = XZER
  141. QSIGAU(22) = -D*(UN-DZEGAU(22))
  142. QSIGAU(23) = XZER
  143. QSIGAU(24) = UNDEMI*D*(UN-DZEGAU(24))
  144. QSIGAU(25) = -UNDEMI*D*(UN-DZEGAU(25))
  145. QSIGAU(26) = -UNDEMI*D*(UN-DZEGAU(26))
  146. QSIGAU(27) = UNDEMI*D*(UN-DZEGAU(27))
  147.  
  148. ETAGAU(1 ) = XZER
  149. ETAGAU(2 ) = QSIGAU(2)
  150. ETAGAU(3 ) = -QSIGAU(3)
  151. ETAGAU(4 ) = QSIGAU(4)
  152. ETAGAU(5 ) = -QSIGAU(5)
  153. ETAGAU(6 ) = XZER
  154. ETAGAU(7 ) = XZER
  155. ETAGAU(8 ) = XZER
  156. ETAGAU(9 ) = C*(UN-DZEGAU(9))
  157. ETAGAU(10) = XZER
  158. ETAGAU(11) = -C*(UN-DZEGAU(11))
  159. ETAGAU(12) = XZER
  160. ETAGAU(13) = C*(UN-DZEGAU(13))
  161. ETAGAU(14) = XZER
  162. ETAGAU(15) = -C*(UN-DZEGAU(15))
  163. ETAGAU(16) = QSIGAU(16)
  164. ETAGAU(17) = -QSIGAU(17)
  165. ETAGAU(18) = QSIGAU(18)
  166. ETAGAU(19) = -QSIGAU(19)
  167. ETAGAU(20) = XZER
  168. ETAGAU(21) = D*(UN-DZEGAU(21))
  169. ETAGAU(22) = XZER
  170. ETAGAU(23) = -D*(UN-DZEGAU(23))
  171. ETAGAU(24) = QSIGAU(24)
  172. ETAGAU(25) = -QSIGAU(25)
  173. ETAGAU(26) = QSIGAU(26)
  174. ETAGAU(27) = -QSIGAU(27)
  175.  
  176. r_z = UN - DZEGAU(1)
  177. POIGAU(1) = A1 * UNQUA * r_z * r_z
  178. DO I = 2, 7
  179. r_z = UN - DZEGAU(I)
  180. POIGAU(I) = B6 * UNQUA * r_z * r_z
  181. ENDDO
  182. DO I = 8, 15
  183. r_z = UN - DZEGAU(I)
  184. POIGAU(I) = C8 * UNQUA * r_z * r_z
  185. ENDDO
  186. DO I = 16, 27
  187. r_z = UN - DZEGAU(I)
  188. POIGAU(I) = D12 * UNQUA * r_z * r_z
  189. ENDDO
  190.  
  191. C COORDONNEES ET POIDS DU CENTRE DE GRAVITE
  192. ELSE IF (ISUPTH.EQ.3) THEN
  193. QSIGAU(1) = O0
  194. ETAGAU(1) = O0
  195. DZEGAU(1) = UNQUA
  196. POIGAU(1) = DEUX/TROIS
  197.  
  198. ENDIF
  199.  
  200. C FONCTIONS DE FORME ET LEURS DERIVEES
  201. DO I = 1, NBPGAU
  202. DZEM = UN-DZEGAU(I)
  203.  
  204. IF (ABS(DZEM).LT.1.D-6) THEN
  205. C- Initialisations a 0 faites par SEGINI
  206. c DO IB = 1, 13
  207. c DO IA = 1, 4
  208. c SHPTOT(IA,IB,I)= XZER
  209. c ENDDO
  210. c ENDDO
  211. SHPTOT(1,13,I) = UN
  212. SHPTOT(2,1 ,I) = -UNDEMI
  213. SHPTOT(2,5 ,I) = UNDEMI
  214. SHPTOT(2,9 ,I) = DEUX
  215. SHPTOT(2,11,I) = -DEUX
  216. SHPTOT(3,3 ,I) = -UNDEMI
  217. SHPTOT(3,7 ,I) = UNDEMI
  218. SHPTOT(3,10,I) = DEUX
  219. SHPTOT(3,12,I) = -DEUX
  220. DO IB = 1, 7, 2
  221. SHPTOT(4,IB,I) = UNQUA
  222. ENDDO
  223. c DO IB = 2, 8, 2
  224. c SHPTOT(4,IB,I) = XZER
  225. c ENDDO
  226. DO IB = 9, 12
  227. SHPTOT(4,IB,I) = -UN
  228. ENDDO
  229. SHPTOT(4,13,I) = TROIS
  230.  
  231. ELSE
  232. DZEM2 = DEUX*DZEM
  233. PAUX = +QSIGAU(I)+ETAGAU(I)+DZEGAU(I)-UN
  234. PAUX1 = -QSIGAU(I)+ETAGAU(I)+DZEGAU(I)-UN
  235. PAUX2 = -QSIGAU(I)-ETAGAU(I)+DZEGAU(I)-UN
  236. PAUX3 = +QSIGAU(I)-ETAGAU(I)+DZEGAU(I)-UN
  237. QAUX = QSIGAU(I)-UNDEMI
  238. QAUX1 = ETAGAU(I)-UNDEMI
  239. QAUX2 = -QSIGAU(I)-UNDEMI
  240. QAUX3 = -ETAGAU(I)-UNDEMI
  241.  
  242. SHPTOT(1,1 ,I) = PAUX1*PAUX2*QAUX /DZEM2
  243. SHPTOT(1,2 ,I) = -PAUX1*PAUX2*PAUX3/DZEM2
  244. SHPTOT(1,3 ,I) = PAUX2*PAUX3*QAUX1/DZEM2
  245. SHPTOT(1,4 ,I) = -PAUX2*PAUX3*PAUX /DZEM2
  246. SHPTOT(1,5 ,I) = PAUX3*PAUX *QAUX2/DZEM2
  247. SHPTOT(1,6 ,I) = -PAUX3*PAUX *PAUX1/DZEM2
  248. SHPTOT(1,7 ,I) = PAUX *PAUX1*QAUX3/DZEM2
  249. SHPTOT(1,8 ,I) = -PAUX *PAUX1*PAUX2/DZEM2
  250. SHPTOT(1,9 ,I) = DZEGAU(I)*PAUX1*PAUX2/DZEM
  251. SHPTOT(1,10,I) = DZEGAU(I)*PAUX2*PAUX3/DZEM
  252. SHPTOT(1,11,I) = DZEGAU(I)*PAUX3*PAUX /DZEM
  253. SHPTOT(1,12,I) = DZEGAU(I)*PAUX *PAUX1/DZEM
  254. SHPTOT(1,13,I) = DEUX*DZEGAU(I)*(DZEGAU(I)-UNDEMI)
  255.  
  256. SHPTOT(2,1 ,I) = (PAUX1*PAUX2-(PAUX1+PAUX2)*QAUX)/DZEM2
  257. SHPTOT(2,2 ,I) = (PAUX2*PAUX3+PAUX1*PAUX3-PAUX1*PAUX2)/DZEM2
  258. SHPTOT(2,3 ,I) = (PAUX2-PAUX3)*QAUX1/DZEM2
  259. SHPTOT(2,4 ,I) = (PAUX3*PAUX-PAUX2*PAUX-PAUX2*PAUX3)/DZEM2
  260. SHPTOT(2,5 ,I) = ((PAUX+PAUX3)*QAUX2-PAUX3*PAUX)/DZEM2
  261. SHPTOT(2,6 ,I) = (PAUX3*PAUX-PAUX*PAUX1-PAUX3*PAUX1)/DZEM2
  262. SHPTOT(2,7 ,I) = (PAUX1-PAUX)*QAUX3/DZEM2
  263. SHPTOT(2,8 ,I) = (PAUX*PAUX2+PAUX*PAUX1-PAUX1*PAUX2)/DZEM2
  264. SHPTOT(2,9 ,I) = (-PAUX2-PAUX1)*DZEGAU(I)/DZEM
  265. SHPTOT(2,10,I) = (PAUX2-PAUX3)*DZEGAU(I)/DZEM
  266. SHPTOT(2,11,I) = (PAUX+PAUX3)*DZEGAU(I)/DZEM
  267. SHPTOT(2,12,I) = (PAUX1-PAUX)*DZEGAU(I)/DZEM
  268. SHPTOT(2,13,I) = XZER
  269.  
  270. SHPTOT(3,1 ,I) = (PAUX2-PAUX1)*QAUX/DZEM2
  271. SHPTOT(3,2 ,I) = (PAUX1*PAUX3+PAUX1*PAUX2-PAUX2*PAUX3)/DZEM2
  272. SHPTOT(3,3 ,I) = (PAUX2*PAUX3-(PAUX2+PAUX3)*QAUX1)/DZEM2
  273. SHPTOT(3,4 ,I) = (PAUX3*PAUX+PAUX2*PAUX-PAUX2*PAUX3)/DZEM2
  274. SHPTOT(3,5 ,I) = (PAUX3-PAUX)*QAUX2/DZEM2
  275. SHPTOT(3,6 ,I) = (PAUX*PAUX1-PAUX3*PAUX1-PAUX3*PAUX)/DZEM2
  276. SHPTOT(3,7 ,I) = ((PAUX1+PAUX)*QAUX3-PAUX*PAUX1)/DZEM2
  277. SHPTOT(3,8 ,I) = (PAUX*PAUX1-PAUX1*PAUX2-PAUX*PAUX2)/DZEM2
  278. SHPTOT(3,9 ,I) = (PAUX2-PAUX1)*DZEGAU(I)/DZEM
  279. SHPTOT(3,10,I) = (-PAUX3-PAUX2)*DZEGAU(I)/DZEM
  280. SHPTOT(3,11,I) = (PAUX3-PAUX)*DZEGAU(I)/DZEM
  281. SHPTOT(3,12,I) = (PAUX+PAUX1)*DZEGAU(I)/DZEM
  282. SHPTOT(3,13,I) = XZER
  283.  
  284. SHPTOT(4,1 ,I) = (PAUX1+PAUX2+PAUX1*PAUX2/DZEM)*QAUX/DZEM2
  285. SHPTOT(4,2 ,I) = -UN*(PAUX2*PAUX3+PAUX1*PAUX3+PAUX1*PAUX2+
  286. & PAUX1*PAUX2*PAUX3/DZEM)/DZEM2
  287. SHPTOT(4,3 ,I) = (PAUX2+PAUX3+PAUX2*PAUX3/DZEM)*QAUX1/DZEM2
  288. SHPTOT(4,4 ,I) = -UN*(PAUX3*PAUX +PAUX2*PAUX+PAUX2*PAUX3+
  289. & PAUX2*PAUX3*PAUX/DZEM)/DZEM2
  290. SHPTOT(4,5 ,I) = (PAUX+PAUX3+PAUX*PAUX3/DZEM)*QAUX2/DZEM2
  291. SHPTOT(4,6 ,I) = -UN*(PAUX*PAUX1+PAUX3*PAUX1+PAUX3*PAUX+
  292. & PAUX3*PAUX*PAUX1/DZEM)/DZEM2
  293. SHPTOT(4,7 ,I) = (PAUX1+PAUX+PAUX*PAUX1/DZEM)*QAUX3/DZEM2
  294. SHPTOT(4,8 ,I) = -UN*(PAUX1*PAUX2+PAUX*PAUX2+PAUX*PAUX1+
  295. & PAUX*PAUX1*PAUX2/DZEM)/DZEM2
  296. SHPTOT(4,9 ,I) = PAUX1*PAUX2/DZEM/DZEM
  297. & + (PAUX2+PAUX1)*DZEGAU(I)/DZEM
  298. SHPTOT(4,10,I) = PAUX2*PAUX3/DZEM/DZEM
  299. & + (PAUX3+PAUX2)*DZEGAU(I)/DZEM
  300. SHPTOT(4,11,I) = PAUX3*PAUX /DZEM/DZEM
  301. & + (PAUX +PAUX3)*DZEGAU(I)/DZEM
  302. SHPTOT(4,12,I) = PAUX *PAUX1/DZEM/DZEM
  303. & + (PAUX +PAUX1)*DZEGAU(I)/DZEM
  304. SHPTOT(4,13,I) = QUATRE*DZEGAU(I)-UN
  305. ENDIF
  306. ENDDO
  307.  
  308. IPINTE = MINTE
  309.  
  310. c RETURN
  311. END
  312.  
  313.  
  314.  

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