Télécharger rotat2.eso

Retour à la liste

Numérotation des lignes :

rotat2
  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 PPARAM
  46. -INC CCOPTIO
  47. SEGMENT WRK0
  48. REAL*8 XMAT(NMATT)
  49. ENDSEGMENT
  50. *
  51. SEGMENT WRK1
  52. REAL*8 DDHOOK(LHOOK,LHOOK),SIG0(NSTRS),DEPST(NSTRS)
  53. REAL*8 SIGF(NSTRS),VAR0(NVARI),VARF(NVARI)
  54. REAL*8 DEFP(NSTRS),XCAR(ICARA)
  55. ENDSEGMENT
  56. SEGMENT WRKK2
  57. REAL*8 EPSILI(NSTRS)
  58. ENDSEGMENT
  59. SEGMENT WRK5
  60. REAL*8 EPIN0(NSTRS),EPINF(NSTRS),EPST0(NSTRS)
  61. ENDSEGMENT
  62. CHARACTER*8 CMATE
  63. INTEGER NSTRS,NVARI,NMATT,ISTEP
  64. REAL*8 EPSILO(6),EPSNT(3),SIGNT(3),T(3,3),EPSXY(3),SIGXY(3)
  65. REAL*8 MUP0,MU,MUP,EPCR
  66. REAL*8 EPSMAX,EPSNN,EPSMAX1
  67. REAL*8 SINUS,COSINUS
  68. INTEGER CAS
  69. PARAMETER (XZERO=0.D0 , UN=1.D0 , DEUX=2.D0, XPETIT=1.D-12)
  70.  
  71. C
  72. C
  73. C recuperation des variables initiales dans les tableaux
  74. C
  75. C
  76. N=NSTRS
  77. CMATE = 'ISOTROPE'
  78. YOUN = XMAT(1)
  79. XNU = XMAT(2)
  80. EPCR = XMAT(5)
  81. MUP0 = XMAT(6)
  82. EPSMAX = VAR0(1)
  83. EPSNN=VAR0(2)
  84. C
  85. C calcul de la deformation totale
  86. C
  87. DO 100 ISTRS=1,NSTRS
  88. EPSILO(ISTRS)=EPSILI(ISTRS)+DEPST(ISTRS)
  89. 100 CONTINUE
  90. EPSXY(1)=EPSILO(1)
  91. EPSXY(2)=EPSILO(2)
  92. EPSXY(3)=EPSILO(4)
  93. CALL DIACL (EPSXY,SINUS,COSINUS)
  94. t(1,1)=COSINUS**2
  95. t(2,1)=SINUS**2
  96. t(3,1)=-2.D0*COSINUS*SINUS
  97. t(1,2)=SINUS**2
  98. t(2,2)=COSINUS**2
  99. t(3,2)=2.D0*COSINUS*SINUS
  100. t(1,3)=COSINUS*SINUS
  101. t(2,3)=-COSINUS*SINUS
  102. t(3,3)=COSINUS**2 - SINUS**2
  103. DO I=1,3
  104. EPSNT(I)=0.D0
  105. DO J=1,3
  106. EPSNT(I)=EPSNT(I)+T(I,J)*EPSXY(J)
  107. END DO
  108. END DO
  109. *
  110. *INITIALISATION DU EPSM
  111. *
  112. IF (ISTEP .EQ. 2) THEN
  113. EPSNNM=EPSNN
  114. ELSE
  115. EPSNNM=EPSNT(1)
  116. END IF
  117. EPSMAX1=MAX(EPSMAX,EPCR)
  118. *
  119. *CALCUL DE MU DANS LES DIFFERENTS CAS
  120. *
  121. IF (EPSNNM.LE.0.d0) THEN
  122. MUP=1.D0
  123. MU=MUP
  124. CAS=1
  125. ELSE IF (EPSNNM .LE. EPSMAX1) THEN
  126. IF (EPSMAX1.LE. EPCR*(1.D0-1.D0/MUP0))THEN
  127. MUP=(EPCR+MUP0*(EPSMAX1-EPCR))/EPSMAX1
  128. ELSE
  129. MUP=0.D0
  130. END IF
  131. CAS=2
  132. MU=MUP
  133. ELSE IF (EPSNNM .LE. EPCR*(1.D0-1.D0/MUP0))THEN
  134. IF (EPSMAX1 .LT. EPCR)THEN
  135. MUP=(EPCR+MUP0*(EPSNNM-EPCR)-EPSMAX1)/(EPSNNM-EPSMAX1)
  136. ELSE
  137. MUP=MUP0
  138. END IF
  139. MU=(EPCR+MUP0*(EPSNNM-EPCR))/EPSNNM
  140. EPSMAX=EPSNNM
  141. CAS=3
  142. ELSE
  143. IF ( EPSMAX1 .LT. EPCR*(1.D0-1.D0/MUP0)) then
  144. MUP=(EPCR+MUP0*(EPSMAX1-EPCR))/(EPSMAX1-EPSNNM)
  145. ELSE
  146. MUP=0.D0
  147. END IF
  148. MU=0.D0
  149. CAS=4
  150. EPSMAX1=EPSNNM
  151. END IF
  152. C
  153. C On calcule la contrainte dans le repere principal
  154. C
  155. IF (ISTEP .NE. 1) THEN
  156. EPSNN=EPSNT(1)
  157. EPSTT=EPSNT(2)
  158. SIGNN=MU*YOUN/(1.D0-XNU*XNU*MU)*(EPSNN+XNU*EPSTT)
  159. SIGTT=YOUN/(1.D0-XNU*XNU*MU)*(EPSTT+XNU*MU*EPSNN)
  160. SIGNT(1)=SIGNN
  161. SIGNT(2)=SIGTT
  162. SIGNT(3)=0.D0
  163. C
  164. C Finalement la contrainte est calculee dans le repere de travail
  165. C
  166. DO I=1,3
  167. SIGXY(I)=0.D0
  168. DO J=1,3
  169. SIGXY(I)=SIGXY(I)+T(J,I)*SIGNT(J)
  170. END DO
  171. END DO
  172. SIGF(1)=SIGXY(1)
  173. SIGF(2)=SIGXY(2)
  174. SIGF(3)=XZERO
  175. SIGF(4)=SIGXY(3)
  176.  
  177. C
  178. C et les deformations inelastiques finales
  179. C
  180. EPSIN=(UN-MU)/(UN-XNU*XNU*MU)*(EPSNN+XNU*EPSTT)
  181. EPINF(1)=T(1,1)*EPSIN
  182. EPINF(2)=T(1,2)*EPSIN
  183. EPINF(3)=XZERO
  184. EPINF(4)=T(1,3)*EPSIN
  185. END IF
  186. VARF(1)= MAX(EPSMAX,EPSNN)
  187. VARF(2)=EPSNNM
  188. C print*,cas,epsmax1,epsnnm,mu,epsin
  189. C print*,'epsnt=',epsnt
  190. C print*,'signt=',signt
  191. C print*,'sigxy=',sigxy evol1 fx);
  192. C print*,'istep=',istep
  193. C print*,'epsnn=',epsnn
  194. C print*,'epsnnm=',epsnnm
  195. C print*,'epcr=',epcr,'mup0=',mup0
  196. C print*,'mu=',mu,epsin
  197. C PRINT*,'VARF',(VARF(I),I=1,2)
  198. C PRINT*,'EPINF',(EPINF(I),I=1,NSTRS)
  199. C PRINT*,'SIGF',(SIGF(I),I=1,NSTRS)
  200. C PRINT*,'EPSILO',(EPSILO(I),I=1,NSTRS)
  201. C PRINT*,'EPSILI',(EPSILI(I),I=1,NSTRS)
  202. C PRINT*,'DEPST',(DEPST(I),I=1,NSTRS)
  203. C print*
  204. RETURN
  205. END
  206.  
  207.  
  208.  

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