Télécharger adva11.eso

Retour à la liste

Numérotation des lignes :

  1. C ADVA11 SOURCE CHAT 05/01/12 21:18:34 5004
  2. SUBROUTINE ADVA11(TAU,SIG,EPSV,VAR,SIG1,EPSV1,VAR1,DSPT,EPSVPT,
  3. & VARPT,XMAT,NSTRS,NVARI,MFR)
  4. IMPLICIT INTEGER(I-N)
  5. IMPLICIT REAL*8(A-H,O-Z)
  6. -INC CCOPTIO
  7.  
  8. DIMENSION SIG(*),EPSV(*),VAR(*),SIG1(*),EPSV1(*),VAR1(*)
  9. DIMENSION DSPT(*),EPSVPT(*),VARPT(*),XMAT(*)
  10. C
  11. C ICI : le modele est obligatoirement CERAMIQUE
  12. C ____________________________________________________________________
  13. C
  14. C THIS ROUTINE UPDATES THE STRAINS ,STRESSES & INTERNAL VARIABLES
  15. C ____________________________________________________________________
  16. C STEP-1 : UPDATING STRAINS
  17. C ----------------------------
  18. YOU = XMAT(1)
  19. XNU = XMAT(2)
  20. DO 10 I=1,NSTRS
  21. EPSV1(I)=EPSV(I)+TAU*EPSVPT(I)
  22. 10 CONTINUE
  23. C
  24. C STEP-2 : UPDATING STESSES
  25. C ----------------------------
  26. IF(IFOUR.EQ.-2) THEN
  27. SIG(3)=0.D0
  28. X2MU=YOU/(1.D0+XNU)
  29. XCO=X2MU/(1.D0-XNU)
  30. SIG1(1)=SIG(1)+TAU*(DSPT(1)-XCO*(EPSVPT(1)+XNU*EPSVPT(2)))
  31. SIG1(2)=SIG(2)+TAU*(DSPT(2)-XCO*(EPSVPT(2)+XNU*EPSVPT(1)))
  32. SIG1(4)=SIG(4)+TAU*(DSPT(4)-X2MU*EPSVPT(4))
  33. SIG1(3)=0.D0
  34. ELSEIF (IFOUR.EQ.2.OR.IFOUR.EQ.0.OR.IFOUR.EQ.-1) THEN
  35. X2MU = YOU/(1.D0+XNU)
  36. ALMB = X2MU*XNU/(1.D0-2.D0*XNU)
  37. IF (MFR.EQ.5) THEN
  38. X2MU=YOU/(1.D0+XNU)
  39. XCO=X2MU/(1.D0-XNU)
  40. SIG1(1)=SIG(1)+TAU*(DSPT(1)-XCO*(EPSVPT(1)+XNU*EPSVPT(2)))
  41. SIG1(2)=SIG(2)+TAU*(DSPT(2)-XCO*(EPSVPT(2)+XNU*EPSVPT(1)))
  42. SIG1(3)=SIG(3)+TAU*(DSPT(3)-X2MU*EPSVPT(3))
  43. SIG1(4)=SIG(4)+TAU*(DSPT(4)-X2MU*EPSVPT(4))
  44. SIG1(5)=SIG(5)+TAU*(DSPT(5)-X2MU*EPSVPT(5))
  45. ELSE
  46. TRACE=EPSVPT(1)+EPSVPT(2)+EPSVPT(3)
  47. DO 20 I=1,NSTRS
  48. A = 0.D0
  49. IF (I.LE.3) A=1.D0
  50. SIG1(I) = SIG(I) +
  51. & TAU*(DSPT(I)-ALMB*A*TRACE-X2MU*EPSVPT(I))
  52. 20 CONTINUE
  53. ENDIF
  54. ENDIF
  55. C
  56. C STEP-3 : UPDATING THE INTERNAL VARIABLES
  57. C------------------------------------------
  58. IF (MFR.EQ.5) THEN
  59. NSTRS0=NSTRS+1
  60. ELSE
  61. NSTRS0=NSTRS
  62. ENDIF
  63. VAR1(1) = VAR(1)+TAU*VARPT(1)
  64. C On met la variable de déformation de fluage égale à la variable de déformation
  65. VAR1(NVARI) = VAR(NVARI)+TAU*VARPT(1)
  66. C On conserve la variable interne qui correspond à l'endommagement généralisé
  67. VAR1(NVARI-1) = VAR(NVARI-1)
  68. CCC IF ((IFOUR.EQ.2.AND.MFR.EQ.3).OR.IFOUR.EQ.-2) THEN
  69. CCC IBID = 11
  70. CCC ELSE IF(IFOUR.EQ.-3.OR.IFOUR.EQ.-1
  71. CCC 1 .OR.IFOUR.EQ.0) THEN
  72. CCC IBID = 14
  73. CCC ELSE IF(IFOUR.EQ.2.AND.MFR.EQ.1) THEN
  74. CCC IBID = 19
  75. CCC ENDIF
  76. CCC Eloi : correction de IBID
  77. CCC de plus : ici on a obligatoirement MFR different de 3
  78. IBID=NVARI-(2*NSTRS)-5
  79. C
  80. C On ne change pas les variables de OTTOSEN de 2 à IBID
  81. DO 30 I=2,IBID
  82. VAR1(I)=VAR(I)
  83. 30 CONTINUE
  84. C
  85. C On met les variables internes à VARPT de IBID+1 à IBID+ 2*NSTRS0+3
  86. DO 40 I=1,2*NSTRS0+3
  87. VAR1(I+IBID)=VARPT(I+IBID)
  88. 40 CONTINUE
  89. C _____________________________________________________________________
  90. RETURN
  91. END
  92. C Pour mémoire ce qu'il y avait dans advan1
  93. C DO 30 I=1,2*NSTRS0+3
  94. C 30 VAR1(I)=VARPT(I)
  95. C NSUB=2*NSTRS0+4
  96. C VAR1(NSUB)=VAR(NSUB)+TAU*VARPT(NSUB)
  97. C cette variable correspond à EPSE
  98.  
  99.  
  100.  
  101.  
  102.  
  103.  
  104.  
  105.  
  106.  
  107.  

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