Télécharger rotat2.eso

Retour à la liste

Numérotation des lignes :

  1. C ROTAT2 SOURCE CHAT 05/01/13 03:05:03 5004
  2. C MAZARS SOURCE AM 93/02/26 21:18:27 808
  3. SUBROUTINE ROTAT2 (WRK0,WRK1,WRKK2,WRK5,NSTRS,NVARI,
  4. 1 NMATT,ISTEP,ICARA)
  5. C
  6. C
  7. C variables en entree
  8. C
  9. C
  10. C WRK0 pointeur sur un segment deformation au pas precedent
  11. C
  12. C WRK1 pointeur sur un segment increment de deformation
  13. C
  14. C WRKK2 pointeur sur un segment variables internes au pas precedent
  15. C
  16. C WRK5 pointeur sur un segment de deformations inelastiques
  17. C
  18. C XMATER constantes du materiau
  19. C
  20. C NSTRS nombre de composantes dans les vecteurs des contraintes
  21. C et les vecteurs des deformations
  22. C
  23. C NVARI nombre de variables internes (doit etre egal a 2)
  24. C
  25. C NMATT nombre de constantes du materiau
  26. C
  27. C ISTEP flag utilise pour separer les etapes dans un calcul non local
  28. C ISTEP=0 -----> calcul local
  29. C ISTEP=1 -----> calcul non local etape 1 on calcule les seuils
  30. C ISTEP=2 -----> calcul non local etape 2 on continue le calcul
  31. C a partir des seuils moyennes
  32. C
  33. C variables en sortie
  34. C
  35. C VARINF variables internes finales
  36. C
  37. C SIGMAF contraintes finales
  38. C
  39. C C. LA BORDERIE MARS 1992
  40. C declaration des variables
  41. C
  42. C
  43. IMPLICIT INTEGER(I-N)
  44. IMPLICIT REAL*8(A-H,O-Z)
  45. -INC CCOPTIO
  46. SEGMENT WRK0
  47. REAL*8 XMAT(NMATT)
  48. ENDSEGMENT
  49. *
  50. SEGMENT WRK1
  51. REAL*8 DDHOOK(LHOOK,LHOOK),SIG0(NSTRS),DEPST(NSTRS)
  52. REAL*8 SIGF(NSTRS),VAR0(NVARI),VARF(NVARI)
  53. REAL*8 DEFP(NSTRS),XCAR(ICARA)
  54. ENDSEGMENT
  55. SEGMENT WRKK2
  56. REAL*8 EPSILI(NSTRS)
  57. ENDSEGMENT
  58. SEGMENT WRK5
  59. REAL*8 EPIN0(NSTRS),EPINF(NSTRS),EPST0(NSTRS)
  60. ENDSEGMENT
  61. CHARACTER*8 CMATE
  62. INTEGER NSTRS,NVARI,NMATT,ISTEP
  63. REAL*8 EPSILO(6),EPSNT(3),SIGNT(3),T(3,3),EPSXY(3),SIGXY(3)
  64. REAL*8 MUP0,MU,MUP,EPCR
  65. REAL*8 EPSMAX,EPSNN,EPSMAX1
  66. REAL*8 SINUS,COSINUS
  67. INTEGER CAS
  68. PARAMETER (XZERO=0.D0 , UN=1.D0 , DEUX=2.D0, XPETIT=1.D-12)
  69.  
  70. C
  71. C
  72. C recuperation des variables initiales dans les tableaux
  73. C
  74. C
  75. N=NSTRS
  76. CMATE = 'ISOTROPE'
  77. YOUN = XMAT(1)
  78. XNU = XMAT(2)
  79. EPCR = XMAT(5)
  80. MUP0 = XMAT(6)
  81. EPSMAX = VAR0(1)
  82. EPSNN=VAR0(2)
  83. C
  84. C calcul de la deformation totale
  85. C
  86. DO 100 ISTRS=1,NSTRS
  87. EPSILO(ISTRS)=EPSILI(ISTRS)+DEPST(ISTRS)
  88. 100 CONTINUE
  89. EPSXY(1)=EPSILO(1)
  90. EPSXY(2)=EPSILO(2)
  91. EPSXY(3)=EPSILO(4)
  92. CALL DIACL (EPSXY,SINUS,COSINUS)
  93. t(1,1)=COSINUS**2
  94. t(2,1)=SINUS**2
  95. t(3,1)=-2.D0*COSINUS*SINUS
  96. t(1,2)=SINUS**2
  97. t(2,2)=COSINUS**2
  98. t(3,2)=2.D0*COSINUS*SINUS
  99. t(1,3)=COSINUS*SINUS
  100. t(2,3)=-COSINUS*SINUS
  101. t(3,3)=COSINUS**2 - SINUS**2
  102. DO I=1,3
  103. EPSNT(I)=0.D0
  104. DO J=1,3
  105. EPSNT(I)=EPSNT(I)+T(I,J)*EPSXY(J)
  106. END DO
  107. END DO
  108. *
  109. *INITIALISATION DU EPSM
  110. *
  111. IF (ISTEP .EQ. 2) THEN
  112. EPSNNM=EPSNN
  113. ELSE
  114. EPSNNM=EPSNT(1)
  115. END IF
  116. EPSMAX1=MAX(EPSMAX,EPCR)
  117. *
  118. *CALCUL DE MU DANS LES DIFFERENTS CAS
  119. *
  120. IF (EPSNNM.LE.0.d0) THEN
  121. MUP=1.D0
  122. MU=MUP
  123. CAS=1
  124. ELSE IF (EPSNNM .LE. EPSMAX1) THEN
  125. IF (EPSMAX1.LE. EPCR*(1.D0-1.D0/MUP0))THEN
  126. MUP=(EPCR+MUP0*(EPSMAX1-EPCR))/EPSMAX1
  127. ELSE
  128. MUP=0.D0
  129. END IF
  130. CAS=2
  131. MU=MUP
  132. ELSE IF (EPSNNM .LE. EPCR*(1.D0-1.D0/MUP0))THEN
  133. IF (EPSMAX1 .LT. EPCR)THEN
  134. MUP=(EPCR+MUP0*(EPSNNM-EPCR)-EPSMAX1)/(EPSNNM-EPSMAX1)
  135. ELSE
  136. MUP=MUP0
  137. END IF
  138. MU=(EPCR+MUP0*(EPSNNM-EPCR))/EPSNNM
  139. EPSMAX=EPSNNM
  140. CAS=3
  141. ELSE
  142. IF ( EPSMAX1 .LT. EPCR*(1.D0-1.D0/MUP0)) then
  143. MUP=(EPCR+MUP0*(EPSMAX1-EPCR))/(EPSMAX1-EPSNNM)
  144. ELSE
  145. MUP=0.D0
  146. END IF
  147. MU=0.D0
  148. CAS=4
  149. EPSMAX1=EPSNNM
  150. END IF
  151. C
  152. C On calcule la contrainte dans le repere principal
  153. C
  154. IF (ISTEP .NE. 1) THEN
  155. EPSNN=EPSNT(1)
  156. EPSTT=EPSNT(2)
  157. SIGNN=MU*YOUN/(1.D0-XNU*XNU*MU)*(EPSNN+XNU*EPSTT)
  158. SIGTT=YOUN/(1.D0-XNU*XNU*MU)*(EPSTT+XNU*MU*EPSNN)
  159. SIGNT(1)=SIGNN
  160. SIGNT(2)=SIGTT
  161. SIGNT(3)=0.D0
  162. C
  163. C Finalement la contrainte est calculee dans le repere de travail
  164. C
  165. DO I=1,3
  166. SIGXY(I)=0.D0
  167. DO J=1,3
  168. SIGXY(I)=SIGXY(I)+T(J,I)*SIGNT(J)
  169. END DO
  170. END DO
  171. SIGF(1)=SIGXY(1)
  172. SIGF(2)=SIGXY(2)
  173. SIGF(3)=XZERO
  174. SIGF(4)=SIGXY(3)
  175.  
  176. C
  177. C et les deformations inelastiques finales
  178. C
  179. EPSIN=(UN-MU)/(UN-XNU*XNU*MU)*(EPSNN+XNU*EPSTT)
  180. EPINF(1)=T(1,1)*EPSIN
  181. EPINF(2)=T(1,2)*EPSIN
  182. EPINF(3)=XZERO
  183. EPINF(4)=T(1,3)*EPSIN
  184. END IF
  185. VARF(1)= MAX(EPSMAX,EPSNN)
  186. VARF(2)=EPSNNM
  187. C print*,cas,epsmax1,epsnnm,mu,epsin
  188. C print*,'epsnt=',epsnt
  189. C print*,'signt=',signt
  190. C print*,'sigxy=',sigxy evol1 fx);
  191. C print*,'istep=',istep
  192. C print*,'epsnn=',epsnn
  193. C print*,'epsnnm=',epsnnm
  194. C print*,'epcr=',epcr,'mup0=',mup0
  195. C print*,'mu=',mu,epsin
  196. C PRINT*,'VARF',(VARF(I),I=1,2)
  197. C PRINT*,'EPINF',(EPINF(I),I=1,NSTRS)
  198. C PRINT*,'SIGF',(SIGF(I),I=1,NSTRS)
  199. C PRINT*,'EPSILO',(EPSILO(I),I=1,NSTRS)
  200. C PRINT*,'EPSILI',(EPSILI(I),I=1,NSTRS)
  201. C PRINT*,'DEPST',(DEPST(I),I=1,NSTRS)
  202. C print*
  203. RETURN
  204. END
  205.  
  206.  
  207.  

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