Télécharger incre3.eso

Retour à la liste

Numérotation des lignes :

  1. C INCRE3 SOURCE PV 11/03/07 21:16:57 6885
  2. C______________________________________________________________________
  3. SUBROUTINE INCRE3(DT,SIG,EPSV,VAR,XMAT,EPSVPT,VARPT,ALFA,
  4. & NSTRS0,NVARI,INPLAS,NCOMAT)
  5. IMPLICIT INTEGER(I-N)
  6. IMPLICIT REAL*8(A-H,O-Z)
  7. DIMENSION SIG(*),EPSV(*),VAR(*),XMAT(*),EPSVPT(*),VARPT(*)
  8. DIMENSION SM(4),SB(4),EM(4),EB(4),EPLU(8),EMIN(8),EPSCRP(8)
  9. C______________________________________________________________________
  10. C
  11. C THIS ROUTINE COMPUTES INCREMENTAL STRAIN AND INTERNAL VARIABLES
  12. C______________________________________________________________________
  13. C
  14. C STEP-1 : SEPERATE OUT MEMBRANE AND BENDING CONTRIBUTIONS
  15. C ---------------------------------------------------------
  16. NSTRS=NSTRS0+2
  17. NS = NSTRS/2
  18. SM(1)=SIG(1)
  19. SM(2)=SIG(2)
  20. SM(3)=0.D0
  21. SM(4)=0.D0
  22. IF (NS.EQ.4) SM(4)=SIG(3)
  23. SB(1)=SIG(NS)
  24. SB(2)=SIG(NS+1)
  25. SB(3)=0.D0
  26. SB(4)=0.D0
  27. IF (NS.EQ.4) SB(4)=SIG(NS+2)
  28. EM(1)=EPSV(1)
  29. EM(2)=EPSV(2)
  30. EM(3)=-1.D0*(EM(1)+EM(2))
  31. EM(4)=0.D0
  32. IF (NS.EQ.4) EM(4)=EPSV(3)
  33. EB(1)=EPSV(NS)
  34. EB(2)=EPSV(NS+1)
  35. EB(3)=-1.D0*(EB(1)+EB(2))
  36. EB(4)=0.D0
  37. IF (NS.EQ.4) EB(4)=EPSV(NS+2)
  38. IF((INPLAS.GE.19.AND.INPLAS.LE.23).OR.INPLAS.EQ.61) THEN
  39. DO 20 I = 1,NSTRS
  40. EPLU(I) = VAR ( I)
  41. EMIN(I) = VAR (NSTRS+I)
  42. 20 CONTINUE
  43. EEFF = VAR (2*NSTRS+1)
  44. EPSH = VAR (2*NSTRS+2)
  45. LL = nint(VAR (2*NSTRS+3))
  46. ENDIF
  47. IF(INPLAS.EQ.19.OR.INPLAS.EQ.21) THEN
  48. DO 30 I=1,NS
  49. 30 EPSCRP(I)= EM(I)
  50. DO 31 I=1,NS
  51. 31 EPSCRP(NS+I)= EB(I)
  52. DO 32 I=1,NSTRS0
  53. EPSVPT(I)=0.D0
  54. 32 CONTINUE
  55. ELSE IF(INPLAS.EQ.20.OR.INPLAS.EQ.22.OR.INPLAS.EQ.23.OR.
  56. & INPLAS.EQ.61) THEN
  57. DO 40 I=1,NSTRS
  58. 40 EPSCRP(I)=VAR(2*NSTRS+4+I)
  59. DO 41 I=1,NSTRS0
  60. 41 EPSVPT(I)=0.D0
  61. ENDIF
  62. DO 50 I=1,NVARI
  63. 50 VARPT(I)=0.0D0
  64. C
  65. C -------------------------------------------------------------
  66. C
  67. C STEP-2 : COMPUTATION OF SMEMB,SBEND AND SEQUV
  68. C ---------------------------------------------
  69. FMEMB=SM(1)*SM(1)+SM(2)*SM(2)-SM(1)*SM(2)
  70. FBEND=SB(1)*SB(1)+SB(2)*SB(2)-SB(1)*SB(2)
  71. IF(NS.EQ.4) THEN
  72. FMEMB=FMEMB+3.0*SM(4)*SM(4)
  73. FBEND=FBEND+3.0*SB(4)*SB(4)
  74. ENDIF
  75. SEQUV=SQRT(FMEMB+ALFA*ALFA*FBEND)
  76. C -------------------------------------------------------------
  77. C
  78. C STEP-3 : COMPUTATION OF INCREMENTS OF INTERNAL VARIABLES
  79. C ---------------------------------------------------------
  80. ALF1 = 1.0D0
  81. ALF2 = 1.0D0/ALFA/ALFA
  82. IF((INPLAS.GE.19.AND.INPLAS.LE.23).OR.INPLAS.EQ.61) THEN
  83. CALL UPVAR2(SM,SB,EPSCRP,EPLU,EMIN,EEFF,EPSH,LL,ALF1,ALF2,NSTRS)
  84. DO 60 I = 1,NSTRS
  85. VARPT ( I) = EPLU(I)
  86. VARPT (NSTRS+I) = EMIN(I)
  87. 60 CONTINUE
  88. VARPT (2*NSTRS+1) = EEFF
  89. VARPT (2*NSTRS+2) = EPSH
  90. VARPT (2*NSTRS+3) = LL
  91. ENDIF
  92. C -------------------------------------------------------------
  93. C
  94. C STEP-4 : COMPUTATION OF INCREMENTS OF INELASTIC STRAINS
  95. C -------------------------------------------------------
  96. DECT = 0.0D0
  97. IF(SEQUV.EQ.0.0D0) GO TO 100
  98. IF(INPLAS.EQ.19.OR.INPLAS.EQ.21) THEN
  99. IF(INPLAS.EQ.19)
  100. . CALL NORTON(SEQUV,EPSH,DT,XMAT(6),XMAT(7),XMAT(8),DECT)
  101. IF(INPLAS.EQ.21)
  102. . DECT=XMAT(6)+XMAT(7)*(SEQUV**XMAT(8))+
  103. . XMAT(9)*(SEQUV**XMAT(10)) +
  104. . XMAT(11)*(SEQUV**XMAT(12))
  105. VARPT(2*NSTRS+4)=DECT
  106. CONS = DECT/SEQUV
  107. IF(NS.EQ.3) THEN
  108. EPSVPT(1)= CONS*(SIG(1)-0.5D0*SIG(2))
  109. EPSVPT(2)= CONS*(SIG(2)-0.5D0*SIG(1))
  110. EPSVPT(3)= CONS*(SIG(3)-0.5D0*SIG(4)) * ALFA * ALFA
  111. EPSVPT(4)= CONS*(SIG(4)-0.5D0*SIG(3)) * ALFA * ALFA
  112. ELSE
  113. EPSVPT(1)= CONS*(SIG(1)-0.5D0*SIG(2))
  114. EPSVPT(2)= CONS*(SIG(2)-0.5D0*SIG(1))
  115. EPSVPT(3)= 1.5D0*CONS*SIG(3)
  116. EPSVPT(4)= CONS*(SIG(4)-0.5D0*SIG(5)) * ALFA * ALFA
  117. EPSVPT(5)= CONS*(SIG(5)-0.5D0*SIG(4)) * ALFA * ALFA
  118. EPSVPT(6)= 1.5D0*CONS*SIG(6) * ALFA * ALFA
  119. ENDIF
  120. ELSE IF(INPLAS.EQ.20.OR.INPLAS.EQ.22.OR.
  121. . INPLAS.EQ.23.OR.INPLAS.EQ.61) THEN
  122. CALL SOLUTN(INPLAS,SEQUV,EPSH,XMAT,DT,TIME)
  123. CALL EQUATN(INPLAS,SEQUV,TIME,DT,XMAT,DECP,DECS)
  124. DECT = DECP + DECS
  125. VARPT(2*NSTRS+4)=DECT
  126. CONS1 = DECT/SEQUV
  127. CONS2 = DECP/SEQUV
  128. IF(NS.EQ.3) THEN
  129. EPSVPT(1)= CONS1*(SIG(1)-0.5D0*SIG(2))
  130. EPSVPT(2)= CONS1*(SIG(2)-0.5D0*SIG(1))
  131. EPSVPT(3)= CONS1*(SIG(3)-0.5D0*SIG(4)) * ALFA * ALFA
  132. EPSVPT(4)= CONS1*(SIG(4)-0.5D0*SIG(3)) * ALFA * ALFA
  133. VARPT(2*NSTRS+5)= CONS2*(SIG(1)-0.5D0*SIG(2))
  134. VARPT(2*NSTRS+6)= CONS2*(SIG(2)-0.5D0*SIG(1))
  135. VARPT(2*NSTRS+7)= -1.D0*CONS2*(SIG(1)+SIG(2))*.5D0
  136. VARPT(2*NSTRS+8)= CONS2*(SIG(3)-0.5D0*SIG(4)) * ALFA * ALFA
  137. VARPT(2*NSTRS+9)= CONS2*(SIG(4)-0.5D0*SIG(3)) * ALFA * ALFA
  138. VARPT(2*NSTRS+7)= -1.D0*CONS2*(SIG(3)+SIG(4))*.5D0
  139. ELSE
  140. EPSVPT(1)= CONS1*(SIG(1)-0.5D0*SIG(2))
  141. EPSVPT(2)= CONS1*(SIG(2)-0.5D0*SIG(1))
  142. EPSVPT(3)= CONS1*SIG(3) * 1.5D0
  143. EPSVPT(4)= CONS1*(SIG(4)-0.5D0*SIG(5)) * ALFA * ALFA
  144. EPSVPT(5)= CONS1*(SIG(5)-0.5D0*SIG(4)) * ALFA * ALFA
  145. EPSVPT(6)= CONS1*SIG(6) * ALFA * ALFA * 1.5D0
  146. VARPT(2*NSTRS+5)= CONS2*(SIG(1)-0.5D0*SIG(2))
  147. VARPT(2*NSTRS+6)= CONS2*(SIG(2)-0.5D0*SIG(1))
  148. VARPT(2*NSTRS+7)= -1.D0*CONS2*(SIG(1)+SIG(2))*.5D0
  149. VARPT(2*NSTRS+8)= CONS2*SIG(3) * 1.5D0
  150. VARPT(2*NSTRS+9)= CONS2*(SIG(4)-0.5D0*SIG(5)) * ALFA * ALFA
  151. VARPT(2*NSTRS+10)= CONS2*(SIG(5)-0.5D0*SIG(4)) * ALFA * ALFA
  152. VARPT(2*NSTRS+11)= -1.D0*CONS2*(SIG(1)+SIG(2))*.5D0
  153. VARPT(2*NSTRS+12)= CONS2*SIG(6) * ALFA * ALFA * 1.5D0
  154. ENDIF
  155. ELSE IF(INPLAS.EQ.24) THEN
  156. CALL LEMAIT(SEQUV,VAR(1),DX,DT,XMAT,DECT)
  157. VARPT(1) =DX
  158. VARPT(2) =DECT
  159. CONS =DECT/SEQUV
  160. IF(NS.EQ.2) THEN
  161. EPSVPT(1)= CONS*(SIG(1)-0.5D0*SIG(2))
  162. EPSVPT(2)= CONS*(SIG(2)-0.5D0*SIG(1))
  163. EPSVPT(3)= CONS*(SIG(3)-0.5D0*SIG(4)) * ALFA * ALFA
  164. EPSVPT(4)= CONS*(SIG(4)-0.5D0*SIG(3)) * ALFA * ALFA
  165. ELSE
  166. EPSVPT(1)= CONS*(SIG(1)-0.5D0*SIG(2))
  167. EPSVPT(2)= CONS*(SIG(2)-0.5D0*SIG(1))
  168. EPSVPT(3)= CONS*SIG(3)*1.5D0
  169. EPSVPT(4)= CONS*(SIG(4)-0.5D0*SIG(5)) * ALFA * ALFA
  170. EPSVPT(5)= CONS*(SIG(5)-0.5D0*SIG(4)) * ALFA * ALFA
  171. EPSVPT(6)= CONS*SIG(6) * ALFA * ALFA * 1.5D0
  172. ENDIF
  173. ENDIF
  174. C
  175. 100 RETURN
  176. END
  177.  
  178.  
  179.  
  180.  
  181.  
  182.  

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