incre3
C INCRE3 SOURCE PV 11/03/07 21:16:57 6885 C______________________________________________________________________ & NSTRS0,NVARI,INPLAS,NCOMAT) IMPLICIT INTEGER(I-N) IMPLICIT REAL*8(A-H,O-Z) DIMENSION SIG(*),EPSV(*),VAR(*),XMAT(*),EPSVPT(*),VARPT(*) C______________________________________________________________________ C C THIS ROUTINE COMPUTES INCREMENTAL STRAIN AND INTERNAL VARIABLES C______________________________________________________________________ C C STEP-1 : SEPERATE OUT MEMBRANE AND BENDING CONTRIBUTIONS C --------------------------------------------------------- NSTRS=NSTRS0+2 NS = NSTRS/2 SM(1)=SIG(1) SM(2)=SIG(2) SM(3)=0.D0 SM(4)=0.D0 IF (NS.EQ.4) SM(4)=SIG(3) EM(1)=EPSV(1) EM(2)=EPSV(2) EM(3)=-1.D0*(EM(1)+EM(2)) EM(4)=0.D0 IF (NS.EQ.4) EM(4)=EPSV(3) EB(1)=EPSV(NS) EB(2)=EPSV(NS+1) EB(3)=-1.D0*(EB(1)+EB(2)) EB(4)=0.D0 IF (NS.EQ.4) EB(4)=EPSV(NS+2) IF((INPLAS.GE.19.AND.INPLAS.LE.23).OR.INPLAS.EQ.61) THEN DO 20 I = 1,NSTRS EPLU(I) = VAR ( I) EMIN(I) = VAR (NSTRS+I) 20 CONTINUE EEFF = VAR (2*NSTRS+1) EPSH = VAR (2*NSTRS+2) LL = nint(VAR (2*NSTRS+3)) ENDIF IF(INPLAS.EQ.19.OR.INPLAS.EQ.21) THEN DO 30 I=1,NS 30 EPSCRP(I)= EM(I) DO 31 I=1,NS 31 EPSCRP(NS+I)= EB(I) DO 32 I=1,NSTRS0 EPSVPT(I)=0.D0 32 CONTINUE ELSE IF(INPLAS.EQ.20.OR.INPLAS.EQ.22.OR.INPLAS.EQ.23.OR. & INPLAS.EQ.61) THEN DO 40 I=1,NSTRS 40 EPSCRP(I)=VAR(2*NSTRS+4+I) DO 41 I=1,NSTRS0 41 EPSVPT(I)=0.D0 ENDIF DO 50 I=1,NVARI 50 VARPT(I)=0.0D0 C C ------------------------------------------------------------- C C STEP-2 : COMPUTATION OF SMEMB,SBEND AND SEQUV C --------------------------------------------- FMEMB=SM(1)*SM(1)+SM(2)*SM(2)-SM(1)*SM(2) IF(NS.EQ.4) THEN FMEMB=FMEMB+3.0*SM(4)*SM(4) ENDIF SEQUV=SQRT(FMEMB+ALFA*ALFA*FBEND) C ------------------------------------------------------------- C C STEP-3 : COMPUTATION OF INCREMENTS OF INTERNAL VARIABLES C --------------------------------------------------------- ALF1 = 1.0D0 ALF2 = 1.0D0/ALFA/ALFA IF((INPLAS.GE.19.AND.INPLAS.LE.23).OR.INPLAS.EQ.61) THEN DO 60 I = 1,NSTRS VARPT ( I) = EPLU(I) VARPT (NSTRS+I) = EMIN(I) 60 CONTINUE VARPT (2*NSTRS+1) = EEFF VARPT (2*NSTRS+2) = EPSH VARPT (2*NSTRS+3) = LL ENDIF C ------------------------------------------------------------- C C STEP-4 : COMPUTATION OF INCREMENTS OF INELASTIC STRAINS C ------------------------------------------------------- DECT = 0.0D0 IF(SEQUV.EQ.0.0D0) GO TO 100 IF(INPLAS.EQ.19.OR.INPLAS.EQ.21) THEN IF(INPLAS.EQ.19) IF(INPLAS.EQ.21) . DECT=XMAT(6)+XMAT(7)*(SEQUV**XMAT(8))+ . XMAT(9)*(SEQUV**XMAT(10)) + . XMAT(11)*(SEQUV**XMAT(12)) VARPT(2*NSTRS+4)=DECT CONS = DECT/SEQUV IF(NS.EQ.3) THEN EPSVPT(1)= CONS*(SIG(1)-0.5D0*SIG(2)) EPSVPT(2)= CONS*(SIG(2)-0.5D0*SIG(1)) EPSVPT(3)= CONS*(SIG(3)-0.5D0*SIG(4)) * ALFA * ALFA EPSVPT(4)= CONS*(SIG(4)-0.5D0*SIG(3)) * ALFA * ALFA ELSE EPSVPT(1)= CONS*(SIG(1)-0.5D0*SIG(2)) EPSVPT(2)= CONS*(SIG(2)-0.5D0*SIG(1)) EPSVPT(3)= 1.5D0*CONS*SIG(3) EPSVPT(4)= CONS*(SIG(4)-0.5D0*SIG(5)) * ALFA * ALFA EPSVPT(5)= CONS*(SIG(5)-0.5D0*SIG(4)) * ALFA * ALFA EPSVPT(6)= 1.5D0*CONS*SIG(6) * ALFA * ALFA ENDIF ELSE IF(INPLAS.EQ.20.OR.INPLAS.EQ.22.OR. . INPLAS.EQ.23.OR.INPLAS.EQ.61) THEN DECT = DECP + DECS VARPT(2*NSTRS+4)=DECT CONS1 = DECT/SEQUV CONS2 = DECP/SEQUV IF(NS.EQ.3) THEN EPSVPT(1)= CONS1*(SIG(1)-0.5D0*SIG(2)) EPSVPT(2)= CONS1*(SIG(2)-0.5D0*SIG(1)) EPSVPT(3)= CONS1*(SIG(3)-0.5D0*SIG(4)) * ALFA * ALFA EPSVPT(4)= CONS1*(SIG(4)-0.5D0*SIG(3)) * ALFA * ALFA VARPT(2*NSTRS+5)= CONS2*(SIG(1)-0.5D0*SIG(2)) VARPT(2*NSTRS+6)= CONS2*(SIG(2)-0.5D0*SIG(1)) VARPT(2*NSTRS+7)= -1.D0*CONS2*(SIG(1)+SIG(2))*.5D0 VARPT(2*NSTRS+8)= CONS2*(SIG(3)-0.5D0*SIG(4)) * ALFA * ALFA VARPT(2*NSTRS+9)= CONS2*(SIG(4)-0.5D0*SIG(3)) * ALFA * ALFA VARPT(2*NSTRS+7)= -1.D0*CONS2*(SIG(3)+SIG(4))*.5D0 ELSE EPSVPT(1)= CONS1*(SIG(1)-0.5D0*SIG(2)) EPSVPT(2)= CONS1*(SIG(2)-0.5D0*SIG(1)) EPSVPT(3)= CONS1*SIG(3) * 1.5D0 EPSVPT(4)= CONS1*(SIG(4)-0.5D0*SIG(5)) * ALFA * ALFA EPSVPT(5)= CONS1*(SIG(5)-0.5D0*SIG(4)) * ALFA * ALFA EPSVPT(6)= CONS1*SIG(6) * ALFA * ALFA * 1.5D0 VARPT(2*NSTRS+5)= CONS2*(SIG(1)-0.5D0*SIG(2)) VARPT(2*NSTRS+6)= CONS2*(SIG(2)-0.5D0*SIG(1)) VARPT(2*NSTRS+7)= -1.D0*CONS2*(SIG(1)+SIG(2))*.5D0 VARPT(2*NSTRS+8)= CONS2*SIG(3) * 1.5D0 VARPT(2*NSTRS+9)= CONS2*(SIG(4)-0.5D0*SIG(5)) * ALFA * ALFA VARPT(2*NSTRS+10)= CONS2*(SIG(5)-0.5D0*SIG(4)) * ALFA * ALFA VARPT(2*NSTRS+11)= -1.D0*CONS2*(SIG(1)+SIG(2))*.5D0 VARPT(2*NSTRS+12)= CONS2*SIG(6) * ALFA * ALFA * 1.5D0 ENDIF ELSE IF(INPLAS.EQ.24) THEN VARPT(1) =DX VARPT(2) =DECT CONS =DECT/SEQUV IF(NS.EQ.2) THEN EPSVPT(1)= CONS*(SIG(1)-0.5D0*SIG(2)) EPSVPT(2)= CONS*(SIG(2)-0.5D0*SIG(1)) EPSVPT(3)= CONS*(SIG(3)-0.5D0*SIG(4)) * ALFA * ALFA EPSVPT(4)= CONS*(SIG(4)-0.5D0*SIG(3)) * ALFA * ALFA ELSE EPSVPT(1)= CONS*(SIG(1)-0.5D0*SIG(2)) EPSVPT(2)= CONS*(SIG(2)-0.5D0*SIG(1)) EPSVPT(3)= CONS*SIG(3)*1.5D0 EPSVPT(4)= CONS*(SIG(4)-0.5D0*SIG(5)) * ALFA * ALFA EPSVPT(5)= CONS*(SIG(5)-0.5D0*SIG(4)) * ALFA * ALFA EPSVPT(6)= CONS*SIG(6) * ALFA * ALFA * 1.5D0 ENDIF ENDIF C 100 RETURN END
© Cast3M 2003 - Tous droits réservés.
Mentions légales