Télécharger vishin.eso

Retour à la liste

Numérotation des lignes :

  1. C VISHIN SOURCE CHAT 05/01/13 04:07:23 5004
  2. C*************************************************************
  3. SUBROUTINE VISHIN(SIG0,NSTRS,DSIGT,VAR0,NVARI,XMAT,NCOMAT,
  4. . XCAR,SIGF,VARF,DEFP,PRECIS,MFR,KERRE,DT)
  5. C*************************************************************
  6. C L GORNET VERSION DL/LG MacNu modif 99
  7. C Version 1D de interface
  8. C ENTREES
  9. C -------
  10. C SIG0 (NSTRS) :Contraintes initiales
  11. C DSIGT (NSTRS) :Increment de contraintes (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
  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,AL
  48. REAL*8 akk,ann,amm,Y0,YC,YDBPR,YDBP
  49. REAL*8 ZX1,ZX3
  50. REAL*8 YD1,YD3,DCRI
  51. REAL*8 TESTG,DT
  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. C Parametre utile pour une rupture fragile <1
  75. DCRI = 1.0D0
  76. C
  77.  
  78. IF ( (d3. eq. 1.0D0 ) ) THEN
  79. DO I= 1,NSTRS
  80. SIGF(I)= 1.0D-15
  81. END DO
  82. DO I= 2,NVARI
  83. VARF(I)= VAR0(I)
  84. END DO
  85. C PRINT*,'>>>> SORTIE GINTE RUPTURE 1<<<<<'
  86.  
  87.  
  88. RETURN
  89. ENDIF
  90.  
  91. K10 = XMAT(1)
  92. K30 = XMAT(2)
  93. GA1 = XMAT(5)
  94. AL = XMAT(6)
  95. akk = XMAT(7)
  96. ann = XMAT(8)
  97. Y0 = XMAT(9)
  98. YC = XMAT(10)
  99. amm = XMAT(11)
  100.  
  101.  
  102.  
  103.  
  104. C SAUT DE U
  105. SU3 = SIG0(2) / ( K30 * (1.0D0 - d3))
  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. CVersion 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. ZX1 = SU1 + SUD1
  121. ZX3 = SU3 + SUD3
  122.  
  123. C Variable pilotes
  124. IF(( (ABS( ZX1 ) ) .le. 1.D-15)) THEN
  125. YD1 = 0.0D0
  126. C YD1 = 1.0D-15
  127. ELSE
  128. YD1 = 0.5D0 * K10 * ( ZX1 )**(2.)
  129. C MODIF
  130. IF( ABS( YD1).ge. 1.D15) THEN
  131. YD1 = 1.D15
  132. ENDIF
  133. ENDIF
  134.  
  135. IF( (( ABS( ZX3 ) ) .le. 1.D-15).OR.(ZX3 .le .0.D0)) THEN
  136. C PAS EN COMPRESSION
  137. YD3 = 0.0D0
  138.  
  139. ELSE
  140. YD3 = 0.5D0 * K30 * ( ZX3 )**(2.)
  141.  
  142. IF( ABS( YD3).ge. 1.D15) THEN
  143. YD3 = 1.0D15
  144. ENDIF
  145. ENDIF
  146.  
  147.  
  148. C print*, ' K30, K20,K10', K30, K20,K10
  149. C print*,'SU3 SU2 SU1',SU3 , SU2 , SU1
  150. C print*,' SUD3 , SUD2, SUD1',SUD3 , SUD2, SUD1
  151. C print*,' YD1 YD2 YD3', YD1, YD2, YD3
  152. C print*,'GA1 GA2', GA1, GA2
  153. C COMPRESSION NORMALE
  154. IF ( YD3 .le. 0.0D0) THEN
  155. YD3 = 0.0D0
  156. C YD3 = 1.0D-15
  157. YDB = (GA1 * YD1 )**AL
  158. ELSE
  159.  
  160. YDB = YD3**AL + (GA1 * YD1 )**AL
  161. ENDIF
  162. C
  163. YDBP = YDB**(1.0D0/AL)
  164. C++++++++++++++
  165. WWY =((ann/(ann+1.0D0) )*(YDBP - Y0 )/( YC - Y0) )**ann
  166. C PRINT*,' WWY : ', WWY,YDBP,Y0P,YCP
  167.  
  168.  
  169. TESTG = WWY - D3R
  170. C ENDO A PROGRESSE OU PAS
  171. C234567
  172.  
  173. IF ( TESTG .le. (0.0D0) ) THEN
  174. DO I= 1,NSTRS
  175. SIGF(I)= SIG0(I) + DSIGT(I)
  176. END DO
  177. DO I= 2,NVARI
  178. VARF(I)= VAR0(I)
  179. END DO
  180. C PRINT*,'>>>> PAS D EVOLUTION DE L ENDO 1 <<<<<'
  181. RETURN
  182. ENDIF
  183. C OUI ON ENDOMMAGE
  184. C OUI ON ENDOMMAGE
  185.  
  186.  
  187.  
  188. IF(WWY.GE. 1.0D0) THEN
  189.  
  190. WWY = 1.0D0
  191. C PRINT*,' WWY EST BORNE'
  192. ENDIF
  193.  
  194. C PRINT*,' WWY : ', WWY,YDBP,Y0P,YCP
  195.  
  196. IF ( (WWY .le. (1.0D0)).AND.(WWY .gt. (0.0D0)) ) THEN
  197. C+++++++++
  198. CALL ENDO31(D3,D3R,WWY,akk,amm,DT)
  199. D1 = D1R + (D3 - D3R)
  200. C+++++++++
  201. C TEST
  202. IF ( d1.gt. 1.0D0) THEN
  203. C PRINT*, 'ERREUR d1>1 ',d1
  204. d1 =1.0D0
  205.  
  206. VARF(4) = 1.0D0
  207. ENDIF
  208. IF ( d3 .gt. 1.0D0) THEN
  209. C PRINT*, 'ERREUR d3>1 ',d3
  210. d2=1.0D0
  211. VARF(2) = 1.0D0
  212. ENDIF
  213.  
  214. CACTU ET SORTIE DU LOCAL
  215.  
  216. IF ( d1.lt. d1R) THEN
  217. PRINT*, 'ERREUR d1 ',d1
  218. VARF(4) = d1R
  219. VARF(5) = YDBPR
  220. VARF(2) = d3R
  221.  
  222. RETURN
  223.  
  224. ELSE
  225. VARF(4) = d1
  226. VARF(5) = YDBP
  227. ENDIF
  228.  
  229. IF ( d3.lt. d3R) THEN
  230. PRINT*, 'ERREUR d3 ',d3
  231. VARF(2) = d3R
  232. ELSE
  233. VARF(2) = d3
  234. ENDIF
  235.  
  236.  
  237.  
  238. SIGF(1)= (1.0D0- d1) / (1.0D0- d1R) * (SIG0(1) + DSIGT(1) )
  239.  
  240. SIGF(2)= (1.0D0- d3) / (1.0D0- d3R) * (SIG0(2) + DSIGT(2) )
  241.  
  242. IF (SIGF(1).EQ.0.D0)THEN
  243. SIGF(1)=1.0D-15
  244. ENDIF
  245.  
  246. IF (SIGF(2).EQ.0.D0)THEN
  247. SIGF(2)=1.0D-15
  248. ENDIF
  249.  
  250. C PRINT*,'**** AT ********'
  251. C PRINT*,' d1R :',d1R
  252. C PRINT*,' d2R :',d2R
  253. C PRINT*,' d3R :',d3R
  254. C PRINT*,'***** ATDT *****'
  255. C PRINT*,' d2 :',d2
  256. C PRINT*,' d1 :',d1
  257. C PRINT*,' d1 :',d1
  258. C PRINT*,' d3 :',d3
  259. C PRINT*,'***************'
  260. C DO I= 1,NSTRS
  261. C PRINT*, ' SIGF(',I,') :' , SIGF(I)
  262. C END DO
  263.  
  264. C PRINT*,'>>>> SORTIE GINTE <<<<<'
  265. RETURN
  266. C ENDIF
  267.  
  268. C234567 ELSEIF( (WWY .ge. (1.0D0)).AND.(WWY .ge. (0.0D0)) )THEN
  269. ELSEIF( (d1 .eq. 1.0D0)
  270. & .or. (d3 .eq. 1.0D0))THEN
  271.  
  272. d3 = 1.0D0
  273.  
  274. d1 = 1.0D0
  275. DO I= 1,NSTRS
  276. SIGF(I)= 1.0D-15
  277. END DO
  278. DO I= 2,NVARI
  279. VARF(I)= 1.0D0
  280. END DO
  281. C+++++
  282. VARF(5) = YDBP
  283. C PRINT*,'>>>> SORTIE GINTE RUPTURE 2<<<<<'
  284. RETURN
  285.  
  286.  
  287. ENDIF
  288. C234567
  289. RETURN
  290. END
  291.  
  292.  
  293.  

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