Download elast1.eso

Back to the list

   1 : C ELAST1    SOURCE    CHAT      05/01/12    23:29:27     5004           
   2 :       SUBROUTINE ELAST1(ISENS,IFOUR,VAR,NNVARI,XMATT,NCOMAT,
   3 :      &   YUNGV,XNUV,XCAR,ICARA,MFR,NSTRS,DD,DDV,KERRE,INDIC,ITHHER)                                           
   4 : C                                                                               
   5 : C----------------------------------------------------------------------------          
   6 : C Objet: Calcul de la matrice de Hooke endommagee(ISENS=1) 
   7 : C        ou son inverse(ISENS=2) et de sa derivee par rapport
   8 : C        a T a la temperature T0 dans le cas de la plasticite avec 
   9 : C        ecrouissage et endommagement isotropes(materiau 26) 
  10 : C        et dans le cas de la viscoplasticite avec endommagement
  11 : C        isotrope(materiau 29) en regime anisotherme               
  12 : C----------------------------------------------------------------------------
  13 : C
  14 : C----------------------------------------------------------------------------
  15 : C Entree: ISENS= 1  DD en sortie est la matrice de Hooke endommagee
  16 : C           d'ou SIG=DD*EPSELAS           
  17 : C              = 2  DD en sortie est la matrice de Hooke inverse
  18 : C            endommagee d'ou EPSELAS=DD*SIG                        
  19 : C           avec SIG contraintes et EPSELAS deformations elastiques              
  20 : C         IFOUR= -2 EN CONTR. PLANES                                             
  21 : C                -1 EN DEFORM. PLANES                                            
  22 : C                 0 EN AXISYMETRIE                                               
  23 : C                 1 EN SERIE DE FOURIER                                          
  24 : C                 2 EN TRIDIM                                                    
  25 : C         NSTRS nombre de composantes des contraintes ou 
  26 : C           des deformations
  27 : C         NNVARI nombre de variables internes pilotant les 
  28 : C           equations du modele                                                 
  29 : C         VAR(NVARI) tableau des variables internes 
  30 : C         XMATT(NCOMAT) tableau des parametres scalaires du materiau
  31 : C           a une temperature T donnee
  32 : C           dont XMATT(1) module d'Young et XMATT(2) coeff de Poisson
  33 : C         YUNGV derivee /T du module d'Young a T
  34 : C         XNUV derivee /T du coeff de Poisson a T
  35 : C         MFR indice de la formulation mecanique(seulement massif 
  36 : C           pour les materiaux endommageables)
  37 : C         ICARA nombre de caracteristiques geometriques des elements
  38 : C           finis
  39 : C         XCAR(ICARA) tableau des caracteristiques geometriques des
  40 : C           elements finis
  41 : C         INDIC=0, 1 OU -1 pour plasticite avec endommagement
  42 : C              =2 OU -2 pour viscoplasticite avec endommagement
  43 : C         ITHHER = 0 pas de chargement thermique et materiau constant
  44 : C                = 1 chargement thermique et materiau constant
  45 : C                = 2 chargement thermique et materiau(T)
  46 : C--------------------------------------------------------------------------------
  47 : C 
  48 : C--------------------------------------------------------------------------------                                                                              
  49 : C Sortie: DD(NSTRS,NSTRS) matrice de Hooke endommagee si ISENS=1
  50 : C                         son inverse si ISENS=2 
  51 : C         DDV(NSTRS,NSTRS) derivee de la matrice de Hooke 
  52 : C                          endommagee si ISENS=1
  53 : C                         son inverse si ISENS=2                 
  54 : C         KERRE indice qui regit les erreurs
  55 : C          Il vaut 99 si la formulation mecanique n'est pas disponible ou
  56 : C          s'il y a incompatibilite entre MFR et IFOUR
  57 : C _______________________________________________________________________________
  58 : C       
  59 :       IMPLICIT INTEGER(I-N)
  60 :       IMPLICIT REAL*8 (A-H,O-Z)                                                 
  61 :       DIMENSION VAR(*),XCAR(*),XMATT(*)                                         
  62 :       DIMENSION DD(NSTRS,NSTRS),DDV(NSTRS,NSTRS)                                                 
  63 : C                                                                               
  63 :       CALL ZERO(DD,NSTRS,NSTRS) 
  63 :       CALL ZERO(DDV,NSTRS,NSTRS)                                              
  64 :       KERRE=0                                                                   
  65 : C
  66 :       YUNG=XMATT(1)
  67 :       XNU=XMATT(2)     
  68 :       XD=VAR(3)
  69 : *      write(6,*) 'elast1 ifour mfr ',ifour,mfr
  70 : C
  71 :       D1=1.D0-XD
  72 : C
  73 : C ====================================================================
  74 : C SI LE PT. DE GAUSS EST ROMPU, ON DIV. SON MOD. D'YOUNG PAR 1 MILLION
  75 : C ====================================================================
  76 :       IF (INDIC.EQ.2.OR.INDIC.EQ.-2) THEN
  77 :         IF (XD.EQ.1.D0) D1=1.D-6
  78 :         GOTO 3
  79 :       ENDIF
  80 : C                                    
  81 :       DC=XMATT(7)                                     
  82 :       IF (INDIC.EQ.-1.AND.XD.GE.DC) D1=1.D-6                             
  83 : C                                                              
  84 :     3 CONTINUE
  85 :       COEFF1=(D1*YUNG)/(1.D0-XNU*XNU)                                    
  86 :       COEFF2=1.D0/(D1*YUNG)                                              
  87 :       COEFF3=(D1*YUNG)/((1.D0+XNU)*(1.D0-2.D0*XNU))                      
  88 :       COEFF4=(1.D0-2.D0*XNU)/2.D0 
  89 : C
  90 :       IF (ITHHER.EQ.2) THEN
  91 :         COEF1V=YUNGV+(2.D0*XNUV*YUNG*XNU/(1.D0-XNU*XNU))
  92 :         COEF1V=COEF1V*D1/(1.D0-XNU*XNU)
  93 : C                                             
  94 :         COEF2V=-YUNGV/(YUNG*YUNG*D1)
  95 : C
  96 :         DEN=(1.D0+XNU)*(1.D0-2.D0*XNU)
  97 :         COEF3V=(1.D0+(4.D0*XNU))*YUNG*XNUV
  98 :         COEF3V=COEF3V/DEN
  99 :         COEF3V=COEF3V+YUNGV
 100 :         COEF3V=D1*COEF3V/DEN
 101 : C
 102 :         COEF4V=-XNUV
 103 :       ENDIF
 104 : C                                                                              
 105 :       IF (MFR.NE.1) GOTO 20                                                     
 106 : C                                                                               
 107 : C------------                                                                       
 108 : C MASSIFS                                                                       
 109 : C------------                                                                       
 110 :       IF (IFOUR.EQ.-2) GOTO 10                                                  
 111 : C                                                                               
 112 : C ----------------------------------                                            
 113 : C DEFORMATIONS PLANES ET AXISYMETRIE                                            
 114 : C ----------------------------------                                            
 115 :       IF (ISENS.EQ.1) THEN                                                      
 116 : C                                                                               
 117 : C----------------                                                                
 118 : C SIG=DD*EPSELAS                                                                
 119 : C----------------                                                                
 120 :           DD(1,1)=COEFF3*(1.D0-XNU) 
 121 :           DD(1,2)=COEFF3*XNU 
 122 :           DD(1,3)=DD(1,2)
 123 :           DD(2,2)=DD(1,1)   
 124 :           DD(2,3)=DD(1,2)
 125 :           DD(3,3)=DD(1,1)
 126 :           DD(2,1)=DD(1,2)
 127 :           DD(3,1)=DD(1,2)
 128 :           DD(3,2)=DD(1,2)
 129 : C
 130 :           IF (ITHHER.EQ.2) THEN 
 131 :             DDV(1,1)=(COEF3V*(1.D0-XNU))-(COEFF3*XNUV) 
 132 :             DDV(1,2)=(COEF3V*XNU)+(COEFF3*XNUV)  
 133 :             DDV(1,3)=DDV(1,2)  
 134 :             DDV(2,2)=DDV(1,1)  
 135 :             DDV(2,3)=DDV(1,2)
 136 :             DDV(3,3)=DDV(1,1) 
 137 :             DDV(2,1)=DDV(1,2) 
 138 :             DDV(3,1)=DDV(1,2) 
 139 :             DDV(3,2)=DDV(1,2) 
 140 :           ENDIF                                                                   
 141 :           LA=4                                                                      
 142 :           LB=4                                                                      
 143 : C                                                                               
 144 : C ---------------------------                                                   
 145 : C LB=6 POUR TRIDIM ET FOURIER                                                   
 146 : C ---------------------------                                                   
 147 :           IF (IFOUR.GT.0) LB=6                                                      
 148 :           DO 5 IA=LA,LB                                                             
 149 :             DD(IA,IA)=COEFF3*COEFF4 
 150 :             IF (ITHHER.EQ.2) THEN 
 151 :               DDV(IA,IA)=(COEF3V*COEFF4)+(COEFF3*COEF4V)
 152 :             ENDIF 
 153 : 5         CONTINUE                                                                                                                
 154 :         ELSE                                                                      
 155 : C                                                                               
 156 : C-------------------                                                            
 157 : C EPSELAS=DD*SIG                                                                
 158 : C-------------------                                                                
 159 :           DD(1,1)=COEFF2
 160 :           DD(1,2)=-XNU*COEFF2
 161 :           DD(1,3)=DD(1,2)
 162 :           DD(2,2)=DD(1,1)
 163 :           DD(2,3)=DD(1,2)
 164 :           DD(3,3)=DD(1,1)
 165 :           DD(2,1)=DD(1,2)
 166 :           DD(3,1)=DD(1,3)
 167 :           DD(3,2)=DD(2,3)
 168 :           IF (ITHHER.EQ.2) THEN 
 169 :             DDV(1,1)=COEF2V  
 170 :             DDV(1,2)=-( (XNUV*COEFF2)+(XNU*COEF2V) )  
 171 :             DDV(1,3)=DDV(1,2) 
 172 :             DDV(2,2)=DDV(1,1)  
 173 :             DDV(2,3)=DDV(1,2) 
 174 :             DDV(3,3)=DDV(1,1) 
 175 :             DDV(2,1)=DDV(1,2)  
 176 :             DDV(3,1)=DDV(1,3)
 177 :             DDV(3,2)=DDV(2,3)   
 178 :           ENDIF                                                                                  
 179 :           LA=4                                                                      
 180 :           LB=4                                                                      
 181 : C                                                                               
 182 : C ---------------------------                                                   
 183 : C LB=6 POUR TRIDIM ET FOURIER                                                   
 184 : C ---------------------------                                                   
 185 :           IF (IFOUR.GT.0) LB=6                                                      
 186 :           DO 7 IA=LA,LB                                                             
 187 :             DD(IA,IA)=(1.D0+XNU)*DD(1,1)*2.D0 
 188 :             IF (ITHHER.EQ.2) THEN 
 189 :               DDV(IA,IA)=2.D0*( (XNUV*COEFF2)+((1.D0+XNU)*COEF2V) )
 190 :             ENDIF
 191 : 7         CONTINUE                         
 192 : C                                                                               
 193 :       ENDIF                                                                     
 194 : C                                                                               
 195 :       GOTO 500                                                                  
 196 : C                                                                               
 197 : C -------------                                                                 
 198 : C CONTR. PLANES                                                                 
 199 : C -------------                                                                 
 200 : 10    IF (ISENS.EQ.1) THEN                                                      
 201 : C                                                                               
 202 : C-----------------                                                                
 203 : C SIG=DD*EPSELAS                                                                
 204 : C-----------------                                                                
 205 :           DD(1,1)=COEFF1
 206 :           DD(1,2)=COEFF1*XNU
 207 :           DD(2,2)=COEFF1
 208 :           DD(4,4)=COEFF1*((1.D0-XNU)/2.D0)
 209 :           DD(2,1)=DD(1,2)
 210 :           IF (ITHHER.EQ.2) THEN 
 211 :             DDV(1,1)=COEF1V  
 212 :             DDV(1,2)=(COEF1V*XNU)+(COEFF1*XNUV)  
 213 :             DDV(2,2)=COEF1V   
 214 :             DDV(4,4)=0.5D0*( (COEF1V*(1.D0-XNU))-(COEFF1*XNUV) ) 
 215 :             DDV(2,1)=DDV(1,2) 
 216 :           ENDIF                                                      
 217 :         ELSE                                                                      
 218 : C                                                                               
 219 : C------------------                                                                
 220 : C EPSELAS=DD*SIG                                                                
 221 : C------------------                                                                
 222 :           DD(1,1)=COEFF2 
 223 :           DD(1,2)=-COEFF2*XNU
 224 :           DD(2,2)=COEFF2
 225 :           DD(4,4)=COEFF2*2.D0*(1.D0+XNU)
 226 :           DD(2,1)=DD(1,2)
 227 :           DD(3,1)=DD(1,2)
 228 :           DD(3,2)=DD(1,2)
 229 : C
 230 :           IF (ITHHER.EQ.2) THEN 
 231 :             DDV(1,1)=COEF2V 
 232 :             DDV(1,2)=-( (COEF2V*XNU)+(COEFF2*XNUV) )   
 233 :             DDV(2,2)=COEF2V  
 234 :             DDV(4,4)=2.D0*( ((1.D0+XNU)*COEF2V)+(XNUV*COEFF2) )    
 235 :             DDV(2,1)=DDV(1,2) 
 236 :             DDV(3,1)=DDV(1,2) 
 237 :             DDV(3,2)=DDV(1,2) 
 238 :           ENDIF                                                                                                                                                                  
 239 :       ENDIF                                                                     
 240 : C                                                                               
 241 :       GOTO 500                                                                  
 242 : C                                                                               
 243 : 20    IF (MFR.NE.5) GOTO 30                                                     
 244 : C                                                                               
 245 : C------------------------------------------                                      
 246 : C COQUES EPAISSES   TRIDIM                                     
 247 : C------------------------------------------                                       
 248 : C 
 249 : C         
 250 :            IF(IFOUR.EQ.2) THEN
 251 :             XK=1.2d0
 252 :               IF (ISENS.EQ.1) THEN 
 253 : C sig= DD * EPSELAS        
 254 :                AUX=COEFF1
 255 :                AUX1=COEFF1*XNU
 256 :                GEGE=YUNG*D1*0.5D0/(1.D0+XNU)
 257 : C     
 258 :                DD(1,1)=AUX
 259 :                DD(2,1)=AUX1
 260 :                DD(1,2)=AUX1
 261 :                DD(2,2)=AUX   
 262 :                DD(3,3)=GEGE
 263 :                DD(4,4)=GEGE/XK
 264 :                DD(5,5)=DD(4,4)
 265 :                IF (ITHHER.EQ.2) THEN 
 266 :                  DDV(1,1)=COEF1V  
 267 :                  DDV(1,2)=(COEF1V*XNU)+(COEFF1*XNUV)  
 268 :                  DDV(2,2)=COEF1V   
 269 :                   
 270 :                  DDV(2,1)=DDV(1,2) 
 271 :                 DDV(3,3)=0.5D0*( (COEF1V*(1.D0-XNU))-(COEFF1*XNUV) )
 272 :                 DDV(4,4)=DDV(3,3) * XK
 273 :                 DDV(5,5)=DDV(3,3) * XK
 274 :               ENDIF                                  
 275 :             ELSE
 276 : C eps = DD* SIG
 277 : C------------------                                                                
 278 :              DD(1,1)=COEFF2 
 279 :              DD(1,2)=-COEFF2*XNU
 280 :              DD(2,2)=COEFF2
 281 :              DD(3,3)=COEFF2*2.D0*(1.D0+XNU)
 282 :              DD(2,1)=DD(1,2)
 283 :              DD(4,4)=DD(3,3)/XK
 284 :              DD(5,5)=DD(3,3)/XK
 285 : C
 286 :              IF (ITHHER.EQ.2) THEN 
 287 :                DDV(1,1)=COEF2V 
 288 :                DDV(1,2)=-( (COEF2V*XNU)+(COEFF2*XNUV) )   
 289 :                DDV(2,2)=COEF2V  
 290 :                DDV(3,3)=2.D0*( ((1.D0+XNU)*COEF2V)+(XNUV*COEFF2) )    
 291 :                DDV(2,1)=DDV(1,2) 
 292 :                DDV(4,4)=DDV(3,3)/XK 
 293 :                DDV(5,5)=DDV(3,3)/XK 
 294 :             ENDIF  
 295 :            ENDIF                        
 296 :          ELSE
 297 :                IRET=0
 298 :             ENDIF
 299 :        GO TO 500                                                                                                                              
 300 : 30    IF(MFR.NE.3) go to 40
 301 :           IF (ISENS.EQ.1) THEN                                                      
 302 : C                                                                               
 303 : C-----------------                                                                
 304 : C SIG=DD*EPSELAS                                                                
 305 : C-----------------                                                                
 306 :           DD(1,1)=COEFF1
 307 :           DD(1,2)=COEFF1*XNU
 308 :           DD(2,2)=COEFF1
 309 :           DD(4,4)=COEFF1*((1.D0-XNU)/2.D0)
 310 : C voir petite ruse de hookis pour (3,3)
 311 :           DD(3,3)=COEFF1*1.d-6
 312 :           DD(2,1)=DD(1,2)
 313 :           IF (ITHHER.EQ.2) THEN 
 314 :             DDV(1,1)=COEF1V  
 315 :             DDV(1,2)=(COEF1V*XNU)+(COEFF1*XNUV)  
 316 :             DDV(2,2)=COEF1V   
 317 :             DDV(4,4)=0.5D0*( (COEF1V*(1.D0-XNU))-(COEFF1*XNUV) ) 
 318 :             DDV(2,1)=DDV(1,2) 
 319 :           ENDIF                                                      
 320 :         ELSE                                                                      
 321 : C                                                                               
 322 : C------------------                                                                
 323 : C EPSELAS=DD*SIG                                                                
 324 : C------------------                                                                
 325 :           DD(1,1)=COEFF2 
 326 :           DD(1,2)=-COEFF2*XNU
 327 :           DD(2,2)=COEFF2
 328 :           DD(4,4)=COEFF2*2.D0*(1.D0+XNU)
 329 :           DD(2,1)=DD(1,2)
 330 :           DD(3,1)=DD(1,2)
 331 :           DD(3,2)=DD(1,2)
 332 : C
 333 :           IF (ITHHER.EQ.2) THEN 
 334 :             DDV(1,1)=COEF2V 
 335 :             DDV(1,2)=-( (COEF2V*XNU)+(COEFF2*XNUV) )   
 336 :             DDV(2,2)=COEF2V  
 337 :             DDV(4,4)=2.D0*( ((1.D0+XNU)*COEF2V)+(XNUV*COEFF2) )    
 338 :             DDV(2,1)=DDV(1,2) 
 339 :             DDV(3,1)=DDV(1,2) 
 340 :             DDV(3,2)=DDV(1,2) 
 341 :           ENDIF                                                                                                                                                                  
 342 :       ENDIF                 
 343 : 
 344 :       GO TO 500 
 345 : C FORMULATION NON DISPONIBLE   
 346 : 40    KERRE=99                                                                 
 347 : 500   CONTINUE                                                                  
 348 :       RETURN                                                                    
 349 :       END                                                                       
 350 :  
 351 :  
 352 :  
 353 :  

© Cast3M 2003 - All rights reserved.
Disclaimer