Download deriv.eso

Back to the list

   1 : C DERIV     SOURCE    FANDEUR   13/01/29    21:15:27     7683           
   2 :       SUBROUTINE DERIV(TAU,SIG,EPSV,VAR,SIGD,EPSVD,VARD,EPSTHD,
   3 :      &DSPT,XMAT,FKX,NPTEUR,NSTRS,NVARI,NCOMAT,NKX,NC,DD,DDV,DDINV,
   4 :      &YOUNG,NYOUNG,XNU,NXNU,MFR,XCAR,ICARA,IFOURB,INDIC,
   5 :      &TI,TPOINT,ITHHER,TRUC,NCOURB)
   6 : C-----------------------------------------------------------------------
   7 : C Objet: Cette subroutine calcule les derivees des variables internes
   8 : C        pour un materiau viscoplastique a endommagement et ecrouissage
   9 : C        isotrope en regime anisotherme 
  10 : C-----------------------------------------------------------------------
  11 : C
  12 : C-----------------------------------------------------------------------
  13 : C Entree: TAU pas de temps
  14 : C         TI temperature au debut du pas
  15 : C         TPOINT  derivee de la temperature  
  16 : C         SIG(NSTRS) tenseur des contraintes
  17 : C         EPSV(NSTRS) tenseur des deformations
  18 : C         VAR(NVARI) tableau contenant les variables internes
  19 : C           pilotant les equations 
  20 : C           VAR(1)=p ; VAR(2)=r ;VAR(3)=D
  21 : C         EPSTHD  vitesse de dilatation thermique au debut du pas
  22 : C         DSPT(NSTRS,NSTRS) vitesse de deformation totale 
  23 : C         XMAT(NCOMAT) tableau des parametres scalaires du materiau
  24 : C           a une temperature TI donnee
  25 : C           XMAT(1)=YOUNG ;XMAT(2)=XNU ;XMAT(3)=n
  26 : C           XMAT(4)=m ;XMAT(5)=KK; XMAT(6)=ALPHA 
  27 : C           XMAT(7)=BETA ;XMAT(8)=r; XMAT(9)=A ;
  28 : C           XMAT(10)=EVOL ;XMAT(11)=ALPHAT 
  29 : C           XMAT(12)=RHO; XMAT(13)=SIGY
  30 : C         FKX(NKX) tableau de la fonction k(X,T) contenant les courbes
  31 : C           de k a differentes temperatures T1,T2,T3,...
  32 : C         NPTEUR(NC) tableau de pointeurs sur les differentes courbes
  33 : C           de la fonction k
  34 : C         MFR indice de la formulation mecanique(seulement massif 
  35 : C           ou coque pour les materiaux endommageables
  36 : C         ICARA nombre de caracteristiques geometriques des elements
  37 : C           finis
  38 : C         XCAR(ICARA) tableau des caracteristiques geometriques des
  39 : C           elements finis
  40 : C         IFOURB= -2 EN CONTR. PLANES                                             
  41 : C                 -1 EN DEFORM. PLANES                                            
  42 : C                  0 EN AXISYMETRIE                                               
  43 : C                  1 EN SERIE DE FOURIER                                          
  44 : C                  2 EN TRIDIM                      
  45 : C         INDIC=0, 1 OU -1 pour plasticite avec endommagement
  46 : C              =2 OU -2 pour viscoplasticite avec endommagement
  47 : C         ITHHER = 0 pas de chargement thermique et materiau constant
  48 : C                = 1 chargement thermique et materiau constant
  49 : C                = 2 chargement thermique et materiau(T)
  50 : C------------------------------------------------------------------------
  51 : C
  52 : C------------------------------------------------------------------------
  53 : C Sortie: EPSVD(NSTRS) derivee du tenseur des deformations
  54 : C         VARD(NVARI) tableau contenant les derivees des variables 
  55 : C           internes 
  56 : C         SIGD(NSTRS) derivee des contraintes
  57 : C         DD(NSTRS,NSTRS) matrice de Hooke  au debut du pas
  58 : C         DDV(NSTRS,NSTRS) derivee de DD
  59 : C         DDINV(NSTRS,NSTRS) inverse de DD
  60 : C------------------------------------------------------------------------
  61 : C
  62 :       IMPLICIT INTEGER(I-N)
  63 :        IMPLICIT REAL*8(A-H,O-Z)                                                                                                                  
  64 :        DIMENSION SIG(*),EPSV(*),VAR(*),XCAR(*),YOUNG(*),XNU(*)
  65 :        DIMENSION SIGD(*),EPSVD(*),VARD(*),DDINV(NSTRS,NSTRS)
  66 :        DIMENSION FKX(*),NPTEUR(*),XMAT(*),DSPT(*),TRUC(*)
  67 :        DIMENSION EPSTHD(*),DD(NSTRS,NSTRS),DDV(NSTRS,NSTRS)
  68 :        DIMENSION XX(6),A(3,3),D(3),S(3,3)                                       
  69 : C
  70 : C----------------------------------------------------------------------                                               
  71 : C CALCULATE  J0,J1,J2 
  72 : C   J0: THE BIGEST PRINCIPAL STRESS            
  73 : C   J1:  MEAN STRESS            
  74 : C   J2: CONTR. DE VON MISES    
  75 : C----------------------------------------------------------------------                                                                                               
  76 : *  cas des massif et coques
  77 : *      write(6,*) ' entree dans deriv mfr ',mfr
  78 :       if(mfr.eq.1.or.mfr.eq.3) then 
  79 :       AJ1  = SIG(1)+SIG(2)+SIG(3)                                              
  80 :        AJ1  = AJ1/3.0D0                                                         
  81 :        DO 30 I=1,3                                                              
  82 : 30       XX(I) = SIG(I)-AJ1                                                                                                                   
  83 :        DO 40 I=4,NSTRS                                                          
  84 : 40       XX(I) = SIG(I)                                                                                                                        
  85 :        AJ2 =  PROCON(XX,XX,NSTRS)                                               
  86 :        AJ2 =  SQRT(1.5D0*AJ2) 
  87 :       elseif (mfr.eq.5) then
  88 : *  cas des coques epaisses <= a priori non utilise dans ce modele !
  89 :        alfah = 1.D0
  90 :        ep1 = xcar(1)
  91 :        AJ1=   (SIG(1)+SIG(2)) / 3.D0   
  92 :        AJ2 = vonmis0(sig,nstrs,mfr,ifourb,ep1,alfah)
  93 :        XX(1)= sig(1) - aj1
  94 :        xx(2) = sig(2)-aj1
  95 :        DO 41 I=3,NSTRS                                                          
  96 : 41       XX(I) = SIG(I)         
  97 :       endif                                         
  97 :        CALL ZERO(A,3,3) 
  98 :        if(mfr.eq.1.or.mfr.eq.3) then                                                        
  99 :        DO 50 I=1,3                                                              
 100 : 50       A(I,I) = SIG(I)                                                                                                                 
 101 :        A(1,2) = SIG(4)                                                          
 102 :        IF(NSTRS.NE.6) GOTO 54                                                   
 103 :        A(1,3) = SIG(5)                                                          
 104 :        A(2,3) = SIG(6)                                                          
 105 : 54     CONTINUE  
 106 :       elseif(mfr.eq.5) then
 107 :          a(1,1)=sig(1)
 108 :          a(2,2)=sig(2)
 109 :          a(1,2)= sig(3)
 110 :          a(1,3)= sig(4)
 111 :          a(2,3)= sig(5)   
 112 :        endif                                                            
 113 :        A(2,1) = A(1,2)                                                          
 114 :        A(3,1) = A(1,3)                                                          
 115 :        A(3,2) = A(2,3)                                          
 115 :        IF (NSTRS.EQ.4) CALL JACOB3(A,2,D,S)
 116 : *  on appele jacod3 car on n'a pas besoin des vecteurs propres
 117 : *       write(6,*) ' entree de jacob3'
 117 :        IF (NSTRS.GE.5) CALL JACOD3(A,3,D)
 118 : *       write(6,*) ' sortie de jacob3'
 119 : C
 120 : C---------------------------------------------------------------------                                                                                                                      
 121 : C CALCULATE PRINCIPLE STRESS : D(*)   
 122 : C---------------------------------------------------------------------                                
 123 :        AJ0 = DMAX1(D(1),D(2),D(3))                                              
 124 : C 
 125 : C---------------------------------------------------------------------                                                                                   
 126 : C CALCULATE VARIABLE X  
 127 : C---------------------------------------------------------------------
 128 : C                                                                                                                            
 129 :        ALFA = XMAT(6)                                                           
 130 :        BETA = XMAT(7)                                                           
 131 :        X    = (ALFA*AJ0)+(BETA*AJ1)+((1.0D0-ALFA-BETA)*AJ2)
 132 : C
 133 : C---------------------------------------------------------------------                                                                               
 134 : C CALCULATE PARAMETER k(X,T)=AK
 135 : C---------------------------------------------------------------------
 136 : C
 136 :        CALL VALPAR(FKX,NPTEUR,NKX,NC,X,AK,AKV,TI,TINF,TSUP,TRUC,NCOURB)
 137 :      
 138 : C
 139 : C---------------------------------------------------------------------
 140 : C CALCULATE RATE OF EQUAL EFFECTIVE STRAIN VARD(1)
 141 : C           RATE OF REAL EQUAL EFFECTIVE STRAIN VARD(2)
 142 : C           WITH VARD(2)=(1-D)*VARD(1)
 143 : C---------------------------------------------------------------------
 144 :        DEN=1.D0-VAR(3)
 145 :        EM=XMAT(4)
 146 :        EN=XMAT(3)
 147 :        EK=XMAT(5)
 148 :        SIGY=XMAT(13)
 149 :        IF ( VAR(2).EQ.0.D0 ) VAR(2)=VAR(2)+1.D-12       
 150 :        VARR=AJ2-(SIGY*DEN)
 151 :        D1=DEN*EK*(VAR(2)**(1.D0/EM))
 152 :        VARR=VARR/D1
 153 :        IF ( VARR.GT.0.D0 ) THEN
 154 :            VARD(2)=VARR**EN
 155 :          ELSE
 156 :            VARD(2)=0.D0
 157 :        ENDIF
 158 : 
 159 :        VARD(1)=VARD(2)/DEN
 160 : C
 161 : C---------------------------------------------------------------------
 162 : C CALCULATE RATE OF DAMAGE
 163 : C---------------------------------------------------------------------
 164 :        ER=XMAT(8)
 165 :        EA=XMAT(9)
 166 :        IF (X.LE.0.D0) THEN
 167 :            VARD(3)=0.D0
 168 :          ELSE
 169 :            VARD(3)=((X/EA)**ER)/(DEN**AK)
 170 :        ENDIF
 171 : C
 172 : C---------------------------------------------------------------------
 173 : C CALCULATE RATE OF PLASTIC STRAIN
 174 : C---------------------------------------------------------------------
 175 :        IF ( AJ2.EQ.0.D0 ) THEN
 176 :            AA3=0.D0
 177 :          ELSE
 178 :            AA3=1.5D0*VARD(1)/AJ2
 179 :        ENDIF
 180 :        if(mfr.eq.1.or.mfr.eq.3) then
 181 :        DO 10 I=1,NSTRS
 182 :          AGAM=1.D0
 183 :          IF (I.GE.4) AGAM=2.D0
 184 :          EPSVD(I)=AA3*XX(I)*AGAM
 185 : 10     CONTINUE
 186 :       elseif(mfr.eq.5) then
 187 :        DO 11 I=1,NSTRS
 188 :          AGAM=1.D0
 189 :          IF (I.GE.3) AGAM=2.D0
 190 :          EPSVD(I)=AA3*XX(I)*AGAM
 191 : 11     CONTINUE
 192 :       endif
 193 : C
 194 : C----------------------------------------------------------------------
 195 : C CALCULATE RATE OF STRESS
 196 : C----------------------------------------------------------------------
 197 : 
 197 :       CALL DERTRA(NYOUNG,YOUNG,TI,YUNG,YUNGV,TINF,TSUP)
 197 :       CALL DERTRA(NXNU,XNU,TI,ENU,ENUV,TINF,TSUP)
 198 : C
 199 : C Calcul de l'inverse de la matrice de Hooke au debut du pas
 199 :       CALL ELAST1(2,IFOURB,VAR,NVARI,XMAT,NCOMAT,YUNGV,ENUV,
 200 :      &XCAR,ICARA,MFR,NSTRS,DDINV,DDV,KERRE,INDIC,ITHHER)
 201 : C
 202 : C Calcul de la matrice de Hooke et de sa derivee au debut du pas
 202 :       CALL ELAST1(1,IFOURB,VAR,NVARI,XMAT,NCOMAT,YUNGV,ENUV,
 203 :      &XCAR,ICARA,MFR,NSTRS,DD,DDV,KERRE,INDIC,ITHHER)
 204 : C
 204 :       CALL ZDANUL(SIGD,NSTRS)
 205 :       DO 80 I=1,NSTRS
 206 :         DO 85 J=1,NSTRS
 207 :         SIGD(I)=SIGD(I)+ DD(I,J)*( DSPT(J)-EPSVD(J)-EPSTHD(J) )
 208 : 85    CONTINUE
 209 : 80    CONTINUE
 209 :       CALL MULMAT(DD,DDV,DDINV,NSTRS,NSTRS,NSTRS)
 210 :       DO 90 I=1,NSTRS
 211 :         DO 95 J=1,NSTRS
 212 :         SIGD(I)=SIGD(I)+(TPOINT*(DD(I,J)*SIG(J)))
 213 : 95    CONTINUE
 214 :         SIGD(I)=SIGD(I)-((VARD(3)/DEN)*SIG(I))
 215 : 90    CONTINUE
 216 : C
 217 :       RETURN
 218 :       END
 219 :  
 220 :  

© Cast3M 2003 - All rights reserved.
Disclaimer