Télécharger hinte.eso

Retour à la liste

Numérotation des lignes :

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

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