Download vishin.eso

Back to the list

   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