Télécharger ricj2.eso

Retour à la liste

Numérotation des lignes :

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

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