Télécharger damstc.eso

Retour à la liste

Numérotation des lignes :

  1. C DAMSTC SOURCE PV 07/11/23 21:16:17 5978
  2. C---------------------------------------------------------------------
  3. C
  4. C
  5. SUBROUTINE DAMSTC (ISTEG, ITERA,
  6. . NCRIT, NDIME, NDIM1, NSTRE, NSTR1, NTEMP,
  7. . AVALC, AVALT, BPCOM, BVALC, BVALT,
  8. . DAMAC, DAMAT, DMATX, DSTRA, DSIGT, EBOU1,
  9. . EQUIC, EQUIT,
  10. . POISS, SGEFF, SGTOT, STRIN, TANGB,
  11. . THREC, THRET, THRUC, THR0C, THR0T, YOUNG,
  12. . STYPE)
  13. C
  14. C=====================================================================
  15. C =
  16. C THIS SUBROUTINE DETERMINES IF THE GAUSS POINT IS DAMAGED OR =
  17. C PLASTIFIED. RATE EFFECTS ARE ALSO TAKEN INTO ACCOUNT. =
  18. C =
  19. C NCRIT = 1 DAMAGE MODEL (TENSION (EXPONENTIAL), DT =
  20. C COMPRESSION , DC) =
  21. C =
  22. C NCRIT = 2 DAMAGE MODEL (TENSION (LINEAR), DT =
  23. C COMPRESSION , DC) =
  24. C VARIABLES: =
  25. C =
  26. C DMATX ELASTIC CONSTITUTIVE MATRIX =
  27. C DSTRA DIFFERENTIAL STRAIN =
  28. C BETAM ROTATION MATRIX =
  29. C PROSI & SOXYZ AUXILIAR MATRICES FOR ROTATION =
  30. C STRIN INITIAL STRESSES (TEMPERATURE) =
  31. C =
  32. C - TENSION - =
  33. C EQUIT CURRENT EQUIVALENT STRAIN =
  34. C DAMAT DAMAGE INTERNAL VARIABLE =
  35. C THRET THRESHOLD FOR DAMAGE =
  36. C AVALT PARAMETER AT (LINEAR + EXPON.) =
  37. C BVALT PARAMETER BT (LINEAR) =
  38. C SGTEN POSITIVE STRESSES =
  39. C =
  40. C - COMPRESSION - =
  41. C EQUIC CURRENT EQUIVALENT STRAIN =
  42. C DAMAC DAMAGE INTERNAL VARIABLE =
  43. C THREC THRESHOLD FOR DAMAGE =
  44. C AVALC PARAMETER AC =
  45. C BVALC " BC =
  46. C SGCOM NEGATIVE STRESSES =
  47. C =
  48. C SGEFF EFFECTIVE STRESS=DO:E-SOP =
  49. C SGTOT FINAL CAUCHY STRESSES =
  50. C =
  51. C ALL STRESSES ACCORDING TO: =
  52. C =
  53. C STRES = (SXX, SYY, SZZ, SXY, SXZ, SYZ) NSTRE=6 =
  54. C STRES = (SRR, SZZ, SRZ, S00) NSTRE=4 =
  55. C STRES = (SXX, SYY, SZZ, SXY) NSTRE=3 =
  56. C =
  57. C AUTHOR: RUI FARIA VERSION: 96.09.14 =
  58. C -------- =
  59. C=====================================================================
  60. C
  61. IMPLICIT INTEGER(I-N)
  62. IMPLICIT real*8 (a-h,o-z)
  63. INTEGER*4 ISTEG, ITERA, NTEMP
  64. INTEGER*4 NCRIT, NDIME, NDIM1, NSTRE, NSTR1
  65. REAL*8 AVALC, AVALT, BPCOM, BVALT, BVALC, DAMAC,
  66. . DAMAT, EBOU1, EQUIC, EQUIT,
  67. . GVALC,
  68. . HVALC, POISS, STRIN, TANGB, THREC, THRET,
  69. . THRUC, THR0C, THR0T, YOUNG, DSIGT(NSTR1),
  70. . DSTRA (NSTR1), SGEFF (NSTR1), SGTOT (NSTR1),
  71. . DMATX (NSTRE,NSTRE)
  72. C
  73. INTEGER*4 ISTR1, NTENS, NCOMP
  74. REAL*8 EUTRI, POWER, PROV1,
  75. . REDTE, REDCO, ZEROM,
  76. . SGCOM (6), SGTEN (6), STRIA (6),
  77. . BETAM (3,3), PROSI (3,3), SOXYZ (3,3)
  78. C
  79. PARAMETER (ZEROM = 1.0 D-10)
  80. CHARACTER*6 STYPE
  81. C
  82. C
  83. C=====----------------------------------------------------------------
  84. C NEW TRIAL STRESS TENSOR |
  85. C=====----------------------------------------------------------------
  86. C
  87. CALL MATVE1 (DMATX,DSTRA,NSTR1,NSTR1,DSIGT,1)
  88. C
  89. c
  90. DO ISTR1 = 1, NSTR1
  91. STRIA (ISTR1) = SGEFF (ISTR1) + DSIGT (ISTR1)
  92. SGEFF (ISTR1) = STRIA (ISTR1)
  93. END DO
  94. c
  95. CALL PARTIT (NDIME, NSTR1, NTENS, NCOMP,
  96. . BETAM, SGEFF, SGTEN, SGCOM)
  97. C=====----------------------------------------------------------------
  98. C == COMPRESSION == |
  99. C=====----------------------------------------------------------------
  100. C CONTROL OF POSSIBLE NO-EXISTENCE OF DAMAGE AND PLASTICITY |
  101. C=====----------------------------------------------------------------
  102. IF (NCOMP .GT. 0) THEN
  103. c
  104. CALL EQUIST (SGCOM, TANGB, YOUNG, -1, EQUIC)
  105. ELSE
  106. EQUIC = 0.0 D0
  107. GO TO 2002
  108. END IF
  109. C=====----------------------------------------------------------------
  110. C CONTROL IF PLASTICITY IS DESIRED |
  111. C=====----------------------------------------------------------------
  112. C
  113. c
  114. IF (BPCOM .EQ. 0.0 D0) GO TO 2002
  115. IF (EQUIC .LE. THREC) GO TO 2002
  116. C
  117. C=====----------------------------------------------------------------
  118. C CONTROL OF POWER CONDITION |
  119. C=====----------------------------------------------------------------
  120. POWER = 0.0 D0
  121. EUTRI = 0.0 D0
  122. DO ISTR1 = 1, NSTR1
  123. PROV1 = STRIA (ISTR1)
  124. POWER = POWER + PROV1 * DSTRA (ISTR1)
  125. EUTRI = EUTRI + PROV1**2
  126. END DO
  127. C
  128. EUTRI = SQRT (EUTRI)
  129. C
  130. IF (POWER .LE. 0.0 D0) GO TO 2002
  131. C=====----------------------------------------------------------------
  132. C POSSIBLE UPDATING OF EFFECTIVE STRESSES (PLASTIC EVOLUTION) |
  133. C=====----------------------------------------------------------------
  134. PROV1 = 1.0 D0 - BPCOM * POWER / EUTRI**2
  135. C
  136. IF (PROV1 .LT. 0.0 D0) THEN
  137. PROV1 = 1.0 D0
  138. END IF
  139. C
  140. DO ISTR1 = 1, NSTR1
  141. SGEFF (ISTR1) = STRIA (ISTR1) * PROV1
  142. END DO
  143. C
  144. CALL PARTIT (NDIME, NSTR1, NTENS, NCOMP,
  145. . BETAM, SGEFF, SGTEN, SGCOM)
  146. C
  147. IF (NCOMP .GT. 0) THEN
  148. CALL EQUIST (SGCOM, TANGB, YOUNG, -1, EQUIC)
  149. C
  150. IF (EQUIC .LT. THREC) THEN
  151. DO ISTR1 = 1, NSTR1
  152. SGEFF (ISTR1) = STRIA (ISTR1)
  153. END DO
  154. C
  155. CALL PARTIT (NDIME, NSTR1, NTENS, NCOMP,
  156. . BETAM, SGEFF, SGTEN, SGCOM)
  157. CALL EQUIST (SGCOM, TANGB, YOUNG, -1, EQUIC)
  158. C
  159. END IF
  160. GO TO 2002
  161. ELSE
  162. DO ISTR1 = 1, NSTR1
  163. SGEFF (ISTR1) = STRIA (ISTR1)
  164. END DO
  165. C
  166. CALL PARTIT (NDIME, NSTR1, NTENS, NCOMP,
  167. . BETAM, SGEFF, SGTEN, SGCOM)
  168. C
  169. EQUIC = 0.0 D0
  170. GO TO 2002
  171. END IF
  172. C
  173. 2002 CONTINUE
  174. C
  175. C=====----------------------------------------------------------------
  176. C CHECKING FOR DAMAGE AND UPDATING OF INTERNAL VARIABLES |
  177. C=====----------------------------------------------------------------
  178. C
  179. IF (EQUIC .GE. THREC) THREC = EQUIC
  180. C
  181. DAMAC = 1.0 D0 - THR0C / THREC * (1.0 D0 - AVALC) -
  182. . AVALC * EXP (BVALC*(THR0C-THREC))
  183. C
  184. IF (DAMAC .GT. 1.0 D0) DAMAC = 1.0 D0
  185. IF (DAMAC .LT. 0.0 D0) DAMAC = 0.0 D0
  186. C
  187. C=====----------------------------------------------------------------
  188. C == TENSION == |
  189. C=====----------------------------------------------------------------
  190. IF (NTENS .GT. 0) THEN
  191. CALL EQUIST (SGTEN, TANGB, YOUNG, +1, EQUIT)
  192. ELSE
  193. EQUIT = 0.0 D0
  194. END IF
  195. C=====----------------------------------------------------------------
  196. C CHECKING FOR DAMAGE AND UPDATING OF INTERNAL VARIABLES |
  197. C=====----------------------------------------------------------------
  198. C
  199. IF (EQUIT .GE. THRET) THRET = EQUIT
  200. C
  201. IF (NCRIT .EQ. 1) THEN
  202. PROV1 = THR0T / THRET
  203. DAMAT = 1.0 D0 - PROV1 * EXP (AVALT*(1.0D0-1.0D0/PROV1))
  204. END IF
  205. IF (NCRIT .EQ. 2) THEN
  206. DAMAT = 1.0 D0 - AVALT / THRET + BVALT
  207. END IF
  208. C
  209. IF (DAMAT .GT. 1.0 D0) DAMAT = 1.0 D0
  210. IF (DAMAT .LT. 0.0 D0) DAMAT = 0.0 D0
  211. C=====----------------------------------------------------------------
  212. C ROTATION OF POSITIVE EFFECTIVE STRESS TENSOR, FROM EIGEN TO |
  213. C GLOBAL SYSTEM |
  214. C=====----------------------------------------------------------------
  215. CALL EIGGLO (NDIME, NSTR1, NTENS,
  216. . BETAM, PROSI, SGTEN, SOXYZ)
  217. C=====----------------------------------------------------------------
  218. C NEGATIVE EFFECTIVE STRESS TENSOR |
  219. C=====----------------------------------------------------------------
  220. DO ISTR1 = 1, NSTR1
  221. SGCOM (ISTR1) = SGEFF (ISTR1) - SGTEN (ISTR1)
  222. END DO
  223. C=====----------------------------------------------------------------
  224. C COMPUTE CAUCHY STRESSES ACCORDING TO DAMAGE AND PLASTICITY |
  225. C=====----------------------------------------------------------------
  226. REDTE = 1.0 D0 - DAMAT
  227. REDCO = 1.0 D0 - DAMAC
  228. C
  229. eps1=0.d0
  230. eps2=0.d0
  231. DO ISTR1 = 1, NSTR1
  232. SGTOT (ISTR1) = REDTE * SGTEN (ISTR1) + REDCO * SGCOM (ISTR1)
  233. eps1=eps1+(SGTOT(ISTR1)-STRIA(ISTR1))**2
  234. eps2=eps2+SGTOT(ISTR1)**2
  235. END DO
  236.  
  237. C
  238. RETURN
  239. END
  240.  
  241.  
  242.  
  243.  
  244.  
  245.  
  246.  

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