Télécharger tufikt.eso

Retour à la liste

Numérotation des lignes :

tufikt
  1. C TUFIKT SOURCE CHAT 05/01/13 03:55:50 5004
  2. SUBROUTINE TUFIKT(XMAT,CONT,CARA,VARI,REG,XPREC,KERRE)
  3. C=======================================================================
  4. C CALCUL DE LA MATRICE DE RIGIDITE TANGENTE DE L'ELEMENT
  5. C DE TUYAU FISSURE DANS LE REPERE GLOBAL
  6. C ENTREES:
  7. C MAT = LE MATERIAU
  8. C CONT = LES CONTRAINTES
  9. C CARA = LES CARACTERISTIQUES
  10. C VARI = LES VARIABLES INTERNES
  11. C XPREC = PRECISION POUR TESTER SI ON EST ELASTIQUE
  12. C SORTIE:
  13. C REG(12,12)= MATRICE DE RIGIDITE GLOBALE
  14. C KERRE = CODE D'ERREUR CORRESPONDANT A LA POSITION RELATIVE DES
  15. C DEUX VECTEURS V1 ET V2 DEFINISSANT L'ELEMENT TUFI:
  16. C 0 SI PAS DE PROBLEME, 1 SINON.
  17. C 1 SI V2 EST NUL OU SI V1 ET V2 SONT COLINEAIRES.
  18. C 2 SI V1 EST NUL.
  19. C 3 SI LE TUYAU FISSURE EST TRP EPAI R/T INF A 2
  20. C 4 CONTRAINTES A L EXTERIEUR DE LA SURFACE
  21. C=======================================================================
  22. IMPLICIT INTEGER(I-N)
  23. IMPLICIT REAL*8(A-H,O-Z)
  24. C Include contenant quelques constantes dont XPI :
  25. -INC CCREEL
  26. DIMENSION XMAT(*),CONT(*),CARA(*),VARI(*)
  27. DIMENSION REL(12,12),V1(3),V2(3),BPSS(3,3)
  28. DIMENSION REG(12,*),BV1(3),BV2(3),RIL(6,6),RAL(12,12)
  29. C
  30. DATA EPS/1.D-10/
  31. DATA XZER,UN,UNS2/0.D0,1.D0,.5D0/
  32. C
  33. C D6 = COEFFICIENT INTERVENANT POUR LES TERMES DE PENALISATION.
  34. C
  35. DATA DEUX,D6/2.D0,1.D06/
  36. C
  37. C ON RECUPERE LES INFORMATIONS
  38. C
  39. XP=CONT(1)
  40. XM=-CONT(6)
  41. YOU=XMAT(1)
  42. XNU=XMAT(2)
  43. SIGMA0=XMAT(5)
  44. RAYON=CARA(1)
  45. EPAI=CARA(2)
  46. V1(1)=CARA(3)
  47. V1(2)=CARA(4)
  48. V1(3)=CARA(5)
  49. V2(1)=CARA(6)
  50. V2(2)=CARA(7)
  51. V2(3)=CARA(8)
  52. TETA1=VARI(3)/2.D0
  53. CISA = YOU /(DEUX *(UN + XNU))
  54. KERRE = 0
  55. C=======================================================================
  56. C LES CARACTERISTIQUES REPRESENTENT:
  57. C EPAI = EPAISSEUR DU TUYAU
  58. C RAYON = RAYON EXTERIEUR DU TUYAU
  59. C TETA1 = DEMI-ANGLE D'OUVERTURE DE LA FISSURE EN DEGRE
  60. C V1 = VECTEUR ORIENTANT LES NOEUDS 1 ET 2 (AXE DU TUYAU)
  61. C V2 = VECTEUR ORIENTANT L'AXE DE LA FISSURE
  62. C YOU = MODULE D'YOUNG
  63. C CISA = MODULE DE CISAILLEMENT
  64. C TABLEAU DE TRAVAIL:
  65. C BPSS = MATRICE DE PASSAGE
  66. C ON OBTIENT:
  67. C REG(12,12) = MATRICE DE RIGIDITE AXES GLOBAUX
  68. C
  69. C=======================================================================
  70. C
  71. C CONVERSION DE TETA1 EN RADIAN
  72. C
  73. TETA = (TETA1 * XPI)/180.D0
  74. C
  75. C ON MET DANS 'RAYON' LE RAYON MOYEN DU TUYAU.
  76. C
  77. RAYMO = RAYON - EPAI*UNS2
  78. XM0=4.D0*SIGMA0*RAYMO*RAYMO*EPAI
  79. XP0=2.D0*SIGMA0*XPI*RAYMO*EPAI
  80. C
  81. C ON CALCULE A
  82. C
  83. RSURT= RAYMO / EPAI
  84. IF(RSURT.LE.10.0D0.AND.RSURT.GE.4.9D0) THEN
  85. AXX= (.125D0*RSURT - .25D0 ) **.25D0
  86. ELSE IF(RSURT.GT.10.D0.AND.RSURT.LE.35.D0) THEN
  87. AXX= (.4D0*RSURT - 3.D0 ) **.25D0
  88. ELSE
  89. KERRE=3
  90. ENDIF
  91. IF(KERRE.EQ.3) GOTO 666
  92. C
  93. C NORMALISATION DES VECTEURS V1 ET V2.
  94. C
  95. XNV1 = XZER
  96. XNV2 = XZER
  97. DO 5 I=1,3
  98. XNV1 = XNV1 + (V1(I)*V1(I))
  99. XNV2 = XNV2 + (V2(I)*V2(I))
  100. 5 CONTINUE
  101. C
  102. C MISE A ZERO DE REG
  103. C
  104. CALL ZERO(REG,12,12)
  105. IF (XNV1.LT.EPS) THEN
  106. KERRE = 2
  107. GOTO 666
  108. ENDIF
  109. IF (XNV2.LT.EPS) THEN
  110. KERRE = 1
  111. GOTO 666
  112. ENDIF
  113. XNV1 = UN/SQRT(XNV1)
  114. XNV2 = UN/SQRT(XNV2)
  115. DO 10 I=1,3
  116. BV1(I) = V1(I)*XNV1
  117. BV2(I) = V2(I)*XNV2
  118. 10 CONTINUE
  119. C
  120. C ORTHOGONALISATION ET RENORMALISATION DE V2.
  121. C
  122. PS = (BV1(1)*BV2(1))+(BV1(2)*BV2(2))+(BV1(3)*BV2(3))
  123. C
  124. C TEST SUR LA COLINEARITE DE V1 ET V2.
  125. C
  126. IF(ABS(PS).GE.(.99D0)) THEN
  127. KERRE = 1
  128. GOTO 666
  129. ELSE
  130. XNV2 = UN/SQRT(UN-(PS**2))
  131. DO 15 I=1,3
  132. BV2(I) = XNV2*(BV2(I)-(PS*BV1(I)))
  133. 15 CONTINUE
  134. ENDIF
  135. C
  136. C CALCUL DE LA MATRICE DE PASSAGE
  137. C LOCAL = BPSS * GLOBAL
  138. C BV1 REPRESENTE L'AXE LOCAL DES Z
  139. C BV2 REPRESENTE L'AXE LOCAL DES Y
  140. C
  141. DO 20 I=1,3
  142. BPSS(3,I) =BV1(I)
  143. BPSS(2,I) =BV2(I)
  144. 20 CONTINUE
  145. BPSS(1,1) = (BPSS(2,2)*BPSS(3,3))-(BPSS(2,3)*BPSS(3,2))
  146. BPSS(1,2) = (BPSS(2,3)*BPSS(3,1))-(BPSS(2,1)*BPSS(3,3))
  147. BPSS(1,3) = (BPSS(2,1)*BPSS(3,2))-(BPSS(2,2)*BPSS(3,1))
  148. C
  149. C CALCUL DES TERMES DE LA MATRICE DE RIGIDITE REPERE LOCAL
  150. C
  151. TESPI = TETA/XPI
  152. CALL ZERO(RAL,6,6)
  153. C
  154. C ON TESTE SUR L'IMPORTANCE DE L'ANGLE D'OUVERTURE DE LA FISSURE. SI
  155. C CE DERNIER EST INFERIEUR A UN DEGRE, ON ANNULE TOUS LES COEFFI-
  156. C CIENTS DE COUPLAGE ET ON PENALISE TOUS LES DEGRES DE LIBERTE. DANS
  157. C LE CAS CONTRAIRE, SEULS SONT PERMIS LA ROTATION AUTOUR DE L'AXE
  158. C LOCAL DES X ET L'ALLONGEMENT SUIVANT L'AXE LOCAL DES Z ,CES DEUX
  159. C DEGRES DE LIBERTE ETANT COUPLES.
  160. C
  161. IF (TETA1.LE.(0.5D0)) THEN
  162. RAL(3,3) = DEUX * YOU * XPI * EPAI * RAYMO * D6
  163. RAL(4,4) = YOU * XPI * EPAI * (RAYMO**2) * D6
  164. ELSE
  165. C
  166. CALL TUFIFP(TESPI,AXX,FP,FM,FMP,FOP,FOM)
  167. DENOM = FP*FM - FMP*FMP
  168. COEF = (YOU * XPI * EPAI)/(DENOM * (TETA**2))
  169. RAL(3,3) = COEF * DEUX * FM
  170. RAL(3,4) = -COEF * RAYMO * FMP
  171. RAL(4,3) = RAL(3,4)
  172. RAL(4,4) = COEF * (RAYMO**2) * FP * UNS2
  173. ENDIF
  174. C
  175. C INITIALISATION DES TERMES DE PENALISATION
  176. C
  177. RAL(1,1) = DEUX * CISA * XPI * EPAI * RAYMO * D6
  178. RAL(2,2) = RAL(1,1)
  179. RAL(5,5) = YOU * XPI * EPAI * (RAYMO**2) * D6
  180. RAL(6,6) = DEUX * CISA * XPI * EPAI * (RAYMO**2) * D6
  181. C
  182. C TEST POUR SAVOIR SI L ETAT DE CONTRAINTES EST ELASTIQUE
  183. C SI OUI ON RENVOIT LA RAIDEUR INITIALE
  184. C SI ON EST SUR LA SURFACE ON RENVOIT LA RAIDEUR TANGENTE
  185. C SI ON EST A L EXTERIEUR ON MET KERRE A 4
  186. C
  187. TES=CRIT1(XM,XP,TETA,XM0,XP0)
  188. IF(TES.LT.(-XPREC)) THEN
  189. DO 40 I=1,6
  190. DO 401 J=1,6
  191. RAL(I+6,J+6) = RAL(I,J)
  192. RAL(I+6,J ) = -RAL(I,J)
  193. RAL(I ,J+6) = -RAL(I,J)
  194. 401 CONTINUE
  195. 40 CONTINUE
  196. C
  197. CALL POUROT(REG,12,BPSS,RAL)
  198. GOTO 666
  199. ENDIF
  200. IF(TES.GT.XPREC) THEN
  201. KERRE=4
  202. GOTO 666
  203. ENDIF
  204. C ON CALCULE LA MATRICE TANGENTE EN MULTIPLIANT LA
  205. C MATRICE DE RAIDEUR PAR
  206. C T T
  207. C I-((DF/DSIG)(DF/DSIG)K)/((DF/DSIG)K(DF/DSIG))
  208. C
  209. C
  210. C ON TESTE POUR SAVOIR SUR QUELLE SURFACE ON TRAVAILLE
  211. C
  212. CRI=2.D0*XP0*(1.D0-TETA/XPI)*XM
  213. CRI=CRI+XM0*SIN(TETA)*XP
  214. IF(CRI.GE.XZER) THEN
  215. DFSDM=1.D0/XM0
  216. DFSDP=XPI*SIN(0.5D0*(TETA+XPI*XP/XP0))/2.D0/XP0
  217. ELSE
  218. DFSDM=-1.D0/XM0
  219. DFSDP=-XPI*SIN(0.5D0*(TETA-XPI*XP/XP0))/2.D0/XP0
  220. ENDIF
  221. DM2=DFSDM*DFSDM
  222. DP2=DFSDP*DFSDP
  223. DMP=DFSDM*DFSDP
  224. C
  225. C ON FORME LE TERME CORRECTEUR
  226. C
  227. DEN=RAL(3,3)*DM2
  228. DEN=DEN+2.D0*RAL(3,4)*DMP
  229. DEN=DEN+RAL(4,4)*DP2
  230. CALL ZERO(RIL,6,6)
  231. RIL(3,3)=1.D0-(RAL(3,3)*DM2+RAL(3,4)*DMP)/DEN
  232. RIL(3,4)=-(RAL(3,4)*DM2+RAL(4,4)*DMP)/DEN
  233. RIL(4,3)=-(RAL(3,3)*DMP+RAL(3,4)*DP2)/DEN
  234. RIL(4,4)=1.D0-(RAL(3,4)*DMP+RAL(4,4)*DP2)/DEN
  235. RIL(1,1)=1.D0
  236. RIL(2,2)=1.D0
  237. RIL(5,5)=1.D0
  238. RIL(6,6)=1.D0
  239. CALL MULMAT(REL,RAL,RIL,6,6,6)
  240. C
  241. C CALCUL DE LA MATRICE (12,12) A PARTIR DE LA MATRICE (6,6)
  242. C
  243. DO 30 I=1,6
  244. DO 301 J=1,6
  245. REL(I+6,J+6) = REL(I,J)
  246. REL(I+6,J ) = -REL(I,J)
  247. REL(I ,J+6) = -REL(I,J)
  248. 301 CONTINUE
  249. 30 CONTINUE
  250. C
  251. CALL POUROT(REG,12,BPSS,REL)
  252. 666 CONTINUE
  253. RETURN
  254. END
  255.  
  256.  
  257.  
  258.  
  259.  
  260.  

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