1 : C INCRE3 SOURCE PV 11/03/07 21:16:57 6885 2 : C______________________________________________________________________ 3 : SUBROUTINE INCRE3(DT,SIG,EPSV,VAR,XMAT,EPSVPT,VARPT,ALFA, 4 : & NSTRS0,NVARI,INPLAS,NCOMAT) 5 : IMPLICIT INTEGER(I-N) 6 : IMPLICIT REAL*8(A-H,O-Z) 7 : DIMENSION SIG(*),EPSV(*),VAR(*),XMAT(*),EPSVPT(*),VARPT(*) 8 : DIMENSION SM(4),SB(4),EM(4),EB(4),EPLU(8),EMIN(8),EPSCRP(8) 9 : C______________________________________________________________________ 10 : C 11 : C THIS ROUTINE COMPUTES INCREMENTAL STRAIN AND INTERNAL VARIABLES 12 : C______________________________________________________________________ 13 : C 14 : C STEP-1 : SEPERATE OUT MEMBRANE AND BENDING CONTRIBUTIONS 15 : C --------------------------------------------------------- 16 : NSTRS=NSTRS0+2 17 : NS = NSTRS/2 18 : SM(1)=SIG(1) 19 : SM(2)=SIG(2) 20 : SM(3)=0.D0 21 : SM(4)=0.D0 22 : IF (NS.EQ.4) SM(4)=SIG(3) 23 : SB(1)=SIG(NS) 24 : SB(2)=SIG(NS+1) 25 : SB(3)=0.D0 26 : SB(4)=0.D0 27 : IF (NS.EQ.4) SB(4)=SIG(NS+2) 28 : EM(1)=EPSV(1) 29 : EM(2)=EPSV(2) 30 : EM(3)=-1.D0*(EM(1)+EM(2)) 31 : EM(4)=0.D0 32 : IF (NS.EQ.4) EM(4)=EPSV(3) 33 : EB(1)=EPSV(NS) 34 : EB(2)=EPSV(NS+1) 35 : EB(3)=-1.D0*(EB(1)+EB(2)) 36 : EB(4)=0.D0 37 : IF (NS.EQ.4) EB(4)=EPSV(NS+2) 38 : IF((INPLAS.GE.19.AND.INPLAS.LE.23).OR.INPLAS.EQ.61) THEN 39 : DO 20 I = 1,NSTRS 40 : EPLU(I) = VAR ( I) 41 : EMIN(I) = VAR (NSTRS+I) 42 : 20 CONTINUE 43 : EEFF = VAR (2*NSTRS+1) 44 : EPSH = VAR (2*NSTRS+2) 45 : LL = nint(VAR (2*NSTRS+3)) 46 : ENDIF 47 : IF(INPLAS.EQ.19.OR.INPLAS.EQ.21) THEN 48 : DO 30 I=1,NS 49 : 30 EPSCRP(I)= EM(I) 50 : DO 31 I=1,NS 51 : 31 EPSCRP(NS+I)= EB(I) 52 : DO 32 I=1,NSTRS0 53 : EPSVPT(I)=0.D0 54 : 32 CONTINUE 55 : ELSE IF(INPLAS.EQ.20.OR.INPLAS.EQ.22.OR.INPLAS.EQ.23.OR. 56 : & INPLAS.EQ.61) THEN 57 : DO 40 I=1,NSTRS 58 : 40 EPSCRP(I)=VAR(2*NSTRS+4+I) 59 : DO 41 I=1,NSTRS0 60 : 41 EPSVPT(I)=0.D0 61 : ENDIF 62 : DO 50 I=1,NVARI 63 : 50 VARPT(I)=0.0D0 64 : C 65 : C ------------------------------------------------------------- 66 : C 67 : C STEP-2 : COMPUTATION OF SMEMB,SBEND AND SEQUV 68 : C --------------------------------------------- 69 : FMEMB=SM(1)*SM(1)+SM(2)*SM(2)-SM(1)*SM(2) 70 : FBEND=SB(1)*SB(1)+SB(2)*SB(2)-SB(1)*SB(2) 71 : IF(NS.EQ.4) THEN 72 : FMEMB=FMEMB+3.0*SM(4)*SM(4) 73 : FBEND=FBEND+3.0*SB(4)*SB(4) 74 : ENDIF 75 : SEQUV=SQRT(FMEMB+ALFA*ALFA*FBEND) 76 : C ------------------------------------------------------------- 77 : C 78 : C STEP-3 : COMPUTATION OF INCREMENTS OF INTERNAL VARIABLES 79 : C --------------------------------------------------------- 80 : ALF1 = 1.0D0 81 : ALF2 = 1.0D0/ALFA/ALFA 82 : IF((INPLAS.GE.19.AND.INPLAS.LE.23).OR.INPLAS.EQ.61) THEN 82 : CALL UPVAR2(SM,SB,EPSCRP,EPLU,EMIN,EEFF,EPSH,LL,ALF1,ALF2,NSTRS) 83 : DO 60 I = 1,NSTRS 84 : VARPT ( I) = EPLU(I) 85 : VARPT (NSTRS+I) = EMIN(I) 86 : 60 CONTINUE 87 : VARPT (2*NSTRS+1) = EEFF 88 : VARPT (2*NSTRS+2) = EPSH 89 : VARPT (2*NSTRS+3) = LL 90 : ENDIF 91 : C ------------------------------------------------------------- 92 : C 93 : C STEP-4 : COMPUTATION OF INCREMENTS OF INELASTIC STRAINS 94 : C ------------------------------------------------------- 95 : DECT = 0.0D0 96 : IF(SEQUV.EQ.0.0D0) GO TO 100 97 : IF(INPLAS.EQ.19.OR.INPLAS.EQ.21) THEN 98 : IF(INPLAS.EQ.19) 98 : . CALL NORTON(SEQUV,EPSH,DT,XMAT(6),XMAT(7),XMAT(8),DECT) 99 : IF(INPLAS.EQ.21) 100 : . DECT=XMAT(6)+XMAT(7)*(SEQUV**XMAT(8))+ 101 : . XMAT(9)*(SEQUV**XMAT(10)) + 102 : . XMAT(11)*(SEQUV**XMAT(12)) 103 : VARPT(2*NSTRS+4)=DECT 104 : CONS = DECT/SEQUV 105 : IF(NS.EQ.3) THEN 106 : EPSVPT(1)= CONS*(SIG(1)-0.5D0*SIG(2)) 107 : EPSVPT(2)= CONS*(SIG(2)-0.5D0*SIG(1)) 108 : EPSVPT(3)= CONS*(SIG(3)-0.5D0*SIG(4)) * ALFA * ALFA 109 : EPSVPT(4)= CONS*(SIG(4)-0.5D0*SIG(3)) * ALFA * ALFA 110 : ELSE 111 : EPSVPT(1)= CONS*(SIG(1)-0.5D0*SIG(2)) 112 : EPSVPT(2)= CONS*(SIG(2)-0.5D0*SIG(1)) 113 : EPSVPT(3)= 1.5D0*CONS*SIG(3) 114 : EPSVPT(4)= CONS*(SIG(4)-0.5D0*SIG(5)) * ALFA * ALFA 115 : EPSVPT(5)= CONS*(SIG(5)-0.5D0*SIG(4)) * ALFA * ALFA 116 : EPSVPT(6)= 1.5D0*CONS*SIG(6) * ALFA * ALFA 117 : ENDIF 118 : ELSE IF(INPLAS.EQ.20.OR.INPLAS.EQ.22.OR. 119 : . INPLAS.EQ.23.OR.INPLAS.EQ.61) THEN 119 : CALL SOLUTN(INPLAS,SEQUV,EPSH,XMAT,DT,TIME) 119 : CALL EQUATN(INPLAS,SEQUV,TIME,DT,XMAT,DECP,DECS) 120 : DECT = DECP + DECS 121 : VARPT(2*NSTRS+4)=DECT 122 : CONS1 = DECT/SEQUV 123 : CONS2 = DECP/SEQUV 124 : IF(NS.EQ.3) THEN 125 : EPSVPT(1)= CONS1*(SIG(1)-0.5D0*SIG(2)) 126 : EPSVPT(2)= CONS1*(SIG(2)-0.5D0*SIG(1)) 127 : EPSVPT(3)= CONS1*(SIG(3)-0.5D0*SIG(4)) * ALFA * ALFA 128 : EPSVPT(4)= CONS1*(SIG(4)-0.5D0*SIG(3)) * ALFA * ALFA 129 : VARPT(2*NSTRS+5)= CONS2*(SIG(1)-0.5D0*SIG(2)) 130 : VARPT(2*NSTRS+6)= CONS2*(SIG(2)-0.5D0*SIG(1)) 131 : VARPT(2*NSTRS+7)= -1.D0*CONS2*(SIG(1)+SIG(2))*.5D0 132 : VARPT(2*NSTRS+8)= CONS2*(SIG(3)-0.5D0*SIG(4)) * ALFA * ALFA 133 : VARPT(2*NSTRS+9)= CONS2*(SIG(4)-0.5D0*SIG(3)) * ALFA * ALFA 134 : VARPT(2*NSTRS+7)= -1.D0*CONS2*(SIG(3)+SIG(4))*.5D0 135 : ELSE 136 : EPSVPT(1)= CONS1*(SIG(1)-0.5D0*SIG(2)) 137 : EPSVPT(2)= CONS1*(SIG(2)-0.5D0*SIG(1)) 138 : EPSVPT(3)= CONS1*SIG(3) * 1.5D0 139 : EPSVPT(4)= CONS1*(SIG(4)-0.5D0*SIG(5)) * ALFA * ALFA 140 : EPSVPT(5)= CONS1*(SIG(5)-0.5D0*SIG(4)) * ALFA * ALFA 141 : EPSVPT(6)= CONS1*SIG(6) * ALFA * ALFA * 1.5D0 142 : VARPT(2*NSTRS+5)= CONS2*(SIG(1)-0.5D0*SIG(2)) 143 : VARPT(2*NSTRS+6)= CONS2*(SIG(2)-0.5D0*SIG(1)) 144 : VARPT(2*NSTRS+7)= -1.D0*CONS2*(SIG(1)+SIG(2))*.5D0 145 : VARPT(2*NSTRS+8)= CONS2*SIG(3) * 1.5D0 146 : VARPT(2*NSTRS+9)= CONS2*(SIG(4)-0.5D0*SIG(5)) * ALFA * ALFA 147 : VARPT(2*NSTRS+10)= CONS2*(SIG(5)-0.5D0*SIG(4)) * ALFA * ALFA 148 : VARPT(2*NSTRS+11)= -1.D0*CONS2*(SIG(1)+SIG(2))*.5D0 149 : VARPT(2*NSTRS+12)= CONS2*SIG(6) * ALFA * ALFA * 1.5D0 150 : ENDIF 151 : ELSE IF(INPLAS.EQ.24) THEN 151 : CALL LEMAIT(SEQUV,VAR(1),DX,DT,XMAT,DECT) 152 : VARPT(1) =DX 153 : VARPT(2) =DECT 154 : CONS =DECT/SEQUV 155 : IF(NS.EQ.2) THEN 156 : EPSVPT(1)= CONS*(SIG(1)-0.5D0*SIG(2)) 157 : EPSVPT(2)= CONS*(SIG(2)-0.5D0*SIG(1)) 158 : EPSVPT(3)= CONS*(SIG(3)-0.5D0*SIG(4)) * ALFA * ALFA 159 : EPSVPT(4)= CONS*(SIG(4)-0.5D0*SIG(3)) * ALFA * ALFA 160 : ELSE 161 : EPSVPT(1)= CONS*(SIG(1)-0.5D0*SIG(2)) 162 : EPSVPT(2)= CONS*(SIG(2)-0.5D0*SIG(1)) 163 : EPSVPT(3)= CONS*SIG(3)*1.5D0 164 : EPSVPT(4)= CONS*(SIG(4)-0.5D0*SIG(5)) * ALFA * ALFA 165 : EPSVPT(5)= CONS*(SIG(5)-0.5D0*SIG(4)) * ALFA * ALFA 166 : EPSVPT(6)= CONS*SIG(6) * ALFA * ALFA * 1.5D0 167 : ENDIF 168 : ENDIF 169 : C 170 : 100 RETURN 171 : END 172 : 173 : 174 : 175 : 176 :
© Cast3M 2003 - All rights reserved.
Disclaimer