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