Télécharger vparf.eso

Retour à la liste

Numérotation des lignes :

vparf
  1. C VPARF SOURCE CHAT 05/01/13 04:09:39 5004
  2. SUBROUTINE VPARF(YOUNG,POISSON,Y,CK,CN,RSIG0,RDSIG,RDEFP,
  3. & RSIGF,DT)
  4. C
  5. C ==================================================================
  6. C CE SOUS-PROGRAMME REALISE L'INTEGRATION DE LA LOI DE VISCOPLASTICITE
  7. C
  8. C ENTREES:
  9. C -------
  10. C YOUNG
  11. C POISSON
  12. C Y limite elastique
  13. C CK coefficient de viscosite
  14. C CN puissance de la loi d'ecoulement
  15. C RSIG0(6) = CONTR. AU DEBUT DU PAS D'INTEGRATION
  16. C RDSIG(6) = INCREMENT DES CONTR. CALCULE ELASTIQUEMENT
  17. C A PARTIR DE L'INCREMENT DES DEFORM. TOTALES
  18. C
  19. C SORTIES:
  20. C -------
  21. C RSIGF(NSTRS)= CONTR. A LA FIN DU PAS D'INTEGRATION
  22. C RDEFP(NSTRS)= INCREMENT DES DEFORM. PLASTIQUES A LA FIN DU PAS
  23. C D'INTEGRATION
  24. C
  25. IMPLICIT INTEGER(I-N)
  26. IMPLICIT REAL*8(A-H,O-Z)
  27. DIMENSION RSIG0(6),RDSIG(6),RDEFP(6),RSIGF(6),RSIGTR(6)
  28. DIMENSION COEF(6)
  29. F(X,A,B,C,D,E,G) = X + 2.D0*G*B*((X-A)/C)**D - E
  30. c a c'est y
  31. c b c'est mu
  32. c c c'est k
  33. c d c'est cn
  34. c e c'est seqtr
  35. c g c'est dt
  36. c
  37. c executable
  38. *
  39. DATA COEF/1.D0,1.D0,1.D0,2.D0,2.D0,2.D0/
  40. *
  41. DO 5 I=1,6
  42. RDEFP(I) = 0.D0
  43. RSIGF(I) = 0.D0
  44. 5 CONTINUE
  45. CMU = YOUNG / 2.D0 / (1.d0 +POISSON)
  46. DO 10 I=1,6
  47. RSIGTR(I) = RSIG0(I) + RDSIG(I)
  48. 10 CONTINUE
  49. c
  50. c partie hydrostatique du trial stress
  51. PTR = (RSIGTR(1) + RSIGTR(2) + RSIGTR(3))/3.D0
  52. c
  53. c on calcul la partie deviatorique du trial stress
  54. DO 20 I=1,3
  55. RSIGTR(I) = RSIGTR(I) - PTR
  56. 20 CONTINUE
  57. c
  58. c contrainte equivalente du trial stress
  59. SEQTR = 0.D0
  60. DO 30 I=1,6
  61. SEQTR = SEQTR + RSIGTR(I)*RSIGTR(I)*COEF(I)
  62. 30 CONTINUE
  63. SEQTR = SQRT( 1.5D0 * SEQTR)
  64. c
  65. IF ( SEQTR .GT. Y ) THEN
  66. c le materiau subit une evolution nonlineaire
  67. c
  68. c ordre de grandeur de l'equation pour la convergence
  69. ODG = ABS (Y-SEQTR)
  70. c resolution de l'equation f(x) = 0
  71. X1 = Y
  72. X2 = SEQTR
  73. c Y1 = F(X1,Y,CMU,CK,CN,SEQTR,DT)
  74. c Y2 = F(X2,Y,CMU,CK,CN,SEQTR,DT)
  75. c
  76. DO 40 I=1,200
  77. c resolution par dicotomie
  78. c X3 = X1 + abs((X2 - X1)*Y1/ (Y2-Y1))
  79. X3 = (X1 +X2) /2.d0
  80. Y3 = F(X3,Y,CMU,CK,CN,SEQTR,DT)
  81. IF ( Y3 .GT. (1.D-4*ODG) ) THEN
  82. X2 = X3
  83. c Y2 = Y3
  84. ELSE IF ( Y3 .LT. (-1.D-4*ODG) ) THEN
  85. X1 = X3
  86. c Y1 = Y3
  87. ELSE
  88. c on a converge
  89. GOTO 50
  90. ENDIF
  91. 40 CONTINUE
  92. CALL ERREUR(268)
  93. c write (*,1000) young,poisson,y,ck,cn
  94. c 1000 format('E=',1X,G12.7,1X,'Nu=',G12.7,1X,'Y=',G12.7/
  95. c & 'K=',G12.7,1X,'N=',G12.7)
  96. c WRITE(*,1001) X1,X2
  97. c WRITE(*,1001) Y1,Y2
  98. c 1001 format('X1=',G12.7,' X2=',G12.7)
  99. c Print *, 'AIE CA NE CONVERGE PAS'
  100. 50 CONTINUE
  101. *
  102. AMPLI = X3 / SEQTR
  103. DO 60 I=1,6
  104. RSIGF(I) = RSIGTR(I) * AMPLI
  105. 60 CONTINUE
  106. AMPLI = (1.D0/AMPLI -1.D0) / 2.D0 / CMU
  107. DO 70 I=1,6
  108. RDEFP(I) = RSIGF(I) * AMPLI * COEF(I)
  109. 70 CONTINUE
  110. c de deviatorique a complet
  111. DO 80 I=1,3
  112. RSIGF(I) = RSIGF(I) + PTR
  113. 80 CONTINUE
  114. c verification
  115. c zero = rsigtr(1) - rsigf(1)+ptr - 2.d0*cmu*rdefp(1)
  116. c if ( (abs(zero)) .GT. 1.d-3 ) then
  117. c print *, 'ouille',zero
  118. c endif
  119. ELSE
  120. c l'evolution est elastique
  121. DO 90 I=1,6
  122. RSIGF(I) = RSIGTR(I)
  123. 90 CONTINUE
  124. DO 100 I=1,3
  125. RSIGF(I) = RSIGF(I) + PTR
  126. 100 CONTINUE
  127. ENDIF
  128. c
  129. RETURN
  130. END
  131.  
  132.  
  133.  
  134.  

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