Télécharger rtens5.eso

Retour à la liste

Numérotation des lignes :

rtens5
  1. C RTENS5 SOURCE CB215821 26/08/24 21:18:21 12622
  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 1141 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. 1141 CONTINUE
  61. DO 1110 IC=1,3
  62. UR(IC) = XIGAU(IC) - CENTR1(IC)
  63. UN(IC) = UR(IC)
  64. 1110 CONTINUE
  65. SCAL = 0.D0
  66. DO 1120 IC=1,3
  67. SCAL = SCAL + UR(IC) * V1(IC)
  68. 1120 CONTINUE
  69. DO 1130 IC=1,3
  70. UR(IC) = UR(IC) - SCAL * V1(IC)
  71. 1130 CONTINUE
  72. SCAL = 0.D0
  73. DO 1140 IC=1,3
  74. SCAL = SCAL + UR(IC) ** 2
  75. 1140 CONTINUE
  76. IF (SCAL.EQ.0.D0) THEN
  77. IER1 = 2
  78. RETURN
  79. ELSE
  80. CALL NORMER(UR)
  81. CALL NORMER(UN)
  82. CALL PROVEC(V1,UR,UTHETA)
  83. ENDIF
  84. *
  85. * On projette les deux vecteurs formant un plan proche de
  86. * celui de la coque
  87. *
  88. IF ((IMOT.EQ.2).OR.(IMOT.EQ.5)) THEN
  89. *
  90. * >>> Repere CYLINDRIQUE : plan UTHETA V1 <<<
  91. * >>> Repere TORIQUE CARTESIEN : plan UTHETA V1 <<<
  92. *
  93. DO 20 II = 1,3
  94. UV1(II)=UTHETA(II)
  95. UV2(II)=V1(II)
  96. 20 CONTINUE
  97. ENDIF
  98. *
  99. IF (IMOT.EQ.3) THEN
  100. *
  101. * >>> Repere SPHERIQUE : plan UTHETA UPHI <<<
  102. *
  103. UR(1) = UN(1)
  104. UR(2) = UN(2)
  105. UR(3) = UN(3)
  106. UPHI(1) = UTHETA(1)
  107. UPHI(2) = UTHETA(2)
  108. UPHI(3) = UTHETA(3)
  109. CALL PROVEC(UPHI,UR,UTHETA)
  110. DO 30 II = 1,3
  111. UV1(II)=UTHETA(II)
  112. UV2(II)=UPHI(II)
  113. 30 CONTINUE
  114. ENDIF
  115. *
  116. IF (IMOT.EQ.4) THEN
  117. *
  118. * >>> Repere TORIQUE CIRCULAIRE : plan UTHETA UT <<<
  119. *
  120. VECWRK(1) = CENTR2(1) - CENTR1(1)
  121. VECWRK(2) = CENTR2(2) - CENTR1(2)
  122. VECWRK(3) = CENTR2(2) - CENTR1(3)
  123. CALL NORME(VECWRK,SCAL)
  124. UN(1) = UN(1) - SCAL * UR(1)
  125. UN(2) = UN(2) - SCAL * UR(2)
  126. UN(3) = UN(3) - SCAL * UR(3)
  127. CALL NORMER(UN)
  128. CALL PROVEC(UN,UTHETA,UT)
  129. DO 40 II = 1,3
  130. UV1(II)=UTHETA(II)
  131. UV2(II)=UT(II)
  132. 40 CONTINUE
  133. ENDIF
  134. *
  135. * Projection selon BPSS
  136. *
  137. * Projection du premier vecteur sur la coque
  138. *
  139. UV11=BPSS(1,1)*UV1(1)+BPSS(1,2)*UV1(2)+BPSS(1,3)*UV1(3)
  140. UV12=BPSS(2,1)*UV1(1)+BPSS(2,2)*UV1(2)+BPSS(2,3)*UV1(3)
  141. UV1N=SQRT(UV11**2+UV12**2)
  142. *
  143. IF (UV1N.EQ.0.D0) THEN
  144. IER1 = 1
  145. RETURN
  146. ENDIF
  147. *
  148. * Projection du second vecteur sur la coque
  149. *
  150. UV21=BPSS(1,1)*UV2(1)+BPSS(1,2)*UV2(2)+BPSS(1,3)*UV2(3)
  151. UV22=BPSS(2,1)*UV2(1)+BPSS(2,2)*UV2(2)+BPSS(2,3)*UV2(3)
  152. UV2N=SQRT(UV21**2+UV22**2)
  153. *
  154. * si l'axe de revolution est normal à l'element on choisit le repere
  155. * utheta (-ur).Le troisieme axe est celui defini par l'utilisateur
  156. IF ( UV2N.LT.1D-15) THEN
  157. DO 50 II = 1,3
  158. UV2(II)= -UR(II)
  159. 50 CONTINUE
  160.  
  161. *
  162. * Projection du second vecteur sur la coque
  163. *
  164. UV21=BPSS(1,1)*UV2(1)+BPSS(1,2)*UV2(2)+BPSS(1,3)*UV2(3)
  165. UV22=BPSS(2,1)*UV2(1)+BPSS(2,2)*UV2(2)+BPSS(2,3)*UV2(3)
  166. UV2N=SQRT(UV21**2+UV22**2)
  167.  
  168. ENDIF
  169. *
  170. * Vecteur normal a la coque
  171. *
  172. WL33=(UV11*UV22-UV12*UV21)/(UV1N*UV2N)
  173. *
  174. * WL2 est rendu orthogonal a la projection de UV1
  175. *
  176. WL21=(-WL33*UV12)/UV1N
  177. WL22=( WL33*UV11)/UV1N
  178. *
  179. R(1,1) = UV11 / UV1N
  180. R(2,1) = UV12 / UV1N
  181. R(1,2) = WL21
  182. R(2,2) = WL22
  183. IF (ICAS.EQ.2) SIGFLX = WL33
  184. IF (ICAS.EQ.3) R(3,3) = WL33
  185. IF (ICAS.EQ.4) THEN
  186. R(3,3) = WL33
  187. SIGFLX = WL33
  188. ENDIF
  189. *
  190. RETURN
  191. END
  192.  
  193.  
  194.  
  195.  

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