1 : C HINTE SOURCE CHAT 05/01/13 00:24:25 5004 2 : C************************************************************* 3 : SUBROUTINE HINTE(SIG0,NSTRS,DSIGT,VAR0,NVARI,XMAT,NCOMAT, 4 : . XCAR,SIGF,VARF,DEFP,PRECIS,MFR,KERRE) 5 : C************************************************************* 6 : C L GORNET VERSION DL/LG MacNu modif 97 ECNantes 7 : C Version 1D de interface (ginte.eso) 8 : C ENTREES 9 : C ------- 10 : C SIG0 (NSTRS) :Contraintes initiales 11 : C DSIGT (NSTRS) :Increment de(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,AL 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,GA2 48 : REAL*8 ann,Y0,YC,YDBPR,YDBP 49 : REAL*8 ZX1,ZX3 50 : REAL*8 Y0P,YCP 51 : REAL*8 YD1,YD3,DCRI 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 : 75 : IF ( (d3. eq. 1.0D0 ) ) THEN 76 : DO I= 1,NSTRS 77 : SIGF(I)= 1.0D-15 78 : END DO 79 : DO I= 2,NVARI 80 : VARF(I)= VAR0(I) 81 : END DO 82 : C PRINT*,'>>>> SORTIE GINTE RUPTURE 1<<<<<' 83 : 84 : 85 : RETURN 86 : ENDIF 87 : 88 : K10 = XMAT(1) 89 : K30 = XMAT(2) 90 : GA1 = XMAT(5) 91 : AL = XMAT(6) 92 : DCRI = XMAT(7) 93 : C Parametre utile pour une rupture fragile <1 94 : ann = XMAT(8) 95 : Y0 = XMAT(9) 96 : YC = XMAT(10) 97 : C 98 : Y0P = Y0**ann 99 : YCP = YC**ann 100 : 101 : C SAUT DE U 102 : SU3 = SIG0(2) / ( K30 * (1.0D0 - d3)) 103 : 104 : SU1 = SIG0(1) / ( K10 * (1.0D0 - d1)) 105 : C SAUT DE DU Prediction 106 : 107 : 108 : CVersion 97 DSIGT est la deformation a l appel 109 : C apres DSIGT est la contrainte!!!!! 110 : DSIGT(2) = K30 * (1.0D0 - d3) * DSIGT(2) 111 : DSIGT(1) = K10 * (1.0D0 - d1) * DSIGT(1) 112 : 113 : 114 : C Version 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 : 121 : C 122 : ZX1 = SU1 + SUD1 123 : ZX3 = SU3 + SUD3 124 : 125 : 126 : C Variable pilotes99-5 127 : IF(( (DABS( ZX1 ) ) .le. 1.0D-15)) THEN 128 : YD1 = 0.0D0 129 : ELSE 130 : YD1 = 0.5D0 * K10 * ( ZX1 )**(2.) 131 : ENDIF 132 : C99-5 133 : IF( (( DABS( ZX3 ) ) .le. 1.0D-15).OR.(ZX3 .lt .0.D0)) THEN 134 : YD3 = 1.0D-15 135 : ELSE 136 : YD3 = 0.5D0 * K30 * ( ZX3 )**(2.) 137 : ENDIF 138 : C 139 : C print*, ' K30, K20,K10', K30, K20,K10 140 : C print*,'SU3 SU2 SU1',SU3 , SU2 , SU1 141 : C print*,' SUD3 , SUD2, SUD1',SUD3 , SUD2, SUD1 142 : C print*,' YD1 YD2 YD3', YD1, YD2, YD3 143 : C print*,'GA1 GA2', GA1, GA2 144 : C COMPRESSION NORMALE 145 : IF ( YD3 .le. 0.0D0) THEN 146 : YD3 = 0.0D0 147 : YDB = (GA1 * YD1 )**AL 148 : ELSE 149 : YDB = YD3**AL + (GA1 * YD1 )**AL 150 : ENDIF 151 : C 152 : YDBP = YDB**(1.0D0/AL) 153 : 154 : C ENDO A PROGRESSE OU PAS 155 : C234567 156 : C PRINT*,'YDBPR',YDBPR,'YDBP ',YDBP,'Y0P ',Y0P 157 : C 158 : IF ( ((YDBP .le. YDBPR ).AND.( YDBP .ge.Y0 )) 159 : & .OR. ( YDBP .ge. YDBPR ).AND.( YDBP .le.Y0 )) THEN 160 : DO I= 1,NSTRS 161 : SIGF(I)= SIG0(I) + DSIGT(I) 162 : END DO 163 : C 164 : DO I= 2,NVARI 165 : VARF(I)= VAR0(I) 166 : END DO 167 : C PRINT*,'>>>> PAS D EVOLUTION DE L ENDO 1 <<<<<' 168 : C PRINT*,'YDBPR',YDBPR,'YDBP ',YDBP,'Y0P ',Y0P 169 : RETURN 170 : ELSEIF ( (YDBP .le. YDBPR ).AND.( YDBP .le.Y0 ) ) THEN 171 : DO I= 1,NSTRS 172 : SIGF(I)= SIG0(I) + DSIGT(I) 173 : END DO 174 : 175 : IF (((SIG0(2)+DSIGT(2)).lt. 0.0D0))THEN 176 : C 177 : SIGF(2)= SIG0(2) + DSIGT(2) 178 : ELSE 179 : SIGF(2)= (SIG0(2) + DSIGT(2) ) 180 : ENDIF 181 : DO I= 2,NVARI 182 : VARF(I)= VAR0(I) 183 : END DO 184 : C PRINT*,'>>>> PAS D EVOLUTION DE L ENDO 2<<<<<' 185 : RETURN 186 : 187 : ELSEIF ((YDBP .ge. YDBPR ).AND.( YDBP .ge.Y0))THEN 188 : 189 : 190 : WWY =((ann/(ann+1.0D0) )*(YDBP - Y0 )/( YC - Y0) )**ann 191 : C PRINT*,' WWY : ', WWY,YDBP,Y0P,YCP 192 : 193 : IF ( (WWY .lt. (1.0D0)).AND.(WWY .gt. (0.0D0)) ) THEN 194 : C Calcul de l endo 195 : d3 = WWY 196 : d1 = WWY 197 : 198 : IF (d3.ge. DCRI) THEN 199 : WWY = 1.0D0 200 : d1 = 1.0D0 201 : d3 = 1.0D0 202 : YDBP = ( YC - Y0 )*((ann + 1.0D0 )/ann) + Y0 203 : ENDIF 204 : IF (d1.ge. DCRI) THEN 205 : C PRINT*,'RUPTURE FORCEE' 206 : WWY = 1.0D0 207 : d1 = 1.0D0 208 : d3 = 1.0D0 209 : YDBP =( YC - Y0 )*((ann + 1.0D0 )/ann) + Y0 210 : 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 : 222 : 223 : ELSE 224 : VARF(4) = d1 225 : VARF(5) = YDBP 226 : ENDIF 227 : 228 : 229 : 230 : IF ( d3.lt. d3R) THEN 231 : PRINT*, 'ERREUR d3 ',d3 232 : VARF(2) = d3R 233 : ELSE 234 : VARF(2) = d3 235 : VARF(5) = YDBP 236 : ENDIF 237 : 238 : 239 : IF ( (d3.eq.1.0D0).OR.(d1.eq.1.0D0) ) THEN 240 : C PRINT*, 'RUPTURE' 241 : C Gestion de la rupture en cours de calcul 242 : SIGF(1)= 1.0D-15 243 : SIGF(2)= 1.0D-15 244 : ELSE 245 : C PRINT*, 'ACTUALISATION DES CONTRAINTES' 246 : SIGF(1)= (1.0D0- d1) / (1.0D0- d1R) *(SIG0(1) + DSIGT(1)) 247 : SIGF(2)= (1.0D0- d3) / (1.0D0- d3R) *(SIG0(2) + DSIGT(2)) 248 : 249 : ENDIF 250 : C 251 : C PRINT*,'**** AT ********' 252 : CC PRINT*,' d1R :',d1R 253 : C PRINT*,' d2R :',d2R 254 : C PRINT*,' d3R :',d3R 255 : C PRINT*,'***** ATDT *****' 256 : C PRINT*,' d2 :',d2 257 : C PRINT*,' d1 :',d1 258 : C PRINT*,' d3 :',d3 259 : C PRINT*,'***************' 260 : 261 : C DO I= 1,NSTRS 262 : C PRINT*, ' SIGF(',I,') :' , SIGF(I) 263 : C END DO 264 : C 265 : C PRINT*,'>>>> SORTIE HINTE <<<<<' 266 : 267 : RETURN 268 : C ENDIF 269 : 270 : ELSEIF( (WWY .ge. (1.0D0)).AND.(WWY .ge. (0.0D0)) )THEN 271 : 272 : d3 = 1.0D0 273 : d1 = 1.0D0 274 : DO I= 1,NSTRS 275 : SIGF(I)= 1.0D-15 276 : C PRINT*,'SIGF(',I,')',SIGF(I) 277 : END DO 278 : 279 : DO I= 2,NVARI 280 : VARF(I)= 1.0D0 281 : C PRINT*,VARF(I) 282 : END DO 283 : 284 : YDBP = YCP + Y0P 285 : VARF(5) = YDBP 286 : 287 : C PRINT*,'>>>> SORTIE HINTE RUPTURE 2<<<<<' 288 : RETURN 289 : 290 : ENDIF 291 : ENDIF 292 : C234567 293 : C RETURN 294 : END 295 : 296 : 297 :
© Cast3M 2003 - All rights reserved.
Disclaimer