Download gernay.eso

Back to the list

   1 : C GERNAY    SOURCE    FANDEUR   13/01/16    21:15:19     7666           
   2 : 
   3 :       SUBROUTINE GERNAY(WRK52,WRK53,WRK54,WRK3,IB,IGAU,NBPGAU)
   4 : *
   5 : *______________________________________________________________________
   6 : *
   7 : *    MODELE GERNAY
   8 : *______________________________________________________________________
   9 : *
  10 :       IMPLICIT INTEGER(I-N)
  11 :       IMPLICIT REAL*8(A-H,O-Z)
  12 : 
  13 : -INC CCOPTIO
  14 : -INC DECHE
  15 : *
  16 :       SEGMENT WRK3
  17 :         REAL*8 WORK(LW),WORK2(LW2)
  18 :       ENDSEGMENT
  19 : *
  20 :       PARAMETER(UN=1.D0,DEUX=2.D0,UNDEMI=.5D0)
  21 : *
  22 :       REAL*8        YOUN, NU, BULK3, G2, LAM,
  23 :      &              TETA0, DTETA, TETAF, ALPH, TREF, DYDT, DNDT,
  24 :      &              YOUN0, NU0, BULK30, G20, LAM0,
  25 :      &              YOUNF, NUF, BULK3F, G2F, LAMF,
  26 :      &              DELDSE(6,6), ETHERM(6), DTHERM(6),
  27 :      &              YREF, NREF, EPSE0(6), DEPSE(6),DHOOK(6,6),
  28 :      &              DSIG2(3,3),DEPST2(3,3),TENS(3,3),DSIG(6),
  29 :      &              V1(3),V2(3),V3(3),V(3,3),P(3,3)
  30 : 
  31 :       REAL*8 PARAHOT3(83,1),sigma6v(6), deps6v(6),STRESS(6),DSTRAN(6)
  32 :       REAL*8 STRAN(6),STATEV(32),PROPS(10),DDSDDE(6,6)
  33 :       character*10 cmat
  34 :       logical lerror,lcp
  35 : *
  36 : *    ON EXPLORE LE DECHE
  37 : *
  38 :       NPT=1
  39 :       NOEL=1
  40 :       KERRE=0
  41 :       NMAT  = XMAT(/1)
  42 : 
  43 :       NVARI = VAR0(/1)
  44 :       NSTRS = SIG0(/1)
  45 : 
  45 :       CALL ZERO(STRESS,6,1)
  45 :       CALL ZERO(STRAN,6,1)
  45 :       CALL ZERO(DSTRAN,6,1)
  45 :       CALL ZERO(STATEV,32,1)
  45 :       CALL ZERO(PARAHOT3,83,1)
  46 : *
  47 : *    TRANSFER DE L'ETAT INITIAL, DU DEPST, ET DU MATERIAU
  48 : *
  49 :       DO I=1,NSTRS
  50 :          STRESS(I) = SIG0(I)
  51 :          STRAN(I)  = EPST0(I)
  52 :          DSTRAN(I)= DEPST(I)
  53 :       ENDDO
  54 : *
  55 :       DO I=1,NVARI
  56 :          STATEV(I) = VAR0(I)
  57 :       ENDDO
  58 : *
  59 :       PROPS( 1) = XMAT( 2)
  60 :       PROPS( 2) = XMAT( 5)
  61 :       PROPS( 3) = XMAT( 6)
  62 :       PROPS( 4) = XMAT( 7)
  63 :       PROPS( 5) = XMAT( 8)
  64 :       PROPS( 6) = XMAT( 9)
  65 :       PROPS( 7) = XMAT(10)
  66 :       PROPS( 8) = XMAT(11)
  67 :       PROPS( 9) = XMAT(12)
  68 :       PROPS(10) = XMAT( 1)
  69 : 
  70 : C
  71 : C-----------------------------------------------------------------------
  72 : C        Constantes de materiau
  73 : C        ----------------------
  74 : C        PROPS(1)  : NU    Coefficient de Poisson
  75 : c        PROPS(2)  : RC    Resistance à la compression
  76 : c        PROPS(3)  : RT    Resistance à la traction
  77 : c        PROPS(4)  : RB    Resistance à la compression biaxiale
  78 : c        PROPS(5)  : EPS1  Deformation au pic en compression
  79 : c        PROPS(6)  : DILA  Parametre de dilatance alpha_g
  80 : c        PROPS(7)  : DAM1  Endommagement de compression au pic
  81 : c        PROPS(8)  : XC    Paramètre adimensionnel, rapport de l'energie de rupture 
  82 : c                             en compression dissipée avant le pic sur l'énergie totale
  83 : c        PROPS(9)  : GT    Densite d'energie de rupture en traction
  84 : c        PROPS(10) : YOUN  Young pour le calcul de la rigidite elastique   
  85 : c
  86 : C-----------------------------------------------------------------------
  87 : C
  88 : 
  89 : *         print *,'   '
  90 : *         print *, '         POINT DINTEGRATION           IGAU = ', IGAU
  91 : *         print *, ' stress', stress
  92 : *         print *, 'dstran', dstran
  93 : *         print *,' STATEV 1 à 4' , (statev(i),i=1,4)
  94 : *         print *,' STATEV 5 à 10 epspl ', (statev(i),i=5,10)
  95 : *         print *,' STATEV 11 à 16 epstr ', (statev(i),i=11,16)
  96 : *         print *,' STATEV 17 à 22 sig,eff,c ', (statev(i),i=17,22)
  97 : *         print *,' STATEV 24 à 29 sig,eff ', (statev(i),i=24,29)
  98 : *         print *,' STATEV 30 à 32 tmax,phi,epsth ',(statev(i),i=30,32)
  99 : 
 100 :          cmat = 'SICO_ETC3D'
 101 :          idimpara3 =  83
 102 : c        ATTENTION si idimpara3 est modifié il faut modifier aussi la dimension
 103 : c        de parahot3 (plus haut)
 104 :          lerror = .false.
 105 : ****     npttot3=30
 106 :          npttot3=1
 107 : *
 108 :          lcp = .false.
 109 : *
 110 : *  CAS CONTRAINTES PLANES
 111 : *
 112 :          if (IFOUR.EQ.-2) then
 113 :            lcp = .true.
 114 :          endif
 115 : 
 116 : 
 117 : *  TEMPERATURES EN DEBUT ET FIN DE PAS
 118 : 
 119 :          TETA1 = ture0(1)
 120 :          TETA2 = turef(1)
 121 : 
 122 : C        Recuperation des constantes de materiau
 123 : C
 124 :          PARAHOT3(2,NPT) = PROPS(1)
 125 :          PARAHOT3(3,NPT) = PROPS(2)
 126 :          PARAHOT3(4,NPT) = PROPS(3)
 127 :          PARAHOT3(7,NPT) = PROPS(4)
 128 :          PARAHOT3(5,NPT) = PROPS(5)
 129 :          PARAHOT3(8,NPT) = PROPS(6)
 130 :          PARAHOT3(9,NPT) = PROPS(7)
 131 :          PARAHOT3(10,NPT)= PROPS(8)
 132 :          PARAHOT3(11,NPT)= PROPS(9)
 133 : C
 134 : c        remplissage des variables internes
 135 : c        accumulated plastic strain kappa at the beginning of the step 
 136 : c        in tension and in compression
 137 :          PARAHOT3(idimpara3-37,NPT) = STATEV(1)
 138 :          PARAHOT3(idimpara3-36,NPT) = STATEV(2)
 139 : 
 140 : c        damage variable in tension and in compression
 141 :          PARAHOT3(idimpara3-41,NPT) = STATEV(3)
 142 :          PARAHOT3(idimpara3-40,NPT) = STATEV(4)
 143 : 
 144 : c        plastic strains
 145 :          do i=1,6
 146 :            PARAHOT3(idimpara3-25+i,NPT) = STATEV(4+i)
 147 :          end do
 148 : 
 149 : c        transient creep strain at the beginning of the step
 150 :          do i=1,6
 151 :            PARAHOT3(17+i,NPT) = STATEV(10+i)
 152 :          end do
 153 :          
 154 : c        effective stress in compression (used for transient creep strain calculation)
 155 :          do i=1,6
 156 :            PARAHOT3(23+i,NPT) = STATEV(16+i)
 157 :          end do
 158 :          do i=1,6
 159 :            PARAHOT3(29+i,NPT) = PARAHOT3(23+i,NPT)
 160 :          end do
 161 : 
 162 : c        effective stress after convergence (used for sigf3d forward calculation)
 163 :          do i=1,6
 164 :            PARAHOT3(idimpara3-7+i,NPT) = STATEV(23+i)
 165 :          end do
 166 :          
 167 : c        remplissage des contraintes
 168 : c        remplissage du vecteur contraintes et du vecteur 
 169 : c                          increment de deformation
 170 :          if (.not.lcp) then
 171 :            do i=1,6
 172 :              PARAHOT3(idimpara3-13+i,NPT) = STRESS(i)
 173 :              sigma6v(i)= STRESS(i)
 174 :              deps6v(i)=  DSTRAN(i)
 175 :            end do
 176 :          else
 177 :            do i=1,4
 178 :              PARAHOT3(idimpara3-13+i,NPT) = STRESS(i)
 179 :              sigma6v(i)= STRESS(i)
 180 :              deps6v(i)=  DSTRAN(i)
 181 :            end do
 182 :            PARAHOT3(idimpara3-8,NPT)=0.d0
 183 :            PARAHOT3(idimpara3-7,NPT)=0.d0
 184 :            sigma6v(5) = 0.d0
 185 :            sigma6v(6) = 0.d0
 186 :            deps6v(5) = 0.d0
 187 :            deps6v(6) = 0.d0
 188 :          endif
 189 : 
 190 : c        remplissage des deformations au debut du pas t
 191 : c        et en fin de pas
 192 :          if (.not.lcp) then
 193 :            do i=1,6
 194 :              PARAHOT3(idimpara3-31+i,NPT) = STRAN(i)
 195 :              PARAHOT3(idimpara3-19+i,NPT) = STRAN(i) + DSTRAN(i)
 196 :            end do
 197 :          else
 198 :            do i=1,4
 199 :              PARAHOT3(idimpara3-31+i,NPT) = STRAN(i)
 200 :              PARAHOT3(idimpara3-19+i,NPT) = STRAN(i) + DSTRAN(i)
 201 :            end do
 202 :          endif
 203 : 
 204 : c        TEMPERATURES
 205 : 
 206 : c ********************************************************************************
 207 : c  probleme pour vecteur STATEV - STATEV(30,31,32) ne passe pas d'un pas à l'autre
 208 : c  => il faut passer le vecteur STATEV à 32 composantes au lieu de 29
 209 : c ********************************************************************************
 210 : c        actualisation de la temperature au pas courant
 211 : ****     TEMP = TEMP + DTEMP
 212 : ****     PARAHOT3(idimpara3-39,NPT) = TEMP
 213 :          PARAHOT3(idimpara3-39,NPT) = TETA2
 214 : c        actualisation éventuelle de la temperature maximale atteinte
 215 : ****     if (TEMP.gt.STATEV(30)) STATEV(30) = TEMP
 216 :          if (TETA2.gt.STATEV(30)) STATEV(30) = TETA2
 217 :          PARAHOT3(idimpara3-38,NPT) = STATEV(30)
 218 :          
 219 : c        phi function
 220 :          PARAHOT3(17,NPT) = STATEV(31)
 221 : 
 222 : c        Thermal strain
 223 :          PARAHOT3(idimpara3,NPT) = STATEV(32)
 224 :          
 225 : c        appel a mater2
 226 :          NTOT = 1
 227 : 
 227 :          CALL MATER2TG (cmat,NTOT, lerror,idimpara3, parahot3, npttot3,
 228 :      &                  ddsdde, sigma6v, deps6v,lcp,NOEL,NPT,Kinc)
 229 : *         print *, ' sortie de mater2tg'
 230 : 
 230 :          CALL MATER3TG (cmat,npt,idimpara3,parahot3,npttot3,lcp,
 231 :      .                  NOEL,NPT)
 232 : *         print *, ' sortie de mater3tg'
 233 : 
 234 : C        sauvetage des resultats
 235 : 
 236 : c        remplissage des contraintes
 237 :          if (.not.lcp) then
 238 :            do i=1,6
 239 :              STRESS(i) = sigma6v(i)
 240 :            end do
 241 :          else
 242 :            do i=1,4
 243 :              STRESS(i) = sigma6v(i)
 244 :            end do
 245 :          endif
 246 : c        if ((NOEL.eq.18).and.(NPT.eq.23)) then
 247 : *          print *,'GERNAY CONTRAINTES EN FIN DE PAS stress = ', stress
 248 : c        endif
 249 : 
 250 : c        actualisation des variables internes
 251 : c        accumulated plastic strain kappa at the beginning of the step 
 252 : c        in tension and in compression
 253 :          STATEV(1) = PARAHOT3(idimpara3-37,NPT)
 254 :          STATEV(2) = PARAHOT3(idimpara3-36,NPT)
 255 : 
 256 : c        damage variable in tension and in compression
 257 :          STATEV(3) = PARAHOT3(idimpara3-41,NPT)
 258 :          STATEV(4) = PARAHOT3(idimpara3-40,NPT)
 259 : 
 260 : c        plastic strains
 261 :          do i=1,6
 262 :            STATEV(4+i) = PARAHOT3(idimpara3-25+i,NPT)
 263 :          end do
 264 : 
 265 : c        transient creep strain at the beginning of the step
 266 :          do i=1,6
 267 :            STATEV(10+i) = PARAHOT3(17+i,NPT)
 268 :          end do
 269 : 
 270 : c        effective stress in compression (used for transient creep strain calculation)
 271 :          do i=1,6
 272 :            STATEV(16+i) = PARAHOT3(23+i,NPT)
 273 :          end do
 274 : 
 275 : c        equivalent strain
 276 :          STATEV(23) = STATEV(1) + STATEV(2)
 277 : 
 278 : c        effective stress after convergence (used for sigf3d forward calculation)
 279 :          do i=1,6
 280 :            STATEV(23+i) = PARAHOT3(idimpara3-7+i,NPT)
 281 :          end do
 282 : 
 283 : c        maximum temperature 
 284 :          STATEV(30) = PARAHOT3(idimpara3-38,NPT)
 285 : 
 286 : c        phi function
 287 :          STATEV(31) = PARAHOT3(17,NPT)
 288 : 
 289 : c        Thermal strain
 290 :          STATEV(32) = PARAHOT3(idimpara3,NPT)
 291 : 
 292 : c        do iloc=1,NTENS
 293 :          do iloc=1,4
 294 :            test = DABS(stress(iloc))
 295 :            if (test.gt.10.d20) then
 296 :              print *,'>>>>>>>>>>>>>>>>>>>> problem stress = ',
 297 :      .                                        stress
 298 :              print *,'in NOEL = , NPT = ', IB  , IGAU
 299 :              KINC = -2
 300 :            endif
 301 :          enddo
 302 :          if (KINC.eq.-2) then
 303 :            print *,'in NOEL = , NPT = ', IB  , IGAU
 304 :          endif
 305 : *
 306 : *    TRANSFERT DE L'ETAT FINAL
 307 : *
 308 :       DO I=1,NSTRS
 309 :          SIGF(I) = STRESS(I)
 310 :       ENDDO
 311 : *
 312 :       DO I=1,NVARI
 313 :          VARF(I) = STATEV(I)
 314 :       ENDDO
 315 : *
 316 :       RETURN
 317 :       END
 318 : 
 319 :  

© Cast3M 2003 - All rights reserved.
Disclaimer