Télécharger fluage.eso

Retour à la liste

Numérotation des lignes :

fluage
  1. C FLUAGE SOURCE CHAT 05/01/13 00:04:07 5004
  2. SUBROUTINE FLUAGE(ITER,EPSTAR,S0,EPST,SSTAR,SI,DPSM1,
  3. 1 DPSM2,IBOU,DEPS,ICONV,TIMEXI,TIMEXF,YUNG,KERRE,ecou,necou)
  4. C
  5. C CE SOUS PROGRAMME CALCULE LA DEFORMATION DE FLUAGE
  6. C
  7. C SORTIES AVEC PROBLEMES
  8. C
  9. C KERRE = 3 DIMINUER LE PAS (TREANOR)
  10. C KERRE = 4 DEPS EST NEGATIF
  11. C KERRE = 5 PAS DE CONVERGENCE INTERNE
  12. C ( ANCIENNEMENT NSTOP=0 )
  13. C
  14. IMPLICIT INTEGER(I-N)
  15. IMPLICIT REAL*8(A-H,O-Z)
  16. DIMENSION DSIGK1(6),DSIGK2(6),DSIGK3(6),DSIGK4(6)
  17. C
  18. SEGMENT ECOU
  19. *** COMMON/ECOU/TEST,ALFAH,
  20. REAL*8 TEST, ALFAH,
  21. 1 HPAS,TEMPS,COVNMS(6),VECPRO(9),VALPRO(6),
  22. 2 CVNMSD(12),STOT(6),SIGEL(6),DSIGP(6),SIGT(6),SIG5(6),SIGINT(6),
  23. 1 DALPHA(6),DSIGO(6),E(12),XINV(3),
  24. 2 SIPLAD(6),DSIGP0(6),TET,TETI
  25. ENDSEGMENT
  26.  
  27. C COMMON/ECOU/TEST,ALFAH,
  28. C 1 HPAS,TEMPS,COVNMS(6),VECPRO(9),VALPRO(6),
  29. C 2 CVNMSD(12),STOT(6),SIGEL(6),DSIGP(6),SIGT(6),SIG5(6),SIGINT(6),
  30. C 1 DALPHA(6),DSIGO(6),E(12),XINV(3),
  31. C 2 SIPLAD(6),DSIGP0(6),TET,TETI
  32. C
  33. SEGMENT NECOU
  34. * COMMON/NECOU/NCOURB,IPLAST,IT,IMAPLA,ISOTRO,
  35. INTEGER NCOURB,IPLAST,IT,IMAPLA,ISOTRO,
  36. . ITYP,IFOUR,IFLUAG,
  37. . ICINE,ITHER,IFLUPL,ICYCL,IBI,
  38. . JFLUAG,KFLUAG,LFLUAG,
  39. . IRELAX,JNTRIN,MFLUAG,JSOUFL,JGRDEF
  40. ENDSEGMENT
  41. C COMMON/NECOU/NCOURB,IPLAST,IT,IMAPLA,ISOTRO,
  42. C . ITYP,IFOUR,IFLUAG,
  43. C . ICINE,ITHER,IFLUPL,ICYCL,IBI,
  44. C . JFLUAG,KFLUAG,LFLUAG,
  45. C . IRELAX,JNTRIN,MFLUAG,JSOUFL,JGRDEF
  46. C
  47. DATA ITMAX/15/
  48. ITER=1
  49. ICLFLU=0
  50. IF(IRELAX.EQ.0) GO TO 414
  51. C
  52. C ESSAI DE CALCUL AUTOMATIQUE DU PAS
  53. C
  54. C IRELAX = 1 ALGORITHME LADOUCEUR
  55. C IRELAX = 2 ALGORITHME TREANOR
  56. C
  57. C
  58. C TESTS DE PRECISION POUR METHODE TREANOR
  59. C
  60. C EPREC=INCREMENT DE DEFORMATION INELASTIQUE MAXIMUM (1ERE ESTIMATION)
  61. C EPREC2=INCREMENT DE DEFORMATION INELASTIQUE MAXIMUM (VALEUR FINALE)
  62. C PRERUN TEST DE VALIDITE DU PAS DE TEMPS
  63. C PREDEF VALEUR DE REFERENCE POUR LES DEFORMATIONS TROP PETITES
  64. C PRESIG VALEUR DE REFERENCE POUR LES CONTRAINTES TROP PETITES
  65. C PREPH TEST POUR PHMAX
  66. C PREBTA = BORNE SUP POUR LES ITERATIONS INTERNES DE 2-EME NIVEAU
  67. C RPREC PRECISION SUR L ESTIMATION DE DELTA-EPS CUMULE ITER INT 2 NIV
  68. C PREZER VALEUR POUR INTERPOLATION EN DELTA-EPSILON
  69. C PREMIN VALEUR POUR ESTIMATION AUTOMATIQUE DU PAS EN TREANOR
  70. C
  71. EPREC =1.D-3
  72. EPREC2=1.D-2
  73. PRECIS=TEST
  74. PRERUN=PRECIS
  75. PREDEF=1.D-5
  76. PRESIG=YUNG*PREDEF
  77. PREPH=1.D-3
  78. PREBTA=2.D00
  79. RPREC=PRECIS
  80. PREZER=1.D-7
  81. PREMIN=3.D-1*PRERUN
  82. IF(IT.EQ.1) GO TO 4430
  83. IF(DPSM1.LT.PREZER) GO TO 4430
  84. EPREC=MIN(EPREC,DPSM1)
  85. EPREC2=MIN(EPREC2,DPSM1)
  86. 4430 CONTINUE
  87. TIMO=TEMPS-HPAS
  88. TIMEXF=TIMEXI+HPAS
  89. DTET=TET-TETI
  90. DTETDT=0.D00
  91. IF(HPAS.NE.0.) DTETDT=DTET/HPAS
  92. 200 CONTINUE
  93. C NITER= NOMBRE D'ITERATIONS SUR LE PAS
  94. NITER=3
  95. C
  96. C BTAEPS=ITERPOLATION DU DSIGP-DSIGP0 SUIVANT LA VARIATION DE
  97. C EPSILON ---- L'INITIALISATION DE LA PREMIERE ITERATION EST BIDON
  98. BTAEPS=1.
  99. BTAA=1.
  100. IF(IT.EQ.1) GO TO 430
  101. BTAA=DPSM1
  102. IF(BTAA.GT.PREZER) BTAEPS=1./BTAA
  103. C
  104. C IDECOU=NOMBRE DE DECOUPAGES POSSIBLE DU TEMPS
  105. 430 IDECOU=30
  106. IF(JSOUFL.NE.0) IDECOU=JSOUFL
  107. C
  108. C ICONV=1 SI CONVERGENCE INTERNE NON EFFECTUEE
  109. ICONV=0
  110. C
  111. C ICOMPT=NOMBRE D'ITERATIONS POUR AVOIR UNE BONNE ESTIMATION DE
  112. C LA VALEUR DE DELTA EPSILON ----- ICOMPT MAXIMUM=15
  113. C
  114. ICOMPT=1
  115. C
  116. C DSIGP0(IB)=PARTIE ELASTIQUE DU DSIGP(IB)--- INTERPOLEE EN TEMPS
  117. C DSIGP-DSIGP0=PARTIE INELASTIQUE DU DSIGP(IB)--- INTERPOLEE EN EPSILON
  118. C TEMINT=TEMPS INTERMEDIAIRE AU DEBUT DU PAS
  119. C TEMIN2=TEMPS INTERMEDIAIRE A LA FIN DU PAS
  120. C TRINS1 TEMPS INTRINSEQUE INTERMEDIAIRE DEBUT DU SS-PAS
  121. C TRINS2 TEMPS INTRINSEQUE INTERMEDIAIRE FIN DU SS-PAS
  122. C EPSINT=DEFORMATION DE FLUAGE AU DEBUT DES TEMPS INTERMEDIAIRES
  123. C EPSIN2=DEFORMATION DE FLUAGE A LA FIN DES TEMPS INTERMEDIAIRES
  124. C SINT=CONTRAINTE CALCULEE AU DEBUT DU PAS INTERMEDIAIRE
  125. C SINT2=CONTRAINTE CALCULEE A LA FIN DU PAS INTERMEDIAIRE
  126. C SIGINT(IB)=TENSEUR DE CONTRAINTE AU DEBUT DES PAS INTERMEDIAIRES
  127. C TETINI = TEMPERATURE INTERMEDIAIRE AU DEBUT DU SS-PAS
  128. C TETINF = TEMPERATURE INTERMEDIAIRE A LA FIN DU SS-PAS
  129. C HPAS2 = PAS DE TEMPS ITERMEDIAIRES
  130. C-----------------------------------------------------------------------
  131. C ON DEMARRE
  132. C-----------------------------------------------------------------------
  133. 499 TEMINT=TIMO
  134. TRINS1=TIMEXI
  135. EPSINT=EPSTAR
  136. SINT=S0
  137. DO 413 IB=1,IBOU
  138. 413 SIGINT(IB)=SIGEL(IB)
  139. C-----------------------------------------------------------------------
  140. C BOUCLE SUR LES SOUS-PAS
  141. C-----------------------------------------------------------------------
  142. DO 416 I=1,IDECOU
  143. C ON INTERPOLE LINEAIREMENT
  144. C
  145. TETINI=TETI+DTETDT*(TEMINT-TIMO)
  146. DECATE=TEMPS-TEMINT
  147. HPAS2=DECATE
  148. IF(IRELAX.NE.2) GO TO 8370
  149. C
  150. C MODIFS POUR LA METHODE DE TREANOR
  151. C POUR LA PREMIERE ESTIMATION DU PAS DANS LES ITERATIONS EN DEPS,
  152. C ON UTILISE LA VALEUR HFIRST TROUVEE A L ITERATION PRECEDENTE
  153. C POUR LE DECOUPAGE EN SOUS-PAS,ON AJUSTE AUTOMATIQUEMENT LA TAILLE
  154. C DU PAS .
  155. C
  156. IF(I.GT.1) GO TO 8371
  157. IF(ICOMPT.EQ.1) GO TO 8370
  158. HPAS2=HFIRST
  159. GO TO 8370
  160. 8371 HPAS2=HPADEC
  161. 8370 BETA=HPAS2/DECATE
  162. IF(BETA.GT.1.) BETA=1.
  163. CALL CRPLAW(VI,EPSINT,SINT,TETINI,TRINS1,HPAS2,ICLFLU,NCOURB)
  164. EPSPAS=HPAS2*VI
  165. C EPSPAS=INCREMENT D'ALLONGEMENT INELASTIQUE CALCULE A LA FIN
  166. C DU SOUS PAS INTERMEDIAIRE
  167. C BETA=COEFFICIENT CORRESPONDANT A LA FRACTION DU PAS CALCULE
  168. C
  169. IF(EPSPAS.GT.EPREC) BETA=BETA*EPREC/EPSPAS
  170. C
  171. C-----------------------------------------------------------------------
  172. C DEBUT DES CALCULS POUR UN SOUS-PAS DE TAILLE DONNEE
  173. C ON RECOMMENCE ICI EN CAS DE REDUCTION DU PAS
  174. C-----------------------------------------------------------------------
  175. C
  176. 424 HPAS2=DECATE*BETA
  177. BTAPAS=HPAS2/HPAS
  178. TEMIN2=TEMINT+HPAS2
  179. TRINS2=TRINS1+HPAS2
  180. TETINF=TETI+DTETDT*(TEMIN2-TIMO)
  181. TIMO5=TEMINT+0.5*HPAS2
  182. TRINS5=TRINS1+0.5*HPAS2
  183. TETIN5=TETI+DTETDT*(TIMO5-TIMO)
  184. IF(IRELAX.EQ.2) GO TO 1101
  185. C
  186. C CALCUL PAR LA METHODE LADOUCEUR
  187. C
  188. EPSPA2=EPSPAS*BETA
  189. EPSIN2=EPSINT+EPSPA2
  190. BTASIG=EPSPA2*BTAEPS
  191. IF(BTASIG.GT.PREBTA) BTASIG=PREBTA
  192. C
  193. C
  194. C IL FAUT TOUJOURS INTERPOLER EN DELTA-EPSILON, MEME SI DEPS EST PETIT,
  195. C POUR QUE LA RUSE DE LA 2-EME ITERATION MARCHE EN FLUAGE PUR
  196. C
  197. C
  198. IF(BTAA.LE.PREZER) BTASIG=BTAPAS
  199. ELTA=0.
  200. IF(SINT.NE.0.) ELTA=VI/SINT
  201. ELTF=HPAS2*ELTA
  202. DO 421 IB=1,IBOU
  203. 421 SIGT(IB)=SIGINT(IB)+DSIGP0(IB)*BTAPAS+
  204. 1 (DSIGP(IB)-DSIGP0(IB))*BTASIG
  205. 2 -E(IB)*SIGINT(IB)*ELTF
  206. SINT2=VNMISD(SIGT,ITYP,ALFAH,CVNMSD)
  207. C
  208. C DEBUT DES ITERATIONS SUR LA FRACTION DE PAS CONSIDERE
  209. C
  210. DO 417 J=1,NITER
  211. CALL CRPLAW(VINT,EPSIN2,SINT2,TETINF,TRINS2,HPAS2,ICLFLU,NCOURB)
  212. ELTO=.25*HPAS2
  213. IF(J.EQ.1) EPSPA5=ELTO*(3*VI+VINT)*.5
  214. IF(J.NE.1.AND.(VI+VINT).NE.0.)
  215. 1 EPSPA5=DEPS*(3*VI+VINT)/(VI+VINT)*.25
  216. EPSO5=EPSINT+EPSPA5
  217. BTASIG=EPSPA5*BTAEPS
  218. IF(BTASIG.GT.PREBTA) BTASIG=PREBTA
  219. IF(BTAA.LE.PREZER) BTASIG=BTAPAS*.5
  220. ELTB=0.
  221. IF(SINT2.NE.0.) ELTB=VINT/SINT2
  222. DO 422 IB=1,IBOU
  223. IF(J.EQ.1) SIG5(IB)=SIGINT(IB)+DSIGP0(IB)*BTAPAS*.5+
  224. 1 (DSIGP(IB)-DSIGP0(IB))*BTASIG
  225. 2 -ELTO*E(IB)*(3*SIGINT(IB)*ELTA+SIGT(IB)*ELTB)*.5
  226. IF(J.NE.1) SIG5(IB)=SIGINT(IB)+DSIGP0(IB)*BTAPAS*.5+
  227. 1 (DSIGP(IB)-DSIGP0(IB))*BTASIG
  228. 2 -E(IB)*ELTO*(SIGINT(IB)*ELTA+SIG5(IB)*ELTC*.25)
  229. 422 CONTINUE
  230. SO5=VNMISD(SIG5,ITYP,ALFAH,CVNMSD)
  231. CALL CRPLAW(VO5,EPSO5,SO5,TETIN5,TRINS5,HPAS2,ICLFLU,NCOURB)
  232. ELTO=.166666666667*HPAS2
  233. DEPS=ELTO*(VI+VINT+4*VO5)
  234. IF(DEPS.LT.EPREC2) GO TO 425
  235. BETA=BETA*.7
  236. GO TO 424
  237. 425 EPSIN2=EPSINT+DEPS
  238. BTASIG=DEPS*BTAEPS
  239. IF(BTASIG.GT.PREBTA) BTASIG=PREBTA
  240. IF(BTAA.LE.PREZER) BTASIG=BTAPAS
  241. ELTC=0.
  242. IF(SO5.NE.0.) ELTC=VO5/SO5*4.
  243. DO 423 IB=1,IBOU
  244. 423 SIGT(IB)=SIGINT(IB)+DSIGP0(IB)*BTAPAS+
  245. 1 (DSIGP(IB)-DSIGP0(IB))*BTASIG
  246. 2 -ELTO*E(IB)*(SIGINT(IB)*ELTA+SIGT(IB)*ELTB+SIG5(IB)*ELTC)
  247. SINT2=VNMISD(SIGT,ITYP,ALFAH,CVNMSD)
  248. 417 CONTINUE
  249. C
  250. GO TO 1200
  251. C
  252. 1101 CONTINUE
  253. C
  254. C CALCUL PAR LA METHODE DE TREANOR
  255. C
  256. WEP=0.5D00
  257. CALL FLURUN(SIGINT,EPSINT,TETINI,TRINS1,HPAS2,ICLFLU,NCOURB,IBOU,
  258. . ITYP,BTAA,BETA,BTAEPS,BTAPAS,ICOD,DSIGK1,DEPSK1,SIGT,EPSINA,WEP,
  259. . EPSINT,EPREC2,ecou)
  260. IF(ICOD.EQ.1) GO TO 424
  261. CALL FLURUN(SIGT,EPSINA,TETIN5,TRINS5,HPAS2,ICLFLU,NCOURB,IBOU,
  262. . ITYP,BTAA,BETA,BTAEPS,BTAPAS,ICOD,DSIGK2,DEPSK2,SIGT,EPSINA,WEP,
  263. . EPSINT,EPREC2,ecou)
  264. IF(ICOD.EQ.1) GO TO 424
  265. WEP=1.D00
  266. CALL FLURUN(SIGT,EPSINA,TETIN5,TRINS5,HPAS2,ICLFLU,NCOURB,IBOU,
  267. . ITYP,BTAA,BETA,BTAEPS,BTAPAS,ICOD,DSIGK3,DEPSK3,SIGT,EPSINA,WEP,
  268. . EPSINT,EPREC2,ecou)
  269. IF(ICOD.EQ.1) GO TO 424
  270. PHMAX=0.
  271. IF(DEPSK2-DEPSK1.NE.0.) PHMAX=2.*(DEPSK2-DEPSK3)/(DEPSK2-DEPSK1)
  272. DO 4101 IB=1,IBOU
  273. IF(DSIGK2(IB)-DSIGK1(IB).EQ.0.) GO TO 4101
  274. PH=2.*(DSIGK2(IB)-DSIGK3(IB))/(DSIGK2(IB)-DSIGK1(IB))
  275. IF(PHMAX.LT.PH) PHMAX=PH
  276. 4101 CONTINUE
  277. IF(PHMAX.LE.0.) GO TO 4102
  278. IF(PHMAX.GE.PREPH) GO TO 4123
  279. XL1=1.-PHMAX*0.5
  280. XL2=0.5-PHMAX*0.166666666666666667
  281. XL3=0.166666666666666667-PHMAX*0.04166666666666666667
  282. XL4=-PHMAX*0.166666666666666667
  283. GO TO 4103
  284. 4123 CONTINUE
  285. XL1=(1.-EXP(-PHMAX))/PHMAX
  286. XL2=(1.-XL1)/PHMAX
  287. XL3=(0.5-XL2)/PHMAX
  288. XL4=XL1-2.*XL2
  289. GO TO 4103
  290. 4102 PHMAX=0.
  291. XL1=1.
  292. XL2=0.5
  293. XL3=0.166666666666666667
  294. XL4=0.
  295. 4103 CONTINUE
  296. XM1=-XL2+4.*XL3
  297. XM2=2.*(XL2-2.*XL3)
  298. XM3=4.*XL3-3.*XL2
  299. C
  300. C NOUVELLE ESTIMATION DE LA SOLUTION
  301. C
  302. EPSIN5=EPSINT+2.*XL2*DEPSK3+XL2*PHMAX*DEPSK2+XL4*DEPSK1
  303. DO 4104 IB=1,IBOU
  304. 4104 SIG5(IB)=SIGINT(IB)+2.*XL2*DSIGK3(IB)+XL2*PHMAX*DSIGK2(IB)
  305. . +XL4*DSIGK1(IB)
  306. WEP=1.D00
  307. CALL FLURUN(SIG5,EPSIN5,TETINF,TRINS2,HPAS2,ICLFLU,NCOURB,
  308. . IBOU,ITYP,BTAA,BETA,BTAEPS,BTAPAS,ICOD,DSIGK4,DEPSK4,SIGT,
  309. . EPSINA,WEP,EPSINT,EPREC2,ecou)
  310. IF(ICOD.EQ.1) GO TO 424
  311. C
  312. C ESTIMATION FINALE DE LA SOLUTION
  313. C
  314. FAC1=1.+PHMAX*XM3+2.*PHMAX*XM2
  315. FAC2=XL1+XM3+0.5*XM2*PHMAX
  316. FAC3=XM2*(1.+0.5*PHMAX)
  317. EPSIN2=EPSINT*FAC1+DEPSK1*FAC2+DEPSK2*FAC3+DEPSK3*XM2
  318. . +DEPSK4*XM1+EPSIN5*XM1*PHMAX
  319. DO 4105 IB=1,IBOU
  320. 4105 SIGT(IB)=SIGINT(IB)*FAC1+DSIGK1(IB)*FAC2+DSIGK2(IB)*FAC3
  321. . +DSIGK3(IB)*XM2+DSIGK4(IB)*XM1+SIG5(IB)*XM1*PHMAX
  322. C
  323. C TEST DE PRECISION
  324. C
  325. ERMAX=ABS(EPSIN2-EPSIN5)/MAX(PREDEF,ABS(EPSIN2-EPSINT))
  326. DO 4106 IB=1,IBOU
  327. ERM=ABS(SIGT(IB)-SIG5(IB))/MAX(PRESIG,
  328. . ABS(SIGT(IB)-SIGINT(IB)))
  329. IF(ERMAX.LT.ERM) ERMAX=ERM
  330. 4106 CONTINUE
  331. IF(ERMAX.LE.PRERUN) GO TO 1240
  332. BETA=BETA*0.5
  333. GO TO 424
  334. C
  335. C-----------------------------------------------------------------------
  336. C METHODE DE TREANOR - ESTIMATION AUTOMATIQUE DU PAS DE TEMPS
  337. C-----------------------------------------------------------------------
  338. C
  339. 1240 HPADEC=HPAS2
  340. IF(ERMAX.LE.PREMIN) HPADEC=2.D00*HPAS2
  341. SINT2=VNMISD(SIGT,ITYP,ALFAH,CVNMSD)
  342. 1200 CONTINUE
  343. C
  344. C CAS DU PREMIER DECOUPAGE : ON SAUVE LA TAILLE DU 1-ER SOUS-PAS
  345. C
  346. IF(I.EQ.1.AND.ICOMPT.EQ.1) HFIRST=HPAS2
  347. DO 418 IB=1,IBOU
  348. 418 SIGINT(IB)=SIGT(IB)
  349. C
  350. C-----------------------------------------------------------------------
  351. C SORTIE DE LA BOUCLE DES SOUS-PAS SI BETA=1.
  352. C LE DECOUPAGE EST FINI
  353. C-----------------------------------------------------------------------
  354. C
  355. IF(ABS(BETA-1.D00).LE.PREZER) GO TO 419
  356. EPSINT=EPSIN2
  357. C
  358. C-----------------------------------------------------------------------
  359. C SI ON N'A PAS FINI,ON REGARDE SI ON PASSE LE TEST ANTI-DIVERGENCE
  360. C SI CA A TENDANCE A EXPLOSER,ON RECOMMENCE AVEC UN BTAA MODIFIE
  361. C SINON ON SORT EN DEMANDANT PLUS DE SOUS-PAS
  362. C-----------------------------------------------------------------------
  363. C
  364. IF(IT.LE.2) GO TO 502
  365. IF(BTAA.LE.PREDEF) GO TO 502
  366. C
  367. C TEST ANTI-DIVERGENCE ITERATIONS INTERNES DE 2-EME NIVEAU
  368. C
  369. IF(DEPS.LE.1.5*BTAA) GO TO 502
  370. BTAA=1.1*BTAA
  371. BTAEPS=1./BTAA
  372. GO TO 499
  373. 502 CONTINUE
  374. SINT=SINT2
  375. TEMINT=TEMIN2
  376. IF(JNTRIN.EQ.0) TRINS1=TRINS2
  377. IF(JNTRIN.NE.0.AND.DEPS.NE.0.) TRINS1=TRINS2
  378. C
  379. C-----------------------------------------------------------------------
  380. C FIN DE LA BOUCLE SUR LES SOUS-PAS
  381. C-----------------------------------------------------------------------
  382. C
  383. 416 CONTINUE
  384. KERRE=3
  385. RETURN
  386. C
  387. C FIN DU DECOUPAGE EN SOUS-PAS
  388. C
  389. 419 SI=SINT2
  390. DEPS=EPSIN2-EPSTAR
  391. IF(DEPS.GE.0.) GO TO 3170
  392. KERRE=4
  393. DEPS=0.D00
  394. 3170 CONTINUE
  395. C
  396. C ON TESTE LA VALEUR DE DEPS PAR RAPPORT A L'ESTIMATION FAITE
  397. C ON CONTINUE JUSQ'A CONVERGENGE A RPREC PRES
  398. C
  399. IF(IT.EQ.1) GO TO 501
  400. IF(IT.EQ.2) GO TO 505
  401. C
  402. C SI BTAA EST INFERIEUR A PREZER,ON NE FAIT PAS D'ITERATIONS
  403. C INTERNES DE 2-EME NIVEAU
  404. C
  405. IF(BTAA.LE.PREZER) GO TO 501
  406. DIFFE=DEPS-BTAA
  407. RAPOR=ABS(DIFFE)/BTAA
  408. IF(RAPOR.LE.RPREC) GO TO 501
  409. IF(ICOMPT.LT.15) GO TO 415
  410. KERRE=5
  411. GO TO 505
  412. 415 CONTINUE
  413. ICOMPT=ICOMPT+1
  414. IF(ICOMPT.EQ.2) GO TO 503
  415. DESSU=BTAAZ*DEPS-BTAA*DEPSZ
  416. DESSOU=DIFFE-DIFFEZ
  417. 503 BTAAZ=BTAA
  418. DEPSZ=DEPS
  419. DIFFEZ=DIFFE
  420. IF(ICOMPT.EQ.2) GO TO 535
  421. IF(ABS(DESSOU).GT.1.D-20) GO TO 504
  422. BTAA=(BTAA+DEPS)*0.5
  423. GO TO 3390
  424. 504 BTAA=DESSU/DESSOU
  425. GO TO 3390
  426. 535 BTAA=DEPS
  427. 3390 IF(BTAA.GT.PREZER) BTAEPS=1./BTAA
  428. IF(BTAA.LT.0.) BTAA=0.5D00*BTAAZ
  429. GO TO 499
  430. 501 CONTINUE
  431. EPST=EPSIN2
  432. IF(JNTRIN.NE.0) TIMEXF=TRINS2
  433. RETURN
  434. 505 CONTINUE
  435. EPST=EPSIN2
  436. IF(JNTRIN.NE.0) TIMEXF=TRINS2
  437. IF(BTAA.LE.PREZER) RETURN
  438. ICONV=1
  439. RDEPS=DEPS/BTAA
  440. DO 506 IB=1,IBOU
  441. 506 DSIGP(IB)=SIGEL(IB)+DSIGP0(IB)+(DSIGP(IB)-DSIGP0(IB))*RDEPS
  442. RETURN
  443. C
  444. C-----------------------------------------------------------------------
  445. C METHODE CLASSIQUE CASTEM
  446. C-----------------------------------------------------------------------
  447. C
  448. 414 TIMO=TEMPS-HPAS
  449. TIMEXF=TIMEXI+HPAS
  450. TIMEX5=0.5*(TIMEXI+TIMEXF)
  451. TET5=0.5*(TETI+TET)
  452. TIMO5=0.5*(TIMO+TEMPS)
  453. IF(IT.NE.1) GO TO 411
  454. C
  455. C RUSE POUR LA 1-ERE ITERATION EN CAS THERMOPLASTIQUE
  456. C
  457. CALL CRPLAW(VI,EPSTAR,S0,TETI,TIMEXI,HPAS,ICLFLU,NCOURB)
  458. DPSM1=VI
  459. EPST=EPSTAR+HPAS*VI
  460. CALL CRPLAW(VF,EPST,SSTAR,TET,TIMEXF,HPAS,ICLFLU,NCOURB)
  461. DPSM2=SSTAR
  462. SF=SSTAR
  463. ELTO=0.166666666667*HPAS
  464. SO5=0.5*(S0+SF)
  465. EPST=EPSTAR+0.25*HPAS*(VI+VF)
  466. CALL CRPLAW(VO5,EPST,SO5,TET5,TIMEX5,HPAS,ICLFLU,NCOURB)
  467. ELTA=0
  468. ELTB=0
  469. ELTC=0
  470. IF(S0.NE.0.) ELTA=1./S0
  471. IF(SF.NE.0.) ELTB=1./SF
  472. IF(SO5.NE.0.) ELTC=1./SO5
  473. ELTF=ELTO*(VF*ELTB+2.*VO5*ELTC)
  474. ELTO=ELTO*(VI*ELTA+2.*VO5*ELTC)
  475. DO 412 IB=1,IBOU
  476. ELTA=1.-E(IB)*ELTO
  477. ELTB=1.+E(IB)*ELTF
  478. SIGEL(IB)=SIGEL(IB)*ELTB/ELTA
  479. 412 DSIGP(IB)=DSIGP(IB)*ELTB
  480. 411 VI=DPSM1
  481. SF=DPSM2
  482. EPST=EPSTAR+HPAS*VI
  483. CALL CRPLAW(VF,EPST,SF,TET,TIMEXF,HPAS,ICLFLU,NCOURB)
  484. ELTO=0.166666666667*HPAS
  485. SO5=0.5*(S0+SF)
  486. EPST=0.25*HPAS*(VI+VF)+EPSTAR
  487. CALL CRPLAW(VO5,EPST,SO5,TET5,TIMEX5,HPAS,ICLFLU,NCOURB)
  488. ELTA=0.
  489. ELTB=0.
  490. ELTC=0.
  491. IF(S0.NE.0.) ELTA=1./S0
  492. IF(SF.NE.0.) ELTB=1./SF
  493. IF(SO5.NE.0.) ELTC=1./SO5
  494. ELTF=ELTO*(VF*ELTB+2.*VO5*ELTC)
  495. ELTO=ELTO*(VI*ELTA+2.*VO5*ELTC)
  496. DO 410 IB=1,IBOU
  497. ELTA=1.-E(IB)*ELTO
  498. ELTB=1.+E(IB)*ELTF
  499. SIGT(IB)=(DSIGP(IB)+SIGEL(IB)*ELTA)/ELTB
  500. IF(IT.GT.1) GO TO 410
  501. DSIGP(IB)= SIGT(IB)*(1.+ELTB-ELTA)
  502. 410 CONTINUE
  503. SI=VNMISD(SIGT,ITYP,ALFAH,CVNMSD)
  504. DPSM2=SI
  505. DEPS=0.166666666667*HPAS*(VI+VF+4.*VO5)
  506. EPST=EPSTAR+DEPS
  507. IF(JNTRIN.NE.0.AND.DEPS.EQ.0.) TIMEXF=TIMEXI
  508. 57 CONTINUE
  509. RETURN
  510. END
  511.  
  512.  
  513.  
  514.  
  515.  
  516.  

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