Download mater3tg.eso

Back to the list

   1 : C MATER3TG  SOURCE    AM        12/02/28    00:28:36     7289           
   2 :       SUBROUTINE mater3tg(cmat,ntot,idimpara3,
   3 :      .              parahot3,npttot3,lcp,NOEL,NPT)
   4 : c END THG add variables
   5 :  
   6 : 
   7 : C     This routine is run at the end of every time step
   8 : c       when convergence has been obtained.
   9 : 
  10 : c       Ntot is equal to ntot1 or ntot2 depending on the finite element type
  11 : 
  12 : C
  13 : C     *****************************************************************
  14 : C     CALCULATION OF THE PLASTIC STRAIN FOR ALL THE MATERIAL LAWS
  15 : C     *****************************************************************
  16 : C
  17 : 
  18 :       IMPLICIT REAL*8 (A-B,D-H,O-Z)
  19 :       implicit integer (I-K,M,N)
  20 :       implicit logical (L)
  21 :       implicit character*10 (C)
  22 : 
  23 :       dimension parahot3(idimpara3,npttot3)
  24 :       dimension Hinv3(6,6),trav3(6),esigma6v(6)
  25 :       dimension epssig6(6),epsipl6(6)
  26 :       
  27 :       i1 = 1
  28 :       i2 = 2
  29 :       i3 = 3     
  30 :       i4 = 4
  31 :       i5 = 5
  32 :       i6 = 6
  33 :       i7 = 7
  34 :       i8 = 8
  35 :       i9 = 9
  36 :       i10=10
  37 :       i11=11
  38 :       i12=12
  39 :       i13=13
  40 :       i14=14
  41 :       i15=15
  42 :       i16=16
  43 :       i17=17
  44 :       i18=18
  45 :       i19=19
  46 :       i20=20
  47 :       i21=21
  48 :       i22=22
  49 :       i23=23
  50 :       i24=24
  51 :       i25=25
  52 :       i26=26
  53 :       i27=27
  54 :       i28=28
  55 :       i29=29
  56 :       i30=30
  57 :       i31=31
  58 :       i32=32
  59 :       i33=33
  60 :       i34=34
  61 :       i35=35
  62 :       i36=36
  63 :       i37=37
  64 :       i38=38
  65 :       i39=39
  66 : 
  67 :       r0 = 0.
  68 :       r1 = 1.
  69 : 
  70 : 
  71 : c     3D concrete model (lcp = .false.)
  72 : c     and plane stress version (lcp = .true.)
  73 : 
  74 : c     Store the mechanical strain at the end of this step
  75 :       do iloc=i1,i6
  76 :         PARAHOT3(idimpara3-31+iloc,ntot) = 
  77 :      *          PARAHOT3(idimpara3-19+iloc,ntot)
  78 :       end do
  79 : c      if (lcp) then
  80 : c        PARAHOT2(idimpara2-14,ntot)=parahot3(idimpara3-30,ntot)
  81 : c        PARAHOT2(idimpara2-13,ntot)=parahot3(idimpara3-29,ntot)
  82 : c        PARAHOT2(idimpara2-12,ntot)=parahot3(idimpara3-27,ntot)
  83 : c      endif
  84 : 
  85 : c     Store the equivalent plastic strain
  86 :       parahot3(idimpara3-36,ntot) = parahot3(idimpara3-34,ntot)
  87 :       parahot3(idimpara3-37,ntot) = parahot3(idimpara3-35,ntot)
  88 :         
  89 : c     Store the damage in compression
  90 :       parahot3(idimpara3-40,ntot) = parahot3(idimpara3-32,ntot)
  91 : c     Store the damage in tension
  92 :       parahot3(idimpara3-41,ntot) = parahot3(idimpara3-33,ntot)
  93 : 
  94 : c     Store the thermal strain at the end of this step
  95 :       parahot3(idimpara3-31,ntot) = parahot3(idimpara3,ntot)
  96 : c      if (lcp) then
  97 : c        parahot2(idimpara2-15,ntot) =  parahot3(idimpara3-31,ntot)
  98 : c      endif
  99 : 
 100 : c     calcul des deformations plastiques.
 101 :       Eo=parahot3(i1,ntot)
 102 :       poison=parahot3(i2,ntot)
 103 :       rloc=r1/Eo
 104 : c     calcul de la matrice D-1 pour relation sigma effectif - eps et calcul
 105 : c     de eps elastique en fonction de sigma effectif
 106 :       do iloc=i1,i6
 107 :         do jloc=i1,i6
 108 :           HINV3(iloc,jloc) = r0
 109 :         end do
 110 :       end do
 111 : 
 112 :       Hinv3(i1,i1)=rloc               
 113 :       Hinv3(i2,i2)=rloc
 114 :       Hinv3(i3,i3)=rloc              
 115 :       Hinv3(i1,i2)=-rloc*poison
 116 :       Hinv3(i2,i1)=-rloc*poison
 117 :       Hinv3(i1,i3)=-rloc*poison
 118 :       Hinv3(i3,i1)=-rloc*poison
 119 :       Hinv3(i2,i3)=-rloc*poison
 120 :       Hinv3(i3,i2)=-rloc*poison
 121 :       Hinv3(i4,i4)=2.0d0*(r1+poison)*rloc
 122 :       Hinv3(i5,i5)=2.0d0*(r1+poison)*rloc
 123 :       Hinv3(i6,i6)=2.0d0*(r1+poison)*rloc
 124 : 
 125 : c     Effective stress in compression at the end of the step
 126 :       do iloc=i1,i6
 127 :         parahot3(29+iloc,ntot) = parahot3(23+iloc,ntot)
 128 :       end do
 129 : c     Effective stress at the end of the step
 130 :       do iloc=i1,i6
 131 :         PARAHOT3(idimpara3-48+iloc,ntot) = 
 132 :      .    PARAHOT3(idimpara3-i7+iloc,ntot)
 133 :       end do
 134 :       do iloc=i1,i6
 135 :         esigma6v(iloc) = PARAHOT3(idimpara3-i7+iloc,ntot)
 136 :       end do
 137 : 
 138 : c     eps,el = sigma,eff / C0     and not      sigma / C0      because damage
 138 :       call mulAB(Hinv3,esigma6v,trav3,i6,i6,i6,i1)            
 139 : c                [6;6] x [6;1] = [6;1]
 140 :       do iloc=i1,i6
 141 :         EPSSIG6(iloc) = PARAHOT3(idimpara3-19+iloc,ntot) - 
 142 :      .                     PARAHOT3((17+iloc),ntot)
 143 :         EPSIPL6(iloc) = EPSSIG6(iloc) - TRAV3(iloc)
 144 :       end do
 145 : 
 146 : c     Here is pseudo incremental plasticity for variable temperatures.
 147 : c     ----------------------------------------------------------------
 148 : c     The starting point is the plastic strain vector,
 149 : C       corresponding to a zero stress vector
 150 : 
 151 : c     initial strain = plastic strain
 152 :       do iloc=i1,i6
 153 :         PARAHOT3(idimpara3-25+iloc,ntot) = EPSIPL6(iloc)
 154 :       end do
 155 : c      if (lcp) then
 156 : c        parahot2(idimpara2-10,ntot) = EPSIPL6(1)
 157 : c        parahot2(idimpara2-9,ntot) = EPSIPL6(2)
 158 : c        parahot2(idimpara2-8,ntot) = EPSIPL6(4)
 159 : c      endif
 160 : 
 161 : 
 162 :       return
 163 :       end
 164 :             
 165 :  

© Cast3M 2003 - All rights reserved.
Disclaimer