Télécharger rtens5.eso

Retour à la liste

Numérotation des lignes :

rtens5
  1. C RTENS5 SOURCE CHAT 05/01/13 03:09:00 5004
  2. SUBROUTINE RTENS5(IMOT,ICAS,IGAU,NDIM,V1,CENTR1,CENTR2,BPSS,
  3. & SHPTOT,XEL,NBNN,NBPGAU,R,SIGFLX,IER1)
  4. IMPLICIT INTEGER(I-N)
  5. IMPLICIT REAL*8(A-H,O-Z)
  6. *-----------------------------------------------------------------------*
  7. * Matrice de passage entre le repere local d'une coque en un point *
  8. * d'integration et le repere obtenu par projection des axes d'un *
  9. * repere global (spherique, cylindrique ou torique) sur cette coque *
  10. * *
  11. * IMOT (e) type du repere choisi *
  12. * = 2 : repere cylindrique *
  13. * = 3 : repere spherique *
  14. * = 4 : repere torique circulaire *
  15. * = 5 : repere torique cartesien *
  16. * ICAS (e) identification du module appelant *
  17. * = 2 : module coques minces *
  18. * = 3 : module coques epaisses *
  19. * = 4 : module coques avec cisaillement transverse *
  20. * IGAU (e) numero du point d'integration concerne *
  21. * NDIM (e) dimension du probleme *
  22. * V1 (e) | *
  23. * CENTR1 (e) | points servant a la definition du repere *
  24. * CENTR2 (e) | *
  25. * BPSS (e) matrice de passage repere local / global *
  26. * SHPTOT (e) fonctions de forme de l'element-fini *
  27. * XEL (e) coordonnees des noeuds de l'element-fini *
  28. * NBNN (e) nombre de noeuds dans un element *
  29. * NBPGAU (e) nombre de points d'integration dans un element *
  30. * R (s) matrice de passage resultat *
  31. * SIGFLX (s) *
  32. * IER1 (s) code d'erreur *
  33. * = 1 : vecteur pas dans le plan de la coque *
  34. * = 2 : vecteur radial nul *
  35. * *
  36. * D.R.-M. le 1/4/94 *
  37. *-----------------------------------------------------------------------*
  38. *
  39. DIMENSION BPSS(3,3),VECWRK(3),V1(3),UV1(3),UV2(3),UV3(3)
  40. DIMENSION XEL(3,NBNN),SHPTOT(6,NBNN,NBPGAU),R(NDIM,NDIM)
  41. DIMENSION CENTR1(3),CENTR2(3),AXEI1(3),VECX(3),VECY(3)
  42. DIMENSION UR(3),UTHETA(3),UPHI(3),UN(3),UT(3),XIGAU(3)
  43. DIMENSION BPST(3,3),A(3,3)
  44. *
  45. PARAMETER (COS1D = 0.99985D0)
  46. PARAMETER (SIN1D = 0.01745D0)
  47. *
  48. IER1 = 0
  49. *
  50. DO 1100 IC=1,3
  51. XIGAU(IC) = 0.D0
  52. UTHETA(IC) = 0.D0
  53. UPHI(IC) = 0.D0
  54. UT(IC) = 0.D0
  55. VECX(IC) = 0.D0
  56. VECY(IC) = 0.D0
  57. DO 1100 IL=1,NBNN
  58. XIGAU(IC)=XIGAU(IC)+(SHPTOT(1,IL,IGAU)*XEL(IC,IL))
  59. 1100 CONTINUE
  60. DO 1110 IC=1,3
  61. UR(IC) = XIGAU(IC) - CENTR1(IC)
  62. UN(IC) = UR(IC)
  63. 1110 CONTINUE
  64. SCAL = 0.D0
  65. DO 1120 IC=1,3
  66. SCAL = SCAL + UR(IC) * V1(IC)
  67. 1120 CONTINUE
  68. DO 1130 IC=1,3
  69. UR(IC) = UR(IC) - SCAL * V1(IC)
  70. 1130 CONTINUE
  71. SCAL = 0.D0
  72. DO 1140 IC=1,3
  73. SCAL = SCAL + UR(IC) ** 2
  74. 1140 CONTINUE
  75. IF (SCAL.EQ.0.D0) THEN
  76. IER1 = 2
  77. RETURN
  78. ELSE
  79. CALL NORMER(UR)
  80. CALL NORMER(UN)
  81. CALL PROVEC(V1,UR,UTHETA)
  82. ENDIF
  83. *
  84. * On projette les deux vecteurs formant un plan proche de
  85. * celui de la coque
  86. *
  87. IF ((IMOT.EQ.2).OR.(IMOT.EQ.5)) THEN
  88. *
  89. * >>> Repere CYLINDRIQUE : plan UTHETA V1 <<<
  90. * >>> Repere TORIQUE CARTESIEN : plan UTHETA V1 <<<
  91. *
  92. DO 20 II = 1,3
  93. UV1(II)=UTHETA(II)
  94. UV2(II)=V1(II)
  95. 20 CONTINUE
  96. ENDIF
  97. *
  98. IF (IMOT.EQ.3) THEN
  99. *
  100. * >>> Repere SPHERIQUE : plan UTHETA UPHI <<<
  101. *
  102. UR(1) = UN(1)
  103. UR(2) = UN(2)
  104. UR(3) = UN(3)
  105. UPHI(1) = UTHETA(1)
  106. UPHI(2) = UTHETA(2)
  107. UPHI(3) = UTHETA(3)
  108. CALL PROVEC(UPHI,UR,UTHETA)
  109. DO 30 II = 1,3
  110. UV1(II)=UTHETA(II)
  111. UV2(II)=UPHI(II)
  112. 30 CONTINUE
  113. ENDIF
  114. *
  115. IF (IMOT.EQ.4) THEN
  116. *
  117. * >>> Repere TORIQUE CIRCULAIRE : plan UTHETA UT <<<
  118. *
  119. VECWRK(1) = CENTR2(1) - CENTR1(1)
  120. VECWRK(2) = CENTR2(2) - CENTR1(2)
  121. VECWRK(3) = CENTR2(2) - CENTR1(3)
  122. CALL NORME(VECWRK,SCAL)
  123. UN(1) = UN(1) - SCAL * UR(1)
  124. UN(2) = UN(2) - SCAL * UR(2)
  125. UN(3) = UN(3) - SCAL * UR(3)
  126. CALL NORMER(UN)
  127. CALL PROVEC(UN,UTHETA,UT)
  128. DO 40 II = 1,3
  129. UV1(II)=UTHETA(II)
  130. UV2(II)=UT(II)
  131. 40 CONTINUE
  132. ENDIF
  133. *
  134. * Projection selon BPSS
  135. *
  136. * Projection du premier vecteur sur la coque
  137. *
  138. UV11=BPSS(1,1)*UV1(1)+BPSS(1,2)*UV1(2)+BPSS(1,3)*UV1(3)
  139. UV12=BPSS(2,1)*UV1(1)+BPSS(2,2)*UV1(2)+BPSS(2,3)*UV1(3)
  140. UV1N=SQRT(UV11**2+UV12**2)
  141. *
  142. IF (UV1N.EQ.0.D0) THEN
  143. IER1 = 1
  144. RETURN
  145. ENDIF
  146. *
  147. * Projection du second vecteur sur la coque
  148. *
  149. UV21=BPSS(1,1)*UV2(1)+BPSS(1,2)*UV2(2)+BPSS(1,3)*UV2(3)
  150. UV22=BPSS(2,1)*UV2(1)+BPSS(2,2)*UV2(2)+BPSS(2,3)*UV2(3)
  151. UV2N=SQRT(UV21**2+UV22**2)
  152. *
  153. * si l'axe de revolution est normal à l'element on choisit le repere
  154. * utheta (-ur).Le troisieme axe est celui defini par l'utilisateur
  155. IF ( UV2N.LT.1D-15) THEN
  156. DO 50 II = 1,3
  157. UV2(II)= -UR(II)
  158. 50 CONTINUE
  159.  
  160. *
  161. * Projection du second vecteur sur la coque
  162. *
  163. UV21=BPSS(1,1)*UV2(1)+BPSS(1,2)*UV2(2)+BPSS(1,3)*UV2(3)
  164. UV22=BPSS(2,1)*UV2(1)+BPSS(2,2)*UV2(2)+BPSS(2,3)*UV2(3)
  165. UV2N=SQRT(UV21**2+UV22**2)
  166.  
  167. ENDIF
  168. *
  169. * Vecteur normal a la coque
  170. *
  171. WL33=(UV11*UV22-UV12*UV21)/(UV1N*UV2N)
  172. *
  173. * WL2 est rendu orthogonal a la projection de UV1
  174. *
  175. WL21=(-WL33*UV12)/UV1N
  176. WL22=( WL33*UV11)/UV1N
  177. *
  178. R(1,1) = UV11 / UV1N
  179. R(2,1) = UV12 / UV1N
  180. R(1,2) = WL21
  181. R(2,2) = WL22
  182. IF (ICAS.EQ.2) SIGFLX = WL33
  183. IF (ICAS.EQ.3) R(3,3) = WL33
  184. IF (ICAS.EQ.4) THEN
  185. R(3,3) = WL33
  186. SIGFLX = WL33
  187. ENDIF
  188. *
  189. RETURN
  190. END
  191.  
  192.  
  193.  

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