Download rotkta.eso

Back to the list

   1 : C ROTKTA    SOURCE    PV        11/03/07    21:18:08     6885           
   2 :       SUBROUTINE ROTKTA(XMAT,VARF,SIGF,XKTAT,KERRE)
   3 : C
   4 : C Rotating Crack model avec 2 directions de fissuration
   5 : C Calcul de la matrice tangente
   6 : C  D. Combescure 24/08/95 ELSA-Ispra
   7 : C
   8 : C ENTREES:
   9 : C -------
  10 : C     XMAT    = Caracteristiques materiaux
  11 : C
  12 : C     VARF    = Variables internes 
  13 : C
  14 : C     SIGF    = Contraintes
  15 : C
  16 : C SORTIES:
  17 : C -------
  18 : C     XKTAT    = Matrice tangente
  19 : C
  20 : C================================================================
  21 :       IMPLICIT INTEGER(I-N)
  22 :       IMPLICIT REAL*8(A-H,O-Z)
  23 : -INC CCOPTIO
  24 :       DIMENSION XMAT(8),VARF(7),SIGF(4),XXX(2)
  25 :       DIMENSION DAM(2), XKTAT(4,4),XKTAT2(3,3),EPSF(2),XMINT(3,3)
  26 :       DIMENSION EPSN(2), EPS(2), XKTAP(3,3), XKINV(2,2) 
  27 :       DIMENSION TP(3,3),TM(3,3),IMEC(2),EPSP(2), SIGM(2)
  28 :       PARAMETER (UN=1.D0,UNDEMI=0.5D0,EPSILO=1.D-20,XZER=0.D0)
  29 :       KERRE=0
  30 : C===============================================================
  31 : C   LECTURE DES CARACTERISTIQUES MAT. ET DES VAR. INT.
  32 : C===============================================================
  33 :       YOUN = XMAT(1)
  34 :       XNU  = XMAT(2)
  35 :       XFTR = XMAT(3)
  36 :       EPSR = XMAT(4)
  37 :       XFRE = XMAT(5)
  38 :       BETA = XMAT(6)
  39 :       XHH1 = (XFRE - XFTR)/EPSR
  40 : C--------------------------------------------------------------
  41 : C Variables internes->1 et 2- cos et sin de l'angle
  42 : C                     3 et 4- "Deformation" maximale de la fissure
  43 : C                     5 et 6- Deformations principales 
  44 : C                     7     - Cas pour le calcul de Kta 
  45 : C--------------------------------------------------------------
  46 :       KERRE   = 0
  47 :       CPHI    = VARF(1) + UN
  48 :       SPHI    = VARF(2)
  49 :       EPS(1)  = VARF(3)
  50 :       EPS(2)  = VARF(4)
  51 :       EPSN(1) = VARF(5)
  52 :       EPSN(2) = VARF(6)
  53 :       ICAS    = nint(VARF(7))
  53 :       CALL ZERO(XKTAT,4,4)
  53 :       CALL ZERO(XKTAT2,3,3)
  54 : C
  55 : C  Remplissage de la matrice de transformation
  56 : C (Ecrite pour le tenseur des deformations contenant 2*EPSXY)
  57 : C
  58 :       TP(1,1) = CPHI**2
  59 :       TP(1,2) = SPHI**2
  60 :       TP(1,3) = -SPHI*CPHI
  61 :       TP(2,1) = TP(1,2)
  62 :       TP(2,2) = TP(1,1)
  63 :       TP(2,3) = -TP(1,3)
  64 :       TP(3,1) = 2.*SPHI*CPHI
  65 :       TP(3,2) = -2.*SPHI*CPHI
  66 :       TP(3,3) = (CPHI**2) - (SPHI**2)
  67 : C
  68 : C  Ecrite pour les contraintes
  69 : C
  70 :       TM(1,1) = CPHI**2
  71 :       TM(1,2) = SPHI**2
  72 :       TM(1,3) = 2.*SPHI*CPHI
  73 :       TM(2,1) = TM(1,2)
  74 :       TM(2,2) = TM(1,1)
  75 :       TM(2,3) = -TM(1,3)
  76 :       TM(3,1) = -SPHI*CPHI
  77 :       TM(3,2) = SPHI*CPHI
  78 :       TM(3,3) = (CPHI**2) - (SPHI**2)
  79 : C
  80 : C
  81 : C================================================================
  82 : C   MATRICE TANGENTE DANS LE REPERE PRINCIPAL
  83 : C================================================================
  84 : C
  85 : C  Calcul des variables d'endommagement
  86 :       DO I=1,2 
  87 :         IF (EPS(I).LE.EPSR) THEN
  88 :           SIGM(I) = XFTR - (XFTR - XFRE)*EPS(I)/EPSR
  89 :           EPSP(I) = BETA*EPS(I)
  90 :           XXX(I) = UN + YOUN*(UN - BETA)*EPS(I)/SIGM(I)
  91 :         ELSE
  92 :           SIGM(I) = XFRE
  93 :           EPSP(I) = BETA*EPSR
  94 :           XXX(I) = UN + YOUN*(UN - BETA)*EPSR/XFRE 
  95 :      &+ YOUN*(EPS(I) - EPSR)/XFRE
  96 :         ENDIF
  97 :         XXX(I) = UN/XXX(I)
  98 :         DAM(I) = UN
  99 :       ENDDO
 100 : C
 101 : C   
 102 : C
 103 :       IF (ICAS.EQ.1) THEN
 104 :         GOTO 1000
 105 :       ELSE
 106 :         IF (ICAS.GE.11) THEN
 107 :            IF (ICAS.EQ.11) DAM(1) = XXX(1)
 108 :            IF (ICAS.EQ.12) DAM(2) = XXX(2)
 109 :            IF (ICAS.EQ.13) THEN
 110 :              DAM(1) = XXX(1)
 111 :              DAM(2) = XXX(2)
 112 :            ENDIF
 113 :            GOTO 1000
 114 :         ELSE
 115 :           IF (ICAS.EQ.2) THEN
 116 :             IMEC(1) = 1
 117 :             IMEC(2) = 2
 118 :             GOTO 2000
 119 :           ELSE
 120 :             IF (ICAS.EQ.3) THEN
 121 :               IMEC(1) = 2
 122 :               IMEC(2) = 1
 123 :               GOTO 2000
 124 :             ELSE
 125 :               IF (ICAS.EQ.4) THEN
 126 :                 GOTO 3000
 127 :               ENDIF
 128 :             ENDIF
 129 :           ENDIF
 130 :         ENDIF
 131 :       ENDIF
 132 : C
 133 : C  Cas sans direction d'ecoulement
 134 : C
 135 :  1000 CONTINUE
 136 :        XKINV(1,1)=(UN/(YOUN*DAM(1)))
 137 :        XKINV(1,2)=((-1.)*XNU/YOUN)
 138 :        XKINV(2,1)=((-1.)*XNU/YOUN)
 139 :        XKINV(2,2)=(UN/(YOUN*DAM(2)))
 140 :       GOTO 5000
 141 : C
 142 : C  Cas avec 1 direction d'ecoulement
 143 : C
 144 :  2000 CONTINUE
 145 :       IF (EPS(IMEC(1)).LE.EPSR) THEN
 146 :         XKINV(IMEC(1),IMEC(1)) = UN/YOUN + UN/XHH1
 147 :         XKINV(1,2) = -XNU/YOUN
 148 :         XKINV(2,1) = -XNU/YOUN
 149 :         XKINV(IMEC(2),IMEC(2)) = UN/(DAM(IMEC(2))*YOUN)
 150 :         GOTO 5000 
 151 :       ELSE
 152 :         XKTAP(IMEC(1),IMEC(1)) = XZER
 153 :         XKTAP(1,2) = XZER
 154 :         XKTAP(2,1) = XZER
 155 :         XKTAP(IMEC(2),IMEC(2)) = YOUN*DAM(IMEC(2))
 156 :         GOTO 9999 
 157 :       ENDIF
 158 : C
 159 : C  Cas avec 2 directions d'ecoulement
 160 : C
 161 : C
 162 :  3000 CONTINUE
 163 :       IF ((EPS(1).LE.EPSR).AND.(EPS(2).LE.EPSR)) THEN
 164 :         XKINV(1,1) = UN/YOUN + UN/XHH1
 165 :         XKINV(1,2) = -XNU/YOUN
 166 :         XKINV(2,1) = -XNU/YOUN
 167 :         XKINV(2,2) = UN/YOUN + UN/XHH1
 168 :         GOTO 5000
 169 :       ELSE
 170 :         IF ((EPS(1).GT.EPSR).AND.(EPS(2).LE.EPSR)) THEN
 171 :            XKTAP(1,1) = XZER
 172 :            XKTAP(1,2) = XZER
 173 :            XKTAP(2,1) = XZER
 174 :            XKTAP(2,2) = UN/((UN/XHH1 + UN/YOUN))
 175 :            GOTO 9999
 176 :         ELSE
 177 :           IF ((EPS(1).LE.EPSR).AND.(EPS(2).GT.EPSR)) THEN
 178 :             XKTAP(1,1) = UN/((UN/XHH1 + UN/YOUN)) 
 179 :             XKTAP(1,2) = XZER
 180 :             XKTAP(2,1) = XZER
 181 :             XKTAP(2,2) = XZER
 182 :             GOTO 9999
 183 :           ELSE
 184 :             XKTAP(1,1) = XZER
 185 :             XKTAP(1,2) = XZER
 186 :             XKTAP(2,1) = XZER
 187 :             XKTAP(2,2) = XZER
 188 :             GOTO 9999
 189 :           ENDIF
 190 :         ENDIF
 191 :       ENDIF
 192 : C
 193 : C  On inverse la matrice si necessaire
 194 : C
 195 :  5000 CONTINUE
 196 :       XDET = XKINV(1,1)*XKINV(2,2) - XKINV(1,2)*XKINV(2,1)
 197 :       IF (ABS(XDET).GT.EPSILO) THEN
 198 :          XDET = UN/XDET
 199 :          XKTAP(1,1) = XDET*XKINV(2,2) 
 200 :          XKTAP(2,2) = XDET*XKINV(1,1)
 201 :          XKTAP(1,2) = -XDET*XKINV(2,1)
 202 :          XKTAP(2,1) = -XDET*XKINV(1,2)
 203 :       ELSE
 204 :         KERRE = 2
 205 :         WRITE(6,*)'Impossible d inverser'
 206 :       ENDIF
 207 : C================================================================
 208 : C   PASSAGE DANS LE REPERE FIXE
 209 : C===============================================================
 210 :  9999  CONTINUE
 211 :       XKTAP(1,3) = XZER
 212 :       XKTAP(2,3) = XZER
 213 :       XKTAP(3,1) = XZER
 214 :       XKTAP(3,2) = XZER
 215 :       EPSF(1) = TP(1,1)*EPSN(1) + TP(1,2)*EPSN(2)
 216 :       EPSF(2) = TP(2,1)*EPSN(1) + TP(2,2)*EPSN(2)
 217 :       IF (ABS(EPSF(2)-EPSF(1)).GT.EPSILO) THEN
 218 :         XKTAP(3,3) = (SIGF(2)-SIGF(1))/(2.*(EPSF(2)-EPSF(1))) 
 219 :       ELSE
 220 :         XKTAP(3,3) = XZER
 221 :       ENDIF
 221 :       CALL MATMAT(TM,XKTAP,3,3,3,XMINT)
 221 :       CALL MATMAT(XMINT,TP,3,3,3,XKTAT2)
 222 :       XKTAT(1,1)=XKTAT2(1,1)
 223 :       XKTAT(1,2)=XKTAT2(1,2)
 224 :       XKTAT(2,1)=XKTAT2(2,1)
 225 :       XKTAT(2,2)=XKTAT2(2,2)
 226 :       XKTAT(4,1)=XKTAT2(3,1)
 227 :       XKTAT(1,4)=XKTAT2(1,3)
 228 :       XKTAT(4,2)=XKTAT2(3,2)
 229 :       XKTAT(2,4)=XKTAT2(2,3)
 230 :       XKTAT(4,4)=XKTAT2(3,3)
 231 :       RETURN
 232 :       END
 233 : 
 234 :  
 235 :  
 236 :  

© Cast3M 2003 - All rights reserved.
Disclaimer