Download fattt.eso

Back to the list

   1 : C FATTT     SOURCE    CHAT      07/12/04    21:15:58     5985           
   2 : C FATTT             
   3 :       SUBROUTINE FATTT(WRK0,WRK1,WRK5,NSTRS,NVARI,NMATT,ISTEP,
   4 :      1                                        ICARA,KERRE,MFR,DT)
   5 : C MAZZZ     SOURCE    CHAT      05/01/13    01:38:25     5004 
   6 : C      SUBROUTINE MAZZZ(WRK0,WRK1,WRK5,NSTRS,NVARI,NMATT,ISTEP,
   7 : C     1                                           ICARA,KERRE,MFR)
   8 : *======================================================================
   9 : * DB
  10 : *     New source: one nonlocal damage material model added:
  11 : *     Fatigue damage 
  12 : *     This routine is very similar to MAZZZ.ESO
  13 : *======================================================================
  14 : C
  15 : C    calcule la deformation initiale et l'increment de deformation
  16 : C    a partir de la contrainte initiale et l'increment de contrainte
  17 : C    elastique puis appelle la subroutine MAZARS
  18 : C
  19 : C
  20 : C     variables en entree
  21 : C
  22 : C     WRK0,KRK1,WRK5  pointeurs sur des segments de travail
  23 : C
  24 : C     NSTRS      nombre de composantes dans les vecteurs des contraintes
  25 : C                                        et les vecteurs des deformations
  26 : C
  27 : C     NVARI      nombre de variables internes (doit etre egal a 2)
  28 : C
  29 : C     NMATT      nombre de constantes du materiau
  30 : C
  31 : C     ISTEP      flag utilise pour separer les etapes dans un calcul non local
  32 : C                ISTEP=0 -----> calcul local
  33 : C                ISTEP=1 -----> calcul non local etape 1 on calcule les seuils
  34 : C                ISTEP=2 -----> calcul non local etape 2 on continue le calcul
  35 : C                               a partir des seuils moyennes
  36 : C
  37 : C
  38 : C     variables en sortie
  39 : C
  40 : C     VARF      variables internes finales dans WRK0
  41 : C
  42 : C     SIGF      contraintes finales dans WRK0
  43 : C
  44 : C Modif L.Bode - 09/10/92 - Traitement particulier des coques
  45 : C Modif L.Bode - 14/10/92 - Modifications complementaires
  46 : C
  47 :       IMPLICIT INTEGER(I-N)
  48 :       IMPLICIT REAL*8(A-H,O-Z)
  49 : -INC CCOPTIO
  50 :       SEGMENT WRK0
  51 :         REAL*8 XMAT(NMATT)
  52 :       ENDSEGMENT
  53 : *
  54 :       SEGMENT WRK1
  55 :         REAL*8 DDHOOK(LHOOK,LHOOK),SIG0(NSTRS),DEPST(NSTRS)
  56 :         REAL*8 SIGF(NSTRS),VAR0(NVARI),VARF(NVARI)
  57 :         REAL*8 DEFP(NSTRS),XCAR(ICARA)
  58 :       ENDSEGMENT
  59 :       SEGMENT WRKK2
  60 :          REAL*8 EPSILI(NSTRSV),DSIGT(NSTRSV)
  61 :       END SEGMENT
  62 : *
  63 :       SEGMENT WRK5
  64 :         REAL*8 EPIN0(NSTRS),EPINF(NSTRS),EPST0(NSTRS)
  65 :       ENDSEGMENT
  66 :       SEGMENT WRK6
  67 :         REAL*8 SIG0S(NSTRS),DEPSTS(NSTRS)
  68 :       END SEGMENT
  69 : *
  70 :       CHARACTER*8 CMATE
  71 :       INTEGER NSTRS,NVARI,NMATT
  72 :       INTEGER KCAS,IRTD,ISTRS,KERRE,MFR
  73 :       REAL*8 PREC,EPAI,FAC,AUX,AUX1,AUX2,YOUN,XNU
  74 :       REAL*8 UN
  75 :       PARAMETER (UN=1.D0)
  76 :       KERRE=0
  77 :       YOUN = XMAT(1)
  78 :       XNU  = XMAT(2)
  79 : C
  80 : C     ON CALCULE LES CONTRAINTES VRAIES DANS LE CAS DES COQUES
  81 : C
  82 : C      print*,'dans mazzzz MFR=', mfr
  83 :       IF (MFR .EQ. 9) THEN
  84 :          EPAI=XCAR(1)
  85 :          SEGINI WRK6
  86 :          DO 101 ISTRS=1,NSTRS
  87 :             SIG0S(ISTRS)=SIG0(ISTRS)
  88 :             DEPSTS(ISTRS)=DEPST(ISTRS)
  89 :   101    CONTINUE
  90 :          NSTRSV=4
  91 :          IFOUR2=-2
  92 : C Modif L.Bode - 14/10/92
  93 : C Dans le cas des coques, on force la dimension a 2 pour MAZARS
  94 : C ie on travaille en contraintes planes
  95 :          JDIM =2
  96 : C Fin modif L.Bode
  97 :          DO 102 ISTRS=1,2
  98 :             SIG0(ISTRS)=SIG0S(ISTRS)/EPAI
  99 :   102    CONTINUE
 100 :          DEPST(3)=0.D0
 101 :          DEPST(4)=DEPSTS(3)
 102 :          SIG0(3)=0.D0
 103 :          SIG0(4)=SIG0S(3)/EPAI
 104 :       ELSE IF (MFR .EQ. 1) THEN
 105 :          NSTRSV=NSTRS
 106 :          IFOUR2=IFOUR
 107 : C Modif L.Bode - 14/10/92
 108 : C Pour les elts massifs, on utilise la vraie dimension
 109 :          JDIM = IDIM
 110 : C Fin modif L.Bode
 111 :       ELSE
 112 :          PRINT*,'MFR=',MFR
 113 :          KERRE=57
 114 :          RETURN
 115 :       END IF
 116 :       SEGINI WRKK2
 117 : 
 118 : 
 119 : C
 120 : C     calcul de la matrice elastique
 121 : C
 122 :       CMATE = 'ISOTROPE'
 123 :       KCAS=1
 124 : *      print*,'increment de deformation elastique'
 124 :       CALL DOHMAS(XMAT,CMATE,IFOUR2,NSTRSV,KCAS,DDHOOK,IRTD)
 125 : *      DO ISTRS=1,NSTRS
 126 : *         print*,(DDHOOK(ISTRS,J),j=1,nstrs)
 127 : *         print*,DEPST(ISTRS)
 128 : *      END DO
 129 :       IF ( IRTD .EQ. 1) THEN
 130 : C
 131 : C      calcul de l'increment de contrainte
 132 : C
 132 :          CALL MATVE1 (DDHOOK,DEPST,NSTRSV,NSTRSV,DSIGT,1)
 133 : C
 134 : C
 135 : C     inversion de cette matrice
 136 : C
 137 :          PREC=1.D-08
 137 :       CALL DOHMAS(XMAT,CMATE,IFOUR2,NSTRSV,2,DDHOOK,IRTD) 
 138 : *      DO ISTRS=1,NSTRSV
 139 : *              print*,(DDHOOK(ISTRS,J),j=1,nstrsv)
 140 : *      END DO       
 141 : *         print*,'appel a invalm'
 141 :          CALL INVALM(DDHOOK,NSTRSV,NSTRSV,IRTD,PREC)
 142 :          IF (IRTD.EQ.0)THEN
 143 : C
 144 : C     calcul des deformations du materiau elastique lineaire
 145 : C
 146 : *           print*,'appel a matve1'
 146 :            CALL MATVE1 (DDHOOK,SIG0,NSTRSV,NSTRSV,EPSILI,1)
 147 : C
 148 : C     modification pour tenir compte de l'endommagement
 149 : C
 150 :             DO 100 ISTRS=1,NSTRSV
 151 :                EPSILI(ISTRS)=EPSILI(ISTRS)+EPIN0(ISTRS)
 152 : 100         CONTINUE
 153 : 
 154 : C
 155 : C      appel a la routine MAZARS
 156 : C
 157 : C Modif L.Bode - 14/10/92
 158 : C On envoie la dimension et le numero de la formulation 
 159 : C  ( Elts Coques JDIM =2 , IFOUR2 = -2 => contraintes planes
 160 : C    Elts Massifs JDIM = IDIM ,IFOUR2 = IFOUR)
 161 : *            print*,'appel a mazars'
 161 : *            CALL  MAZARS (WRK0,WRK1,WRKK2,WRK5,NSTRSV,NVARI,NMATT,
 162 : *     1                    ISTEP,ICARA,JDIM,IFOUR2)
 163 : C Fin modif L.Bode
 164 : * DB
 165 : *
 165 :             CALL  FATI (WRK0,WRK1,WRKK2,WRK5,NSTRSV,NVARI,NMATT,
 166 :      1                    ISTEP,ICARA,JDIM,IFOUR2,DT)
 167 : *
 168 : * DB
 169 : C
 170 : C      ON RECALCULE LES CONTRAINTES EFFECTIVES POUR LES COQUES
 171 : C
 172 : *            print*,'apres mazars'
 173 :             IF (MFR .EQ. 9) THEN
 174 :                
 175 :                
 176 : C
 177 : C     ON MET A JOUR DE FACON NON LINEAIRE LA PARTIE MEMBRANE
 178 : C     ET  LES PARTIES FLEXION ET EFFORTS
 179 : C     TRANCHANTS LE CAS ECHEANT
 180 : C
 181 :                FAC=(EPAI**3)/12.D0
 182 :                AUX =FAC*YOUN/(1.D0-XNU*XNU)
 183 :                AUX1=FAC*YOUN*.5D0/(1.D0+XNU)
 184 :                AUX2=EPAI*YOUN*.5D0/(1.d0+XNU)/1.2d0
 185 :                DO 103 ISTRS=1,NSTRS
 186 :                   SIG0(ISTRS)=SIG0S(ISTRS)
 187 :                   DEPST(ISTRS)=DEPSTS(ISTRS)
 188 :  103           CONTINUE
 189 : 
 190 :                DO 104 ISTRS=1,2
 191 :                   SIGF (ISTRS)=SIGF(ISTRS)*EPAI
 192 :  104           CONTINUE
 193 :                SIGF(3)=SIGF(4)*EPAI
 194 :                SIGF(4)=SIG0(4)+AUX*(DEPST(4)+XNU*DEPST(5))
 195 :                SIGF(5)=SIG0(5)+AUX*(DEPST(5)+XNU*DEPST(4))
 196 :                SIGF(6)=SIG0(6)+AUX1*DEPST(6)
 197 :                SIGF(7)=SIG0(7)+AUX2*DEPST(7)
 198 :                SIGF(8)=SIG0(8)+AUX2*DEPST(8)
 199 :                SEGSUP WRK6
 200 :             END IF
 201 :          ELSE
 202 :              print*,'erreur dans invalm'
 203 :              KERRE=56
 204 :          END IF
 205 :       ELSE
 206 :          print*,'erreur dans dohmas'
 207 :          KERRE=56
 208 :       END IF
 209 :       SEGSUP WRKK2
 210 :       RETURN
 211 :       END
 212 :  
 213 :  
 214 :  
 215 :  

© Cast3M 2003 - All rights reserved.
Disclaimer