Télécharger mater3tg.eso

Retour à la liste

Numérotation des lignes :

  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
  139. call mulAB(Hinv3,esigma6v,trav3,i6,i6,i6,i1)
  140. c [6;6] x [6;1] = [6;1]
  141. do iloc=i1,i6
  142. EPSSIG6(iloc) = PARAHOT3(idimpara3-19+iloc,ntot) -
  143. . PARAHOT3((17+iloc),ntot)
  144. EPSIPL6(iloc) = EPSSIG6(iloc) - TRAV3(iloc)
  145. end do
  146.  
  147. c Here is pseudo incremental plasticity for variable temperatures.
  148. c ----------------------------------------------------------------
  149. c The starting point is the plastic strain vector,
  150. C corresponding to a zero stress vector
  151.  
  152. c initial strain = plastic strain
  153. do iloc=i1,i6
  154. PARAHOT3(idimpara3-25+iloc,ntot) = EPSIPL6(iloc)
  155. end do
  156. c if (lcp) then
  157. c parahot2(idimpara2-10,ntot) = EPSIPL6(1)
  158. c parahot2(idimpara2-9,ntot) = EPSIPL6(2)
  159. c parahot2(idimpara2-8,ntot) = EPSIPL6(4)
  160. c endif
  161.  
  162.  
  163. return
  164. end
  165.  
  166.  
  167.  

© Cast3M 2003 - Tous droits réservés.
Mentions légales