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