Télécharger hinte.eso

Retour à la liste

Numérotation des lignes :

  1. C HINTE SOURCE CB215821 16/04/21 21:17:03 8920
  2. C*************************************************************
  3. SUBROUTINE HINTE(SIG0,NSTRS,DSIGT,VAR0,NVARI,XMAT,NCOMAT,
  4. . XCAR,SIGF,VARF,DEFP,PRECIS,MFR,KERRE)
  5. C*************************************************************
  6. C L GORNET VERSION DL/LG MacNu modif 97 ECNantes
  7. C Version 1D de interface (ginte.eso)
  8. C ENTREES
  9. C -------
  10. C SIG0 (NSTRS) :Contraintes initiales
  11. C DSIGT (NSTRS) :Increment de(deformations 97)
  12. C VAR0 (NVARI) :Variables internes
  13. C
  14. C XMAT (NCOMAT) :Composantes materiaux
  15. C PRECIS : Prec integration locale
  16. C
  17. C SORTIES
  18. C -------
  19. C SIGF :Contraintes finales
  20. C VARF : V Interne a t + dt
  21. C DEFP : Def Plastiques t + dt
  22. C MFR :
  23. C KERRE :
  24. C
  25. C***********************************************************************
  26. IMPLICIT INTEGER(I-N)
  27. -INC CCOPTIO
  28. REAL*8 SIG0(*),VAR0(*),XMAT(*),XCAR(*)
  29. REAL*8 SIGF(*),VARF(*),DEFP(*),DSIGT(*)
  30. REAL*8 PRECIS,ZOB,AL
  31. INTEGER NSTRS,NVARI,NCOMAT,KERRE,MFR
  32. C++++++++ VARIABLES COMPORTEMENT +++++++++++++
  33.  
  34. REAL*8 DSIGTL(6),SIG0L(6),SIGFL(6)
  35. REAL*8 SIG0T(6),DSIGTT(6),SIGFT(6)
  36.  
  37. C NVARI =10
  38. C NCOMAT=10
  39. C cos directeur de la premiere direction
  40. C XMAT(6) cos tet sur x
  41. C XMAT(7) sin tet sur y
  42.  
  43.  
  44. REAL*8 d3R,d1R,YDBR,d3,d1,YDB, WWY
  45. REAL*8 K10,K30
  46. REAL*8 SU3,SU1,SUD3,SUD1
  47. REAL*8 GA1,GA2
  48. REAL*8 ann,Y0,YC,YDBPR,YDBP
  49. REAL*8 ZX1,ZX3
  50. REAL*8 Y0P,YCP
  51. REAL*8 YD1,YD3,DCRI
  52. C
  53. C PRINT*,'+++++++++ HINTE ++++++++++++'
  54. C PRINT*,' '
  55. C PRINT*,' NSTRS= ',NSTRS,' NVARI= ',NVARI
  56. C PRINT*,' NCOMAT= ',NCOMAT,' PRECIS= ',PRECIS
  57. C PRINT*,' MFR= ',MFR,' KERRE= ',KERRE
  58. C
  59. C DO I= 1,NCOMAT
  60. C PRINT*,'XMAT(',I,') :',XMAT (I)
  61. C
  62. C END DO
  63. C +++++++++++++++++++ INTERGRATION LOCALE ++++++++
  64. C VERIF DE LA RUPTURE
  65. C234567
  66. d3 = VAR0(2)
  67. d1 = VAR0(4)
  68. YDB = VAR0(5)
  69.  
  70. YDBPR = VAR0(5)
  71. d3R = VAR0(2)
  72. d1R = VAR0(4)
  73.  
  74.  
  75. IF ( (d3. eq. 1.0D0 ) ) THEN
  76. DO I= 1,NSTRS
  77. SIGF(I)= 1.0D-15
  78. END DO
  79. DO I= 2,NVARI
  80. VARF(I)= VAR0(I)
  81. END DO
  82. C PRINT*,'>>>> SORTIE GINTE RUPTURE 1<<<<<'
  83.  
  84.  
  85. RETURN
  86. ENDIF
  87.  
  88. K10 = XMAT(1)
  89. K30 = XMAT(2)
  90. GA1 = XMAT(5)
  91. AL = XMAT(6)
  92. DCRI = XMAT(7)
  93. C Parametre utile pour une rupture fragile <1
  94. ann = XMAT(8)
  95. Y0 = XMAT(9)
  96. YC = XMAT(10)
  97. C
  98. Y0P = Y0**ann
  99. YCP = YC**ann
  100.  
  101. C SAUT DE U
  102. SU3 = SIG0(2) / ( K30 * (1.0D0 - d3))
  103.  
  104. SU1 = SIG0(1) / ( K10 * (1.0D0 - d1))
  105. C SAUT DE DU Prediction
  106.  
  107.  
  108. CVersion 97 DSIGT est la deformation a l appel
  109. C apres DSIGT est la contrainte!!!!!
  110. DSIGT(2) = K30 * (1.0D0 - d3) * DSIGT(2)
  111. DSIGT(1) = K10 * (1.0D0 - d1) * DSIGT(1)
  112.  
  113.  
  114. C Version 96 DSIGT contrainte
  115. C Version classique
  116.  
  117.  
  118. SUD3 = DSIGT(2) / ( K30 * (1.0D0 - d3))
  119. SUD1 = DSIGT(1) / ( K10 * (1.0D0 - d1))
  120.  
  121. C
  122. ZX1 = SU1 + SUD1
  123. ZX3 = SU3 + SUD3
  124.  
  125.  
  126. C Variable pilotes99-5
  127. IF(( (ABS( ZX1 ) ) .le. 1.0D-15)) THEN
  128. YD1 = 0.0D0
  129. ELSE
  130. YD1 = 0.5D0 * K10 * ( ZX1 )**(2.)
  131. ENDIF
  132. C99-5
  133. IF( (( ABS( ZX3 ) ) .le. 1.0D-15).OR.(ZX3 .lt .0.D0)) THEN
  134. YD3 = 1.0D-15
  135. ELSE
  136. YD3 = 0.5D0 * K30 * ( ZX3 )**(2.)
  137. ENDIF
  138. C
  139. C print*, ' K30, K20,K10', K30, K20,K10
  140. C print*,'SU3 SU2 SU1',SU3 , SU2 , SU1
  141. C print*,' SUD3 , SUD2, SUD1',SUD3 , SUD2, SUD1
  142. C print*,' YD1 YD2 YD3', YD1, YD2, YD3
  143. C print*,'GA1 GA2', GA1, GA2
  144. C COMPRESSION NORMALE
  145. IF ( YD3 .le. 0.0D0) THEN
  146. YD3 = 0.0D0
  147. YDB = (GA1 * YD1 )**AL
  148. ELSE
  149. YDB = YD3**AL + (GA1 * YD1 )**AL
  150. ENDIF
  151. C
  152. YDBP = YDB**(1.0D0/AL)
  153.  
  154. C ENDO A PROGRESSE OU PAS
  155. C234567
  156. C PRINT*,'YDBPR',YDBPR,'YDBP ',YDBP,'Y0P ',Y0P
  157. C
  158. IF ( ((YDBP .le. YDBPR ).AND.( YDBP .ge.Y0 ))
  159. & .OR. ( YDBP .ge. YDBPR ).AND.( YDBP .le.Y0 )) THEN
  160. DO I= 1,NSTRS
  161. SIGF(I)= SIG0(I) + DSIGT(I)
  162. END DO
  163. C
  164. DO I= 2,NVARI
  165. VARF(I)= VAR0(I)
  166. END DO
  167. C PRINT*,'>>>> PAS D EVOLUTION DE L ENDO 1 <<<<<'
  168. C PRINT*,'YDBPR',YDBPR,'YDBP ',YDBP,'Y0P ',Y0P
  169. RETURN
  170. ELSEIF ( (YDBP .le. YDBPR ).AND.( YDBP .le.Y0 ) ) THEN
  171. DO I= 1,NSTRS
  172. SIGF(I)= SIG0(I) + DSIGT(I)
  173. END DO
  174.  
  175. IF (((SIG0(2)+DSIGT(2)).lt. 0.0D0))THEN
  176. C
  177. SIGF(2)= SIG0(2) + DSIGT(2)
  178. ELSE
  179. SIGF(2)= (SIG0(2) + DSIGT(2) )
  180. ENDIF
  181. DO I= 2,NVARI
  182. VARF(I)= VAR0(I)
  183. END DO
  184. C PRINT*,'>>>> PAS D EVOLUTION DE L ENDO 2<<<<<'
  185. RETURN
  186.  
  187. ELSEIF ((YDBP .ge. YDBPR ).AND.( YDBP .ge.Y0))THEN
  188.  
  189.  
  190. WWY =((ann/(ann+1.0D0) )*(YDBP - Y0 )/( YC - Y0) )**ann
  191. C PRINT*,' WWY : ', WWY,YDBP,Y0P,YCP
  192.  
  193. IF ( (WWY .lt. (1.0D0)).AND.(WWY .gt. (0.0D0)) ) THEN
  194. C Calcul de l endo
  195. d3 = WWY
  196. d1 = WWY
  197.  
  198. IF (d3.ge. DCRI) THEN
  199. WWY = 1.0D0
  200. d1 = 1.0D0
  201. d3 = 1.0D0
  202. YDBP = ( YC - Y0 )*((ann + 1.0D0 )/ann) + Y0
  203. ENDIF
  204. IF (d1.ge. DCRI) THEN
  205. C PRINT*,'RUPTURE FORCEE'
  206. WWY = 1.0D0
  207. d1 = 1.0D0
  208. d3 = 1.0D0
  209. YDBP =( YC - Y0 )*((ann + 1.0D0 )/ann) + Y0
  210.  
  211. ENDIF
  212.  
  213. CACTU ET SORTIE DU LOCAL
  214.  
  215. IF ( d1.lt. d1R) THEN
  216. PRINT*, 'ERREUR d1 ',d1
  217. VARF(4) = d1R
  218. VARF(5) = YDBPR
  219. VARF(2) = d3R
  220.  
  221.  
  222.  
  223. ELSE
  224. VARF(4) = d1
  225. VARF(5) = YDBP
  226. ENDIF
  227.  
  228.  
  229.  
  230. IF ( d3.lt. d3R) THEN
  231. PRINT*, 'ERREUR d3 ',d3
  232. VARF(2) = d3R
  233. ELSE
  234. VARF(2) = d3
  235. VARF(5) = YDBP
  236. ENDIF
  237.  
  238.  
  239. IF ( (d3.eq.1.0D0).OR.(d1.eq.1.0D0) ) THEN
  240. C PRINT*, 'RUPTURE'
  241. C Gestion de la rupture en cours de calcul
  242. SIGF(1)= 1.0D-15
  243. SIGF(2)= 1.0D-15
  244. ELSE
  245. C PRINT*, 'ACTUALISATION DES CONTRAINTES'
  246. SIGF(1)= (1.0D0- d1) / (1.0D0- d1R) *(SIG0(1) + DSIGT(1))
  247. SIGF(2)= (1.0D0- d3) / (1.0D0- d3R) *(SIG0(2) + DSIGT(2))
  248.  
  249. ENDIF
  250. C
  251. C PRINT*,'**** AT ********'
  252. CC PRINT*,' d1R :',d1R
  253. C PRINT*,' d2R :',d2R
  254. C PRINT*,' d3R :',d3R
  255. C PRINT*,'***** ATDT *****'
  256. C PRINT*,' d2 :',d2
  257. C PRINT*,' d1 :',d1
  258. C PRINT*,' d3 :',d3
  259. C PRINT*,'***************'
  260.  
  261. C DO I= 1,NSTRS
  262. C PRINT*, ' SIGF(',I,') :' , SIGF(I)
  263. C END DO
  264. C
  265. C PRINT*,'>>>> SORTIE HINTE <<<<<'
  266.  
  267. RETURN
  268. C ENDIF
  269.  
  270. ELSEIF( (WWY .ge. (1.0D0)).AND.(WWY .ge. (0.0D0)) )THEN
  271.  
  272. d3 = 1.0D0
  273. d1 = 1.0D0
  274. DO I= 1,NSTRS
  275. SIGF(I)= 1.0D-15
  276. C PRINT*,'SIGF(',I,')',SIGF(I)
  277. END DO
  278.  
  279. DO I= 2,NVARI
  280. VARF(I)= 1.0D0
  281. C PRINT*,VARF(I)
  282. END DO
  283.  
  284. YDBP = YCP + Y0P
  285. VARF(5) = YDBP
  286.  
  287. C PRINT*,'>>>> SORTIE HINTE RUPTURE 2<<<<<'
  288. RETURN
  289.  
  290. ENDIF
  291. ENDIF
  292. C234567
  293. C RETURN
  294. END
  295.  
  296.  
  297.  
  298.  
  299.  
  300.  

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