1 : C ADVAN1 SOURCE STRU 07/05/31 21:15:02 5744 2 : 3 : C======================================================================= 4 : C= = 5 : C= THIS ROUTINE UPDATES THE STRAINS ,STRESSES & INTERNAL VARIABLES. = 6 : C= = 7 : C======================================================================= 8 : 9 : SUBROUTINE ADVAN1 (TAU,SIG,EPSV,VAR,SIG1,EPSV1,VAR1,DSPT,EPSVPT, 10 : . VARPT,XMAT,NSTRS,NVARI,IFOUR,INPLAS,MFR) 11 : 12 : IMPLICIT INTEGER(I-N) 13 : IMPLICIT REAL*8(A-H,O-Z) 14 : 15 : DIMENSION SIG(*),EPSV(*),VAR(*),SIG1(*),EPSV1(*),VAR1(*), 16 : . DSPT(*),EPSVPT(*),VARPT(*),XMAT(*) 17 : 18 : DATA UN / 1.D0 / 19 : 20 : C STEP-1 : UPDATING STRAINS 21 : C ---------------------------- 22 : YOU=XMAT(1) 23 : XNU=XMAT(2) 24 : IF (INPLAS.EQ.107) THEN 25 : C= EPSVPT contient les vit de def viscopl. + densification + gonflement 26 : DO 10 I=1,NSTRS 27 : A=VARPT(5)+VARPT(6) 28 : IF (I.GT.3) A=0.D0 29 : EPSV1(I)=EPSV(I)+TAU*(EPSVPT(I)-A) 30 : 10 CONTINUE 31 : ELSE 32 : DO 15 I=1,NSTRS 33 : EPSV1(I)=EPSV(I)+TAU*EPSVPT(I) 34 : 15 CONTINUE 35 : ENDIF 36 : C STEP-2 : UPDATING STESSES 37 : C ---------------------------- 38 : C= Mode de calcul 2D contraintes planes 39 : IF (IFOUR.EQ.-2) THEN 40 : SIG(3)=0.D0 41 : X2MU = YOU/(UN+XNU) 42 : XCO = X2MU/(UN-XNU) 43 : SIG1(1) = SIG(1) + TAU*(DSPT(1)-XCO*(EPSVPT(1)+XNU*EPSVPT(2))) 44 : SIG1(2) = SIG(2) + TAU*(DSPT(2)-XCO*(EPSVPT(2)+XNU*EPSVPT(1))) 45 : SIG1(3) = 0.D0 46 : SIG1(4) = SIG(4) + TAU*(DSPT(4)-X2MU*EPSVPT(4)) 47 : C= Modes de calcul 3D, 2D deformations planes (GENE ou non), 48 : C= 2D axisymetrique, 2D series de Fourier 49 : ELSE IF (IFOUR.EQ.2.OR.IFOUR.EQ.0.OR.IFOUR.EQ.1.OR. 50 : . IFOUR.EQ.-1.OR.IFOUR.EQ.-3) THEN 51 : X2MU = YOU/(UN+XNU) 52 : ALMB = X2MU*XNU/(UN-2*XNU) 53 : IF (MFR.EQ.5) THEN 54 : X2MU = YOU/(UN+XNU) 55 : XCO = X2MU/(UN-XNU) 56 : SIG1(1) = SIG(1) + TAU*(DSPT(1)-XCO*(EPSVPT(1)+XNU*EPSVPT(2))) 57 : SIG1(2) = SIG(2) + TAU*(DSPT(2)-XCO*(EPSVPT(2)+XNU*EPSVPT(1))) 58 : SIG1(3) = SIG(3) + TAU*(DSPT(3)-X2MU*EPSVPT(3)) 59 : SIG1(4) = SIG(4) + TAU*(DSPT(4)-X2MU*EPSVPT(4)) 60 : SIG1(5) = SIG(5) + TAU*(DSPT(5)-X2MU*EPSVPT(5)) 61 : ELSE 62 : TRACE = EPSVPT(1)+EPSVPT(2)+EPSVPT(3) 63 : CC=ALMB*TRACE 64 : DO 20 I=1,3 65 : SIG1(I) = SIG(I) + TAU*(DSPT(I)-CC-X2MU*EPSVPT(I)) 66 : 20 CONTINUE 67 : DO 21 I=4,NSTRS 68 : SIG1(I) = SIG(I) + TAU*(DSPT(I)-X2MU*EPSVPT(I)) 69 : 21 CONTINUE 70 : ENDIF 71 : C= Modes de calcul 1D contraintes planes suivant z (DYCZ et GYCZ) 72 : ELSE IF (IFOUR.EQ.4.OR.IFOUR.EQ.8) THEN 73 : SIG(3) = 0.D0 74 : XCO = YOU/(UN-XNU*XNU) 75 : SIG1(1) = SIG(1) + TAU*(DSPT(1)-XCO*(EPSVPT(1)+XNU*EPSVPT(2))) 76 : SIG1(2) = SIG(2) + TAU*(DSPT(2)-XCO*(EPSVPT(2)+XNU*EPSVPT(1))) 77 : SIG1(3) = 0.D0 78 : C= Modes de calcul 1D contraintes planes suivant y (CYDZ et CYGZ) et 79 : C= 1D axisymetrique contraintes axiales nulles (AXCZ) 80 : ELSE IF (IFOUR.EQ.5.OR.IFOUR.EQ.10.OR.IFOUR.EQ.13) THEN 81 : SIG(2) = 0.D0 82 : XCO = YOU/(UN-XNU*XNU) 83 : SIG1(1) = SIG(1) + TAU*(DSPT(1)-XCO*(EPSVPT(1)+XNU*EPSVPT(3))) 84 : SIG1(2) = 0.D0 85 : SIG1(3) = SIG(3) + TAU*(DSPT(3)-XCO*(EPSVPT(3)+XNU*EPSVPT(1))) 86 : C= Modes de calcul 1D contraintes planes suivant y et z (CYCZ) 87 : ELSE IF (IFOUR.EQ.6) THEN 88 : SIG(2) = 0.D0 89 : SIG(3) = 0.D0 90 : SIG1(1) = SIG(1) + TAU*(DSPT(1)-YOU*EPSVPT(1)) 91 : SIG1(2) = 0.D0 92 : SIG1(3)=0.D0 93 : C= Autres modes de calcul 1D deformations planes (DYDZ GYDZ DYGZ GYGZ) 94 : C= 1D axisymetrique (AXDZ AXGZ) et 1D spherique 95 : ELSE IF (IFOUR.EQ. 3.OR.IFOUR.EQ. 7.OR.IFOUR.EQ. 9.OR.IFOUR.EQ.11 96 : . .OR.IFOUR.EQ.12.OR.IFOUR.EQ.14.OR.IFOUR.EQ.15) THEN 97 : X2MU = YOU/(UN+XNU) 98 : TRACE = EPSVPT(1)+EPSVPT(2)+EPSVPT(3) 99 : XCO = X2MU*XNU*TRACE/(UN-XNU) 100 : SIG1(1) = SIG(1) + TAU*(DSPT(1)-X2MU*EPSVPT(1)-XCO) 101 : SIG1(2) = SIG(2) + TAU*(DSPT(2)-X2MU*EPSVPT(2)-XCO) 102 : SIG1(3) = SIG(3) + TAU*(DSPT(3)-X2MU*EPSVPT(3)-XCO) 103 : ENDIF 104 : 105 : C STEP-3 : UPDATING THE INTERNAL VARIABLES 106 : C------------------------------------------ 107 : IF (MFR.EQ.5) THEN 108 : NSTRS0=NSTRS+1 109 : ELSE 110 : NSTRS0=NSTRS 111 : ENDIF 112 : IF ((INPLAS.GE.19.AND.INPLAS.LE.23).OR.INPLAS.EQ.61) THEN 113 : DO 30 I=1,2*NSTRS0+3 114 : VAR1(I)=VARPT(I) 115 : 30 CONTINUE 116 : NSUB=2*NSTRS0+4 117 : VAR1(NSUB)=VAR(NSUB)+TAU*VARPT(NSUB) 118 : IF (INPLAS.EQ.20.OR.INPLAS.EQ.22.OR.INPLAS.EQ.23.OR. 119 : . INPLAS.EQ.61) THEN 120 : DO 40 I=1,NSTRS0 121 : VAR1(NSUB+I)=VAR(NSUB+I)+TAU*VARPT(NSUB+I) 122 : 40 CONTINUE 123 : ENDIF 124 : ELSE IF (INPLAS.EQ.24) THEN 125 : VAR1(1) = VAR(1) + TAU*VARPT(1) 126 : VAR1(2) = VAR(2) + TAU*VARPT(2) 127 : ELSE IF (INPLAS.EQ.25.OR.INPLAS.EQ.53.OR.INPLAS.EQ.70.OR. 128 : . INPLAS.EQ.76.OR.INPLAS.EQ.77) THEN 129 : DO 50 I=1,NVARI 130 : VAR1(I)=VAR(I)+TAU*VARPT(I) 131 : 50 CONTINUE 132 : ELSE IF (INPLAS.EQ.107) THEN 133 : DO 60 I=1,NVARI 134 : VAR1(I)=VAR(I)+TAU*VARPT(I) 135 : 60 CONTINUE 136 : IF (VAR1(2).LT.0.D0) THEN 137 : VAR1(2) = 0.D0 138 : ELSE IF (VAR1(2).GT.0.3D0) THEN 139 : VAR1(2) = 0.3D0 140 : ENDIF 141 : ELSE IF(INPLAS.EQ.130) THEN 142 : DO 70 I=1,NVARI 143 : VAR1(I)=VAR(I)+TAU*VARPT(I) 144 : 70 CONTINUE 145 : IF (VAR1(3).GE.0.98D0) THEN 146 : VAR1(3) = 0.98D0 147 : ENDIF 148 : IF (VAR1(4).GE.0.98D0) THEN 149 : VAR1(4) = 0.98D0 150 : ENDIF 151 : ENDIF 152 : 153 : RETURN 154 : END 155 : 156 : 157 : 158 :
© Cast3M 2003 - All rights reserved.
Disclaimer