Download bst2.eso

Back to the list

   1 : C BST2      SOURCE    FANDEUR   05/12/07    21:15:01     5269           
   2 : 
   3 :       SUBROUTINE BST2 (SHP,XDDL,XEL,NBNO,IFOU,XDEFO,TRACE,IGAU,
   4 :      &                 XDPGE,YDPGE,UDPGE,NN)
   5 : 
   6 : C=======================================================================
   7 : C=                            B S T 2                                  =
   8 : C=                            -------                                  =
   9 : C=  Fonction :                                                         =
  10 : C=  ----------                                                         =
  11 : C=   Calcul de la partie quadratique des deformations en un point de   =
  12 : C=   Gauss d'un element fini massif.                                   =
  13 : C=                                                                     =
  14 : C=  Parametres :  (E)=Entree  (S)=Sortie                               =
  15 : C=  ------------                                                       =
  16 : C=   SHP      (E)   Fonctions de forme et leurs derivees actuelles par =
  17 : C=                  rapport aux coordonnees reelles x,y,z              =
  18 : C=   XDDL     (E)   Valeurs des ddls aux noeuds de l'element etudie    =
  19 : C=   XEL      (E)   Coordonnees des noeuds de l'element fini etudie    =
  20 : C=   NBNO     (E)   Nombre de noeuds de l'element fini massif          =
  21 : C=   IFOU     (E)   Mode de calcul utilise (cf. IFOUR dans CCOPTIO)    =
  22 : C=   XDEFO   (E/S)  En entree : partie lineaire des deformations au    =
  23 : C=                  point de Gauss considere. En sortie : deformations =
  24 : C=                  (parties lineaire et quadratique) en ce meme point =
  25 : C=   TRACE    (S)   Trace de la partie quadratique des deformations    =
  26 : C=                  au point de Gauss considere (IGAU)                 =
  27 : C=   IGAU     (E)   Numero du point de Gauss considere                 =
  28 : C=   XDPGE,YDPGE (E)   Coordonnees du noeud support si necessaire      =
  29 : C=   UDPGE    (E)   DDL associes au noeud support si necessaire        =
  30 : C=   NN       (E)   Numero du mode de Fourier si necessaire (=NIFOUR)  =
  31 : C=======================================================================
  32 : 
  33 :       IMPLICIT INTEGER(I-N)
  34 :       IMPLICIT REAL*8(A-H,O-Z)
  35 : 
  36 :       PARAMETER (XZER=0.D0,UNDEMI=.5D0)
  37 :       DIMENSION SHP(6,*),XDDL(*),XEL(3,*),UDPGE(*), XDEFO(*),TRACE(*)
  38 : 
  39 :       IFOR=IFOU+4
  40 :       GOTO (10,20,20,30,40,50,60,60,60,60,60,60,60,60,60,
  41 :      &      70,70,70,80),IFOR
  42 :       GOTO 100
  43 : 
  44 : C ===
  45 : C  1 - Elements MASSIFS 2D PLAN GENE
  46 : C ===
  47 :  10   k=0
  48 : C     XXX=XZER
  49 : C     YYY=XZER
  50 :       DUDX=XZER
  51 :       DUDY=XZER
  52 :       DVDX=XZER
  53 :       DVDY=XZER
  54 :       DO i=1,NBNO
  55 : C       XXX=XXX+SHP(1,i)*XEL(1,i)
  56 : C       YYY=YYY+SHP(1,i)*XEL(2,i)
  57 :         k=k+1
  58 :         DUDX=DUDX+SHP(2,i)*XDDL(k)
  59 :         DUDY=DUDY+SHP(3,i)*XDDL(k)
  60 :         k=k+1
  61 :         DVDX=DVDX+SHP(2,i)*XDDL(k)
  62 :         DVDY=DVDY+SHP(3,i)*XDDL(k)
  63 :       ENDDO
  64 :       EPS1=UNDEMI*(DUDX*DUDX+DVDX*DVDX)
  65 :       EPS2=UNDEMI*(DUDY*DUDY+DVDY*DVDY)
  66 : C     EPS3=UDPGE(1)+UDPGE(2)*(XDPGE-XXX)+UDPGE(3)*(YYY-YDPGE)
  67 : C     EPS3=UNDEMI*EPS3*EPS3
  68 : C Plus rapide pour un meme resultat :
  69 :       EPS3=UNDEMI*XDEFO(3)*XDEFO(3)
  70 :       XDEFO(1)=XDEFO(1)+EPS1
  71 :       XDEFO(2)=XDEFO(2)+EPS2
  72 :       XDEFO(3)=XDEFO(3)+EPS3
  73 :       XDEFO(4)=XDEFO(4)+(DUDX*DUDY+DVDX*DVDY)
  74 :       TRACE(IGAU)=EPS1+EPS2+EPS3
  75 :       GOTO 100
  76 : C ===
  77 : C  2 - Elements MASSIFS 2D PLAN DEFO ou PLAN CONT
  78 : C ===
  79 :  20   k=0
  80 :       DUDX=XZER
  81 :       DUDY=XZER
  82 :       DVDX=XZER
  83 :       DVDY=XZER
  84 :       DO i=1,NBNO
  85 :         k=k+1
  86 :         DUDX=DUDX+SHP(2,i)*XDDL(k)
  87 :         DUDY=DUDY+SHP(3,i)*XDDL(k)
  88 :         k=k+1
  89 :         DVDX=DVDX+SHP(2,i)*XDDL(k)
  90 :         DVDY=DVDY+SHP(3,i)*XDDL(k)
  91 :       ENDDO
  92 :       EPS1=UNDEMI*(DUDX*DUDX+DVDX*DVDX)
  93 :       EPS2=UNDEMI*(DUDY*DUDY+DVDY*DVDY)
  94 :       XDEFO(1)=XDEFO(1)+EPS1
  95 :       XDEFO(2)=XDEFO(2)+EPS2
  96 : C     XDEFO(3)=XDEFO(3)+XZER
  97 :       XDEFO(4)=XDEFO(4)+(DUDX*DUDY+DVDX*DVDY)
  98 :       TRACE(IGAU)=EPS1+EPS2
  99 :       GOTO 100
 100 : C ===
 101 : C  3 - Elements MASSIFS 2D AXISymetrique
 102 : C ===
 103 :  30   k=0
 104 :       RR=XZER
 105 :       UR=XZER
 106 :       DUDX=XZER
 107 :       DUDY=XZER
 108 :       DVDX=XZER
 109 :       DVDY=XZER
 110 :       DO i=1,NBNO
 111 :         RR=RR+SHP(1,i)*XEL(1,i)
 112 :         k=k+1
 113 :         UR=UR+SHP(1,i)*XDDL(k)
 114 :         DUDX=DUDX+SHP(2,i)*XDDL(k)
 115 :         DUDY=DUDY+SHP(3,i)*XDDL(k)
 116 :         k=k+1
 117 :         DVDX=DVDX+SHP(2,i)*XDDL(k)
 118 :         DVDY=DVDY+SHP(3,i)*XDDL(k)
 119 :       ENDDO
 120 :       EPS1=UNDEMI*(DUDX*DUDX+DVDX*DVDX)
 121 :       EPS2=UNDEMI*(DUDY*DUDY+DVDY*DVDY)
 122 :       EPS3=UNDEMI*(UR*UR)/(RR*RR)
 123 :       XDEFO(1)=XDEFO(1)+EPS1
 124 :       XDEFO(2)=XDEFO(2)+EPS2
 125 :       XDEFO(3)=XDEFO(3)+EPS3
 126 :       XDEFO(4)=XDEFO(4)+(DUDX*DUDY+DVDX*DVDY)
 127 :       TRACE(IGAU)=EPS1+EPS2+EPS3
 128 :       GOTO 100
 129 : C ===
 130 : C  4 - Elements MASSIFS 2D FOURIER
 131 : C ===
 132 :  40   k=0
 133 :       RR=XZER
 134 :       UR=XZER
 135 :       DUDX=XZER
 136 :       DUDY=XZER
 137 :       UZ=XZER
 138 :       DVDX=XZER
 139 :       DVDY=XZER
 140 :       UT=XZER
 141 :       DWDX=XZER
 142 :       DWDY=XZER
 143 :       DO i=1,NBNO
 144 :         RR=RR+SHP(1,i)*XEL(1,i)
 145 :         k=k+1
 146 :         UR=UR+SHP(1,i)*XDDL(k)
 147 :         DUDX=DUDX+SHP(2,i)*XDDL(k)
 148 :         DUDY=DUDY+SHP(3,i)*XDDL(k)
 149 :         k=k+1
 150 :         UZ=UZ+SHP(1,i)*XDDL(k)
 151 :         DVDX=DVDX+SHP(2,i)*XDDL(k)
 152 :         DVDY=DVDY+SHP(3,i)*XDDL(k)
 153 :         k=k+1
 154 :         UT=UT+SHP(1,i)*XDDL(k)
 155 :         DWDX=DWDX+SHP(2,i)*XDDL(k)
 156 :         DWDY=DWDY+SHP(3,i)*XDDL(k)
 157 :       ENDDO
 158 :       HHRT=-NN*UR-UT
 159 :       HHTT=UR+NN*UT
 160 :       HHZT=-NN*UZ
 161 :       EPS1=UNDEMI*(DUDX*DUDX+DVDX*DVDX+DWDX*DWDX)
 162 :       EPS2=UNDEMI*(DUDY*DUDY+DVDY*DVDY+DWDY*DWDY)
 163 :       EPS3=UNDEMI*(HHRT*HHRT+HHTT*HHTT+HHZT*HHZT)/(RR*RR)
 164 :       XDEFO(1)=XDEFO(1)+EPS1
 165 :       XDEFO(2)=XDEFO(2)+EPS2
 166 :       XDEFO(3)=XDEFO(3)+EPS3
 167 :       XDEFO(4)=XDEFO(4)+(DUDX*DUDY+DVDX*DVDY+DWDX*DWDY)
 168 :       XDEFO(5)=XDEFO(5)+(DUDX*HHRT+DVDX*HHTT+DWDX*HHZT)/RR
 169 :       XDEFO(6)=XDEFO(6)+(DUDY*HHRT+DVDY*HHTT+DWDY*HHZT)/RR
 170 :       TRACE(IGAU)=EPS1+EPS2+EPS3
 171 :       GOTO 100
 172 : C ===
 173 : C  5 - Elements MASSIFS 3D
 174 : C ===
 175 :  50   k=0
 176 :       DUDX=XZER
 177 :       DUDY=XZER
 178 :       DUDZ=XZER
 179 :       DVDX=XZER
 180 :       DVDY=XZER
 181 :       DVDZ=XZER
 182 :       DWDX=XZER
 183 :       DWDY=XZER
 184 :       DWDZ=XZER
 185 :       DO i=1,NBNO
 186 :         k=k+1
 187 :         DUDX=DUDX+SHP(2,i)*XDDL(k)
 188 :         DUDY=DUDY+SHP(3,i)*XDDL(k)
 189 :         DUDZ=DUDZ+SHP(4,i)*XDDL(k)
 190 :         k=k+1
 191 :         DVDX=DVDX+SHP(2,i)*XDDL(k)
 192 :         DVDY=DVDY+SHP(3,i)*XDDL(k)
 193 :         DVDZ=DVDZ+SHP(4,i)*XDDL(k)
 194 :         k=k+1
 195 :         DWDX=DWDX+SHP(2,i)*XDDL(k)
 196 :         DWDY=DWDY+SHP(3,i)*XDDL(k)
 197 :         DWDZ=DWDZ+SHP(4,i)*XDDL(k)
 198 :       ENDDO
 199 :       EPS1=UNDEMI*(DUDX*DUDX+DVDX*DVDX+DWDX*DWDX)
 200 :       EPS2=UNDEMI*(DUDY*DUDY+DVDY*DVDY+DWDY*DWDY)
 201 :       EPS3=UNDEMI*(DUDZ*DUDZ+DVDZ*DVDZ+DWDZ*DWDZ)
 202 :       XDEFO(1)=XDEFO(1)+EPS1
 203 :       XDEFO(2)=XDEFO(2)+EPS2
 204 :       XDEFO(3)=XDEFO(3)+EPS3
 205 :       XDEFO(4)=XDEFO(4)+(DUDX*DUDY+DVDX*DVDY+DWDX*DWDY)
 206 :       XDEFO(5)=XDEFO(5)+(DUDX*DUDZ+DVDX*DVDZ+DWDX*DWDZ)
 207 :       XDEFO(6)=XDEFO(6)+(DUDY*DUDZ+DVDY*DVDZ+DWDY*DWDZ)
 208 :       TRACE(IGAU)=EPS1+EPS2+EPS3
 209 :       GOTO 100
 210 : C ===
 211 : C  6 - Elements MASSIFS 1D
 212 : C ===
 213 : C= 6.1 - Modes 1D PLAN
 214 :  60   DUDX=XZER
 215 :       DO i=1,NBNO
 216 :         DUDX=DUDX+SHP(2,i)*XDDL(i)
 217 :       ENDDO
 218 :       EPS1=UNDEMI*DUDX*DUDX
 219 :       XDEFO(1)=XDEFO(1)+EPS1
 220 :       TRACE(IGAU)=EPS1
 221 :       IF (IFOU.EQ.7.OR.IFOU.EQ.8) THEN
 222 :         EPS2=UNDEMI*(UDPGE(1)*UDPGE(1))
 223 :         XDEFO(2)=XDEFO(2)+EPS2
 224 :         TRACE(IGAU)=EPS1+EPS2
 225 :       ELSE IF (IFOU.EQ.9.OR.IFOU.EQ.10) THEN
 226 :         EPS3=UNDEMI*(UDPGE(1)*UDPGE(1))
 227 :         XDEFO(3)=XDEFO(3)+EPS3
 228 :         TRACE(IGAU)=EPS1+EPS3
 229 :       ELSE IF (IFOU.EQ.11) THEN
 230 :         EPS2=UNDEMI*(UDPGE(1)*UDPGE(1))
 231 :         EPS3=UNDEMI*(UDPGE(2)*UDPGE(2))
 232 :         XDEFO(2)=XDEFO(2)+EPS2
 233 :         XDEFO(3)=XDEFO(3)+EPS3
 234 :         TRACE(IGAU)=EPS1+EPS2+EPS3
 235 :       ENDIF
 236 :       GOTO 100
 237 : C= 6.2 - Modes 1D AXIS
 238 :  70   RR=XZER
 239 :       UR=XZER
 240 :       DUDX=XZER
 241 :       DO i=1,NBNO
 242 :         RR=RR+SHP(1,i)*XEL(1,i)
 243 :         UR=UR+SHP(1,i)*XDDL(i)
 244 :         DUDX=DUDX+SHP(2,i)*XDDL(i)
 245 :       ENDDO
 246 :       EPS1=UNDEMI*(DUDX*DUDX)
 247 :       EPS3=UNDEMI*(UR*UR)/(RR*RR)
 248 :       XDEFO(1)=XDEFO(1)+EPS1
 249 : C     XDEFO(2)=XDEFO(2)+XZER
 250 :       XDEFO(3)=XDEFO(3)+EPS3
 251 :       TRACE(IGAU)=EPS1+EPS3
 252 :       IF (IFOU.EQ.14) THEN
 253 :         EPS2=UNDEMI*(UDPGE(1)*UDPGE(1))
 254 :         XDEFO(2)=XDEFO(2)+EPS2
 255 :         TRACE(IGAU)=TRACE(IGAU)+EPS2
 256 :       ENDIF
 257 :       GOTO 100
 258 : C= 6.3 - Mode 1D SPHE
 259 :  80   RR=XZER
 260 :       UR=XZER
 261 :       DUDX=XZER
 262 :       DO i=1,NBNO
 263 :         RR=RR+SHP(1,i)*XEL(1,i)
 264 :         UR=UR+SHP(1,i)*XDDL(i)
 265 :         DUDX=DUDX+SHP(2,i)*XDDL(i)
 266 :       ENDDO
 267 :       EPS1=UNDEMI*(DUDX*DUDX)
 268 :       EPS2=UNDEMI*(UR*UR)/(RR*RR)
 269 :       XDEFO(1)=XDEFO(1)+EPS1
 270 :       XDEFO(2)=XDEFO(2)+EPS2
 271 :       XDEFO(3)=XDEFO(3)+EPS2
 272 :       TRACE(IGAU)=EPS1+EPS2+EPS2
 273 :       GOTO 100
 274 : 
 275 :  100  CONTINUE
 276 :       RETURN
 277 :       END
 278 : 
 279 :  

© Cast3M 2003 - All rights reserved.
Disclaimer