Télécharger uo2ca2.eso

Retour à la liste

Numérotation des lignes :

uo2ca2
  1. C UO2CA2 SOURCE STRU 07/05/31 21:15:32 5744
  2. C responsable STRUB
  3. SUBROUTINE UO2CA2(DT,MSOUPA,PRECIE,PRECIZ,SIG0,DEPST,EPSV,VARGA0,
  4. & NGAT,W,WMAX,XLTR,
  5. & XINVL,GS,XMAT,NCOMAT,NSIMP,AAD,
  6. & TETA1,TPOINT,FI1,FPOINT,PRECIS,IB,IGAU,
  7. & NFISSU,NVF,VF,XX,IRESU,NRESU,
  8. & SIGF,DEFP,EPSVF,VARGAF,KERRE)
  9. C----------------------------------------------------------------------
  10. C ECOULEMENT MODELE UO2 (OTTOSEN ET GATT_MONERIE) SIMPLIFIE
  11. C----------------------------------------------------------------------
  12. C
  13. C ENTREES
  14. C -------
  15. C DT = PAS D INTEGRATION
  16. C MSOUPA = NBR. MAX. DE SOUS PAS AUTORISES POUR LA VISCOPLASTICITE
  17. C PRECIE = PRECISION POUR TESTS SUR OUVERTURES DE FISSURES
  18. C PRECIZ = PRECISION POUR TESTS SUR CONTRAINTES
  19. C SIG0(6) = CONTR. AU DEBUT DU SOUS PAS D'INTEGRATION
  20. C DEPST(6) = INCR. DES DEFORM. TOTALES SUR LE PAS D INTEGRATION
  21. C EPSV(6) = DEFORM. VISCOPLAST. AU DEBUT DU SOUS PAS D'INTEGRATION
  22. C VARGA0(NGAT) = VAR. INT. SCAL. DE GATT_MONERIE AU DEB. DU SS PAS
  23. C NGAT = NOMBRE DE VAR. INT. SCALAIRES DU MODELE GATT_MONERIE
  24. C W(3) = OUVERTURES DES FISSURES AU DEBUT DU SOUS PAS
  25. C WMAX(3) = OUVERTURES MAXIMALES DES FISSURES AU DEBUT DU SOUS PAS
  26. C XLTR(3) = LIMITES EN TRACTION POUR LA FISSURATION
  27. C XINVL(3) = PARAMETRES DE TAILLE
  28. C GS(3) = RESISTANCES AU CISAILLEMENT
  29. C XMAT(NCOMAT) = CARACTERISTIQUES THERMOMECANIQUES DU MATERIAU
  30. C NSIMP = POINTE SUR LA CARACTERISTIQUE FACULTATIVE 'SIMP' DE XMAT
  31. C AAD = COEFFICIENT INTERVENANT DANS LE CALCUL DE L INCREMENT
  32. C DE LA DEFORMATION DE DENSIFICATION
  33. C TETA1 = TEMPERATURE AU DEBUT DU PAS D INTEGRATION
  34. C TPOINT = VITESSE DE TEMPERATURE CTE SUR LE PAS D INTEGRATION
  35. C FI1 = DENSITE DE FISSION AU DEBUT DU PAS D INTEGRATION
  36. C FPOINT = VIT. DE DENSITE DE FISSION CTE SUR LE PAS D INTEGRATION
  37. C PRECIS = PRECISION POUR LA VISCOPLASTICITE
  38. C IB = NUMERO DE L ELEMENT
  39. C IGAU = NUMERO DU POINT D INTEGRATION
  40. C NFISSU = NOMBRE DE FISSURES
  41. C NVF = NBR DE DIRECTIONS IMPOSEES POUVANT DEVENIR
  42. C DES DIRECTIONS DE FISSURATION
  43. C
  44. C SORTIES
  45. C -------
  46. C W(3) = OUVERTURES DES FISSURES A LA FIN DE LA DUREE CALCULEE
  47. C WMAX(3) = OUVERTURES MAX. DES FISS. A LA FIN DE LA DUREE CALCULEE
  48. C VF(3,3) = VECTEURS DES DIRECTIONS DE FISSURATION
  49. C XX = DUREE QUI VIENT D ETRE CALCULEE
  50. C IRESU(20) = TYPE DES NOUVELLES NON LINEARITES RENCONTREES
  51. C POUR LA FISSURATION
  52. C NRESU = NOMBRE DE NOUVELLES NON LINEARITES (FISSURATION)
  53. C SIGF(6) = CONTR. A LA FIN DE LA DUREE CALCULEE
  54. C DEFP(6) = INC. DES DEFORM. INELASTIQUES (FISSURATION+VISCOPLAST.)
  55. C A LA FIN DE LA DUREE CALCULEE
  56. C EPSVF(6) = DEFORM. VISCOPLAST. A LA FIN DE LA DUREE CALCULEE
  57. C VARGAF(NGAT) = VAR. INT. SCAL. A LA FIN DE LA DUREE CALCULEE
  58. C KERRE = GESTION DES ERREURS
  59. C
  60. C RAPPEL : EN DEFO PLANES,CONTRAINTES PLANES OU AXI,
  61. C LA DIRECTION 1 EST CELLE PERPENDICULAIRE AU MAILLAGE
  62. C-----------------------------------------------------------------------
  63. C
  64. IMPLICIT INTEGER(I-N)
  65. IMPLICIT REAL*8(A-H,O-Z)
  66.  
  67. -INC PPARAM
  68. -INC CCOPTIO
  69. C
  70. PARAMETER (XZER=0.D0,NC=3,NGATT=4)
  71. C
  72. DIMENSION SIG0(*),DEPST(*),EPSV(*),VARGA0(*)
  73. DIMENSION W(*),WMAX(*),XLTR(*)
  74. DIMENSION XINVL(*)
  75. DIMENSION GS(*),XMAT(*)
  76. DIMENSION VF(3,*),IRESU(*)
  77. DIMENSION SIGF(*),DEFP(*),EPSVF(*),VARGAF(*)
  78. C
  79. DIMENSION EPSPT(6),SIGG0(6),EPSV0(6),VAR0(NGATT)
  80. DIMENSION W0(3),WMAX0(3),DX0(NC),DX00(NC)
  81. DIMENSION SIGGF(6),EPSVVF(6),VARF(NGATT),WF(3),DXF(NC),EPSFF(6)
  82. DIMENSION DGDS0(6,NC),DGDSF(6,NC),DFDS(6,NC),HDFDQ(NC)
  83. DIMENSION WMAXF(3),DXV1(NC)
  84. C
  85. DIMENSION NN(NC),FC(NC),FC2(NC),PENTE(NC),LEBIL(NC)
  86. DIMENSION FCV(20),FCV1(20),MM(20)
  87. C
  88. DIMENSION IFERM(NC),NN0(NC)
  89. C
  90. DIMENSION JFIS(3)
  91. C
  92. DATA ITMAX/25/
  93. DATA IRMAX/5/
  94. C
  95. C--------------------
  96. C INITIALISATIONS
  97. C--------------------
  98. KERRE=0
  99. NC1=NC+1
  100. IRED=0
  101. IFLAG1=1
  102. YOUN=XMAT(1)
  103. C
  104. C --- PAS DE TEMPS CALCULE INITIAL
  105. C
  106. DTCALC=DT
  107. C
  108. C ------------ LA VITESSE DE LA DEFORMATION TOTALE EST CTE ------------
  109. C
  110. DO 10 I=1,6
  111. EPSPT(I)=DEPST(I)/DT
  112. 10 CONTINUE
  113. IF (IFOUR.EQ.-2) EPSPT(1)=XZER
  114. C
  115. C
  116. IF(IIMPI.EQ.42) THEN
  117. WRITE(IOIMP,74433) (EPSPT(I),I=1,6)
  118. 74433 FORMAT(1X,' EPSPT ',6(1X,1PE12.5)/)
  119. ENDIF
  120. C
  121. C ------------ DEFORMATION DE FISSURATION EN OUVERTURE ------------
  122. C
  123. DO I=1,3
  124. DX00(I)=W(I)*XINVL(I)
  125. ENDDO
  126. C
  127. C
  128. 888 CONTINUE
  129. C
  130. IRED=IRED+1
  131. IF(IRED.GT.IRMAX) THEN
  132. PRINT *,'&&&&&&&& UO2CA2 IRED = ',IRED
  133. KERRE=989
  134. RETURN
  135. ENDIF
  136. C
  137. IF(IRED.GT.1) DTCALC=0.5*DTCALC
  138. C
  139. C
  140. C
  141. DTLEFT = DTCALC
  142. TAU = DTLEFT
  143. XX = XZER
  144. C
  145. T0=TETA1
  146. FI0=FI1
  147. C
  148. C ----- CONTRAINTES - DEF. VISCOPLAST. -----
  149. C
  150. DO I=1,6
  151. SIGG0(I)=SIG0(I)
  152. EPSV0(I)=EPSV(I)
  153. ENDDO
  154. C
  155. C ------- VARIABLES INTERNES DE GATT_MONERIE -------
  156. C
  157. DO I=1,NGAT
  158. VAR0(I)=VARGA0(I)
  159. ENDDO
  160. C
  161. C ------------ VARIABLES DE FISSURATION ------------
  162. C
  163. DO I=1,3
  164. W0(I)=W(I)
  165. WMAX0(I)=WMAX(I)
  166. DX0(I)=W0(I)*XINVL(I)
  167. ENDDO
  168. C
  169. C
  170. NSSINC=0
  171. C
  172. C --------------------------------------------------------------
  173. C DEBUT DES ITERATIONS EN SSINCREMENTS / FIN SI DTLEFT = 0
  174. C --------------------------------------------------------------
  175. 1400 CONTINUE
  176. ITERU=0
  177. 1500 CONTINUE
  178. C
  179. NSSINC = NSSINC + 1
  180. IF (NSSINC.GT.MSOUPA) THEN
  181. KERRE=268
  182. PRINT *,' UO2CA2 - PAS DE CONVERGENCE EN VISCOPLASTICITE'
  183. RETURN
  184. ENDIF
  185. C
  186. C-----------------------------------------------------------------------
  187. C Etat de fissuration au temps XX et crit. susceptibles d etre atteints
  188. C-----------------------------------------------------------------------
  189. CALL ZDANUL(DXV1,3)
  190. C
  191. CALL UO2ET2(NC,NN,SIGG0,W0,WMAX0,
  192. & XLTR,XINVL,PRECIE,PRECIZ,FC,FC2,LEBIL,NFISSU,
  193. & NVF,VF,FCV,PENTE,DXV1,YOUN,NCA,MC,MM,IFERM,KERRE)
  194. IF(KERRE.NE.0) RETURN
  195. C
  196. C
  197. ITERI=0
  198. 444 CONTINUE
  199. C
  200. IF (ITERI.NE.0) THEN
  201. C --------------------
  202. IF(IIMPI.EQ.42) THEN
  203. WRITE(IOIMP,74078)
  204. 74078 FORMAT(/2X,' ON REINITIALISE LE PROCESSUS'//)
  205. ENDIF
  206. IF(ITERI.GT.NC) THEN
  207. KERRE=989
  208. PRINT *,' UO2CA2 - PAS DE CONVERGENCE - ITERI ',ITERI
  209. RETURN
  210. ENDIF
  211. C
  212. C calcul de PENTE pour tableau NN reduit NN(ITERI+1)<NN(ITERI)
  213. C
  214. CALL UO2CR2(NC,NCA,NN,SIGG0,W0,WMAX0,
  215. & XINVL,FC,PENTE,LEBIL,PRECIE,PRECIZ,KERRE)
  216. IF(KERRE.NE.0) RETURN
  217. C
  218. ENDIF
  219. C -----
  220. C
  221. NDIM=NCA
  222. IF(IFOUR.EQ.-2) NDIM=NCA+1
  223. C
  224. C --- determination d un etat converge pour TAU inf. ou egal a DTCALC
  225. C
  226. CALL UO2DC2(IFLAG1,T0,TPOINT,FI0,FPOINT,PRECIS,PRECIZ,
  227. & XMAT,NCOMAT,NSIMP,AAD,GS,LEBIL,XINVL,PENTE,
  228. & EPSPT,SIGG0,EPSV0,VAR0,W0,WMAX0,DX0,
  229. & NGAT,NC1,NCA,NDIM,NN,TAU,TAUNEX,SIGGF,EPSVVF,
  230. & VARF,WF,DXF,WMAXF,TF,FIF,KERRE)
  231. IF (KERRE.NE.0) THEN
  232. RETURN
  233. ENDIF
  234. C
  235. C --- Viole-t-on un critere de fissuration pour l etat converge ?
  236. C
  237. CALL ZDANUL(DXV1,3)
  238. C
  239. CALL UO2CE2(MC,MM,SIGG0,DXV1,W0,XLTR,XINVL,
  240. & NFISSU,NVF,FCV1,VF,YOUN,PRECIZ,JFIS,KERRE)
  241. IF(KERRE.NE.0) RETURN
  242. C
  243. CALL UO2XX2(T0,TPOINT,FI0,FPOINT,PRECIS,PRECIZ,
  244. & XMAT,NCOMAT,NSIMP,AAD,GS,LEBIL,XINVL,PENTE,
  245. & YOUN,EPSPT,SIGG0,EPSV0,VAR0,W0,WMAX0,DX0,
  246. & XLTR,NFISSU,NVF,VF,MC,MM,FCV1,NGAT,NC1,NCA,NDIM,
  247. & NN,TAU,SIGGF,EPSVVF,VARF,WF,DXF,WMAXF,
  248. & TF,FIF,MCA,XXX,IRESU,NRESU,LERED,KERRE)
  249. IF(KERRE.NE.0) RETURN
  250. IF(LERED.EQ.1) GO TO 888
  251. C
  252. IF(XXX.LE.0.D0) THEN
  253. KERRE=989
  254. PRINT *,' UO2CA2 - XXX EST NEGATIF OU NUL '
  255. RETURN
  256. ENDIF
  257. C
  258. C
  259. C --- Controle de la coherence des resultats pour XXX*TAU
  260. C ------------------
  261. IF (NCA.NE.0) THEN
  262. C ------------------
  263. NCA0=NCA
  264. NCAA=0
  265. DO IJ=1,NCA
  266. NN0(IJ)=NN(IJ)
  267. JJ=NN(IJ)
  268. DXSOM=DXF(JJ)-DX0(JJ)
  269. C
  270. IF(DXSOM.GE.0.D0) THEN
  271. NCAA=NCAA+1
  272. NN(NCAA)=JJ
  273. ELSE IF(DXSOM.LT.0.D0) THEN
  274. C
  275. IF(LEBIL(JJ).EQ.1) THEN
  276. C
  277. IF(IFERM(JJ).NE.1) THEN
  278. NCAA=NCAA+1
  279. NN(NCAA)=JJ
  280. ELSE IF(IFERM(JJ).EQ.1) THEN
  281. IF(WF(JJ).GT.XZER) THEN
  282. NCAA=NCAA+1
  283. NN(NCAA)=JJ
  284. ENDIF
  285. ENDIF
  286. C
  287. ENDIF
  288. ENDIF
  289. ENDDO
  290. C
  291. IF(IIMPI.EQ.42) THEN
  292. WRITE(IOIMP,77008) NCA,NCAA,(NN(IJ),IJ=1,NCAA)
  293. 77008 FORMAT(5X,'NCA=',I3,2X,'NCAA=',I3/2X,'NN ' ,8I3/)
  294. ENDIF
  295. C
  296. IF(NCAA.EQ.0) THEN
  297. IF(IIMPI.EQ.42) THEN
  298. PRINT *,' UO2CA2 - NCAA EST NUL '
  299. ENDIF
  300. NCA=NCAA
  301. ITERI=ITERI+1
  302. GO TO 444
  303. ENDIF
  304. C
  305. C
  306. IF(NCA.NE.NCAA) THEN
  307. IF(NCAA.GT.NCA) THEN
  308. PRINT *,' UO2CA2 - NCAA EST SUPERIEUR A NCA '
  309. KERRE=989
  310. RETURN
  311. ENDIF
  312. NCA=NCAA
  313. ITERI=ITERI+1
  314. GO TO 444
  315. ENDIF
  316. C -----
  317. ENDIF
  318. C -----
  319. C
  320. C -------------------------------------
  321. IF ((NCA.EQ.0).AND.(ITERI.NE.0)) THEN
  322. C -------------------------------------
  323. DO IJ=1,NCA0
  324. JJ=NN0(IJ)
  325. IF (IFERM(JJ).EQ.1) THEN
  326. SXDIF=SIGGF(JJ)-SIGG0(JJ)
  327. IF (SXDIF.GT.XZER) THEN
  328. PRINT *,'ATTENTION FOIREUX IB IGAU',IB,IGAU
  329. ITERU=ITERU+1
  330. IF(ITERU.GT.IRMAX) THEN
  331. PRINT *,'&&&&&&&& UO2CA2 ITERU = ',ITERU
  332. KERRE=989
  333. RETURN
  334. ENDIF
  335. TAU=0.5*TAU
  336. GOTO 1500
  337. ENDIF
  338. ENDIF
  339. ENDDO
  340. C -----
  341. ENDIF
  342. C -----
  343. C --- Fin du controle de la coherence des resultats pour XXX*TAU
  344. C
  345. C
  346. DO I=1,3
  347. IF(WF(I).GE.WMAXF(I)) WMAXF(I)=WF(I)
  348. ENDDO
  349. C
  350. C
  351. C ---------------------
  352. C ENCORE QUELQUES TESTS
  353. C ---------------------
  354. CALL UO2VE2(NRESU,IRESU,SIGGF,WF,WMAXF,
  355. & XLTR,XINVL,PRECIE,PRECIZ,NN,
  356. & NN0,NC,NCA,FC,FC2,PENTE,LEBIL,KERRE)
  357. IF(KERRE.NE.0) RETURN
  358. C
  359. C
  360. IF (MCA.NE.0) THEN
  361. XX=XX+(XXX*TAU)
  362. GOTO 777
  363. ELSE
  364. XX=XX+TAU
  365. ENDIF
  366. C
  367. C ----- MAJ CONTRAINTES - DEF. VISCOPLAST. A t0+XX -----
  368. C
  369. DO I=1,6
  370. SIGG0(I)=SIGGF(I)
  371. EPSV0(I)=EPSVVF(I)
  372. ENDDO
  373. C
  374. C ------- MAJ VARIABLES INTERNES DE GATT_MONERIE A t0+XX -------
  375. C
  376. DO I=1,NGAT
  377. VAR0(I)=VARF(I)
  378. ENDDO
  379. C
  380. C ------------ MAJ VARIABLES DE FISSURATION A t0+XX ------------
  381. C
  382. DO I=1,3
  383. W0(I)=WF(I)
  384. DX0(I)=DXF(I)
  385. WMAX0(I)=WMAXF(I)
  386. ENDDO
  387. C
  388. T0=TF
  389. FI0=FIF
  390. C
  391. C ----------------------------------------------------
  392. C TEST DE FIN SS INCREMENTS / MISE A JOUR DE TAU
  393. C fin des boucles en ss increments si tau = dtleft
  394. C ----------------------------------------------------
  395. C
  396. IF (TAU.LT.DTLEFT) THEN
  397. DTLEFT = DTLEFT - TAU
  398. IF (TAUNEX.GT.DTLEFT) TAUNEX = DTLEFT
  399. TAU=TAUNEX
  400. GOTO 1400
  401. ENDIF
  402. C
  403. IF (ABS(TAU-DTLEFT).GT.(TAU/1000.)) THEN
  404. PRINT *, ' UO2CA2 - PROBLEME TAU > DTLEFT '
  405. KERRE=989
  406. RETURN
  407. ENDIF
  408. C
  409. XX=DTCALC
  410. C
  411. 777 CONTINUE
  412. C
  413. C -------------------------
  414. C MAJ DES VARIABLES A t0+XX
  415. C -------------------------
  416. C ------------ MAJ VARIABLES DE FISSURATION ------------
  417. C
  418. DO I=1,3
  419. W(I)=WF(I)
  420. WMAX(I)=WMAXF(I)
  421. ENDDO
  422. C
  423. C ----- MAJ DEF. VISCOPLAST. -----
  424. C
  425. DO I=1,6
  426. EPSVF(I)=EPSVVF(I)
  427. ENDDO
  428. C
  429. C ----- MAJ INCREMENT DES DEF. DE FISS. (OUV. + GLISS.)
  430. C
  431. CALL ZDANUL(EPSFF,6)
  432. IF (NCA.NE.0) THEN
  433. C
  434. C Calcul de DGDS0/DGDSF pour SIG0/SIGGF (etats initial/duree calculee)
  435. CALL UO2FL(NCA,NN,XINVL,PENTE,SIG0,GS,DFDS,DGDS0,HDFDQ,KERRE)
  436. CALL UO2FL(NCA,NN,XINVL,PENTE,SIGGF,GS,DFDS,DGDSF,HDFDQ,KERRE)
  437. C
  438. DO IJ=1,NCA
  439. JJ=NN(IJ)
  440. DO I=1,6
  441. DXF(IJ)=W(IJ)*XINVL(IJ)
  442. EPSFF(I)=EPSFF(I)+
  443. & (DGDSF(I,JJ)*DXF(IJ))-(DGDS0(I,JJ)*DX00(IJ))
  444. ENDDO
  445. ENDDO
  446. ENDIF
  447. C
  448. C ----- MAJ INCREMENT DES DEF. INELAST. (FISS.+VISCOPLAST.)
  449. C
  450. DO I=1,6
  451. EPSFF(I)=EPSFF(I)+(EPSVF(I)-EPSV(I))
  452. ENDDO
  453. C
  454. C ------- MAJ VARIABLES INTERNES DE GATT_MONERIE -------
  455. C
  456. DO I=1,NGAT
  457. VARGAF(I)=VARF(I)
  458. ENDDO
  459. C
  460. C --------------------------------------------------
  461. C MAJ CONTR. - INCR. DES DEF. INELAST. - SORTIE
  462. C --------------------------------------------------
  463. DO I=1,6
  464. SIGF(I)=SIGGF(I)
  465. DEFP(I)=EPSFF(I)
  466. ENDDO
  467. C
  468. C
  469. IF(IIMPI.EQ.42) THEN
  470. WRITE(IOIMP,77894) XX
  471. 77894 FORMAT(1X,' UO2CA2 - DUREE CALCULEE XX '/1X,1PE12.5/)
  472. WRITE(IOIMP,77895) (SIGF(IJ),IJ=1,6)
  473. 77895 FORMAT(1X,' UO2CA2 - SIGF '/(6(1X,1PE12.5))/)
  474. WRITE(IOIMP,77896) (DEFP(IJ),IJ=1,6)
  475. 77896 FORMAT(1X,' UO2CA2 - DEFP '/(6(1X,1PE12.5))/)
  476. ENDIF
  477. C
  478. RETURN
  479. END
  480.  
  481.  
  482.  

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