Download dbst2.eso

Back to the list

   1 : C DBST2     SOURCE    PV        07/11/23    21:16:19     5978           
   2 : 
   3 :       SUBROUTINE DBST2 (SHP,DD,XDDL,XEL,NBNO,IFOU,NSTRS,XSTRS,TRACE,
   4 :      &                  IGAU,XDPGE,YDPGE,UDPGE,NN)
   5 : 
   6 : C=======================================================================
   7 : C=                           D B S T 2                                 =
   8 : C=                           ---------                                 =
   9 : C=  Fonction :                                                         =
  10 : C=  ----------                                                         =
  11 : C=   Calcul des contraintes en tenant compte de la partie quadratique  =
  12 : c=   des deformations en un point de 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=   DD       (E)   Matrice de Hooke au point de Gauss considere       =
  19 : C=   XDDL     (E)   Valeurs des ddls aux noeuds de l'element etudie    =
  20 : C=   XEL      (E)   Coordonnees des noeuds de l'element fini etudie    =
  21 : C=   NBNO     (E)   Nombre de noeuds de l'element fini massif          =
  22 : C=   IFOU     (E)   Mode de calcul utilise (cf. IFOUR dans CCOPTIO)    =
  23 : C=   NSTRS    (E)   Nombre de composantes de contraintes               =
  24 : C=   XSTRS   (E/S)  Entree : contraintes calculees au point de Gauss   =
  25 : C                   considere a partir des deformations (linearisees)  =
  26 : C=                  Sortie : contraintes calculees en integrant les    =
  27 : C=                  termes lineaire et quadratique des deformations    =
  28 : C=   TRACE    (S)   1. Trace de la partie quadratique des deformations =
  29 : C=                  2. Valeur du coefficient de compressibilite K      =
  30 : C=                  3. Valeur du coefficient de Lame Lambda            =
  31 : C=                  au point de Gauss considere (IGAU)                 =
  32 : C=   IGAU     (E)   Numero du point de Gauss considere                 =
  33 : C=   XDPGE,YDPGE (E)   Coordonnees du noeud support si necessaire      =
  34 : C=   UDPGE    (E)   DDL associes au noeud support si necessaire        =
  35 : C=   NN       (E)   Numero du mode de Fourier si necessaire (=NIFOUR)  =
  36 : C=======================================================================
  37 : 
  38 :       IMPLICIT INTEGER(I-N)
  39 :       IMPLICIT REAL*8(A-H,O-Z)
  40 : 
  41 :       PARAMETER (XZER=0.,UNDEMI=0.5,X2SUR3=0.6666666666666666666666666)
  42 : 
  43 :       DIMENSION SHP(6,*),DD(NSTRS,*),XDDL(*),XEL(3,*),
  44 :      &          XSTRS(*),TRACE(3,*),UDPGE(3)
  45 :       DIMENSION EPS2(10)
  46 : 
  47 :       IFOR=IFOU+4
  48 :       GOTO (10,20,20,30,40,50,60,60,60,60,60,60,60,60,60,
  49 :      &      70,70,70,80),IFOR
  50 :       GOTO 200
  51 : 
  52 : C ===
  53 : C  1 - Elements MASSIFS 2D PLAN GENE
  54 : C ===
  55 :  10   k=0
  56 :       XXX=XZER
  57 :       YYY=XZER
  58 :       DUDX=XZER
  59 :       DUDY=XZER
  60 :       DVDX=XZER
  61 :       DVDY=XZER
  62 :       DO i=1,NBNO
  63 :         XXX=XXX+SHP(1,i)*XEL(1,i)
  64 :         YYY=YYY+SHP(1,i)*XEL(2,i)
  65 :         k=k+1
  66 :         DUDX=DUDX+SHP(2,i)*XDDL(k)
  67 :         DUDY=DUDY+SHP(3,i)*XDDL(k)
  68 :         k=k+1
  69 :         DVDX=DVDX+SHP(2,i)*XDDL(k)
  70 :         DVDY=DVDY+SHP(3,i)*XDDL(k)
  71 :       ENDDO
  72 :       EPS2(1)=UNDEMI*(DUDX*DUDX+DVDX*DVDX)
  73 :       EPS2(2)=UNDEMI*(DUDY*DUDY+DVDY*DVDY)
  74 :       EPS2(3)=UDPGE(1)+UDPGE(2)*(XDPGE-XXX)+UDPGE(3)*(YYY-YDPGE)
  75 :       EPS2(3)=UNDEMI*EPS2(3)*EPS2(3)
  76 :       EPS2(4)=DUDX*DUDY+DVDX*DVDY
  77 :       TRACE(1,IGAU)=EPS2(1)+EPS2(2)+EPS2(3)
  78 : C A verifier : TRACE(2,IGAU)=...
  79 :       TRACE(2,IGAU)=DD(2,1)+DD(4,4)
  80 :       TRACE(3,IGAU)=DD(2,1)
  81 :       GOTO 100
  82 : C ===
  83 : C  2 - Elements MASSIFS 2D PLAN DEFO ou PLAN CONT
  84 : C ===
  85 :  20   k=0
  86 :       DUDX=XZER
  87 :       DUDY=XZER
  88 :       DVDX=XZER
  89 :       DVDY=XZER
  90 :       DO i=1,NBNO
  91 :         k=k+1
  92 :         DUDX=DUDX+SHP(2,i)*XDDL(k)
  93 :         DUDY=DUDY+SHP(3,i)*XDDL(k)
  94 :         k=k+1
  95 :         DVDX=DVDX+SHP(2,i)*XDDL(k)
  96 :         DVDY=DVDY+SHP(3,i)*XDDL(k)
  97 :       ENDDO
  98 :       EPS2(1)=UNDEMI*(DUDX*DUDX+DVDX*DVDX)
  99 :       EPS2(2)=UNDEMI*(DUDY*DUDY+DVDY*DVDY)
 100 :       EPS2(3)=XZER
 101 :       EPS2(4)=DUDX*DUDY+DVDX*DVDY
 102 :       TRACE(1,IGAU)=EPS2(1)+EPS2(2)
 103 :       TRACE(2,IGAU)=DD(2,1)+DD(4,4)
 104 :       TRACE(3,IGAU)=DD(2,1)
 105 :       GOTO 100
 106 : C ===
 107 : C  3 - Elements MASSIFS 2D AXISymetrique
 108 : C ===
 109 :  30   k=0
 110 :       RR=XZER
 111 :       UR=XZER
 112 :       DUDX=XZER
 113 :       DUDY=XZER
 114 :       DVDX=XZER
 115 :       DVDY=XZER
 116 :       DO i=1,NBNO
 117 :         RR=RR+SHP(1,i)*XEL(1,i)
 118 :         k=k+1
 119 :         UR=UR+SHP(1,i)*XDDL(k)
 120 :         DUDX=DUDX+SHP(2,i)*XDDL(k)
 121 :         DUDY=DUDY+SHP(3,i)*XDDL(k)
 122 :         k=k+1
 123 :         DVDX=DVDX+SHP(2,i)*XDDL(k)
 124 :         DVDY=DVDY+SHP(3,i)*XDDL(k)
 125 :       ENDDO
 126 :       EPS2(1)=UNDEMI*(DUDX*DUDX+DVDX*DVDX)
 127 :       EPS2(2)=UNDEMI*(DUDY*DUDY+DVDY*DVDY)
 128 :       EPS2(3)=UNDEMI*(UR*UR)/(RR*RR)
 129 :       EPS2(4)=DUDX*DUDY+DVDX*DVDY
 130 :       TRACE(1,IGAU)=EPS2(1)+EPS2(2)+EPS2(3)
 131 :       TRACE(2,IGAU)=DD(2,1)+X2SUR3*DD(4,4)
 132 :       TRACE(3,IGAU)=DD(2,1)
 133 :       GOTO 100
 134 : C ===
 135 : C  4 - Elements MASSIFS 2D FOURIER
 136 : C ===
 137 :  40   k=0
 138 :       RR=XZER
 139 :       UR=XZER
 140 :       DUDX=XZER
 141 :       DUDY=XZER
 142 :       UZ=XZER
 143 :       DVDX=XZER
 144 :       DVDY=XZER
 145 :       UT=XZER
 146 :       DWDX=XZER
 147 :       DWDY=XZER
 148 :       DO i=1,NBNO
 149 :         RR=RR+SHP(1,i)*XEL(1,i)
 150 :         k=k+1
 151 :         UR=UR+SHP(1,i)*XDDL(k)
 152 :         DUDX=DUDX+SHP(2,i)*XDDL(k)
 153 :         DUDY=DUDY+SHP(3,i)*XDDL(k)
 154 :         k=k+1
 155 :         UZ=UZ+SHP(1,i)*XDDL(k)
 156 :         DVDX=DVDX+SHP(2,i)*XDDL(k)
 157 :         DVDY=DVDY+SHP(3,i)*XDDL(k)
 158 :         k=k+1
 159 :         UT=UT+SHP(1,i)*XDDL(k)
 160 :         DWDX=DWDX+SHP(2,i)*XDDL(k)
 161 :         DWDY=DWDY+SHP(3,i)*XDDL(k)
 162 :       ENDDO
 163 :       HHRT=-NN*UR-UT
 164 :       HHTT=UR+NN*UT
 165 :       HHZT=-NN*UZ
 166 :       EPS2(1)=UNDEMI*(DUDX*DUDX+DVDX*DVDX+DWDX*DWDX)
 167 :       EPS2(2)=UNDEMI*(DUDY*DUDY+DVDY*DVDY+DWDY*DWDY)
 168 :       EPS2(3)=UNDEMI*(HHRT*HHRT+HHTT*HHTT+HHZT*HHZT)/(RR*RR)
 169 :       EPS2(4)=(DUDX*DUDY+DVDX*DVDY+DWDX*DWDY)
 170 :       EPS2(5)=(DUDX*HHRT+DVDX*HHTT+DWDX*HHZT)/RR
 171 :       EPS2(6)=(DUDY*HHRT+DVDY*HHTT+DWDY*HHZT)/RR
 172 :       TRACE(1,IGAU)=EPS2(1)+EPS2(2)+EPS2(3)
 173 :       TRACE(2,IGAU)=DD(2,1)+X2SUR3*DD(4,4)
 174 :       TRACE(3,IGAU)=DD(2,1)
 175 :       GOTO 100
 176 : C ===
 177 : C  5 - Elements MASSIFS 3D
 178 : C ===
 179 :  50   k=0
 180 :       DUDX=XZER
 181 :       DUDY=XZER
 182 :       DUDZ=XZER
 183 :       DVDX=XZER
 184 :       DVDY=XZER
 185 :       DVDZ=XZER
 186 :       DWDX=XZER
 187 :       DWDY=XZER
 188 :       DWDZ=XZER
 189 :       DO i=1,NBNO
 190 :         k=k+1
 191 :         DUDX=DUDX+SHP(2,i)*XDDL(k)
 192 :         DUDY=DUDY+SHP(3,i)*XDDL(k)
 193 :         DUDZ=DUDZ+SHP(4,i)*XDDL(k)
 194 :         k=k+1
 195 :         DVDX=DVDX+SHP(2,i)*XDDL(k)
 196 :         DVDY=DVDY+SHP(3,i)*XDDL(k)
 197 :         DVDZ=DVDZ+SHP(4,i)*XDDL(k)
 198 :         k=k+1
 199 :         DWDX=DWDX+SHP(2,i)*XDDL(k)
 200 :         DWDY=DWDY+SHP(3,i)*XDDL(k)
 201 :         DWDZ=DWDZ+SHP(4,i)*XDDL(k)
 202 :       ENDDO
 203 :       EPS2(1)=UNDEMI*(DUDX*DUDX+DVDX*DVDX+DWDX*DWDX)
 204 :       EPS2(2)=UNDEMI*(DUDY*DUDY+DVDY*DVDY+DWDY*DWDY)
 205 :       EPS2(3)=UNDEMI*(DUDZ*DUDZ+DVDZ*DVDZ+DWDZ*DWDZ)
 206 :       EPS2(4)=DUDX*DUDY+DVDX*DVDY+DWDX*DWDY
 207 :       EPS2(5)=DUDX*DUDZ+DVDX*DVDZ+DWDX*DWDZ
 208 :       EPS2(6)=DUDY*DUDZ+DVDY*DVDZ+DWDY*DWDZ
 209 :       TRACE(1,IGAU)=EPS2(1)+EPS2(2)+EPS2(3)
 210 :       TRACE(2,IGAU)=X2SUR3*(DD(2,1)+DD(4,4))
 211 :       TRACE(3,IGAU)=DD(2,1)
 212 :       GOTO 100
 213 : C ===
 214 : C  6 - Elements MASSIFS 1D
 215 : C ===
 216 : C= 6.1 - Modes 1D PLAN
 217 :  60   DUDX=XZER
 218 :       DO i=1,NBNO
 219 :         DUDX=DUDX+SHP(2,i)*XDDL(i)
 220 :       ENDDO
 221 :       EPS2(1)=UNDEMI*DUDX*DUDX
 222 :       EPS2(2)=XZER
 223 :       EPS2(3)=XZER
 224 :       IF (IFOU.EQ.7.OR.IFOU.EQ.8) THEN
 225 :         EPS2(2)=UNDEMI*(UDPGE(1)*UDPGE(1))
 226 :       ELSE IF (IFOU.EQ.9.OR.IFOU.EQ.10) THEN
 227 :         EPS2(3)=UNDEMI*(UDPGE(1)*UDPGE(1))
 228 :       ELSE IF (IFOU.EQ.11) THEN
 229 :         EPS2(2)=UNDEMI*(UDPGE(1)*UDPGE(1))
 230 :         EPS2(3)=UNDEMI*(UDPGE(2)*UDPGE(2))
 231 :       ENDIF
 232 :       TRACE(1,IGAU)=EPS2(1)+EPS2(2)+EPS2(3)
 233 : C A verifier : TRACE(2,IGAU)=... et TRACE(3,IGAU)=...
 234 :       TRACE(2,IGAU)=DD(1,1)
 235 :       TRACE(3,IGAU)=DD(1,1)
 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 :       EPS2(1)=UNDEMI*(DUDX*DUDX)
 247 :       EPS2(2)=XZER
 248 :       EPS2(3)=UNDEMI*(UR*UR)/(RR*RR)
 249 :       IF (IFOU.EQ.14) THEN
 250 :         EPS2(2)=UNDEMI*(UDPGE(1)*UDPGE(1))
 251 :       ENDIF
 252 :       TRACE(1,IGAU)=EPS2(1)+EPS2(2)+EPS2(3)
 253 : C A verifier : TRACE(2,IGAU)=... et TRACE(3,IGAU)=...
 254 :       TRACE(2,IGAU)=DD(1,1)
 255 :       TRACE(3,IGAU)=DD(1,1)
 256 :       GOTO 100
 257 : C= 6.3 - Mode 1D SPHE
 258 :  80   RR=XZER
 259 :       UR=XZER
 260 :       DUDX=XZER
 261 :       DO i=1,NBNO
 262 :         RR=RR+SHP(1,i)*XEL(1,i)
 263 :         UR=UR+SHP(1,i)*XDDL(i)
 264 :         DUDX=DUDX+SHP(2,i)*XDDL(i)
 265 :       ENDDO
 266 :       EPS2(1)=UNDEMI*(DUDX*DUDX)
 267 :       EPS2(2)=UNDEMI*(UR*UR)/(RR*RR)
 268 :       EPS2(3)=EPS2(2)
 269 :       TRACE(1,IGAU)=EPS2(1)+EPS2(2)+EPS2(3)
 270 : C A verifier : TRACE(2,IGAU)=... et TRACE(3,IGAU)=...
 271 :       TRACE(2,IGAU)=DD(1,1)
 272 :       TRACE(3,IGAU)=DD(1,1)
 273 :       GOTO 100
 274 : C ====
 275 : C  Calcul des contraintes XSTRS(*) en ajoutant les contraintes associees
 276 : C  a la partie quadratique des deformations EPS2(*) - multiplication par
 277 : C  la matrice de Hooke DD(*,*)
 278 : C ====
 279 :  100  DO i=1,NSTRS
 280 :         ZSIG=XZER
 281 :         DO j=1,NSTRS
 282 :           ZSIG=ZSIG+DD(i,j)*EPS2(j)
 283 :         ENDDO
 284 :         XSTRS(i)=XSTRS(i)+ZSIG
 285 :       ENDDO
 286 : 
 287 :  200  CONTINUE
 288 :       RETURN
 289 :       END
 290 : 
 291 :  
 292 :  

© Cast3M 2003 - All rights reserved.
Disclaimer