Télécharger jfdeco.eso

Retour à la liste

Numérotation des lignes :

  1. C JFDECO SOURCE CHAT 05/01/13 00:49:30 5004
  2. SUBROUTINE JFDECO(WRK0,WRK1,WRKK2,WRK5,NSTRS,NVARI,NMATT,
  3. 1 ISTEP,ICARA,DT,KERRE)
  4. C
  5. C %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  6. C % %
  7. C % subroutine integrant le comportement du beton %
  8. C % %
  9. C % - determine les nouvelles valeurs des variables %
  10. C % d'histoire YLIM1 YLIM2 D1 et D2 %
  11. C % %
  12. C % %
  13. C % en fonction du vecteur des deformations %
  14. C % %
  15. C %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  16. C
  17. C %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  18. C % %
  19. C % %
  20. C % declaration des variables %
  21. C % %
  22. C % %
  23. C %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  24. C
  25. C
  26. C
  27. IMPLICIT INTEGER(I-N)
  28. IMPLICIT REAL*8(A-H,O-Z)
  29. -INC CCOPTIO
  30. SEGMENT WRK0
  31. REAL*8 XMAT(NMATT)
  32. ENDSEGMENT
  33. *
  34. SEGMENT WRK1
  35. REAL*8 DDHOOK(NSTRS,NSTRS),SIG0(NSTRS),DEPST(NSTRS)
  36. REAL*8 SIGF(NSTRS),VAR0(NVARI),VARF(NVARI)
  37. REAL*8 DEFP(NSTRS),XCAR(ICARA)
  38. ENDSEGMENT
  39. SEGMENT WRKK2
  40. REAL*8 EPSILI(NSTRS)
  41. END SEGMENT
  42.  
  43. SEGMENT WRK3
  44. REAL*8 EPSILO(NSTRS)
  45. END SEGMENT
  46. *
  47. SEGMENT WRK5
  48. REAL*8 EPIN0(NSTRS),EPINF(NSTRS),EPST0(NSTRS)
  49. ENDSEGMENT
  50. *
  51. REAL*8 YLIM1,YLIM2,DOM1,DOM2,Y1,Y2,Z1,Z2
  52. *
  53. REAL*8 EPS33(3,3),XROTA(3,3),EPSA(3),EPSN(3)
  54. REAL*8 SIGNN(3),SIGA(3),SIGMAN(3,3)
  55. INTEGER JSIGN(3)
  56. *
  57. *
  58. LOGICAL CONV
  59. REAL*8 UN,DEUX,ZERO
  60. PARAMETER (ZERO=0.D0)
  61. PARAMETER (UN=1.D0)
  62. PARAMETER (DEUX=2.D0)
  63. *
  64. * -----> RECUPERATION DES VARIABLES INTERNES
  65. *
  66. YLIMA1 = VAR0(1)
  67. YLIMA2 = VAR0(2)
  68. DOM1 = VAR0(3)
  69. DOM2 = VAR0(4)
  70. E = XMAT(1)
  71. *
  72. *
  73. *
  74. Z1=UN/(UN-DOM1)
  75. Z2=UN/(UN-DOM2)
  76. *
  77. * -----> ON DIAGONALISE LES ANCIENNES DEFORMATIONS
  78. *
  79. CALL ENDOCA(EPSILI,EPS33,2)
  80. CALL JACOB3(EPS33,2,EPSA,XROTA)
  81. * PRINT*,'ANCIENNES DEFORMATIONS PPALES',EPSA(1),EPSA(2),EPSA(3)
  82. *
  83. * -----> ON DIAGONALISE LES ANCIENNES CONTRAINTES
  84. *
  85. CALL ENDOCA(SIG0,EPS33,1)
  86. CALL JACOB3(EPS33,2,SIGA,XROTA)
  87. *
  88. * -----> ON CALCULE LES DEFORMATIONS TOTALES
  89. *
  90. SEGINI WRK3
  91. DO ISTRS=1,NSTRS
  92. EPSILO(ISTRS)=EPSILI(ISTRS)+DEPST(ISTRS)
  93. * print*,'ISTRS',ISTRS,'EPSILO',EPSILO(ISTRS)
  94. END DO
  95. *
  96. * -----> ON LES DIAGONALISE
  97. *
  98. CALL ENDOCA(EPSILO,EPS33,2)
  99. CALL JACOB3(EPS33,2,EPSN,XROTA)
  100. * PRINT*,'DEFORMATIONS PPALES',EPSN(1),EPSN(2),EPSN(3)
  101. *
  102. * -----> ON INITIALISE Y1 ET Y2
  103. *
  104. IF (SIGA(1) .GE. ZERO) THEN
  105. JSIGN(1)=1
  106. ELSE
  107. JSIGN(1)=0
  108. END IF
  109. IF (SIGA(2) .GE. ZERO) THEN
  110. JSIGN(2)=1
  111. ELSE
  112. JSIGN(2)=0
  113. END IF
  114. TRSIG=SIGA(1)+SIGA(2)
  115. IF (TRSIG .GE. ZERO) THEN
  116. FSIG=TRSIG
  117. ELSE IF (TRSIG.GE.-SIGF) THEN
  118. FSIG=TRSIG*(UN+TRSIG/(DEUX*SIGF))
  119. ELSE
  120. FSIG=-SIGF*TRSIG/DEUX
  121. END IF
  122. YA1=( JSIGN(1)*SIGA(1)*SIGA(1)+JSIGN(2)*SIGA(2)*SIGA(2) )
  123. & *Z1*Z1/(DEUX*E)
  124. YA2=( (1-JSIGN(1))*SIGA(1)*SIGA(1)+
  125. & (1-JSIGN(2))*SIGA(2)*SIGA(2) )
  126. & *Z2*Z2/(DEUX*E)
  127. C
  128. C
  129. C %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  130. C % %
  131. C % DECOUPAGE DE L'INCREMENT DE DEFORMATION %
  132. C % %
  133. C %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  134. c
  135. NEPS=1
  136. CONV=.FALSE.
  137. DO WHILE ((.NOT. CONV).AND.(NEPS.LE.100))
  138. SIG1 = SIGA(1)
  139. SIG2 = SIGA(2)
  140. YLIM1=YLIMA1
  141. YLIM2=YLIMA2
  142. IF (SIG1.GE.0.D0)THEN
  143. JSIGN(1)=1
  144. ELSE
  145. JSIGN(1)=0
  146. END IF
  147. IF (SIG2.GE.0.D0)THEN
  148. JSIGN(2)=1
  149. ELSE
  150. JSIGN(2)=0
  151. END IF
  152. Z1=1.D0/(1.D0-DOM1)
  153. Z2=1.D0/(1.D0-DOM2)
  154. Y1 = YA1
  155. Y2 = YA2
  156. DEPS1=(EPSN(1)-EPSA(1))/NEPS
  157. DEPS2=(EPSN(2)-EPSA(2))/NEPS
  158. IEPS=0
  159. DT1=DT/NEPS
  160. c print*,'Vitesse',(DEPS1/dt1),(DEPS2/dt1)
  161. CONV=.TRUE.
  162. DO WHILE (CONV .AND. (IEPS.LT.NEPS))
  163. IEPS=IEPS+1
  164. EPSP1=EPSA(1)+IEPS*DEPS1
  165. EPSP2=EPSA(2)+IEPS*DEPS2
  166. c
  167. C %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  168. C % %
  169. C % CALCUL DES VALEURS DES VARIABLES INTERNES %
  170. C % %
  171. C %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  172. C
  173. C
  174. c
  175. CALL MODJFD(WRK0,NMATT,EPSP1,EPSP2,YLIM1,YLIM2,Z1,Z2,Y1,Y2,
  176. 1 JSIGN,SIG1,SIG2,CONV,DT1)
  177. if (.not. conv ) then
  178. conv=.true.
  179. CALL MODJF2(WRK0,NMATT,EPSP1,EPSP2,YLIM1,YLIM2,Z1,Z2,
  180. 1 Y1,Y2,JSIGN,SIG1,SIG2,CONV,DT1)
  181. endif
  182. C
  183. C %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  184. C % %
  185. C % REACTUALISATION DES SEUILS %
  186. C % %
  187. C %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  188. c
  189. IF (CONV) THEN
  190. VARF(1)=MAX(Y1,VAR0(1))
  191. VARF(2)=MAX(Y2,VAR0(2))
  192. VARF(3)=MAX(1.D0-1.D0/Z1,VAR0(3))
  193. VARF(4)=MAX(1.D0-1.D0/Z2,VAR0(4))
  194. c IF (Y1 .GT.YLIM1)THEN
  195. c VARF(1)=Y1
  196. c VARF(3)=1.D0-1.D0/Z1
  197. c ELSE
  198. c VARF(1)=VAR0(1)
  199. c VARF(3)=VAR0(3)
  200. c END IF
  201. c IF (Y2 .GT. YLIM2)THEN
  202. c VARF(2)=Y2
  203. c VARF(4)=1.D0-1.D0/Z2
  204. c ELSE
  205. c VARF(2)=VAR0(2)
  206. c VARF(4)=VAR0(4)
  207. c END IF
  208. END IF
  209. END DO
  210. NEPS=NEPS*10
  211. END DO
  212. IF (.NOT. CONV)THEN
  213. print*,'valeur de neps et ieps',neps,ieps
  214. print*, 'NON CONVERGE DANS EULER',EPSP1,EPSP2
  215. C CALL MODJFD(WRK0,NMATT,EPSP1,EPSP2,YLIM1,YLIM2,Z1,Z2,Y1,Y2,
  216. C 1 JSIGN,SIG1,SIG2,CONV,DT1)
  217. SEGSUP WRK3
  218. KERRE=56
  219. return
  220. END IF
  221. C
  222. C %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  223. C % %
  224. C % CALCUL DES CONTRAINTES DANS LE REPERE DE L'ELEMENT %
  225. C % %
  226. C %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  227. C
  228. SIGNN(1)=SIG1
  229. SIGNN(2)=SIG2
  230. SIGNN(3)=0.D0
  231. CALL PRODT2 (SIGMAN,SIGNN,XROTA,3)
  232. SIGF(1)=SIGMAN(1,1)
  233. SIGF(2)=SIGMAN(2,2)
  234. SIGF(3)=SIGMAN(3,3)
  235. SIGF(4)=SIGMAN(1,2)
  236. C
  237. C
  238. C %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  239. C % %
  240. C % CALCUL DES DEFORMATIONS ANELASTIQUES %
  241. C % %
  242. C %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  243. C
  244. CALL MATVE1 (DDHOOK,SIGF,NSTRS,NSTRS,EPSILI,1)
  245. DO ISTRS=1,NSTRS
  246. EPINF(ISTRS)=EPSILO(ISTRS)-EPSILI(ISTRS)
  247. END DO
  248. SEGSUP WRK3
  249. RETURN
  250. END
  251.  
  252.  
  253.  
  254.  
  255.  
  256.  
  257.  

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