Télécharger coul1.eso

Retour à la liste

Numérotation des lignes :

coul1
  1. C COUL1 SOURCE JK148537 23/03/27 21:15:03 11641
  2. SUBROUTINE COUL1 ( IB,IGAU,NSTRS,SIG00,EPST00,EPIN00,VAR0,NVARI,
  3. . DEPST0,IFOUR,XMAT,NMATT,IVAL,DD,SIGF1,DEFP1,VARF,KERRE)
  4. C-----------------------------------------------------------------------
  5. C
  6. C PLASTICITE MODELE 3D MOHR COULOMB ELEMENTS JOINTS JOI1
  7. C
  8. C-----------------------------------------------------------------------
  9. C
  10. C PLASTICITE MODELE 3D MOHR COULOMB ELEMENTS JOINTS JOI1
  11. C
  12. C ENTREES
  13. C NSTRS = NOMBRE DE COMPOSANTES DE CONTRAINTES
  14. C SIG00 = CONTRAINTES INITIALES (AU DEBUT DU PAS)
  15. C VAR0(NVARI) = VARIABLES INTERNES (AU DEBUT DU PAS)
  16. C VAR0(1) = 'EPSE' DEFORMATION PLASTIQUE EQUIVALENTE
  17. C VAR0(2) = 'EPOU' DEF. PLASTIQUE DUE A L'OUVERTURE SEULE
  18. C VAR0(3) = 'STAT' ETAT DU JOINT
  19. C VAR0(4) = 'LAM1' MULTIPLICATEUR PLASTIQUE EN TRACTION
  20. C VAR0(5) = 'PLA1' DEF. PLAST. DS. LA DIR. DE GLISSEMENT 1
  21. C VAR0(6) = 'PLA2' DEF. PLAST. DS. LA DIR. DE GLISSEMENT 2
  22. C VAR0(7) = 'PLA3' DEF. PLAST. DS. LA DIR. NORMALE AUX
  23. C DIRECTIONS DE GLISSEMENT
  24. C VAR0(8) = 'EPCO' DEF. PLASTIQUE DUE A LA COMPRESSION SEULE
  25. C VAR0(9) = 'LAM3' MULTIPLICATEUR PLASTIQUE EN COMPRESSION
  26. C
  27. C NMATT = NOMBRE DE COMPOSANTES DE MATERIAU
  28. C XMAT(NMATT) = COMPOSANTES DU MATERIAU
  29. C XMAT ( 1) = 'V1X ' V1=(V1X,V1Y,V1Z)
  30. C XMAT ( 2) = 'V1Y '
  31. C XMAT ( 3) = 'V1Z '
  32. C XMAT ( 4) = 'V2X ' V2=(V2X,V2Y,V2Z)
  33. C XMAT ( 5) = 'V2Y '
  34. C XMAT ( 6) = 'V2Z ' V3=V1^V2
  35. C XMAT ( 7) = 'KN ' RAIDEUR EN TRANSLATION DS LA DIRECTION V1
  36. C XMAT ( 8) = 'KS1 ' RAIDEUR EN TRANSLATION DS LA DIRECTION V2
  37. C XMAT ( 9) = 'KS2 ' RAIDEUR EN TRANSLATION DS LA DIRECTION V3
  38. C XMAT (10) = 'QN ' RAIDEUR EN ROTATION AUTOUR DE V1
  39. C XMAT (11) = 'QS1 ' RAIDEUR EN ROTATION AUTOUR DE V2
  40. C XMAT (12) = 'QS2 ' RAIDEUR EN ROTATION AUTOUR DE V3
  41. C XMAT (13) = 'QT ' RAIDEUR TANGENTE NORMALE AU PLAN DE GLISS.
  42. C XMAT (14) = 'FNE ' LIMITE ELASTIQUE DE L'EFFORT NORMAL
  43. C XMAT (15) = 'COHE' COHESION
  44. C XMAT (16) = 'FRIC' ANGLE DU CONE EN °
  45. C XMAT (17) = 'TYPE' NORMALE AU PLAN DE GLISSEMENT
  46. C
  47. C EPST00(NSTRS) = DEFORMATION TOTALE INITIALE (AU DEBUT DU PAS)
  48. C DEPST(NSTRS) = INCREMENT DE DEFORMATION TOTALE
  49. C DD(NSTRS,NSTRS) = MATRICE DE HOOK
  50. C
  51. C SORTIES
  52. C STRESS(NSTRS) = CONTRAINTES FINALES
  53. C STATEV(NSTATV) = VARIABLES INTERNES FINALES
  54. C KINC = INDICE D'ERREUR
  55. C = 60 PAS DE CONVERGENCE APRES 10 ITERATIONS
  56. C INTERNES (VARIABLE ISSU DANS COULM)
  57. C = 61
  58. C
  59. C-----------------------------------------------------------------------
  60. C
  61. IMPLICIT INTEGER(I-N)
  62. IMPLICIT REAL*8(A-H,O-Z)
  63. -INC CCREEL
  64. C
  65. DIMENSION SIG00(*),EPST00(*),EPIN00(*),VAR0(*),DEPST0(*),XMAT(*)
  66. DIMENSION DD(NSTRS,NSTRS),IDI1(6),IDI2(6),TRAID(6,6)
  67. DIMENSION SIGF1(*),DEFP1(*),VARF(*)
  68. C Mes arguments
  69. DIMENSION SIG0(3),EPST0(3),EPIN0(3),DEPST(3)
  70. DIMENSION SIGF(3),DEFP(3)
  71. C ------------------------------------------------------------------
  72. DATA IDI1 / 2 , 3 , 1 , 5 , 6 , 4 /
  73. DATA IDI2 / 3 , 1 , 2 , 6 , 4 , 5 /
  74. C ------------------------------------------------------------------
  75. C
  76. C -------IDEBMA POINTE SUR LA FIN DES 2 VECTEURS DU REPERE DE L'EF JOI1
  77. IDEBMA=6
  78. C
  79. C------CHARGEMENT DE TOUTES LES CARACTERISTIQUES MECANIQUES
  80. CALL ZERO(TRAID,6,6)
  81. DO 100 I=1,NSTRS
  82. TRAID(I,I)=XMAT(IDEBMA+I)
  83. 100 CONTINUE
  84. C ----------DIRECTION NORMALE AU PLAN DE GLISSEMENT
  85. IF (INT(XMAT(IDEBMA+NSTRS+5)).EQ.1) THEN
  86. IDIRN=1
  87. ELSE IF (INT(XMAT(IDEBMA+NSTRS+5)).EQ.2) THEN
  88. IDIRN=4
  89. ENDIF
  90. C
  91. C ----------DIRECTIONS DE GLISSEMENT
  92. IDIR1=IDI1(IDIRN)
  93. IDIR2=IDI2(IDIRN)
  94. C
  95. C ----------CONTRAINTES AU DEBUT DU PAS POUR LES 3 DIRECTIONS
  96. SIG0(1)=SIG00(IDIR1)
  97. SIG0(2)=SIG00(IDIR2)
  98. SIG0(3)=SIG00(IDIRN)
  99. C
  100. C ----------DEF. PLASTIQUES AU DEBUT DU PAS POUR LES 3 DIRECTIONS
  101. IDEBLA=4
  102. DO I=1,3
  103. EPIN0(I)=VAR0(IDEBLA+I)
  104. END DO
  105. C
  106. C ----------INCREMENT DES DEFORMATIONS TOTALES POUR LES 3 DIRECTIONS
  107. DEPST(1)=DEPST0(IDIR1)
  108. DEPST(2)=DEPST0(IDIR2)
  109. DEPST(3)=DEPST0(IDIRN)
  110. C
  111. C ----------PARAMETRES POUR LE TEST DE NULLITE DES CONTRAINTES ET
  112. C ----------DEFORMATIONS
  113. C
  114. PRESP = +1.D-5
  115. PRESM = -1.D-5
  116. PREEP = +1.D-10
  117. * PREEP = 0.D0
  118. PREEM = -1.D-10
  119. C
  120. C
  121. C ----------PARAMETRE D'IMPPRESSION
  122. C
  123. IMPRI = 0
  124. C
  125. C ----------NOMBRE MAXIMUM D'ITERATIONS INTERNES AUTORISEES
  126. C
  127. MAXITE = 1000
  128. C
  129. C
  130. C------CHARGEMENT DU EPSILON DE PRECISION DES ITERATIONS INTERNES
  131. C
  132. PRECIS = 1.D-6
  133. PRECIN = -1.D-6
  134. C
  135. C------CHARGEMENT DES CARACTERISTIQUES MECANIQUES
  136. C------DANS LA DIECTION NORMALE ET LE PLAN DE GLISSEMENT
  137. C
  138. EC = XMAT(IDEBMA+IDIRN)
  139. G1 = XMAT(IDEBMA+IDIR1)
  140. G2 = XMAT(IDEBMA+IDIR2)
  141. *- cs deb
  142. * EF = XMAT(IDEBMA+NSTRS+1)
  143. QT = XMAT(IDEBMA+NSTRS+1)
  144. FNE = XMAT(IDEBMA+NSTRS+2)
  145. IF (ABS(EC-QT).LT.(XZPREC*MAX(EC,QT))) THEN
  146. write(6,*) 'coul1.eso : EC,QT =',EC,QT
  147. CALL ERREUR(26)
  148. RETURN
  149. ELSE
  150. HH = EC*QT/(EC-QT)
  151. ENDIF
  152. * ECN = XMAT(IDEBMA+NSTRS+2)
  153. *- cs fin
  154. C = XMAT(IDEBMA+NSTRS+3)
  155. PHI = XMAT(IDEBMA+NSTRS+4)
  156. PHI = (PHI*XPI)/180.D0
  157. ZMU = 0.0D0
  158. ZMU = (ZMU*XPI)/180.D0
  159. * FTRC = XMAT(IDEBMA+NSTRS+15)
  160. FTRC = 0.
  161. C AM 28/7/95
  162. C FTRC EST EN 4 ET NON EN 9 A CAUSE DE RHO ET ALPH
  163. C VOIR COMMENTAIRE DANS ECOUL2
  164. C
  165. C LA LIMITE EN TRACTION EST MISE BRUTALEMENT A 0
  166. C DES QU'ELLE EST DEPASSEE.
  167. C
  168. C
  169. C------CHARGEMENT DE LA MATRICE DE HOOK INVERSE
  170. C------POUR LE CALCUL DE L'INCREMENT DE DEFORMATION
  171. C------A PARTIR DE L'INCREMENT DE CONTRAINTE
  172. C------ DEPSN = D**-1 DSIGT
  173. C ( D**-1 = DD )
  174. C
  175. DD(1,1) = 1.0D0/G1
  176. DD(1,2) = 0.0D0
  177. DD(1,3) = 0.0D0
  178. DD(2,1) = 0.0D0
  179. DD(2,2) = 1.0D0/G2
  180. DD(2,3) = 0.0D0
  181. DD(3,1) = 0.0D0
  182. DD(3,2) = 0.0D0
  183. DD(3,3) = 1.0D0/EC
  184. C
  185. C-----------INCREMENT DE DEFORMATION
  186. C
  187. DEPS1 = DEPST(1)
  188. DEPS2 = DEPST(2)
  189. DEPSN = DEPST(3)
  190. C
  191. C TRAITEMENT DU PASSAGE DIRECT ENTRE UN ETAT OUVERT
  192. C (I.E. EXISTENCE D'UN JEU AU TEMPS N) A UN ETAT
  193. C COMPRIME AU TEMPS N+1
  194. C
  195. DEFPN=0.0D0
  196. IFIN =0
  197. STOTA1 = 0.0D0
  198. STOTA2 = 0.0D0
  199. DEFP11 = 0.0D0
  200. DEFP12 = 0.0D0
  201. DEFP21 = 0.0D0
  202. DEFP22 = 0.0D0
  203. ALP = 1.0D0
  204. S1INT = 0.0D0
  205. S2INT = 0.0D0
  206. * ZJEU = EPIN0(3)
  207.  
  208. C DEFORMATION PLASTIQUE DUE A LA COMPRESSION SEULE
  209. C
  210. EPCO=VAR0(8)
  211. DEFPNC= EPCO
  212. ZJEU = EPIN0(3)-EPCO
  213. C
  214. C AM CORRECTION POUR JOINT AVEC RESISTANCE EN TRACTION
  215. C CAS DU RAPPROCHEMENT DES LEVRES
  216. *- cs deb
  217. IF (DEPSN.LT.-1.D-4) THEN
  218. * IF (DEPSN.LT.-1.D-4.AND.SIG0(3).GT.PRESP) THEN
  219. *- cs fin
  220. C IL EXISTE UN JEU
  221. IF (ZJEU.GT.1.D-3) THEN
  222. C PASSAGE DIRECT D'UN ETAT OUVERT
  223. C A UN ETAT COMPRIME
  224. cc IF (ABS(DEPSN).GT.ZJEU) THEN
  225. valdif=(ABS(DEPSN) - ZJEU)/ABS(DEPSN)
  226. ccc IF (valdif.gt.3.05D-6) THEN
  227. IF (valdif.gt.1.D-3) THEN
  228. C
  229. ALP = ZJEU/(ABS(DEPSN))
  230. STOTA1= DEPS1
  231. DEPS1 = ALP * DEPS1
  232. STOTA2= DEPS2
  233. DEPS2 = ALP * DEPS2
  234. STOCK = DEPSN
  235. DEPSN = ALP * DEPSN
  236. INDIC = 1
  237. GO TO 99
  238. ENDIF
  239. C
  240. ENDIF
  241. C
  242. ENDIF
  243. C
  244. 98 CONTINUE
  245. C
  246. C IL RESTE A PARCOURIR LE TRAJET
  247. C (1-ALP) * DEPSN
  248. C
  249. IF (INDIC.EQ.1) THEN
  250. DEPS1=(1.0D0-ALP)*STOTA1
  251. DEPS2=(1.0D0-ALP)*STOTA2
  252. DEPSN=(1.0D0-ALP)*STOCK
  253. IFIN =1
  254. ENDIF
  255. C
  256. 99 CONTINUE
  257. C
  258. C
  259. C ----CAS GENERAL SANS TRANSITION DIRECTE D'UN ETAT OUVERT A UN ETAT
  260. C ----A UN ETAT COMPRIME
  261. C
  262. C
  263. C
  264. C
  265. IF ((INDIC.EQ.1).OR.(IFIN.EQ.0)) THEN
  266. C
  267. C--------------------CALCUL DE L ETAT DE CONTRAINTES, DE DEFORMATIONS
  268. C--------------------DES VARIABLES INTERNES AU PAS PRECEDENT
  269. C
  270. C------CHARGEMENT DES VALEURS AU PAS PRECEDENT
  271. C
  272. C
  273. C----------DEFORMATIONS
  274. C
  275. C DEFORMATIONS INELASTIQUES
  276. C
  277. EPSS1 = EPIN0(1)
  278. EPSS2 = EPIN0(2)
  279. EPSN1 = EPIN0(3)
  280. C
  281. C DEFORMATIONS ELASTIQUES
  282. C
  283. DEFS10 = DD(1,1)*SIG0(1)
  284. DEFS20 = DD(2,2)*SIG0(2)
  285. c
  286. if (sig0(3).le.presp) then
  287. DEFN0 = DD(3,3)*SIG0(3)
  288. else if (sig0(3).gt.presp) then
  289. C
  290. C AM CORRECTION POUR JOINT AVEC RESISTANCE EN TRACTION
  291. C
  292. C DEFN0 = 0.0D0
  293. DEFN0 = DD(3,3)*SIG0(3)
  294. endif
  295. C
  296. C DEFORMATIONS TOTALES AU PAS PRECEDENT N
  297. C
  298. EPS1N = EPSS1 + DEFS10
  299. EPS2N = EPSS2 + DEFS20
  300. EPSNN = EPSN1 + DEFN0
  301. C
  302. ENDIF
  303. C
  304. C
  305. C
  306. C
  307. C ----CAS DU 2ND PASSAGE : D'UN ETAT FERME ON PASSE A UN ETAT COMPRIME
  308. C
  309. C
  310. C
  311. C
  312. IF (IFIN.EQ.1) THEN
  313. C
  314. C--------------------CALCUL DE L ETAT DE CONTRAINTES, DE DEFORMATIONS
  315. C--------------------DES VARIABLES INTERNES AU PAS PRECEDENT
  316. C
  317. C------CHARGEMENT DES VALEURS AU PAS PRECEDENT
  318. C
  319. C----------DEFORMATIONS
  320. C
  321. C DEFORMATIONS INELASTIQUES
  322. C
  323. EPSS1 = DEFP11
  324. EPSS2 = DEFP21
  325. *- cs deb
  326. * EPSN1 = 0.0D0
  327. EPSN1 = EPCOF
  328. *- cs fin
  329. C
  330. C DEFORMATIONS ELASTIQUES
  331. C
  332. DEFS10 = DD(1,1)*S1INT
  333. DEFS20 = DD(2,2)*S2INT
  334. DEFN0 = 0.0D0
  335. C
  336. C DEFORMATIONS TOTALES AU PAS PRECEDENT N
  337. C
  338. EPS1N = EPSS1 + DEFS10
  339. EPS2N = EPSS2 + DEFS20
  340. EPSNN = EPSN1 + DEFN0
  341. C
  342. ENDIF
  343. C
  344. C ESTIMATION DE LA DEFO. TOTALE AU PAS N+1
  345. C
  346. EP1NP1 = EPS1N + DEPS1
  347. EP2NP1 = EPS2N + DEPS2
  348. EPNNP1 = EPSNN + DEPSN
  349. eptmco = epnnp1-EPCO
  350. C
  351. C----------EPSILON ELASTIQUE (1 2 N) AU PAS N+1 A L'ITERATION 0
  352. C
  353. EE1P10 = DEFS10 + DEPS1
  354. EE2P10 = DEFS20 + DEPS2
  355. EENP10 = DEFN0 + DEPSN
  356. C
  357. C----------SIGMA (1 2 N) AU PAS N+1 A L'ITERATION 0
  358. C
  359. S1NP10 = G1 * EE1P10
  360. S2NP10 = G2 * EE2P10
  361. C
  362. C
  363. C AM CORRECTION POUR JOINT AVEC RESISTANCE EN TRACTION
  364. C
  365. C if (depsn.lt.preem) then
  366. IF (DEPSN.LT.PREEM.AND.SIG0(3).LE.PRESP) THEN
  367. c
  368. c -----------fermeture du joint
  369. c
  370. * if (epnnp1.lt.preep) then
  371. if (eptmco.lt.preep) then
  372. c
  373. c --------------fermeture du joint avec compression des levres
  374. c
  375. * if (eenp10.le.preep) then
  376. c
  377. c ----------------compression : pente EC
  378. c
  379. SNNP10 = EC * EENP10
  380. * endif
  381. C
  382. * if (ABS(epnnp1).le.preep) then
  383. if (ABS(eptmco).le.preep) then
  384. c
  385. c ----------------levres jointives
  386. c
  387. SNNP10 = 0.0D0
  388. endif
  389. endif
  390. c
  391. * if ((epnnp1.ge.preep).or.(indic.eq.1)) then
  392. if ((eptmco.ge.preep).or.(indic.eq.1)) then
  393. c
  394. c --------------rapprochement des levres sans compression
  395. c
  396. SNNP10 = 0.0D0
  397. c
  398. endif
  399. c
  400. ELSE
  401. c
  402. c -----------ouverture du joint OU FERMETURE SI JOINT PAS CASSE
  403. c
  404. SNNP10 = EC * EENP10
  405. c
  406. endif
  407. C
  408. C-----------VARIABLES INTERNES
  409. C
  410. C DEFORMATION PLASTIQUE EQUIVALENTE
  411. C
  412. EPSEQ=VAR0(1)
  413. C
  414. C DEFORMATION PLASTIQUE DUE A L'OUVERTURE SEULE
  415. C
  416. EPOUN=VAR0(2)
  417. C
  418. C ETAT DU JOINT
  419. C
  420. C STAT = 0 LEVRES EN CONTACT, AVEC OU SANS CISAILLEMENT
  421. C STAT = 1 JOINT EN OUVERTURE PENTE EC
  422. C STAT = 2 JOINT EN FERMETURE PENTE EC
  423. C STAT = 3 JOINT EN FERMETURE PLASTICITE
  424. C
  425. C
  426. C
  427. STAT =VAR0(3)
  428. C
  429. C MULTIPLICATEUR PLASTIQUE EN TRACTION
  430. C
  431. XLAM1=VAR0(4)
  432. C
  433. C MISE A 0 DE LA LIMITE EN TRACTION SI DEJA CASSE OU SI JEU
  434. C
  435. RTRAC=FTRC
  436. IF(XLAM1.GT.0.D0) RTRAC=0.D0
  437. C
  438. C
  439. C DEFORMATION PLASTIQUE DUE A LA COMPRESSION SEULE
  440. C
  441. * EPCO=VAR0(8)
  442. EPCOF=EPCO
  443. VARF(8)=EPCOF
  444. C
  445. C
  446. C MULTIPLICATEUR PLASTIQUE EN COMPRESSION
  447. C
  448. XLAM3=VAR0(9)
  449. XLAM3F=XLAM3
  450. VARF(9)=XLAM3F
  451. C
  452. C
  453. C
  454. C-----------ETUDE DE L'ECOULEMENT SELON LES DIFFERENTS CRITERES
  455. C
  456. CRICIS = CALG(S1NP10,S2NP10,SNNP10,PHI,C)
  457. CRINOR = SNNP10 - RTRAC
  458. CRICIP = CALN(S1NP10,S2NP10,SNNP10,PHI,C)
  459. ABSTAU = SQRT( (S1NP10 ** 2) + (S2NP10 ** 2) )
  460. C
  461. C----------AIGUILLAGE SUIVANT LA ZONE 0, 1, 2, 3
  462. C
  463. IF ((CRICIS.LE.PRECIS).AND.(CRINOR.LE.PRECIS)) THEN
  464. GO TO 10
  465. ENDIF
  466. C
  467. * IF ((CRICIS.GT.PRECIS).AND.(CRICIP.LE.PRECIS)) THEN
  468. IF ((CRICIS.GT.PRECIS).AND.(CRINOR.LE.PRECIS)) THEN
  469. GO TO 40
  470. ENDIF
  471. C
  472. * IF ((CRICIP.GT.PRECIS).AND.(ABSTAU.GT.C)) THEN
  473. * IF ((CRICIP.GT.PRECIS).AND.(ABSTAU.GT.PRECIS)) THEN
  474. IF ((ABSTAU.GT.PRECIS).AND.(CRINOR.GT.PRECIN)) THEN
  475. GO TO 20
  476. ENDIF
  477. C
  478. * IF ((ABSTAU.LE.C).AND.(CRINOR.GT.PRECIN)) THEN
  479. IF ((ABSTAU.LE.PRECIS).AND.(CRINOR.GT.PRECIN)) THEN
  480. GO TO 30
  481. ENDIF
  482. C
  483. C-----------CAS DE LA CONVERGENCE A L ITERATION 0 :
  484. C
  485. 10 CONTINUE
  486. C
  487. C----------CHARGEMENT DES VALEURS DE CONTRAINTES, DEFORMATIONS,
  488. C----------VARIABLES INTERNES APRES CONVERGENCE INTERNE
  489. C
  490. C
  491. IF (IMPRI.EQ.1) THEN
  492. WRITE(6,*) 'ETIQUETTE 10 - LES DEUX CRITERES SONT VERIFIES'
  493. ENDIF
  494. C
  495. *- cs deb
  496. SNNP11=SNNP10
  497. *- cs fin
  498. C
  499. IF (INDIC.EQ.1) THEN
  500. C FERMETURE DU JOINT SANS COMPRESSION
  501. * print *,'10 ok1'
  502. S1INT = S1NP10
  503. DEFP11= 0.0D0
  504. S2INT = S2NP10
  505. DEFP21= 0.0D0
  506. DEFPN = -(epin0(3)-DEFPNC)
  507. GO TO 98
  508. C
  509. ELSE
  510. C
  511. IF (IFIN.EQ.0) THEN
  512. C
  513. C
  514. c
  515. defp(1)=0.0d0
  516. defp(2)=0.0d0
  517. C
  518. if ( abs(snnp10).le.presp ) then
  519. * print *,'10 ok2'
  520. c
  521. c deformation plastique du pas (n+1) moins
  522. c deformation plastique du pas (n)
  523. c
  524. defp(3) = epnnp1 - epsn1
  525. c
  526. else
  527. * print *,'10 ok3'
  528. c
  529. c comportement elastoplastique du joint en fermeture
  530. c
  531. *- cs deb
  532. * DEFP(3) = 0.0D0
  533. CALL PLAQP(EC,QT,FNE,SNNP10,EPCO,XLAM3,SNNP11,EPCOF,XLAM3F)
  534. DEFP(3) = EPCOF-EPCO
  535. *- cs fin
  536. c
  537. endif
  538. c
  539. ELSE
  540. * print *,'10 ok4'
  541. c
  542. c cas du passage direct d'un etat ouvert a un etat
  543. c comprime
  544. c
  545. DEFP12 = 0.0D0
  546. DEFP(1) = 0.0d0
  547. DEFP22 = 0.0D0
  548. DEFP(2) = 0.0d0
  549. cc DEFP(3) = 0.0d0
  550. *- cs deb
  551. * DEFP(3) = defpn
  552. CALL PLAQP(EC,QT,FNE,SNNP10,EPCO,XLAM3,SNNP11,EPCOF,XLAM3F)
  553. DEFP(3) = DEFPN+(EPCOF-EPCO)
  554.  
  555. *- cs fin
  556. IFIN = 0
  557. ENDIF
  558. C
  559. C CALCUL DES VARIABLES INTERNES : DEPEQ STAT EPOUN
  560. C
  561. c
  562. c calcul du delta epsilon plastique entre
  563. c le pas actuel et le pas precedent
  564. c
  565. delep1 = defp(1)
  566. delep2 = defp(2)
  567. delepn = defp(3)
  568. c
  569. c produit contracte pour le calcul de la defo. plasti. cumulee
  570. c
  571. pro1=(delep1 * delep1) + (delep2 * delep2) + (delepn * delepn)
  572. *- cs depeq = sqrt( (2.0D0/3.0D0) * pro1 )
  573. depeq = SQRT(pro1)
  574. VARF(1) = EPSEQ + DEPEQ
  575. VARF(4) = XLAM1
  576. VARF(9) = XLAM3F
  577. c
  578. c calcul de la deformation normale due a l'ouverture seule
  579. c
  580. if ( abs(snnp11).le.presp ) then
  581. *- cs deb
  582. epoun = defp(3)-(EPCOF-EPCO)
  583. *- cs fin
  584. VARF(2) = EPOUN
  585. else
  586. * epoun = 0.0d0
  587. epoun = DEFPN
  588. VARF(2) = EPOUN
  589. endif
  590. C
  591. *- cs deb
  592. C deformation normale plastique due a la compression
  593. C
  594. VARF(8)=EPCOF
  595. C
  596. *- cs fin
  597. c
  598. c etat du joint stat = 0 cisaillement pur, levres en contact
  599. c stat = 1 ouverture du joint contrainte nulle
  600. c stat = 2 compression du joint elasticite pente EC
  601. c stat = 3 compression du joint plasticite
  602. c
  603. stat = 2.D0
  604. eptmco = epnnp1-EPCOF
  605. if ( abs(snnp11).le.presp) then
  606. stat = 1.D0
  607. if ( abs(eptmco).le.1.D-8 ) stat = 0.D0
  608. endif
  609. F3=CRIPQ(EC,QT,FNE,SNNP11,XLAM3F)
  610. if (ABS(F3).LE.PRECIS) stat = 3.D0
  611. VARF(3) = STAT
  612. iori = 1
  613. C
  614. SIGF(1) = S1NP10
  615. SIGF(2) = S2NP10
  616. SIGF(3) = SNNP11
  617. C
  618. GOTO 9900
  619. c
  620. ENDIF
  621. C
  622. C----------CRITERES DE L'EFFORT NORMAL ET DE CISAILLEMENT
  623. C----------TOUS LES DEUX VIOLES EN MEME TEMPS
  624. C
  625. 20 CONTINUE
  626. C
  627. C ECOULEMENT SELON LES DEUX CRITERES A L'ITERATION ITER
  628. C
  629. ITER = 1
  630. DELAM1=0.D0
  631. C
  632. 2 CONTINUE
  633. C
  634. IF (ITER.GT.MAXITE) THEN
  635. WRITE(6,*) ' LES DEUX CRITERES SONT VIOLES '
  636. WRITE(6,*) ' DIVERGENCE APRES 1000 ITERATIONS INTERNES'
  637. STOP
  638. ENDIF
  639. C
  640. IF (IMPRI.EQ.1) THEN
  641. write(6,*) 'ETIQUETTE 20 - LES DEUX CRITERES SONT VIOLES'
  642. ENDIF
  643. C
  644. C
  645. C CALCUL DES CORRECTEURS PLASTIQUES
  646. C
  647. C
  648. C DERIVEE DU CRITERE F SUIVANT SIGMA
  649. C
  650. DFIDS1 = 0.0D0
  651. DFIDS2 = 0.0D0
  652. DFIDSN = 1.0D0
  653. C
  654. C DERIVEE DU CRITERE G SUIVANT SIGMA
  655. C
  656. DENO = SQRT ( (S1NP10**2) + (S2NP10**2) )
  657. DGIDS1 = S1NP10 / DENO
  658. DGIDS2 = S2NP10 / DENO
  659. DGIDSN = TAN(PHI)
  660. DZGIDS = TAN(ZMU)
  661. C
  662. C MATRICE DE HOOK * DFI/DSIGMA
  663. C
  664. HODF1 = G1 * DFIDS1
  665. HODF2 = G2 * DFIDS2
  666. HODFN = EC * DFIDSN
  667. C
  668. C MATRICE DE HOOK * DGI/DSIGMA
  669. C
  670. HODG1 = G1 * DGIDS1
  671. HODG2 = G2 * DGIDS2
  672. HODGN = EC * DZGIDS
  673. C
  674. C FIFI = DFI/DSIGMA * MATRICE DE HOOK * DFI/DSIGMA
  675. C
  676. FIFI = (DFIDS1 * HODF1) + (DFIDS2 * HODF2) + (DFIDSN * HODFN)
  677. C
  678. C FIGI = DFI/DSIGMA * MATRICE DE HOOK * DGI/DSIGMA
  679. C
  680. FIGI = (DFIDS1 * HODG1) + (DFIDS2 * HODG2) + (DFIDSN * HODGN)
  681. C
  682. C GIFI = DGI/DSIGMA * MATRICE DE HOOK * DFI/DSIGMA
  683. C
  684. GIFI = (DGIDS1 * HODF1) + (DGIDS2 * HODF2) + (DGIDSN * HODFN)
  685. C
  686. C GIFI = DGI/DSIGMA * MATRICE DE HOOK * DFI/DSIGMA
  687. C
  688. GIGI = (DGIDS1 * HODG1) + (DGIDS2 * HODG2) + (DGIDSN * HODGN)
  689. C
  690. C RESOLUTION DU SYSTEME POUR TROUVER LES CORRECTEURS
  691. C PLASTIQUES DLAM1 ET DLAM2
  692. C
  693. DET = (FIFI * GIGI) - (FIGI * GIFI)
  694. C
  695. IF (ABS(DET).LE.PRECIS) THEN
  696. WRITE(6,*) ' SYSTEME INDETERMINE (F G): ITERATION ',ITER
  697. STOP
  698. ENDIF
  699. C
  700. DLAM1 = (CRINOR * GIGI) - (CRICIS * FIGI)
  701. DLAM1 = DLAM1 / DET
  702. DELAM1 = DELAM1 + DLAM1
  703. RTRAC=0.D0
  704. C
  705. DLAM2 = (CRICIS * FIFI) - (CRINOR * GIFI)
  706. DLAM2 = DLAM2 / DET
  707. C
  708. C CALCUL DU NOUVEL ETAT DE CONTRAINTES
  709. C
  710. S1NP11=S1NP10 - (G1 * ( (DLAM1*DFIDS1) + (DLAM2*DGIDS1)))
  711. S2NP11=S2NP10 - (G2 * ( (DLAM1*DFIDS2) + (DLAM2*DGIDS2)))
  712. SNNP11=SNNP10 - (EC * ( (DLAM1*DFIDSN) + (DLAM2*DZGIDS)))
  713. C
  714. C ALLER EN 52 POUR LE TEST DE LA CONVERGENCE
  715. GOTO 52
  716. C
  717. C
  718. 52 CONTINUE
  719. C
  720. C CONVERGENCE CHECK
  721. C
  722. CRICIS = CALG(S1NP11,S2NP11,SNNP11,PHI,C)
  723. CRINOR = SNNP11 - RTRAC
  724. C
  725. IF ((ABS(CRICIS).LE.PRECIS).AND.(ABS(CRINOR).LE.PRECIS)) THEN
  726. C
  727. C----------LES DEUX CRITERES SONT VERIFIES
  728. C
  729. C
  730. IF (IMPRI.EQ.1) THEN
  731. write(6,*) 'PASSAGE N. 5 - 2'
  732. write(6,*) 'LES DEUX CRITERES SONT VERIFIES'
  733. write(6,*) 'CONVERGENCE A L ITERATION',ITER
  734. ENDIF
  735. C
  736. C----------CHARGEMENT DES VALEURS DE CONTRAINTES, DEFORMATIONS,
  737. C----------VARIABLES INTERNES APRES CONVERGENCE INTERNE
  738. C
  739. C
  740. SIGF(1) = S1NP11
  741. SIGF(2) = S2NP11
  742. SIGF(3) = SNNP11
  743. C
  744. DEFP(1) = ( EP1NP1 - ( DD(1,1) * SIGF(1) ) ) - EPSS1
  745. DEFP(2) = ( EP2NP1 - ( DD(2,2) * SIGF(2) ) ) - EPSS2
  746. c
  747. if ( abs(sigf(3)) .le. presp ) then
  748. c
  749. c deformation plastique du pas (n+1) moins
  750. c deformation plastique du pas (n)
  751. c
  752. DEFP(3) = EPNNP1 - EPSN1
  753. else
  754. c
  755. c le joint se deforme toujours elastiquement en fermeture
  756. c
  757. DEFP(3) = 0.0D0
  758. c
  759. endif
  760. C
  761. C CALCUL DES VARIABLES INTERNES : DEPEQ STAT EPOUN
  762. C
  763. c
  764. c calcul du delta epsilon plastique entre
  765. c le pas actuel et le pas precedent
  766. c
  767. delep1 = defp(1)
  768. delep2 = defp(2)
  769. delepn = defp(3)
  770. c
  771. c produit contracte pour le calcul de la defo. plasti. cumulee
  772. c
  773. pro1=(delep1 * delep1) + (delep2 * delep2) + (delepn * delepn)
  774. *- cs depeq = sqrt( (2.0D0/3.0D0) * pro1 )
  775. depeq = SQRT(pro1)
  776. VARF(1) = EPSEQ + DEPEQ
  777. VARF(4) = XLAM1 + DELAM1
  778. c
  779. c calcul de la deformation normale due a l'ouverture seule
  780. c
  781. if ( abs(snnp11).le.presp ) then
  782. epoun = delepn
  783. VARF(2) = EPOUN
  784. else
  785. epoun = 0.0d0
  786. VARF(2) = EPOUN
  787. endif
  788. c
  789. c etat du joint stat = 0 cisaillement pur, levres en contact
  790. c stat = 1 ouverture du joint contrainte nulle
  791. c stat = 2 compression du joint elasticite pente EC
  792. c stat = 3 compression du joint plasticite
  793. c
  794. stat = 2.D0
  795. eptmco = epnnp1-EPCOF
  796. if ( abs(snnp11).le.presp) then
  797. stat = 1.D0
  798. if ( abs(eptmco).le.1.D-8 ) stat = 0.D0
  799. endif
  800. F3=CRIPQ(EC,QT,FNE,SNNP11,XLAM3F)
  801. if (ABS(F3).LE.PRECIS) stat = 3.D0
  802. VARF(3) = STAT
  803. iori = 2
  804. c
  805. GOTO 9900
  806. ELSE
  807. C
  808. S1NP10=S1NP11
  809. S2NP10=S2NP11
  810. SNNP10=SNNP11
  811. CRICIS = CALG(S1NP10,S2NP10,SNNP10,PHI,C)
  812. CRINOR = SNNP10 - RTRAC
  813. ITER = ITER + 1
  814. C
  815. GO TO 2
  816. ENDIF
  817. C
  818. C
  819. C____________________________________________________________________
  820. C
  821. C
  822. C----------CRITERE DE L'EFFORT NORMAL VIOLE MAIS
  823. C----------CRITERE DE CISAILLEMENT VERIFIE
  824. C
  825. 30 CONTINUE
  826. C
  827. C ECOULEMENT SELON LE CRITERE F A L'ITERATION ITER
  828. C
  829. ITER = 1
  830. DELAM1=0.D0
  831. C
  832. 3 CONTINUE
  833. C
  834. IF (ITER.GT.MAXITE) THEN
  835. WRITE(6,*) ' LE CRITERE NORMAL EST VIOLE '
  836. WRITE(6,*) ' DIVERGENCE APRES 1000 ITERATIONS INTERNES'
  837. STOP
  838. ENDIF
  839. C
  840. IF (IMPRI.EQ.1) THEN
  841. write(6,*) 'ETIQUETTE 30 - CRITERE DE L EFFORT NORMAL VIOLE'
  842. write(6,*) 'ITERATION',ITER
  843. ENDIF
  844. C
  845. C
  846. C
  847. C CALCUL DU CORRECTEUR PLASTIQUE
  848. C
  849. C
  850. C DERIVEE DU CRITERE F SUIVANT SIGMA
  851. C
  852. DFIDS1 = 0.0D0
  853. DFIDS2 = 0.0D0
  854. DFIDSN = 1.0D0
  855. C
  856. C MATRICE DE HOOK * DGI/DSIGMA
  857. C
  858. HODF1 = G1 * DFIDS1
  859. HODF2 = G2 * DFIDS2
  860. HODFN = EC * DFIDSN
  861. C
  862. C FIFI = DFI/DSIGMA * MATRICE DE HOOK * DFI/DSIGMA
  863. C
  864. FIFI = (DFIDS1 * HODF1) + (DFIDS2 * HODF2) + (DFIDSN * HODFN)
  865. C
  866. C RESOLUTION DE L'EQUATION POUR TROUVER LE CORRECTEUR
  867. C PLASTIQUE DLAM1
  868. C
  869. IF (ABS(FIFI).LE.PRECIS) THEN
  870. WRITE(6,*) ' SYSTEME INDETERMINE (F) : ITERATION ',ITER
  871. STOP
  872. ENDIF
  873. C
  874. DLAM1 = CRINOR / FIFI
  875. DELAM1 = DELAM1 + DLAM1
  876. RTRAC = 0.D0
  877. C
  878. C CALCUL DU NOUVEL ETAT DE CONTRAINTES
  879. C
  880. S1NP11=S1NP10 - (G1 * (DLAM1*DFIDS1) )
  881. S2NP11=S2NP10 - (G2 * (DLAM1*DFIDS2) )
  882. SNNP11=SNNP10 - (EC * (DLAM1*DFIDSN) )
  883. C
  884. C ALLER EN 53 POUR LE TEST DE LA CONVERGENCE
  885. GOTO 53
  886. C
  887. C
  888. C
  889. 53 CONTINUE
  890. C
  891. C CONVERGENCE CHECK
  892. C
  893. CRICIS = CALG(S1NP11,S2NP11,SNNP11,PHI,C)
  894. CRINOR = SNNP11 - RTRAC
  895. C
  896. IF (ABS(CRINOR).LE.PRECIS) THEN
  897. C
  898. C----------LES DEUX CRITERES SONT VERIFIES
  899. C
  900. C
  901. * IF (IMPRI.EQ.1) THEN
  902. * write(6,*) 'PASSAGE N. 5 - 3'
  903. * write(6,*) 'LES DEUX CRITERES SONT VERIFIES'
  904. * write(6,*) 'CONVERGENCE A L ITERATION',ITER
  905. * ENDIF
  906. C
  907. C----------CHARGEMENT DES VALEURS DE CONTRAINTES, DEFORMATIONS,
  908. C----------VARIABLES INTERNES APRES CONVERGENCE INTERNE
  909. C
  910. C
  911. SIGF(1) = S1NP11
  912. SIGF(2) = S2NP11
  913. SIGF(3) = SNNP11
  914. C
  915. DEFP(1) = ( EP1NP1 - ( DD(1,1) * SIGF(1) ) ) - EPSS1
  916. DEFP(2) = ( EP2NP1 - ( DD(2,2) * SIGF(2) ) ) - EPSS2
  917. c
  918. if ( abs(sigf(3)) .le. presp ) then
  919. c
  920. c deformation plastique du pas (n+1) moins
  921. c deformation plastique du pas (n)
  922. c
  923. DEFP(3) = EPNNP1 - EPSN1
  924. else
  925. c
  926. c le joint se deforme toujours elastiquement en fermeture
  927. c
  928. DEFP(3) = 0.0D0
  929. c
  930. endif
  931. C
  932. C CALCUL DES VARIABLES INTERNES : DEPEQ STAT EPOUN
  933. C
  934. c
  935. c calcul du delta epsilon plastique entre
  936. c le pas actuel et le pas precedent
  937. c
  938. delep1 = defp(1)
  939. delep2 = defp(2)
  940. delepn = defp(3)
  941. c
  942. c produit contracte pour le calcul de la defo. plasti. cumulee
  943. c
  944. pro1=(delep1 * delep1) + (delep2 * delep2) + (delepn * delepn)
  945. *- cs depeq = sqrt( (2.0D0/3.0D0) * pro1 )
  946. depeq = SQRT(pro1)
  947. VARF(1) = EPSEQ + DEPEQ
  948. VARF(4) = XLAM1 + DELAM1
  949. c
  950. c calcul de la deformation normale due a l'ouverture seule
  951. c
  952. if ( abs(snnp11).le.presp ) then
  953. epoun = delepn
  954. VARF(2) = EPOUN
  955. else
  956. epoun = 0.0d0
  957. VARF(2) = EPOUN
  958. endif
  959. c
  960. c etat du joint stat = 0 cisaillement pur, levres en contact
  961. c stat = 1 ouverture du joint contrainte nulle
  962. c stat = 2 compression du joint elasticite pente EC
  963. c stat = 3 compression du joint plasticite
  964. c
  965. stat = 2.D0
  966. eptmco = epnnp1-EPCOF
  967. if ( abs(snnp11).le.presp) then
  968. stat = 1.D0
  969. if ( abs(eptmco).le.1.D-8 ) stat = 0.D0
  970. endif
  971. F3=CRIPQ(EC,QT,FNE,SNNP11,XLAM3F)
  972. if (ABS(F3).LE.PRECIS) stat = 3.D0
  973. VARF(3) = STAT
  974. iori = 3
  975. c
  976. GOTO 9900
  977. ELSE
  978. C
  979. S1NP10=S1NP11
  980. S2NP10=S2NP11
  981. SNNP10=SNNP11
  982. CRICIS = CALG(S1NP10,S2NP10,SNNP10,PHI,C)
  983. CRINOR = SNNP10 - RTRAC
  984. ITER = ITER + 1
  985. C
  986. GO TO 3
  987. ENDIF
  988. C
  989. C
  990. C____________________________________________________________________
  991. C
  992. C
  993. C
  994. C----------CRITERES DE CISAILLEMENT VIOLE MAIS
  995. C----------CRITERE DE L'EFFORT NORMAL VERIFIE
  996. C
  997. 40 CONTINUE
  998. C
  999. C ECOULEMENT SELON LE CRITERE G A L'ITERATION ITER
  1000. C
  1001. ITER = 1
  1002. DELAM3=0.D0
  1003. C
  1004. 4 CONTINUE
  1005. C
  1006. IF (ITER.GT.MAXITE) THEN
  1007. WRITE(6,*) ' LE CRITERE DE CISAILLEMENT EST VIOLE '
  1008. WRITE(6,*) ' DIVERGENCE APRES 1000 ITERATIONS INTERNES'
  1009. STOP
  1010. ENDIF
  1011. C
  1012. IF (IMPRI.EQ.1) THEN
  1013. write(6,*) 'ETIQUETTE 40 - CRITERE DE CISAILLEMENT VIOLE'
  1014. ENDIF
  1015. C
  1016. C
  1017. C LE CRITERE DE PLASTICITE EN COMPRESSION EST-IL VIOLE ?
  1018. C
  1019. F3=CRIPQ(EC,QT,FNE,SNNP10,XLAM3)
  1020. C
  1021. IF (F3.LE.PRECIS) THEN
  1022. C-----------------------------------------------------------------------
  1023. C CALCUL DU CORRECTEUR PLASTIQUE POUR LE CRITERE DE CISAILLEMENT
  1024. C-----------------------------------------------------------------------
  1025. C
  1026. C DERIVEE DU CRITERE DE COULOMB G SUIVANT SIGMA
  1027. C
  1028. DENO = SQRT ( (S1NP10**2) + (S2NP10**2) )
  1029. DGIDS1 = S1NP10 / DENO
  1030. DGIDS2 = S2NP10 / DENO
  1031. DZGIDS = TAN(ZMU)
  1032. DGIDSN = TAN(PHI)
  1033. C
  1034. C MATRICE DE HOOK * DGI/DSIGMA
  1035. C
  1036. HODG1 = G1 * DGIDS1
  1037. HODG2 = G2 * DGIDS2
  1038. HODGN = EC * DZGIDS
  1039. C
  1040. C GIGI = DGI/DSIGMA * MATRICE DE HOOK * DGI/DSIGMA
  1041. C
  1042. GIGI = (DGIDS1 * HODG1) + (DGIDS2 * HODG2) + (DGIDSN * HODGN)
  1043. C
  1044. C
  1045. C RESOLUTION DE L'EQUATION POUR TROUVER LE CORRECTEUR
  1046. C PLASTIQUE DLAM2
  1047. C
  1048. IF (ABS(GIGI).LE.PRECIS) THEN
  1049. WRITE(6,*) ' SYSTEME INDETERMINE (G) : ITERATION ',ITER
  1050. STOP
  1051. ENDIF
  1052. C
  1053. C Cisaillement
  1054. DLAM2 = CRICIS / GIGI
  1055. C
  1056. C
  1057. C Plasticité en compression
  1058. DLAM3 = 0.
  1059. DELAM3 = DELAM3 + DLAM3
  1060. XLAM3F=XLAM3+DELAM3
  1061. C
  1062. C CALCUL DU NOUVEL ETAT DE CONTRAINTES
  1063. C
  1064. CC SNNP11=SNNP10 - (EC * (DLAM2*DGIDSN) )
  1065. C
  1066. S1NP11=S1NP10 - (G1 * (DLAM2*DGIDS1) )
  1067. S2NP11=S2NP10 - (G2 * (DLAM2*DGIDS2) )
  1068. SNNP11=SNNP10 - (EC * (DLAM2*DZGIDS) )
  1069. C
  1070. ELSE
  1071. C-----------------------------------------------------------------------
  1072. C CALCUL DES CORRECTEURS PLAST. POUR LE CRITERE DE CISAILLEMENT ET
  1073. C DE PLASTICITE EN COMPRESSION
  1074. C-----------------------------------------------------------------------
  1075.  
  1076. C DERIVEE DU CRITERE DE PLASTICITE F3 SUIVANT SIGMA ET LE
  1077. C MULTIPLICATEUR PLASTIQUE XLAM3
  1078. C
  1079. C
  1080. DFIDS1 = 0.0D0
  1081. DFIDS2 = 0.0D0
  1082. DFIDSN = SNNP10/ABS(SNNP10)
  1083. DFIDLA = -HH
  1084. C
  1085. C DERIVEE DU CRITERE DE COULOMB G SUIVANT SIGMA
  1086. C
  1087. DENO = SQRT ( (S1NP10**2) + (S2NP10**2) )
  1088. DGIDS1 = S1NP10 / DENO
  1089. DGIDS2 = S2NP10 / DENO
  1090. DZGIDS = TAN(ZMU)
  1091. DGIDSN = TAN(PHI)
  1092. C
  1093. C MATRICE DE HOOK * DFI/DSIGMA
  1094. C
  1095. HODF1 = G1 * DFIDS1
  1096. HODF2 = G2 * DFIDS2
  1097. HODFN = EC * DFIDSN
  1098. C
  1099. C MATRICE DE HOOK * DGI/DSIGMA
  1100. C
  1101. HODG1 = G1 * DGIDS1
  1102. HODG2 = G2 * DGIDS2
  1103. HODGN = EC * DZGIDS
  1104. C
  1105. C
  1106. C FIFI = DFI/DSIGMA * MATRICE DE HOOK * DFI/DSIGMA - DFI/DLAM2
  1107. C
  1108. FIFI = (DFIDS1*HODF1)+(DFIDS2*HODF2)+(DFIDSN*HODFN)-DFIDLA
  1109. C
  1110. C FIGI = DFI/DSIGMA * MATRICE DE HOOK * DGI/DSIGMA
  1111. C
  1112. FIGI = (DFIDS1 * HODG1) + (DFIDS2 * HODG2) + (DFIDSN * HODGN)
  1113. C
  1114. C GIFI = DGI/DSIGMA * MATRICE DE HOOK * DFI/DSIGMA
  1115. C
  1116. GIFI = (DGIDS1 * HODF1) + (DGIDS2 * HODF2) + (DGIDSN * HODFN)
  1117. C
  1118. C GIGI = DGI/DSIGMA * MATRICE DE HOOK * DGI/DSIGMA
  1119. C
  1120. GIGI = (DGIDS1 * HODG1) + (DGIDS2 * HODG2) + (DGIDSN * HODGN)
  1121. C
  1122. C RESOLUTION DU SYSTEME POUR TROUVER LES CORRECTEURS
  1123. C PLASTIQUES DLAM2 ET DLAM3
  1124. C
  1125. DET = (FIFI * GIGI) - (FIGI * GIFI)
  1126. C
  1127. IF (ABS(DET).LE.PRECIS) THEN
  1128. WRITE(6,*) ' SYSTEME INDETERMINE (F G): ITERATION ',ITER
  1129. STOP
  1130. ENDIF
  1131. C
  1132. C Cisaillement
  1133. DLAM2 = (CRICIS * FIFI) - (F3 * GIFI)
  1134. DLAM2 = DLAM2 / DET
  1135. C
  1136. C Plasticité en compression
  1137. DLAM3 = (F3 * GIGI) - (CRICIS * FIGI)
  1138. DLAM3 = DLAM3 / DET
  1139. DELAM3 = DELAM3 + DLAM3
  1140. XLAM3F=XLAM3+DELAM3
  1141. EPCOF=EPCOF+DLAM3*DFIDSN
  1142. C
  1143. C
  1144. C CALCUL DU NOUVEL ETAT DE CONTRAINTES
  1145. C
  1146. S1NP11=S1NP10 - (G1 * ( (DLAM2*DGIDS1) + (DLAM3*DFIDS1)))
  1147. S2NP11=S2NP10 - (G2 * ( (DLAM2*DGIDS2) + (DLAM3*DFIDS2)))
  1148. SNNP11=SNNP10 - (EC * ( (DLAM2*DZGIDS) + (DLAM3*DFIDSN)))
  1149. C
  1150. ENDIF
  1151. C-----------------------------------------------------------------------
  1152. C FIN DE CALCUL DU OU DES CORRECTEURS PLASTIQUES
  1153. C-----------------------------------------------------------------------
  1154. C
  1155. if (SNNP11.ge.0.0d0) SNNP11 = 0.0d0
  1156. C
  1157. C
  1158. 54 CONTINUE
  1159. C
  1160. C CONVERGENCE CHECK
  1161. C
  1162. CRICIS = CALG(S1NP11,S2NP11,SNNP11,PHI,C)
  1163. F3=CRIPQ(EC,QT,FNE,SNNP11,XLAM3F)
  1164. C
  1165. IF ((ABS(CRICIS).LE.PRECIS.AND.(F3.LE.PRECIS))) THEN
  1166. C
  1167. IF (INDIC.EQ.1) THEN
  1168. C
  1169. C----------1ER TRAJET : ON PARCOURT ALP * DEPSN
  1170. C
  1171. DEFPN = -(epin0(3)-DEFPNC)
  1172. S1INT = S1NP11
  1173. S2INT = S2NP11
  1174. DEFP11 = EP1NP1 - ( DD(1,1) * S1NP11 )
  1175. DEFP21 = EP2NP1 - ( DD(2,2) * S2NP11 )
  1176. GO TO 98
  1177. ELSE
  1178. IF (IFIN.EQ.0) THEN
  1179. C
  1180. C
  1181. C----------LES DEUX CRITERES SONT VERIFIES
  1182. C
  1183. C
  1184. IF (IMPRI.EQ.1) THEN
  1185. write(6,*) 'CONVERGENCE A L ITERATION',ITER
  1186. ENDIF
  1187. C
  1188. C----------CHARGEMENT DES VALEURS DE CONTRAINTES, DEFORMATIONS,
  1189. C----------VARIABLES INTERNES APRES CONVERGENCE INTERNE
  1190. C
  1191. C
  1192. SIGF(1) = S1NP11
  1193. SIGF(2) = S2NP11
  1194. SIGF(3) = SNNP11
  1195. C
  1196. DEFP(1) = ( EP1NP1 - ( DD(1,1) * SIGF(1) ) ) - EPSS1
  1197. DEFP(2) = ( EP2NP1 - ( DD(2,2) * SIGF(2) ) ) - EPSS2
  1198. c
  1199. if ( abs(sigf(3)) .le. presp ) then
  1200. c
  1201. c deformation plastique du pas (n+1) moins
  1202. c deformation plastique du pas (n)
  1203. c
  1204. DEFP(3) = EPNNP1 - EPSN1
  1205. else
  1206. c
  1207. c le joint se deforme plastiquement en fermeture
  1208. c
  1209. C DEFP(3) = 0.0D0
  1210. DEFP(3) = EPCOF-EPCO
  1211. c
  1212. endif
  1213. ELSE
  1214. C
  1215. C----------CAS DU PASSAGE DIRECT D'UN ETAT OUVERT A UN ETAT COMPRIME
  1216. C
  1217. DEFP12 = EP1NP1 - (DD(1,1)*S1NP11)
  1218. DEFP22 = EP2NP1 - (DD(2,2)*S2NP11)
  1219. DEFP(1) = DEFP12 - epin0(1)
  1220. DEFP(2) = DEFP22 - epin0(2)
  1221. * DEFP(3) = -epin0(3)
  1222. DEFP(3) = DEFPN+(EPCOF-EPCO)
  1223. SIGF(1) = S1NP11
  1224. SIGF(2) = S2NP11
  1225. SIGF(3) = SNNP11
  1226. IFIN = 0
  1227. ENDIF
  1228. C
  1229. ENDIF
  1230. C
  1231. C CALCUL DES VARIABLES INTERNES : DEPEQ STAT EPOUN
  1232. C
  1233. c
  1234. c calcul du delta epsilon plastique entre
  1235. c le pas actuel et le pas precedent
  1236. c
  1237. delep1 = defp(1)
  1238. delep2 = defp(2)
  1239. delepn = defp(3)
  1240. c
  1241. c produit contracte pour le calcul de la defo. plasti. cumulee
  1242. c
  1243. pro1=(delep1 * delep1) + (delep2 * delep2) + (delepn * delepn)
  1244. *- cs depeq = sqrt( (2.0D0/3.0D0) * pro1 )
  1245. depeq = SQRT(pro1)
  1246.  
  1247. VARF(1) = EPSEQ + DEPEQ
  1248. VARF(4) = XLAM1
  1249. VARF(8) = EPCOF
  1250. VARF(9) = XLAM3F
  1251. c
  1252. c calcul de la deformation normale due a l'ouverture seule
  1253. c
  1254. if ( abs(snnp11).le.presp ) then
  1255. * epoun = delepn
  1256. epoun = delepn-(EPCOF-EPCO)
  1257. VARF(2) = EPOUN
  1258. else
  1259. * epoun = 0.0d0
  1260. epoun = DEFPN
  1261. VARF(2) = EPOUN
  1262. endif
  1263. c
  1264. c etat du joint
  1265. c stat = 0 levres en contact, avec ou sans cisaillement
  1266. c stat = 1 ouverture du joint pente EC
  1267. c stat = 2 compression du joint elastique pente EC
  1268. c stat = 3 compression du joint plastique
  1269. c
  1270. stat = 2.D0
  1271. * eptmco = epnnp1-EPCOF
  1272. if ( abs(SIGF(3)).le.presp) then
  1273. stat = 0.D0
  1274. if (SIG0(3).GT.XZERO) stat = 1.D0
  1275. if ( abs(eptmco).gt.1.D-8 ) stat = 1.D0
  1276. endif
  1277. F3=CRIPQ(EC,QT,FNE,SIGF(3),XLAM3F)
  1278. if (DABS(F3).LE.PRECIS) stat = 3.D0
  1279. VARF(3) = STAT
  1280. iori = 4
  1281. c
  1282. GOTO 9900
  1283. ELSE
  1284. C
  1285. S1NP10=S1NP11
  1286. S2NP10=S2NP11
  1287. SNNP10=SNNP11
  1288. * CRICIS = CALG(S1NP10,S2NP10,SNNP10,PHI,C)
  1289. ITER = ITER + 1
  1290. C
  1291. GO TO 4
  1292. ENDIF
  1293. C
  1294. C
  1295. C____________________________________________________________________
  1296. C
  1297. 9900 CONTINUE
  1298. C ----------CONTRAINTES A LA FIN DU PAS POUR LES 3 DIRECTIONS
  1299. SIGF1(IDIR1)=SIGF(1)
  1300. SIGF1(IDIR2)=SIGF(2)
  1301. SIGF1(IDIRN)=SIGF(3)
  1302. C
  1303. I1=4
  1304. I2=6
  1305. IF (IDIRN.GE.4) THEN
  1306. I1=1
  1307. I2=3
  1308. ENDIF
  1309. DO 350 I=I1,I2
  1310. SIGF1(I)=XZERO
  1311. IF (VARF(3).EQ.1.D0.AND.IORI.NE.4) GOTO 350
  1312. DO 300 J=I1,I2
  1313. SIGF1(I)=SIGF1(I)+TRAID(I,J)*(EPST00(J)+DEPST0(J))
  1314. 300 CONTINUE
  1315. 350 CONTINUE
  1316. C
  1317. C ----------DEF. PLASTIQUES A LA FIN DU PAS POUR LES 3 DIRECTIONS
  1318. DO I=1,3
  1319. VARF(IDEBLA+I)=EPIN0(I)+DEFP(I)
  1320. END DO
  1321. C
  1322. DEFP1(IDIR1)=VARF(IDEBLA+1)
  1323. DEFP1(IDIR2)=VARF(IDEBLA+2)
  1324. DEFP1(IDIRN)=VARF(IDEBLA+3)
  1325. C
  1326. RETURN
  1327. END
  1328.  
  1329.  
  1330.  
  1331.  
  1332.  
  1333.  
  1334.  
  1335.  
  1336.  
  1337.  
  1338.  
  1339.  

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