Download rtens5.eso

Back to the list

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

© Cast3M 2003 - All rights reserved.
Disclaimer