1 : C VISHIN SOURCE CHAT 05/01/13 04:07:23 5004 2 : C************************************************************* 3 : SUBROUTINE VISHIN(SIG0,NSTRS,DSIGT,VAR0,NVARI,XMAT,NCOMAT, 4 : . XCAR,SIGF,VARF,DEFP,PRECIS,MFR,KERRE,DT) 5 : C************************************************************* 6 : C L GORNET VERSION DL/LG MacNu modif 99 7 : C Version 1D de interface 8 : C ENTREES 9 : C ------- 10 : C SIG0 (NSTRS) :Contraintes initiales 11 : C DSIGT (NSTRS) :Increment de contraintes (deformations 97) 12 : C VAR0 (NVARI) :Variables internes 13 : C 14 : C XMAT (NCOMAT) :Composantes materiaux 15 : C PRECIS : Prec integration locale 16 : C 17 : C SORTIES 18 : C ------- 19 : C SIGF :Contraintes finales 20 : C VARF : V Interne a t + dt 21 : C DEFP : Def Plastiques t + dt 22 : C MFR : 23 : C KERRE : 24 : C 25 : C*********************************************************************** 26 : IMPLICIT INTEGER(I-N) 27 : -INC CCOPTIO 28 : REAL*8 SIG0(*),VAR0(*),XMAT(*),XCAR(*) 29 : REAL*8 SIGF(*),VARF(*),DEFP(*),DSIGT(*) 30 : REAL*8 PRECIS,ZOB 31 : INTEGER NSTRS,NVARI,NCOMAT,KERRE,MFR 32 : C++++++++ VARIABLES COMPORTEMENT +++++++++++++ 33 : 34 : REAL*8 DSIGTL(6),SIG0L(6),SIGFL(6) 35 : REAL*8 SIG0T(6),DSIGTT(6),SIGFT(6) 36 : 37 : C NVARI =10 38 : C NCOMAT=10 39 : C cos directeur de la premiere direction 40 : C XMAT(6) cos tet sur x 41 : C XMAT(7) sin tet sur y 42 : 43 : 44 : REAL*8 d3R,d1R,YDBR,d3,d1,YDB, WWY 45 : REAL*8 K10,K30 46 : REAL*8 SU3,SU1,SUD3,SUD1 47 : REAL*8 GA1,AL 48 : REAL*8 akk,ann,amm,Y0,YC,YDBPR,YDBP 49 : REAL*8 ZX1,ZX3 50 : REAL*8 YD1,YD3,DCRI 51 : REAL*8 TESTG,DT 52 : C 53 : C PRINT*,'+++++++++ HINTE ++++++++++++' 54 : C PRINT*,' ' 55 : C PRINT*,' NSTRS= ',NSTRS,' NVARI= ',NVARI 56 : C PRINT*,' NCOMAT= ',NCOMAT,' PRECIS= ',PRECIS 57 : C PRINT*,' MFR= ',MFR,' KERRE= ',KERRE 58 : C 59 : C DO I= 1,NCOMAT 60 : C PRINT*,'XMAT(',I,') :',XMAT (I) 61 : C 62 : C END DO 63 : C +++++++++++++++++++ INTERGRATION LOCALE ++++++++ 64 : C VERIF DE LA RUPTURE 65 : C234567 66 : d3 = VAR0(2) 67 : d1 = VAR0(4) 68 : YDB = VAR0(5) 69 : 70 : YDBPR = VAR0(5) 71 : d3R = VAR0(2) 72 : d1R = VAR0(4) 73 : 74 : C Parametre utile pour une rupture fragile <1 75 : DCRI = 1.0D0 76 : C 77 : 78 : IF ( (d3. eq. 1.0D0 ) ) THEN 79 : DO I= 1,NSTRS 80 : SIGF(I)= 1.0D-15 81 : END DO 82 : DO I= 2,NVARI 83 : VARF(I)= VAR0(I) 84 : END DO 85 : C PRINT*,'>>>> SORTIE GINTE RUPTURE 1<<<<<' 86 : 87 : 88 : RETURN 89 : ENDIF 90 : 91 : K10 = XMAT(1) 92 : K30 = XMAT(2) 93 : GA1 = XMAT(5) 94 : AL = XMAT(6) 95 : akk = XMAT(7) 96 : ann = XMAT(8) 97 : Y0 = XMAT(9) 98 : YC = XMAT(10) 99 : amm = XMAT(11) 100 : 101 : 102 : 103 : 104 : C SAUT DE U 105 : SU3 = SIG0(2) / ( K30 * (1.0D0 - d3)) 106 : SU1 = SIG0(1) / ( K10 * (1.0D0 - d1)) 107 : C SAUT DE DU Prediction 108 : 109 : 110 : CVersion 97 DSIGT est la deformation a l appel 111 : C apres DSIGT est la contrainte!!!!! 112 : DSIGT(2) = K30 * (1.0D0 - d3) * DSIGT(2) 113 : DSIGT(1) = K10 * (1.0D0 - d1) * DSIGT(1) 114 : CVersion 96 DSIGT contrainte 115 : C Version classique 116 : 117 : 118 : SUD3 = DSIGT(2) / ( K30 * (1.0D0 - d3)) 119 : SUD1 = DSIGT(1) / ( K10 * (1.0D0 - d1)) 120 : ZX1 = SU1 + SUD1 121 : ZX3 = SU3 + SUD3 122 : 123 : C Variable pilotes 124 : IF(( (ABS( ZX1 ) ) .le. 1.D-15)) THEN 125 : YD1 = 0.0D0 126 : C YD1 = 1.0D-15 127 : ELSE 128 : YD1 = 0.5D0 * K10 * ( ZX1 )**(2.) 129 : C MODIF 130 : IF( ABS( YD1).ge. 1.D15) THEN 131 : YD1 = 1.D15 132 : ENDIF 133 : ENDIF 134 : 135 : IF( (( ABS( ZX3 ) ) .le. 1.D-15).OR.(ZX3 .le .0.D0)) THEN 136 : C PAS EN COMPRESSION 137 : YD3 = 0.0D0 138 : 139 : ELSE 140 : YD3 = 0.5D0 * K30 * ( ZX3 )**(2.) 141 : 142 : IF( ABS( YD3).ge. 1.D15) THEN 143 : YD3 = 1.0D15 144 : ENDIF 145 : ENDIF 146 : 147 : 148 : C print*, ' K30, K20,K10', K30, K20,K10 149 : C print*,'SU3 SU2 SU1',SU3 , SU2 , SU1 150 : C print*,' SUD3 , SUD2, SUD1',SUD3 , SUD2, SUD1 151 : C print*,' YD1 YD2 YD3', YD1, YD2, YD3 152 : C print*,'GA1 GA2', GA1, GA2 153 : C COMPRESSION NORMALE 154 : IF ( YD3 .le. 0.0D0) THEN 155 : YD3 = 0.0D0 156 : C YD3 = 1.0D-15 157 : YDB = (GA1 * YD1 )**AL 158 : ELSE 159 : 160 : YDB = YD3**AL + (GA1 * YD1 )**AL 161 : ENDIF 162 : C 163 : YDBP = YDB**(1.0D0/AL) 164 : C++++++++++++++ 165 : WWY =((ann/(ann+1.0D0) )*(YDBP - Y0 )/( YC - Y0) )**ann 166 : C PRINT*,' WWY : ', WWY,YDBP,Y0P,YCP 167 : 168 : 169 : TESTG = WWY - D3R 170 : C ENDO A PROGRESSE OU PAS 171 : C234567 172 : 173 : IF ( TESTG .le. (0.0D0) ) THEN 174 : DO I= 1,NSTRS 175 : SIGF(I)= SIG0(I) + DSIGT(I) 176 : END DO 177 : DO I= 2,NVARI 178 : VARF(I)= VAR0(I) 179 : END DO 180 : C PRINT*,'>>>> PAS D EVOLUTION DE L ENDO 1 <<<<<' 181 : RETURN 182 : ENDIF 183 : C OUI ON ENDOMMAGE 184 : C OUI ON ENDOMMAGE 185 : 186 : 187 : 188 : IF(WWY.GE. 1.0D0) THEN 189 : 190 : WWY = 1.0D0 191 : C PRINT*,' WWY EST BORNE' 192 : ENDIF 193 : 194 : C PRINT*,' WWY : ', WWY,YDBP,Y0P,YCP 195 : 196 : IF ( (WWY .le. (1.0D0)).AND.(WWY .gt. (0.0D0)) ) THEN 197 : C+++++++++ 197 : CALL ENDO31(D3,D3R,WWY,akk,amm,DT) 198 : D1 = D1R + (D3 - D3R) 199 : C+++++++++ 200 : C TEST 201 : IF ( d1.gt. 1.0D0) THEN 202 : C PRINT*, 'ERREUR d1>1 ',d1 203 : d1 =1.0D0 204 : 205 : VARF(4) = 1.0D0 206 : ENDIF 207 : IF ( d3 .gt. 1.0D0) THEN 208 : C PRINT*, 'ERREUR d3>1 ',d3 209 : d2=1.0D0 210 : VARF(2) = 1.0D0 211 : ENDIF 212 : 213 : CACTU ET SORTIE DU LOCAL 214 : 215 : IF ( d1.lt. d1R) THEN 216 : PRINT*, 'ERREUR d1 ',d1 217 : VARF(4) = d1R 218 : VARF(5) = YDBPR 219 : VARF(2) = d3R 220 : 221 : RETURN 222 : 223 : ELSE 224 : VARF(4) = d1 225 : VARF(5) = YDBP 226 : ENDIF 227 : 228 : IF ( d3.lt. d3R) THEN 229 : PRINT*, 'ERREUR d3 ',d3 230 : VARF(2) = d3R 231 : ELSE 232 : VARF(2) = d3 233 : ENDIF 234 : 235 : 236 : 237 : SIGF(1)= (1.0D0- d1) / (1.0D0- d1R) * (SIG0(1) + DSIGT(1) ) 238 : 239 : SIGF(2)= (1.0D0- d3) / (1.0D0- d3R) * (SIG0(2) + DSIGT(2) ) 240 : 241 : IF (SIGF(1).EQ.0.D0)THEN 242 : SIGF(1)=1.0D-15 243 : ENDIF 244 : 245 : IF (SIGF(2).EQ.0.D0)THEN 246 : SIGF(2)=1.0D-15 247 : ENDIF 248 : 249 : C PRINT*,'**** AT ********' 250 : C PRINT*,' d1R :',d1R 251 : C PRINT*,' d2R :',d2R 252 : C PRINT*,' d3R :',d3R 253 : C PRINT*,'***** ATDT *****' 254 : C PRINT*,' d2 :',d2 255 : C PRINT*,' d1 :',d1 256 : C PRINT*,' d1 :',d1 257 : C PRINT*,' d3 :',d3 258 : C PRINT*,'***************' 259 : C DO I= 1,NSTRS 260 : C PRINT*, ' SIGF(',I,') :' , SIGF(I) 261 : C END DO 262 : 263 : C PRINT*,'>>>> SORTIE GINTE <<<<<' 264 : RETURN 265 : C ENDIF 266 : 267 : C234567 ELSEIF( (WWY .ge. (1.0D0)).AND.(WWY .ge. (0.0D0)) )THEN 268 : ELSEIF( (d1 .eq. 1.0D0) 269 : & .or. (d3 .eq. 1.0D0))THEN 270 : 271 : d3 = 1.0D0 272 : 273 : d1 = 1.0D0 274 : DO I= 1,NSTRS 275 : SIGF(I)= 1.0D-15 276 : END DO 277 : DO I= 2,NVARI 278 : VARF(I)= 1.0D0 279 : END DO 280 : C+++++ 281 : VARF(5) = YDBP 282 : C PRINT*,'>>>> SORTIE GINTE RUPTURE 2<<<<<' 283 : RETURN 284 : 285 : 286 : ENDIF 287 : C234567 288 : RETURN 289 : END 290 : 291 :
© Cast3M 2003 - All rights reserved.
Disclaimer