Télécharger ricj2.eso

Retour à la liste

Numérotation des lignes :

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

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