Télécharger advan1.eso

Retour à la liste

Numérotation des lignes :

advan1
  1. C ADVAN1 SOURCE PASCAL 19/02/20 21:15:01 10116
  2.  
  3. C=======================================================================
  4. C= =
  5. C= THIS ROUTINE UPDATES THE STRAINS ,STRESSES & INTERNAL VARIABLES. =
  6. C= =
  7. C=======================================================================
  8.  
  9. SUBROUTINE ADVAN1 (TAU,SIG,EPSV,VAR,SIG1,EPSV1,VAR1,DSPT,EPSVPT,
  10. . VARPT,XMAT,NSTRS,NVARI,IFOUR,INPLAS,MFR)
  11.  
  12. IMPLICIT INTEGER(I-N)
  13. IMPLICIT REAL*8(A-H,O-Z)
  14.  
  15. DIMENSION SIG(*),EPSV(*),VAR(*),SIG1(*),EPSV1(*),VAR1(*),
  16. . DSPT(*),EPSVPT(*),VARPT(*),XMAT(*)
  17.  
  18. DATA UN / 1.D0 /
  19.  
  20. C STEP-1 : UPDATING STRAINS
  21. C ----------------------------
  22. YOU=XMAT(1)
  23. XNU=XMAT(2)
  24. IF (INPLAS.EQ.107) THEN
  25. C= EPSVPT contient les vit de def viscopl. + densification + gonflement
  26. DO 10 I=1,NSTRS
  27. A=VARPT(5)+VARPT(6)
  28. IF (I.GT.3) A=0.D0
  29. EPSV1(I)=EPSV(I)+TAU*(EPSVPT(I)-A)
  30. 10 CONTINUE
  31. ELSE
  32. DO 15 I=1,NSTRS
  33. EPSV1(I)=EPSV(I)+TAU*EPSVPT(I)
  34. 15 CONTINUE
  35. ENDIF
  36. C STEP-2 : UPDATING STESSES
  37. C ----------------------------
  38. C= Mode de calcul 2D contraintes planes
  39. IF (IFOUR.EQ.-2) THEN
  40. SIG(3)=0.D0
  41. X2MU = YOU/(UN+XNU)
  42. XCO = X2MU/(UN-XNU)
  43. SIG1(1) = SIG(1) + TAU*(DSPT(1)-XCO*(EPSVPT(1)+XNU*EPSVPT(2)))
  44. SIG1(2) = SIG(2) + TAU*(DSPT(2)-XCO*(EPSVPT(2)+XNU*EPSVPT(1)))
  45. SIG1(3) = 0.D0
  46. SIG1(4) = SIG(4) + TAU*(DSPT(4)-X2MU*EPSVPT(4))
  47. C= Modes de calcul 3D, 2D deformations planes (GENE ou non),
  48. C= 2D axisymetrique, 2D series de Fourier
  49. ELSE IF (IFOUR.EQ.2.OR.IFOUR.EQ.0.OR.IFOUR.EQ.1.OR.
  50. . IFOUR.EQ.-1.OR.IFOUR.EQ.-3) THEN
  51. X2MU = YOU/(UN+XNU)
  52. ALMB = X2MU*XNU/(UN-2*XNU)
  53. IF (MFR.EQ.5) THEN
  54. X2MU = YOU/(UN+XNU)
  55. XCO = X2MU/(UN-XNU)
  56. SIG1(1) = SIG(1) + TAU*(DSPT(1)-XCO*(EPSVPT(1)+XNU*EPSVPT(2)))
  57. SIG1(2) = SIG(2) + TAU*(DSPT(2)-XCO*(EPSVPT(2)+XNU*EPSVPT(1)))
  58. SIG1(3) = SIG(3) + TAU*(DSPT(3)-X2MU*EPSVPT(3))
  59. SIG1(4) = SIG(4) + TAU*(DSPT(4)-X2MU*EPSVPT(4))
  60. SIG1(5) = SIG(5) + TAU*(DSPT(5)-X2MU*EPSVPT(5))
  61. ELSE
  62. TRACE = EPSVPT(1)+EPSVPT(2)+EPSVPT(3)
  63. CC=ALMB*TRACE
  64. DO 20 I=1,3
  65. SIG1(I) = SIG(I) + TAU*(DSPT(I)-CC-X2MU*EPSVPT(I))
  66. 20 CONTINUE
  67. DO 21 I=4,NSTRS
  68. SIG1(I) = SIG(I) + TAU*(DSPT(I)-X2MU*EPSVPT(I))
  69. 21 CONTINUE
  70. ENDIF
  71. C= Modes de calcul 1D contraintes planes suivant z (DYCZ et GYCZ)
  72. ELSE IF (IFOUR.EQ.4.OR.IFOUR.EQ.8) THEN
  73. SIG(3) = 0.D0
  74. XCO = YOU/(UN-XNU*XNU)
  75. SIG1(1) = SIG(1) + TAU*(DSPT(1)-XCO*(EPSVPT(1)+XNU*EPSVPT(2)))
  76. SIG1(2) = SIG(2) + TAU*(DSPT(2)-XCO*(EPSVPT(2)+XNU*EPSVPT(1)))
  77. SIG1(3) = 0.D0
  78. C= Modes de calcul 1D contraintes planes suivant y (CYDZ et CYGZ) et
  79. C= 1D axisymetrique contraintes axiales nulles (AXCZ)
  80. ELSE IF (IFOUR.EQ.5.OR.IFOUR.EQ.10.OR.IFOUR.EQ.13) THEN
  81. SIG(2) = 0.D0
  82. XCO = YOU/(UN-XNU*XNU)
  83. SIG1(1) = SIG(1) + TAU*(DSPT(1)-XCO*(EPSVPT(1)+XNU*EPSVPT(3)))
  84. SIG1(2) = 0.D0
  85. SIG1(3) = SIG(3) + TAU*(DSPT(3)-XCO*(EPSVPT(3)+XNU*EPSVPT(1)))
  86. C= Modes de calcul 1D contraintes planes suivant y et z (CYCZ)
  87. ELSE IF (IFOUR.EQ.6) THEN
  88. SIG(2) = 0.D0
  89. SIG(3) = 0.D0
  90. SIG1(1) = SIG(1) + TAU*(DSPT(1)-YOU*EPSVPT(1))
  91. SIG1(2) = 0.D0
  92. SIG1(3)=0.D0
  93. C= Autres modes de calcul 1D deformations planes (DYDZ GYDZ DYGZ GYGZ)
  94. C= 1D axisymetrique (AXDZ AXGZ) et 1D spherique
  95. ELSE IF (IFOUR.EQ. 3.OR.IFOUR.EQ. 7.OR.IFOUR.EQ. 9.OR.IFOUR.EQ.11
  96. . .OR.IFOUR.EQ.12.OR.IFOUR.EQ.14.OR.IFOUR.EQ.15) THEN
  97. X2MU = YOU/(UN+XNU)
  98. TRACE = EPSVPT(1)+EPSVPT(2)+EPSVPT(3)
  99. XCO = X2MU*XNU*TRACE/(UN-XNU)
  100. SIG1(1) = SIG(1) + TAU*(DSPT(1)-X2MU*EPSVPT(1)-XCO)
  101. SIG1(2) = SIG(2) + TAU*(DSPT(2)-X2MU*EPSVPT(2)-XCO)
  102. SIG1(3) = SIG(3) + TAU*(DSPT(3)-X2MU*EPSVPT(3)-XCO)
  103. ENDIF
  104.  
  105. C STEP-3 : UPDATING THE INTERNAL VARIABLES
  106. C------------------------------------------
  107. IF (MFR.EQ.5) THEN
  108. NSTRS0=NSTRS+1
  109. ELSE
  110. NSTRS0=NSTRS
  111. ENDIF
  112. IF ((INPLAS.GE.19.AND.INPLAS.LE.23).OR.INPLAS.EQ.61) THEN
  113. DO 30 I=1,2*NSTRS0+3
  114. VAR1(I)=VARPT(I)
  115. 30 CONTINUE
  116. NSUB=2*NSTRS0+4
  117. VAR1(NSUB)=VAR(NSUB)+TAU*VARPT(NSUB)
  118. IF (INPLAS.EQ.20.OR.INPLAS.EQ.22.OR.INPLAS.EQ.23.OR.
  119. . INPLAS.EQ.61) THEN
  120. DO 40 I=1,NSTRS0
  121. VAR1(NSUB+I)=VAR(NSUB+I)+TAU*VARPT(NSUB+I)
  122. 40 CONTINUE
  123. ENDIF
  124. ELSE IF (INPLAS.EQ.24) THEN
  125. VAR1(1) = VAR(1) + TAU*VARPT(1)
  126. VAR1(2) = VAR(2) + TAU*VARPT(2)
  127. ELSE IF (INPLAS.EQ.25.OR.INPLAS.EQ.53.OR.INPLAS.EQ.70.OR.
  128. . INPLAS.EQ.76.OR.INPLAS.EQ.77.OR.INPLAS.EQ.165) THEN
  129. DO 50 I=1,NVARI
  130. VAR1(I)=VAR(I)+TAU*VARPT(I)
  131. 50 CONTINUE
  132. ELSE IF (INPLAS.EQ.107) THEN
  133. DO 60 I=1,NVARI
  134. VAR1(I)=VAR(I)+TAU*VARPT(I)
  135. 60 CONTINUE
  136. IF (VAR1(2).LT.0.D0) THEN
  137. VAR1(2) = 0.D0
  138. ELSE IF (VAR1(2).GT.0.3D0) THEN
  139. VAR1(2) = 0.3D0
  140. ENDIF
  141. ELSE IF(INPLAS.EQ.130) THEN
  142. DO 70 I=1,NVARI
  143. VAR1(I)=VAR(I)+TAU*VARPT(I)
  144. 70 CONTINUE
  145. IF (VAR1(3).GE.0.98D0) THEN
  146. VAR1(3) = 0.98D0
  147. ENDIF
  148. IF (VAR1(4).GE.0.98D0) THEN
  149. VAR1(4) = 0.98D0
  150. ENDIF
  151. ENDIF
  152.  
  153. RETURN
  154. END
  155.  
  156.  
  157.  
  158.  
  159.  
  160.  

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