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