Télécharger ricj2.eso

Retour à la liste

Numérotation des lignes :

ricj2
  1. C RICJ2 SOURCE CB215821 26/06/25 21:15:22 12581
  2. C sub ricjoi2d
  3. C RICJOI2D SOURCE CHAT 05/01/12 22:24:09 5004
  4. SUBROUTINE RICJ2(IB,IGAU,NSTRS,SIG0,EPIN0,VAR0,NVARI,
  5. & DEPST,IFOUR,XMAT,NMATT,IVAL,DD,SIGF,DEFP,VARF,KERRE)
  6. C-----------------------------------------------------------------------
  7. C Modele RICJOI en version element joint 2D
  8. C-----------------------------------------------------------------------
  9. C Développé par : Benjamin Richard
  10. C
  11. C Supervisé par : Frederic Ragueneau
  12. C Lucas Hector Adelaide
  13. C Christian Cremona
  14. C Jean Louis Tailhan
  15. C-----------------------------------------------------------------------
  16.  
  17. C
  18. C-----DECLARATION GENERALE----------------------------------------------
  19. C
  20. IMPLICIT INTEGER(I-N)
  21. IMPLICIT REAL*8(A-H,O-Z)
  22. C
  23. C-----APPEL AUX INCLUDES------------------------------------------------
  24. C
  25. -INC CCREEL
  26. C
  27. C-----PARAMETRES
  28. C
  29. PARAMETER(XDILAT = 80.0D0)
  30. C
  31. C-----DIMENSION---------------------------------------------------------
  32. C
  33. DIMENSION SIG0(*),EPIN0(*),VAR0(*),DEPST(*),XMAT(*)
  34. DIMENSION DD(NSTRS,NSTRS)
  35. DIMENSION SIGF(*),DEFP(*),VARF(*)
  36. REAL*8 DN,NCOEF,KCOEF
  37.  
  38. DN = 0.D0
  39.  
  40. FVARLIM = 2.0D-5
  41. crit2tol=1.001d0
  42. C
  43. C-----COMPTEUR POUR LE NOMBRE DE PASSAGE DAS LA BOUCLE
  44. C
  45. COUN = VAR0(13)
  46. C
  47. C-----ETAT PRECEDENT----------------------------------------------------
  48. C
  49. D = VAR0(1)
  50. EPSF = VAR0(2)
  51. XEC = VAR0(3)
  52. EPST = VAR0(4)
  53. EPSN = VAR0(5)
  54. CINE = VAR0(6)
  55.  
  56. EPSR = VAR0(7)
  57. IFLAG = nint(VAR0(8))
  58. FVAR = VAR0(9)
  59. SIGM = VAR0(10)
  60. XKS = VAR0(11)
  61. XKN = VAR0(12)
  62. C
  63. C-----INITIALISATION SPECIFIQUE POUR LES VARIABLES INTERNES DIFF. DE ZERO
  64. C
  65. IF (COUN.EQ.0.0D0) THEN
  66. FVAR = 0.2D0
  67. SIGM = XMAT(13)
  68. XKS = XMAT(1)
  69. XKN = XMAT(2)
  70. ENDIF
  71. C
  72. C-----CONSTANTES MATERIAUX----------------------------------------------
  73. C
  74. XKS0 = XMAT(1)
  75. XKN0 = XMAT(2)
  76.  
  77. XAD = XMAT(5)
  78. XY0 = XMAT(6)
  79. XAL = XMAT(7)
  80. XGA = XMAT(8)
  81. XAA = XMAT(9)
  82.  
  83. Q1COE = XMAT(10)
  84. Q2COE = XMAT(11)
  85. Q3COE = XMAT(12)
  86. SYCOE = XMAT(13)
  87. NCOEF = XMAT(14)
  88. KCOEF = XMAT(15)
  89.  
  90. TCCOR = XMAT(16)
  91. NGONF = nint(XMAT(17))
  92.  
  93. CALL APP2(TCCOR,YR,15)
  94.  
  95. C
  96. C-----ACTUALISATION DE LA DEFORMATION-----------------------------------
  97. C
  98. EPST = EPST + DEPST(1)
  99. EPSN = EPSN + DEPST(2)
  100.  
  101. IF (NGONF.EQ.1) THEN
  102. GOTO 123
  103. ENDIF
  104.  
  105. C
  106. C-----CALCUL DE L ENERGIE-----------------------------------------------
  107. C
  108. EPSNP = 0.5D0*(ABS(EPSN)+EPSN)
  109. YN = 0.5D0*XKN*EPSNP*EPSNP
  110. YD = 0.5D0*XKS*EPST*EPST
  111. C
  112. C-----CALCUL DU SEUIL D ENDOMMAGEMENT-----------------------------------
  113. C
  114. XFD = XAL*YN+YD-(XY0+XEC+YR)
  115. C
  116. C-----TEST SUR LE SEUIL D ENDOMMAGEMENT---------------------------------
  117. C
  118. IF (XFD.GT.0.0D0) THEN
  119. Dn = 1.0D0-1.0D0/(1+XAD*(XAL*YN+YD-XY0-YR))
  120. XEC = XAL*YN+YD-XY0-YR
  121. ENDIF
  122.  
  123. IF (Dn.GT.D) THEN
  124. D = Dn
  125. ENDIF
  126.  
  127. IF (D.GE.1.0D0) THEN
  128. D = 0.999D0
  129. ENDIF
  130. C
  131. C-----SUBSTEPPING-------------------------------------------------------
  132. C
  133. NENTIER = 1
  134. XNENTI=REAL(NENTIER)
  135.  
  136. DO IQ = 1,NENTIER
  137. XIQ =REAL(IQ)
  138.  
  139. EPST = VAR0(4)+DEPST(1)*(XIQ/XNENTI)
  140. EPSN = VAR0(5)+DEPST(2)*(XIQ/XNENTI)
  141. XSTE = XKN*EPSN
  142. C
  143. C-----FROTTEMENT---------------------------------------------------------
  144. C
  145. SPI = D*XKS*(EPST-EPSF)
  146.  
  147. CRITF = ABS(SPI-CINE)+XDILAT*0.5D0*(-ABS(XSTE)+XSTE)
  148.  
  149. IF (CRITF.GT.(0.0D0)) THEN
  150. XF0 = ABS(SPI-CINE)+XDILAT*0.5D0*(-ABS(XSTE)+XSTE)
  151. XDLAM = 1.0D0
  152.  
  153. DO I=1,500
  154. SEUIL = (ABS(SPI-CINE)+
  155. & XDILAT*0.5D0*(-ABS(XSTE)+XSTE))/XF0
  156.  
  157. IF ((SEUIL.LE.1.0D-5).OR.(XDLAM.LE.1.0D-10)) THEN
  158. GOTO 900
  159. ELSE
  160. XSG = ABS(SPI-CINE)/(SPI-CINE)
  161. XDLAM = (ABS(SPI-CINE)+
  162. & XDILAT*0.5D0*(-ABS(XSTE)+XSTE))/
  163. & (XKS*D-XSG*XGA*(-XSG+XAA*CINE))
  164. CINE = CINE-XGA*XDLAM*(-XSG+XAA*CINE)
  165. SPI = SPI-D*XKS*XDLAM*XSG
  166. ENDIF
  167.  
  168. EPSF = -SPI/(D*XKS)+EPST
  169.  
  170. ENDDO
  171. ENDIF
  172.  
  173. 900 CONTINUE
  174.  
  175. ENDDO
  176. C
  177. C-----ANELASTICITE--------------------------------------------------------
  178. C
  179. IF (EPSN.GT.0.0D0) THEN
  180. SIGN = (1-D)*XKN*EPSN
  181. ELSE
  182. SIGN = XKN*(EPSN-EPSR)
  183. ENDIF
  184. C
  185. C-----CONTRAINTE DUE AUX EFFETS INELASTIQUE DE LA ROUILLE-----------------
  186. C
  187. IF (EPSN.LE.0.0D0) THEN
  188. SIGR = -1.0D0*SIGN
  189. ENDIF
  190. C
  191. C-----CRITERE D ANELASTICITE DE LA ROUILLE--------------------------------
  192. C
  193. IF (IFLAG.EQ.1) THEN
  194. GOTO 20
  195. ELSE
  196. CRIT2 = 2.0D0*Q1COE*FVAR*DCOSH(Q2COE*SIGR/2.0D0/SYCOE)-
  197. & (1.0D0+(Q3COE*FVAR)**2.0D0)
  198. ENDIF
  199.  
  200. C
  201. C SI LE CRITERE EST DEPASSE ON DEMARRE LE RETURN MAPPING
  202. C
  203. IF ((CRIT2.GT.0.0D0).AND.
  204. 1 (EPSN .LE.0.0D0).AND.
  205. 2 (TCCOR.GT.0.0D0).AND.
  206. 3 (FVAR.GT.FVARLIM).AND.
  207. 4 (IFLAG.EQ.0).AND.
  208. 5 ((EPSN*DEPST(2)).GT.0.0D0)) THEN
  209. CRIT20 = CRIT2
  210. DLAM2 = 1.0D0
  211. GOTO 10
  212. ELSE IF (FVAR.EQ.FVARLIM) THEN
  213. IFLAG = 1
  214. GOTO 20
  215. ELSE
  216. GOTO 30
  217. END IF
  218. C
  219. C-----DEBUT DES ITERATIONS INTERNES
  220. C
  221. 10 DO I=1,10000
  222. C
  223. C EVALUATION DU CRITERE
  224. C
  225. CRIT2 = 2.0D0*Q1COE*FVAR*DCOSH(Q2COE*SIGR/2.0D0/SYCOE)-
  226. & (1.0D0+(Q3COE*FVAR)**2.0D0)
  227. C
  228. C TEST DE CONVERGENCE SUR LA VALEUR DU CRITERE RELATIVE
  229. C
  230. IF ((ABS(CRIT2/CRIT20).LE.CRIT2TOL).OR.
  231. & (DLAM2.LT.0.0D0).OR.
  232. & (CRIT2.LT.0.0D0)) THEN
  233. GOTO 20
  234. END IF
  235. C
  236. C CALCUL DES DERIVEES DU CRITERES
  237. C
  238. C dFr/dSIGR : DERIV21
  239. C dFr/dSIGM : DERIV22
  240. C dFr/dFVAR : DERIV23
  241. C
  242. DERIV21 = SINH(Q2COE*SIGR/2.0D0/SIGM)*
  243. & Q1COE*Q2COE*FVAR/SIGM
  244.  
  245. DERIV22 = SINH(Q2COE*SIGR/2.0D0/SIGM)*
  246. & (-1.0D0)*Q1COE*Q2COE*FVAR*SIGR/SIGM**2.0D0
  247.  
  248. DERIV23 = 2.0D0*Q1COE*DCOSH(Q2COE*SIGR/2.0D0/SIGM)-
  249. & 2.0D0*(Q3COE**2.0D0)*FVAR
  250. C
  251. C CALUL DU MODULE TANGENT COHERENTS ENTRE DSIGM ET DEPSM
  252. C
  253. ETAN = XKN/NCOEF*(SYCOE/SIGM)**(NCOEF-1.0D0)
  254. ESTA = 1.0D0/ETAN - 1.0D0/XKN
  255. ESTA = 1.0D0/ESTA
  256. C
  257. C CALCUL DU MULTIPLICATEUR DE LAGRANGE
  258. C
  259. DLAM2 = -CRIT2/(XKN*(DERIV21)**2.0D0-
  260. & DERIV23*KCOEF*FVAR*(1.0D0-FVAR)*DERIV21-
  261. & ESTA/((1.0D0-FVAR)*SIGM)*DERIV21*SIGR*DERIV22)
  262. C
  263. C ACTUALISATION DES VARIABLES FORCES
  264. C
  265. SIGR = SIGR + DLAM2 * XKN * DERIV21
  266. FVAR = FVAR - DLAM2 * KCOEF * FVAR * (1.0D0-FVAR) * DERIV21
  267. SIGM = SIGM - DLAM2 * SIGR * DERIV21 *
  268. & ESTA/(1.0D0-FVAR)/SIGM
  269. C
  270. C SECURITE SUR LA VALEUR DE FVAR (CAS OU ELLE DEVIENT TROP FAIBLE)
  271. C
  272. IF (FVAR.LE.FVARLIM) THEN
  273. FVAR = FVARLIM
  274. MODR = nint(DLAM2 * XKN * DERIV21/DEPST(2))
  275. END IF
  276. C
  277. C --------------------------------------------
  278. C RETURN MAPPING : FIN DES ITERATIONS INTERNES
  279. C --------------------------------------------
  280. C
  281. END DO
  282. C
  283. C BALISE DE SORTIE DU RETURN MAPPING AVANT ACUALISATION
  284. C
  285. 20 CONTINUE
  286. C
  287. C CAS OU LA FRACTION VOLUMIQUE DES PORES EST EGALE A 0.02
  288. C
  289. IF ((FVAR.EQ.FVARLIM).AND.
  290. & (IFLAG.EQ.1)) THEN
  291. SIGR = SIGR - MODR * DEPST(2)
  292. END IF
  293. C
  294. C CALCUL DES QUANTITES RESULTATS (EPSR, VKACT ET XKN)
  295. C
  296. SIGN = -SIGR
  297. EPSR = -(EPSN - SIGR/XKN)
  298. C
  299. C BALISE DE SORTIE DU RETURN MAPPING APRES ACUALISATION
  300. C
  301. 30 CONTINUE
  302. C
  303. C ACTUALISATION DES PARAMETRES ELASTIQUES
  304. C
  305. XKNACT = 4.0D0*XKN0*XKS0*(1.0D0-FVAR)/
  306. & (4.0D0*XKS0+3.0D0*XKN0*FVAR)
  307. XKSACT = XKS0*(1.0D0-FVAR)/
  308. & (1.0D0+((6.0D0*XKN0+12.0D0*XKS0)/
  309. & (9.0D0*XKN0+8.0D0*XKS0))*FVAR)
  310.  
  311. XKN = XKNACT
  312. XKS = XKSACT
  313.  
  314. C
  315. C-----CALCUL DES CONTRAINTES FINALES------------------------------------
  316. C
  317. SIGF(1) = XKS*(1-D)*EPST + SPI
  318.  
  319. IF (EPSN.GT.0.0D0) THEN
  320. SIGF(2) = XKN*(1-D)*EPSN
  321. ELSE
  322. SIGF(2) = XKN*(EPSN-EPSR)
  323. ENDIF
  324.  
  325. C
  326. C-----STOCKAGE EN SORTIE DES VARIABLES INTERNES-------------------------
  327. C
  328. VARF(1 ) = D
  329. VARF(2 ) = EPSF
  330. VARF(3 ) = XEC
  331. VARF(6 ) = CINE
  332. VARF(7 ) = EPSR
  333. VARF(8 ) = IFLAG
  334. VARF(9 ) = FVAR
  335. VARF(10) = SIGM
  336. VARF(11) = XKSACT
  337. VARF(12) = XKNACT
  338. VARF(13) = COUN + 1
  339.  
  340. 123 CONTINUE
  341.  
  342. IF (NGONF.EQ.1) THEN
  343. SIGF(1) = XMAT(1)*EPST
  344. SIGF(2) = XMAT(2)*EPSN
  345. ENDIF
  346.  
  347. VARF(4 ) = EPST
  348. VARF(5 ) = EPSN
  349.  
  350.  
  351. RETURN
  352. END
  353.  
  354.  
  355.  
  356.  
  357.  
  358.  
  359.  
  360.  
  361.  
  362.  
  363.  
  364.  
  365.  
  366.  
  367.  

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