Télécharger vishin.eso

Retour à la liste

Numérotation des lignes :

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

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