Télécharger damatc.eso

Retour à la liste

Numérotation des lignes :

  1. C DAMATC SOURCE CB215821 16/04/21 21:16:14 8920
  2. SUBROUTINE DAMATC(IFOUR,XMAT,DDHOOK,LHOOK,SIG0,VAR0,
  3. > DEPST,DSIGT,EPST0,EPIN0, SIGF,VARF,DEFP)
  4. *--------------------------------------------------------------------*
  5. IMPLICIT INTEGER(I-N)
  6. IMPLICIT REAL*8(A-H,O-Z)
  7. INTEGER IFOUR, LHOOK, NCRIT
  8. REAL*8 AVALC, AVALT, BVALC, BVALT, BPCOM, DVOLU,
  9. . FTULT, FC01D, FCU1D, GVALT, HLENG,
  10. . POISS, RHO, REDUC, RAT45, STRAU, STRAP, STREP, STRA1,
  11. . STRE1, STRA2, STRE2, STRU0, STRIN, SIG0(LHOOK),
  12. . TANGB, THR0T, YOUNG, VAR0(*), XMAT(*)
  13. C
  14. INTEGER IDIM, ISTEG, ITERA, IRTD, KCAS, NDIME, NDIM1, NTEMP
  15. REAL*8 ATINV, CONS0, CONS1, CONS2, CONS3, CLENG,
  16. . DAMAT, DAMAC, DEFP(LHOOK), DEPST(LHOOK), DSIGT(LHOOK),
  17. . DYOUN, DDHOOK(LHOOK,LHOOK), EPST0(LHOOK), EPIN0(LHOOK),
  18. . EQUIC, EXTCT, EXTTS, EQUIT, EBOU1, GTESP, HBOUN,
  19. . PROVI, ROOT2, ROO13, ROO23, SIGF(LHOOK),
  20. . THR0C, THRUC, THRET, THREC, VARF(*), ZEROM
  21. C
  22. CHARACTER*8 STYPE
  23. C
  24. PARAMETER (ROOT2 = 1.414213562373090 D0,
  25. & ROO13 = 0.577350269189626 D0,
  26. & ROO23 = 0.816496580927726 D0,
  27. & ZEROM = 1.0 D-10)
  28. C
  29. *--------------------------------------------------------------------*
  30. * INPUT: XMAT=material parameter
  31. * XMAT( 1)='YOUN' ! Young Modulus
  32. * XMAT( 2)='NU ' ! Poisson coefficient
  33. * XMAT( 3)='RHO ' ! Density
  34. * XMAT( 4)='ALPH' ! Thermal coefficient
  35. * XMAT( 5)='HLEN' ! Effective length
  36. * XMAT( 6)='GVAL' ! Fracture energy
  37. * XMAT( 7)='FTUL' ! Tensile stress
  38. * XMAT( 8)='REDC' ! Drop Factor for Peak Tensile Stress
  39. * XMAT( 9)='FC01' ! Elastic Limit Compressive Stress
  40. * XMAT(10)='RT45' ! Equi-biaxial Compressive Ratio
  41. * XMAT(11)='FCU1' ! Compressive Peak Stress
  42. * XMAT(12)='STRU' ! Ultimate Limit Strain
  43. * XMAT(13)='EXTP' ! Reference Strain for Plastic Parameter
  44. * XMAT(14)='STRP' ! Reference Stress for Plastic Parameter
  45. * XMAT(15)='EXT1' ! Fitting Point 1 (Strain)
  46. * XMAT(16)='STR1' ! Fitting Point 1 (Stress)
  47. * XMAT(17)='EXT2' ! Fitting Point 2 (Strain)
  48. * XMAT(18)='STR2' ! Fitting Point 2 (Stress)
  49. * XMAT(19)='NCRI' ! Tensile Softening Criteria (1=Expon./2=Lin.)
  50. *
  51. * XMAT(20)='TANB' ! Drucker-Prager Tangent
  52. * XMAT(21)='BPLC' ! Plastic Compressive Parameter
  53. * XMAT(22)='TR0T' ! Initial Tension Damage Threshold
  54. * XMAT(23)='TR0C' ! Initial Compression Damage Threshold
  55. * XMAT(24)='TRUC' ! Ultimate Compression Damage Threshold
  56. * XMAT(25)='AVAT' ! "A" Parameter for Tension
  57. * XMAT(26)='BVAT' ! "B" Parameter for Tension
  58. * XMAT(27)='AVAC' ! "A" Parameter for Compression
  59. * XMAT(28)='BVAC' ! "B" Parameter for Compression
  60. * XMAT(29)='DVOL' ! Volume of a finite element
  61. *
  62. * DDHOOK=Hooke matrix
  63. *
  64. * VAR0: internal variable
  65. * VAR0(1)='THRT' ! Tension theshold
  66. * VAR0(2)='EQUT' ! Tension equivalent strain
  67. * VAR0(3)='DAMT' ! Tension damage
  68. * VAR0(4)='THRC' ! Compre. theshold
  69. * VAR0(5)='EQUC' ! Compre. equivalent strain
  70. * VAR0(6)='DAMC' ! Compre. damage
  71. *--------------------------------------------------------------------*
  72. C
  73. IDIM=2
  74. IF(IFOUR.EQ.2)IDIM=3
  75. NDIME = IDIM
  76. NDIM1 = NDIME + 1
  77. C
  78. C COMPULSORY CARACTERISTICS
  79. C
  80. YOUNG = XMAT(1)
  81. POISS = XMAT(2)
  82. RHO = XMAT(3)
  83. C ALPHA = XMAT(4)
  84. C
  85. HLENG = XMAT(5)
  86. GVALT = XMAT(6)
  87. FTULT = XMAT(7)
  88. REDUC = XMAT(8)
  89. FC01D = XMAT(9)
  90. RAT45 = XMAT(10)
  91. FCU1D = XMAT(11)
  92. STRAU = XMAT(12)
  93. STRAP = XMAT(13)
  94. STREP = XMAT(14)
  95. STRA1 = XMAT(15)
  96. STRE1 = XMAT(16)
  97. STRA2 = XMAT(17)
  98. STRE2 = XMAT(18)
  99. NCRIT = nint(XMAT(19))
  100. C
  101. DVOLU = XMAT(29)
  102. C
  103. C FACULTATIVE CARACTERISTICS
  104. C
  105. DYOUN = SQRT (YOUNG)
  106. THR0T = ABS(FTULT/DYOUN)
  107. C
  108. C=====----------------------------------------------------------------
  109. C EVALUATING PRELIMINAR QUANTITIES FOR PLASTIC-VISCOUS-DAMAGE MODEL |
  110. C (INITIAL AND FINAL NONLINEAR THRESHOLDS AND PLASTIC PARAMETER) |
  111. C=====----------------------------------------------------------------
  112. C
  113. CONS0 = FC01D / YOUNG
  114. C
  115. r_z = 1.D0 / (1.0 D0 - 2.0 D0 * RAT45)
  116. TANGB = ROOT2 * (1.0D0 - RAT45) * r_z
  117. PROVI = ROO23 * RAT45 * r_z
  118.  
  119. IF(PROVI*FC01D.LT.0.D0) THEN
  120. write (*,'(/,''*** PROVI*FC01D is negative ***'')')
  121. CALL ERREUR(5)
  122. RETURN
  123. ENDIF
  124.  
  125. THR0C = SQRT (PROVI*FC01D)
  126.  
  127. C
  128. BPCOM = YOUNG * FCU1D * (STRAP - STREP / YOUNG) /
  129. . ((STRAP - CONS0) * (STREP + FCU1D))
  130. C
  131. CONS1 = YOUNG - BPCOM
  132. CONS2 = BPCOM * CONS0
  133. CONS3 = ROO13 * TANGB - ROO23
  134. C
  135. r_z = CONS1 * STRAU + CONS2
  136. THRUC = SQRT (ABS (PROVI*r_z))
  137. C
  138. C=====----------------------------------------------------------------
  139. C EVALUATION OF PARAMETERS AVALC & BVALC & ... |
  140. C=====----------------------------------------------------------------
  141. C
  142. CALL DAM_AB (AVALC, BVALC, CONS1, CONS2, CONS3, EBOU1,
  143. . HBOUN, STRA1, STRA2, STRE1, STRE2, THR0C)
  144. C
  145. EBOU1 = 1.0 D+33
  146. C
  147. C=====================================================================
  148. C DEFINITION OF L* AND TENSION SOFTENING PARAMETERS. =
  149. C=====================================================================
  150. C
  151. C=====----------------------------------------------------------------
  152. C CHARACTERISTIC LENGTH, IF NOT PREVIOUSLY SPECIFIED OR EVALUATED |
  153. C=====----------------------------------------------------------------
  154. C
  155. IF (HLENG .EQ. 0.0 D0) THEN
  156. IF (DVOLU .EQ. 0.0 D0) THEN
  157. write (*,'(/,''*** DVOLU or HLENG is unidentified ***'')')
  158. CALL ERREUR(5)
  159. RETURN
  160. ENDIF
  161. CLENG = DVOLU**(1.0D0/FLOAT(NDIME))
  162. ELSE
  163. CLENG = HLENG
  164. ENDIF
  165. C
  166. GTESP = GVALT / CLENG
  167. C
  168. IF (NCRIT .EQ. 1 ) THEN
  169. C
  170. ATINV = GTESP / (THR0T **2) - 0.5 D0
  171. IF (ATINV .LE. 0.0 D0) ATINV = ZEROM
  172. AVALT = 1.0 D0 / ATINV
  173. ELSE IF (NCRIT .EQ. 2) THEN
  174. C
  175. EXTCT = FTULT / YOUNG
  176. EXTTS = 1.0 D0 / REDUC * (2.0 D0 * GTESP / FTULT -
  177. . (1.0 D0 - REDUC) * EXTCT )
  178. IF (EXTTS .LE. EXTCT) EXTTS = EXTCT + ZEROM
  179. BVALT = REDUC * EXTCT / (EXTTS - EXTCT)
  180. AVALT = BVALT * EXTTS * DYOUN
  181. ELSE
  182. write(*,'(/,''*** NCRIT : valeur incorrecte ***'')')
  183. CALL ERREUR(5)
  184. RETURN
  185. C
  186. END IF
  187. C
  188. C calcul de la matrice elastique
  189. STYPE = 'ISOTROPE'
  190. KCAS=1
  191. IRTD=1
  192. CALL DOHMAS (XMAT,STYPE,IFOUR,LHOOK,KCAS,DDHOOK,IRTD)
  193. IF (IRTD.EQ.0) THEN
  194. CALL ERREUR(5)
  195. RETURN
  196. ENDIF
  197. C
  198. IF (IFOUR.EQ.-2) THEN
  199. STYPE = 'PSTRES'
  200. ELSEIF ((IFOUR.EQ.-1).OR.(IFOUR.EQ.-3)) THEN
  201. STYPE = 'PSTRAI'
  202. ELSEIF (IFOUR.EQ. 0) THEN
  203. STYPE = 'AXISYM'
  204. ENDIF
  205. C
  206. C ENFORCE NO INITIAL STRESSES DUE TO TEMPERATURE.....
  207. NTEMP = 0
  208. ISTEG = 0
  209. ITERA = 0
  210. STRIN = 0.D0
  211. C
  212. THRET = VAR0(1)
  213. EQUIT = VAR0(2)
  214. DAMAT = VAR0(3)
  215. THREC = VAR0(4)
  216. EQUIC = VAR0(5)
  217. DAMAC = VAR0(6)
  218. C
  219. IF (THRET.EQ.0.) THRET = THR0T
  220. IF (THREC.EQ.0.) THREC = THR0C
  221. C
  222. do IE1=1,LHOOK
  223. EPST0(IE1)=EPST0(IE1)-EPIN0(IE1)
  224. enddo
  225. CALL MATVE1 (DDHOOK,EPST0,LHOOK,LHOOK,SIG0,1)
  226. C
  227. CALL DAMSTC (ISTEG, ITERA,
  228. . NCRIT, NDIME, NDIM1, LHOOK, LHOOK, NTEMP,
  229. . AVALC, AVALT, BPCOM, BVALC, BVALT,
  230. . DAMAC, DAMAT, DDHOOK, DEPST, DSIGT, EBOU1,
  231. . EQUIC, EQUIT,
  232. . POISS, SIG0 , SIGF , STRIN, TANGB,
  233. . THREC, THRET, THRUC, THR0C, THR0T, YOUNG,
  234. . STYPE)
  235. C
  236. VARF(1) = THRET
  237. VARF(2) = EQUIT
  238. VARF(3) = DAMAT
  239. VARF(4) = THREC
  240. VARF(5) = EQUIC
  241. VARF(6) = DAMAC
  242. C
  243. IF (IFOUR.EQ.-2)THEN
  244. CALL INVALM(DDHOOK,LHOOK,2,IRTD,1.d-8)
  245. DDHOOK(4,4)=1.D0/DDHOOK(4,4)
  246. ELSE
  247. CALL INVALM(DDHOOK,LHOOK,LHOOK,IRTD,1.d-8)
  248. ENDIF
  249. c
  250. CALL MATVE1(DDHOOK,SIG0,LHOOK,LHOOK,DEFP,1)
  251. c
  252. do IE1=1,LHOOK
  253. DEFP(IE1)=EPST0(IE1)+DEPST(IE1)-DEFP(IE1)
  254. enddo
  255. c
  256. RETURN
  257. END
  258.  
  259.  
  260.  
  261.  
  262.  

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