bst2
C BST2 SOURCE FANDEUR 05/12/07 21:15:01 5269 & XDPGE,YDPGE,UDPGE,NN) C======================================================================= C= B S T 2 = C= ------- = C= Fonction : = C= ---------- = C= Calcul de la partie quadratique des deformations en un point de = C= Gauss d'un element fini massif. = C= = C= Parametres : (E)=Entree (S)=Sortie = C= ------------ = C= SHP (E) Fonctions de forme et leurs derivees actuelles par = C= rapport aux coordonnees reelles x,y,z = C= XDDL (E) Valeurs des ddls aux noeuds de l'element etudie = C= XEL (E) Coordonnees des noeuds de l'element fini etudie = C= NBNO (E) Nombre de noeuds de l'element fini massif = C= IFOU (E) Mode de calcul utilise (cf. IFOUR dans CCOPTIO) = C= XDEFO (E/S) En entree : partie lineaire des deformations au = C= point de Gauss considere. En sortie : deformations = C= (parties lineaire et quadratique) en ce meme point = C= TRACE (S) Trace de la partie quadratique des deformations = C= au point de Gauss considere (IGAU) = C= IGAU (E) Numero du point de Gauss considere = C= XDPGE,YDPGE (E) Coordonnees du noeud support si necessaire = C= UDPGE (E) DDL associes au noeud support si necessaire = C= NN (E) Numero du mode de Fourier si necessaire (=NIFOUR) = C======================================================================= IMPLICIT INTEGER(I-N) IMPLICIT REAL*8(A-H,O-Z) PARAMETER (XZER=0.D0,UNDEMI=.5D0) IFOR=IFOU+4 GOTO (10,20,20,30,40,50,60,60,60,60,60,60,60,60,60, & 70,70,70,80),IFOR GOTO 100 C === C 1 - Elements MASSIFS 2D PLAN GENE C === 10 k=0 C XXX=XZER C YYY=XZER DUDX=XZER DUDY=XZER DVDX=XZER DVDY=XZER C XXX=XXX+SHP(1,i)*XEL(1,i) C YYY=YYY+SHP(1,i)*XEL(2,i) k=k+1 DUDX=DUDX+SHP(2,i)*XDDL(k) DUDY=DUDY+SHP(3,i)*XDDL(k) k=k+1 DVDX=DVDX+SHP(2,i)*XDDL(k) DVDY=DVDY+SHP(3,i)*XDDL(k) ENDDO EPS1=UNDEMI*(DUDX*DUDX+DVDX*DVDX) EPS2=UNDEMI*(DUDY*DUDY+DVDY*DVDY) C EPS3=UDPGE(1)+UDPGE(2)*(XDPGE-XXX)+UDPGE(3)*(YYY-YDPGE) C EPS3=UNDEMI*EPS3*EPS3 C Plus rapide pour un meme resultat : EPS3=UNDEMI*XDEFO(3)*XDEFO(3) XDEFO(1)=XDEFO(1)+EPS1 XDEFO(2)=XDEFO(2)+EPS2 XDEFO(3)=XDEFO(3)+EPS3 XDEFO(4)=XDEFO(4)+(DUDX*DUDY+DVDX*DVDY) GOTO 100 C === C 2 - Elements MASSIFS 2D PLAN DEFO ou PLAN CONT C === 20 k=0 DUDX=XZER DUDY=XZER DVDX=XZER DVDY=XZER k=k+1 DUDX=DUDX+SHP(2,i)*XDDL(k) DUDY=DUDY+SHP(3,i)*XDDL(k) k=k+1 DVDX=DVDX+SHP(2,i)*XDDL(k) DVDY=DVDY+SHP(3,i)*XDDL(k) ENDDO EPS1=UNDEMI*(DUDX*DUDX+DVDX*DVDX) EPS2=UNDEMI*(DUDY*DUDY+DVDY*DVDY) XDEFO(1)=XDEFO(1)+EPS1 XDEFO(2)=XDEFO(2)+EPS2 C XDEFO(3)=XDEFO(3)+XZER XDEFO(4)=XDEFO(4)+(DUDX*DUDY+DVDX*DVDY) GOTO 100 C === C 3 - Elements MASSIFS 2D AXISymetrique C === 30 k=0 RR=XZER UR=XZER DUDX=XZER DUDY=XZER DVDX=XZER DVDY=XZER RR=RR+SHP(1,i)*XEL(1,i) k=k+1 UR=UR+SHP(1,i)*XDDL(k) DUDX=DUDX+SHP(2,i)*XDDL(k) DUDY=DUDY+SHP(3,i)*XDDL(k) k=k+1 DVDX=DVDX+SHP(2,i)*XDDL(k) DVDY=DVDY+SHP(3,i)*XDDL(k) ENDDO EPS1=UNDEMI*(DUDX*DUDX+DVDX*DVDX) EPS2=UNDEMI*(DUDY*DUDY+DVDY*DVDY) EPS3=UNDEMI*(UR*UR)/(RR*RR) XDEFO(1)=XDEFO(1)+EPS1 XDEFO(2)=XDEFO(2)+EPS2 XDEFO(3)=XDEFO(3)+EPS3 XDEFO(4)=XDEFO(4)+(DUDX*DUDY+DVDX*DVDY) GOTO 100 C === C 4 - Elements MASSIFS 2D FOURIER C === 40 k=0 RR=XZER UR=XZER DUDX=XZER DUDY=XZER UZ=XZER DVDX=XZER DVDY=XZER UT=XZER DWDX=XZER DWDY=XZER RR=RR+SHP(1,i)*XEL(1,i) k=k+1 UR=UR+SHP(1,i)*XDDL(k) DUDX=DUDX+SHP(2,i)*XDDL(k) DUDY=DUDY+SHP(3,i)*XDDL(k) k=k+1 UZ=UZ+SHP(1,i)*XDDL(k) DVDX=DVDX+SHP(2,i)*XDDL(k) DVDY=DVDY+SHP(3,i)*XDDL(k) k=k+1 UT=UT+SHP(1,i)*XDDL(k) DWDX=DWDX+SHP(2,i)*XDDL(k) DWDY=DWDY+SHP(3,i)*XDDL(k) ENDDO HHRT=-NN*UR-UT HHTT=UR+NN*UT HHZT=-NN*UZ EPS1=UNDEMI*(DUDX*DUDX+DVDX*DVDX+DWDX*DWDX) EPS2=UNDEMI*(DUDY*DUDY+DVDY*DVDY+DWDY*DWDY) EPS3=UNDEMI*(HHRT*HHRT+HHTT*HHTT+HHZT*HHZT)/(RR*RR) XDEFO(1)=XDEFO(1)+EPS1 XDEFO(2)=XDEFO(2)+EPS2 XDEFO(3)=XDEFO(3)+EPS3 XDEFO(4)=XDEFO(4)+(DUDX*DUDY+DVDX*DVDY+DWDX*DWDY) XDEFO(5)=XDEFO(5)+(DUDX*HHRT+DVDX*HHTT+DWDX*HHZT)/RR XDEFO(6)=XDEFO(6)+(DUDY*HHRT+DVDY*HHTT+DWDY*HHZT)/RR GOTO 100 C === C 5 - Elements MASSIFS 3D C === 50 k=0 DUDX=XZER DUDY=XZER DUDZ=XZER DVDX=XZER DVDY=XZER DVDZ=XZER DWDX=XZER DWDY=XZER DWDZ=XZER k=k+1 DUDX=DUDX+SHP(2,i)*XDDL(k) DUDY=DUDY+SHP(3,i)*XDDL(k) DUDZ=DUDZ+SHP(4,i)*XDDL(k) k=k+1 DVDX=DVDX+SHP(2,i)*XDDL(k) DVDY=DVDY+SHP(3,i)*XDDL(k) DVDZ=DVDZ+SHP(4,i)*XDDL(k) k=k+1 DWDX=DWDX+SHP(2,i)*XDDL(k) DWDY=DWDY+SHP(3,i)*XDDL(k) DWDZ=DWDZ+SHP(4,i)*XDDL(k) ENDDO EPS1=UNDEMI*(DUDX*DUDX+DVDX*DVDX+DWDX*DWDX) EPS2=UNDEMI*(DUDY*DUDY+DVDY*DVDY+DWDY*DWDY) EPS3=UNDEMI*(DUDZ*DUDZ+DVDZ*DVDZ+DWDZ*DWDZ) XDEFO(1)=XDEFO(1)+EPS1 XDEFO(2)=XDEFO(2)+EPS2 XDEFO(3)=XDEFO(3)+EPS3 XDEFO(4)=XDEFO(4)+(DUDX*DUDY+DVDX*DVDY+DWDX*DWDY) XDEFO(5)=XDEFO(5)+(DUDX*DUDZ+DVDX*DVDZ+DWDX*DWDZ) XDEFO(6)=XDEFO(6)+(DUDY*DUDZ+DVDY*DVDZ+DWDY*DWDZ) GOTO 100 C === C 6 - Elements MASSIFS 1D C === C= 6.1 - Modes 1D PLAN 60 DUDX=XZER DUDX=DUDX+SHP(2,i)*XDDL(i) ENDDO EPS1=UNDEMI*DUDX*DUDX XDEFO(1)=XDEFO(1)+EPS1 IF (IFOU.EQ.7.OR.IFOU.EQ.8) THEN EPS2=UNDEMI*(UDPGE(1)*UDPGE(1)) XDEFO(2)=XDEFO(2)+EPS2 ELSE IF (IFOU.EQ.9.OR.IFOU.EQ.10) THEN EPS3=UNDEMI*(UDPGE(1)*UDPGE(1)) XDEFO(3)=XDEFO(3)+EPS3 ELSE IF (IFOU.EQ.11) THEN EPS2=UNDEMI*(UDPGE(1)*UDPGE(1)) EPS3=UNDEMI*(UDPGE(2)*UDPGE(2)) XDEFO(2)=XDEFO(2)+EPS2 XDEFO(3)=XDEFO(3)+EPS3 ENDIF GOTO 100 C= 6.2 - Modes 1D AXIS 70 RR=XZER UR=XZER DUDX=XZER RR=RR+SHP(1,i)*XEL(1,i) UR=UR+SHP(1,i)*XDDL(i) DUDX=DUDX+SHP(2,i)*XDDL(i) ENDDO EPS1=UNDEMI*(DUDX*DUDX) EPS3=UNDEMI*(UR*UR)/(RR*RR) XDEFO(1)=XDEFO(1)+EPS1 C XDEFO(2)=XDEFO(2)+XZER XDEFO(3)=XDEFO(3)+EPS3 IF (IFOU.EQ.14) THEN EPS2=UNDEMI*(UDPGE(1)*UDPGE(1)) XDEFO(2)=XDEFO(2)+EPS2 ENDIF GOTO 100 C= 6.3 - Mode 1D SPHE 80 RR=XZER UR=XZER DUDX=XZER RR=RR+SHP(1,i)*XEL(1,i) UR=UR+SHP(1,i)*XDDL(i) DUDX=DUDX+SHP(2,i)*XDDL(i) ENDDO EPS1=UNDEMI*(DUDX*DUDX) EPS2=UNDEMI*(UR*UR)/(RR*RR) XDEFO(1)=XDEFO(1)+EPS1 XDEFO(2)=XDEFO(2)+EPS2 XDEFO(3)=XDEFO(3)+EPS2 GOTO 100 100 CONTINUE RETURN END
© Cast3M 2003 - Tous droits réservés.
Mentions légales