Télécharger deriv.eso

Retour à la liste

Numérotation des lignes :

deriv
  1. C DERIV SOURCE CB215821 26/10/26 21:15:26 12682
  2. SUBROUTINE DERIV(TAU,SIG,EPSV,VAR,SIGD,EPSVD,VARD,EPSTHD,
  3. &DSPT,XMAT,FKX,NPTEUR,NSTRS,NVARI,NCOMAT,NKX,NC,DD,DDV,DDINV,
  4. &YOUNG,NYOUNG,XNU,NXNU,MFR,XCAR,ICARA,IFOURB,INDIC,
  5. &TI,TPOINT,ITHHER,TRUC,NCOURB)
  6. C-----------------------------------------------------------------------
  7. C Objet: Cette subroutine calcule les derivees des variables internes
  8. C pour un materiau viscoplastique a endommagement et ecrouissage
  9. C isotrope en regime anisotherme
  10. C-----------------------------------------------------------------------
  11. C
  12. C-----------------------------------------------------------------------
  13. C Entree: TAU pas de temps
  14. C TI temperature au debut du pas
  15. C TPOINT derivee de la temperature
  16. C SIG(NSTRS) tenseur des contraintes
  17. C EPSV(NSTRS) tenseur des deformations
  18. C VAR(NVARI) tableau contenant les variables internes
  19. C pilotant les equations
  20. C VAR(1)=p ; VAR(2)=r ;VAR(3)=D
  21. C EPSTHD vitesse de dilatation thermique au debut du pas
  22. C DSPT(NSTRS,NSTRS) vitesse de deformation totale
  23. C XMAT(NCOMAT) tableau des parametres scalaires du materiau
  24. C a une temperature TI donnee
  25. C XMAT(1)=YOUNG ;XMAT(2)=XNU ;XMAT(3)=n
  26. C XMAT(4)=m ;XMAT(5)=KK; XMAT(6)=ALPHA
  27. C XMAT(7)=BETA ;XMAT(8)=r; XMAT(9)=A ;
  28. C XMAT(10)=EVOL ;XMAT(11)=ALPHAT
  29. C XMAT(12)=RHO; XMAT(13)=SIGY
  30. C FKX(NKX) tableau de la fonction k(X,T) contenant les courbes
  31. C de k a differentes temperatures T1,T2,T3,...
  32. C NPTEUR(NC) tableau de pointeurs sur les differentes courbes
  33. C de la fonction k
  34. C MFR indice de la formulation mecanique(seulement massif
  35. C ou coque pour les materiaux endommageables
  36. C ICARA nombre de caracteristiques geometriques des elements
  37. C finis
  38. C XCAR(ICARA) tableau des caracteristiques geometriques des
  39. C elements finis
  40. C IFOURB= -2 EN CONTR. PLANES
  41. C -1 EN DEFORM. PLANES
  42. C 0 EN AXISYMETRIE
  43. C 1 EN SERIE DE FOURIER
  44. C 2 EN TRIDIM
  45. C INDIC=0, 1 OU -1 pour plasticite avec endommagement
  46. C =2 OU -2 pour viscoplasticite avec endommagement
  47. C ITHHER = 0 pas de chargement thermique et materiau constant
  48. C = 1 chargement thermique et materiau constant
  49. C = 2 chargement thermique et materiau(T)
  50. C------------------------------------------------------------------------
  51. C
  52. C------------------------------------------------------------------------
  53. C Sortie: EPSVD(NSTRS) derivee du tenseur des deformations
  54. C VARD(NVARI) tableau contenant les derivees des variables
  55. C internes
  56. C SIGD(NSTRS) derivee des contraintes
  57. C DD(NSTRS,NSTRS) matrice de Hooke au debut du pas
  58. C DDV(NSTRS,NSTRS) derivee de DD
  59. C DDINV(NSTRS,NSTRS) inverse de DD
  60. C------------------------------------------------------------------------
  61. C
  62. IMPLICIT INTEGER(I-N)
  63. IMPLICIT REAL*8(A-H,O-Z)
  64. DIMENSION SIG(*),EPSV(*),VAR(*),XCAR(*),YOUNG(*),XNU(*)
  65. DIMENSION SIGD(*),EPSVD(*),VARD(*),DDINV(NSTRS,NSTRS)
  66. DIMENSION FKX(*),NPTEUR(*),XMAT(*),DSPT(*),TRUC(*)
  67. DIMENSION EPSTHD(*),DD(NSTRS,NSTRS),DDV(NSTRS,NSTRS)
  68. DIMENSION XX(6),A(3,3),D(3),S(3,3)
  69. C
  70. C----------------------------------------------------------------------
  71. C CALCULATE J0,J1,J2
  72. C J0: THE BIGEST PRINCIPAL STRESS
  73. C J1: MEAN STRESS
  74. C J2: CONTR. DE VON MISES
  75. C----------------------------------------------------------------------
  76. * cas des massif et coques
  77. * write(6,*) ' entree dans deriv mfr ',mfr
  78. if(mfr.eq.1.or.mfr.eq.3) then
  79. AJ1 = SIG(1)+SIG(2)+SIG(3)
  80. AJ1 = AJ1/3.0D0
  81. DO 30 I=1,3
  82. XX(I) = SIG(I)-AJ1
  83. 30 CONTINUE
  84. DO 40 I=4,NSTRS
  85. XX(I) = SIG(I)
  86. 40 CONTINUE
  87. AJ2 = PROCON(XX,XX,NSTRS)
  88. AJ2 = SQRT(1.5D0*AJ2)
  89. elseif (mfr.eq.5) then
  90. * cas des coques epaisses <= a priori non utilise dans ce modele !
  91. alfah = 1.D0
  92. ep1 = xcar(1)
  93. AJ1= (SIG(1)+SIG(2)) / 3.D0
  94. AJ2 = vonmis0(sig,nstrs,mfr,ifourb,ep1,alfah)
  95. XX(1)= sig(1) - aj1
  96. xx(2) = sig(2)-aj1
  97. DO 41 I=3,NSTRS
  98. XX(I) = SIG(I)
  99. 41 CONTINUE
  100. endif
  101. CALL ZERO(A,3,3)
  102. if(mfr.eq.1.or.mfr.eq.3) then
  103. DO 50 I=1,3
  104. A(I,I) = SIG(I)
  105. 50 CONTINUE
  106. A(1,2) = SIG(4)
  107. IF(NSTRS.NE.6) GOTO 54
  108. A(1,3) = SIG(5)
  109. A(2,3) = SIG(6)
  110. 54 CONTINUE
  111. elseif(mfr.eq.5) then
  112. a(1,1)=sig(1)
  113. a(2,2)=sig(2)
  114. a(1,2)= sig(3)
  115. a(1,3)= sig(4)
  116. a(2,3)= sig(5)
  117. endif
  118. A(2,1) = A(1,2)
  119. A(3,1) = A(1,3)
  120. A(3,2) = A(2,3)
  121. IF (NSTRS.EQ.4) CALL JACOB3(A,2,D,S)
  122. * on appele jacod3 car on n'a pas besoin des vecteurs propres
  123. * write(6,*) ' entree de jacob3'
  124. IF (NSTRS.GE.5) CALL JACOD3(A,3,D)
  125. * write(6,*) ' sortie de jacob3'
  126. C
  127. C---------------------------------------------------------------------
  128. C CALCULATE PRINCIPLE STRESS : D(*)
  129. C---------------------------------------------------------------------
  130. AJ0 = MAX(D(1),D(2),D(3))
  131. C
  132. C---------------------------------------------------------------------
  133. C CALCULATE VARIABLE X
  134. C---------------------------------------------------------------------
  135. C
  136. ALFA = XMAT(6)
  137. BETA = XMAT(7)
  138. X = (ALFA*AJ0)+(BETA*AJ1)+((1.0D0-ALFA-BETA)*AJ2)
  139. C
  140. C---------------------------------------------------------------------
  141. C CALCULATE PARAMETER k(X,T)=AK
  142. C---------------------------------------------------------------------
  143. C
  144. CALL VALPAR(FKX,NPTEUR,NKX,NC,X,AK,AKV,TI,TINF,TSUP,TRUC,NCOURB)
  145.  
  146. C
  147. C---------------------------------------------------------------------
  148. C CALCULATE RATE OF EQUAL EFFECTIVE STRAIN VARD(1)
  149. C RATE OF REAL EQUAL EFFECTIVE STRAIN VARD(2)
  150. C WITH VARD(2)=(1-D)*VARD(1)
  151. C---------------------------------------------------------------------
  152. DEN=1.D0-VAR(3)
  153. EM=XMAT(4)
  154. EN=XMAT(3)
  155. EK=XMAT(5)
  156. SIGY=XMAT(13)
  157. IF ( VAR(2).EQ.0.D0 ) VAR(2)=VAR(2)+1.D-12
  158. VARR=AJ2-(SIGY*DEN)
  159. D1=DEN*EK*(VAR(2)**(1.D0/EM))
  160. VARR=VARR/D1
  161. IF ( VARR.GT.0.D0 ) THEN
  162. VARD(2)=VARR**EN
  163. ELSE
  164. VARD(2)=0.D0
  165. ENDIF
  166.  
  167. VARD(1)=VARD(2)/DEN
  168. C
  169. C---------------------------------------------------------------------
  170. C CALCULATE RATE OF DAMAGE
  171. C---------------------------------------------------------------------
  172. ER=XMAT(8)
  173. EA=XMAT(9)
  174. IF (X.LE.0.D0) THEN
  175. VARD(3)=0.D0
  176. ELSE
  177. VARD(3)=((X/EA)**ER)/(DEN**AK)
  178. ENDIF
  179. C
  180. C---------------------------------------------------------------------
  181. C CALCULATE RATE OF PLASTIC STRAIN
  182. C---------------------------------------------------------------------
  183. IF ( AJ2.EQ.0.D0 ) THEN
  184. AA3=0.D0
  185. ELSE
  186. AA3=1.5D0*VARD(1)/AJ2
  187. ENDIF
  188. if(mfr.eq.1.or.mfr.eq.3) then
  189. DO 10 I=1,NSTRS
  190. AGAM=1.D0
  191. IF (I.GE.4) AGAM=2.D0
  192. EPSVD(I)=AA3*XX(I)*AGAM
  193. 10 CONTINUE
  194. elseif(mfr.eq.5) then
  195. DO 11 I=1,NSTRS
  196. AGAM=1.D0
  197. IF (I.GE.3) AGAM=2.D0
  198. EPSVD(I)=AA3*XX(I)*AGAM
  199. 11 CONTINUE
  200. endif
  201. C
  202. C----------------------------------------------------------------------
  203. C CALCULATE RATE OF STRESS
  204. C----------------------------------------------------------------------
  205.  
  206. CALL DERTRA(NYOUNG,YOUNG,TI,YUNG,YUNGV,TINF,TSUP)
  207. CALL DERTRA(NXNU,XNU,TI,ENU,ENUV,TINF,TSUP)
  208. C
  209. C Calcul de l'inverse de la matrice de Hooke au debut du pas
  210. CALL ELAST1(2,IFOURB,VAR,NVARI,XMAT,NCOMAT,YUNGV,ENUV,
  211. &XCAR,ICARA,MFR,NSTRS,DDINV,DDV,KERRE,INDIC,ITHHER)
  212. C
  213. C Calcul de la matrice de Hooke et de sa derivee au debut du pas
  214. CALL ELAST1(1,IFOURB,VAR,NVARI,XMAT,NCOMAT,YUNGV,ENUV,
  215. &XCAR,ICARA,MFR,NSTRS,DD,DDV,KERRE,INDIC,ITHHER)
  216. C
  217. CALL ZDANUL(SIGD,NSTRS)
  218. DO I=1,NSTRS
  219. XFLO=( DSPT(I)-EPSVD(I)-EPSTHD(I) )
  220. DO J=1,NSTRS
  221. SIGD(J)=SIGD(J)+ DD(J,I)*XFLO
  222. ENDDO
  223. ENDDO
  224.  
  225. CALL MULMAT(DD,DDV,DDINV,NSTRS,NSTRS,NSTRS)
  226.  
  227. XFLO1 = VARD(3)/DEN
  228. DO I=1,NSTRS
  229. XFLO=SIG(I)
  230. DO J=1,NSTRS
  231. SIGD(J)=SIGD(J) + TPOINT*DD(J,I)*XFLO
  232. ENDDO
  233. SIGD(I)=SIGD(I) - XFLO1*SIG(I)
  234. ENDDO
  235.  
  236. RETURN
  237. END
  238.  
  239.  
  240.  
  241.  

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