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

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