Télécharger adva11.eso

Retour à la liste

Numérotation des lignes :

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

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