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 : -INC CCOPTIO 67 : C 68 : PARAMETER (XZER=0.D0,NC=3,NGATT=4) 69 : C 70 : DIMENSION SIG0(*),DEPST(*),EPSV(*),VARGA0(*) 71 : DIMENSION W(*),WMAX(*),XLTR(*) 72 : DIMENSION XINVL(*) 73 : DIMENSION GS(*),XMAT(*) 74 : DIMENSION VF(3,*),IRESU(*) 75 : DIMENSION SIGF(*),DEFP(*),EPSVF(*),VARGAF(*) 76 : C 77 : DIMENSION EPSPT(6),SIGG0(6),EPSV0(6),VAR0(NGATT) 78 : DIMENSION W0(3),WMAX0(3),DX0(NC),DX00(NC) 79 : DIMENSION SIGGF(6),EPSVVF(6),VARF(NGATT),WF(3),DXF(NC),EPSFF(6) 80 : DIMENSION DGDS0(6,NC),DGDSF(6,NC),DFDS(6,NC),HDFDQ(NC) 81 : DIMENSION WMAXF(3),DXV1(NC) 82 : C 83 : DIMENSION NN(NC),FC(NC),FC2(NC),PENTE(NC),LEBIL(NC) 84 : DIMENSION FCV(20),FCV1(20),MM(20) 85 : C 86 : DIMENSION IFERM(NC),NN0(NC) 87 : C 88 : DIMENSION JFIS(3) 89 : C 90 : DATA ITMAX/25/ 91 : DATA IRMAX/5/ 92 : C 93 : C-------------------- 94 : C INITIALISATIONS 95 : C-------------------- 96 : KERRE=0 97 : NC1=NC+1 98 : IRED=0 99 : IFLAG1=1 100 : YOUN=XMAT(1) 101 : C 102 : C --- PAS DE TEMPS CALCULE INITIAL 103 : C 104 : DTCALC=DT 105 : C 106 : C ------------ LA VITESSE DE LA DEFORMATION TOTALE EST CTE ------------ 107 : C 108 : DO 10 I=1,6 109 : EPSPT(I)=DEPST(I)/DT 110 : 10 CONTINUE 111 : IF (IFOUR.EQ.-2) EPSPT(1)=XZER 112 : C 113 : C 114 : IF(IIMPI.EQ.42) THEN 115 : WRITE(IOIMP,74433) (EPSPT(I),I=1,6) 116 : 74433 FORMAT(1X,' EPSPT ',6(1X,1PE12.5)/) 117 : ENDIF 118 : C 119 : C ------------ DEFORMATION DE FISSURATION EN OUVERTURE ------------ 120 : C 121 : DO I=1,3 122 : DX00(I)=W(I)*XINVL(I) 123 : ENDDO 124 : C 125 : C 126 : 888 CONTINUE 127 : C 128 : IRED=IRED+1 129 : IF(IRED.GT.IRMAX) THEN 130 : PRINT *,'&&&&&&&& UO2CA2 IRED = ',IRED 131 : KERRE=989 132 : RETURN 133 : ENDIF 134 : C 135 : IF(IRED.GT.1) DTCALC=0.5*DTCALC 136 : C 137 : C 138 : C 139 : DTLEFT = DTCALC 140 : TAU = DTLEFT 141 : XX = XZER 142 : C 143 : T0=TETA1 144 : FI0=FI1 145 : C 146 : C ----- CONTRAINTES - DEF. VISCOPLAST. ----- 147 : C 148 : DO I=1,6 149 : SIGG0(I)=SIG0(I) 150 : EPSV0(I)=EPSV(I) 151 : ENDDO 152 : C 153 : C ------- VARIABLES INTERNES DE GATT_MONERIE ------- 154 : C 155 : DO I=1,NGAT 156 : VAR0(I)=VARGA0(I) 157 : ENDDO 158 : C 159 : C ------------ VARIABLES DE FISSURATION ------------ 160 : C 161 : DO I=1,3 162 : W0(I)=W(I) 163 : WMAX0(I)=WMAX(I) 164 : DX0(I)=W0(I)*XINVL(I) 165 : ENDDO 166 : C 167 : C 168 : NSSINC=0 169 : C 170 : C -------------------------------------------------------------- 171 : C DEBUT DES ITERATIONS EN SSINCREMENTS / FIN SI DTLEFT = 0 172 : C -------------------------------------------------------------- 173 : 1400 CONTINUE 174 : ITERU=0 175 : 1500 CONTINUE 176 : C 177 : NSSINC = NSSINC + 1 178 : IF (NSSINC.GT.MSOUPA) THEN 179 : KERRE=268 180 : PRINT *,' UO2CA2 - PAS DE CONVERGENCE EN VISCOPLASTICITE' 181 : RETURN 182 : ENDIF 183 : C 184 : C----------------------------------------------------------------------- 185 : C Etat de fissuration au temps XX et crit. susceptibles d etre atteints 186 : C----------------------------------------------------------------------- 186 : CALL ZDANUL(DXV1,3) 187 : C 187 : CALL UO2ET2(NC,NN,SIGG0,W0,WMAX0, 188 : & XLTR,XINVL,PRECIE,PRECIZ,FC,FC2,LEBIL,NFISSU, 189 : & NVF,VF,FCV,PENTE,DXV1,YOUN,NCA,MC,MM,IFERM,KERRE) 190 : IF(KERRE.NE.0) RETURN 191 : C 192 : C 193 : ITERI=0 194 : 444 CONTINUE 195 : C 196 : IF (ITERI.NE.0) THEN 197 : C -------------------- 198 : IF(IIMPI.EQ.42) THEN 199 : WRITE(IOIMP,74078) 200 : 74078 FORMAT(/2X,' ON REINITIALISE LE PROCESSUS'//) 201 : ENDIF 202 : IF(ITERI.GT.NC) THEN 203 : KERRE=989 204 : PRINT *,' UO2CA2 - PAS DE CONVERGENCE - ITERI ',ITERI 205 : RETURN 206 : ENDIF 207 : C 208 : C calcul de PENTE pour tableau NN reduit NN(ITERI+1)UO2CR2(NC,NCA,NN,SIGG0,W0,WMAX0, 210 : & XINVL,FC,PENTE,LEBIL,PRECIE,PRECIZ,KERRE) 211 : IF(KERRE.NE.0) RETURN 212 : C 213 : ENDIF 214 : C ----- 215 : C 216 : NDIM=NCA 217 : IF(IFOUR.EQ.-2) NDIM=NCA+1 218 : C 219 : C --- determination d un etat converge pour TAU inf. ou egal a DTCALC 220 : C 220 : CALL UO2DC2(IFLAG1,T0,TPOINT,FI0,FPOINT,PRECIS,PRECIZ, 221 : & XMAT,NCOMAT,NSIMP,AAD,GS,LEBIL,XINVL,PENTE, 222 : & EPSPT,SIGG0,EPSV0,VAR0,W0,WMAX0,DX0, 223 : & NGAT,NC1,NCA,NDIM,NN,TAU,TAUNEX,SIGGF,EPSVVF, 224 : & VARF,WF,DXF,WMAXF,TF,FIF,KERRE) 225 : IF (KERRE.NE.0) THEN 226 : RETURN 227 : ENDIF 228 : C 229 : C --- Viole-t-on un critere de fissuration pour l etat converge ? 230 : C 230 : CALL ZDANUL(DXV1,3) 231 : C 231 : CALL UO2CE2(MC,MM,SIGG0,DXV1,W0,XLTR,XINVL, 232 : & NFISSU,NVF,FCV1,VF,YOUN,PRECIZ,JFIS,KERRE) 233 : IF(KERRE.NE.0) RETURN 234 : C 234 : CALL UO2XX2(T0,TPOINT,FI0,FPOINT,PRECIS,PRECIZ, 235 : & XMAT,NCOMAT,NSIMP,AAD,GS,LEBIL,XINVL,PENTE, 236 : & YOUN,EPSPT,SIGG0,EPSV0,VAR0,W0,WMAX0,DX0, 237 : & XLTR,NFISSU,NVF,VF,MC,MM,FCV1,NGAT,NC1,NCA,NDIM, 238 : & NN,TAU,SIGGF,EPSVVF,VARF,WF,DXF,WMAXF, 239 : & TF,FIF,MCA,XXX,IRESU,NRESU,LERED,KERRE) 240 : IF(KERRE.NE.0) RETURN 241 : IF(LERED.EQ.1) GO TO 888 242 : C 243 : IF(XXX.LE.0.D0) THEN 244 : KERRE=989 245 : PRINT *,' UO2CA2 - XXX EST NEGATIF OU NUL ' 246 : RETURN 247 : ENDIF 248 : C 249 : C 250 : C --- Controle de la coherence des resultats pour XXX*TAU 251 : C ------------------ 252 : IF (NCA.NE.0) THEN 253 : C ------------------ 254 : NCA0=NCA 255 : NCAA=0 256 : DO IJ=1,NCA 257 : NN0(IJ)=NN(IJ) 258 : JJ=NN(IJ) 259 : DXSOM=DXF(JJ)-DX0(JJ) 260 : C 261 : IF(DXSOM.GE.0.D0) THEN 262 : NCAA=NCAA+1 263 : NN(NCAA)=JJ 264 : ELSE IF(DXSOM.LT.0.D0) THEN 265 : C 266 : IF(LEBIL(JJ).EQ.1) THEN 267 : C 268 : IF(IFERM(JJ).NE.1) THEN 269 : NCAA=NCAA+1 270 : NN(NCAA)=JJ 271 : ELSE IF(IFERM(JJ).EQ.1) THEN 272 : IF(WF(JJ).GT.XZER) THEN 273 : NCAA=NCAA+1 274 : NN(NCAA)=JJ 275 : ENDIF 276 : ENDIF 277 : C 278 : ENDIF 279 : ENDIF 280 : ENDDO 281 : C 282 : IF(IIMPI.EQ.42) THEN 283 : WRITE(IOIMP,77008) NCA,NCAA,(NN(IJ),IJ=1,NCAA) 284 : 77008 FORMAT(5X,'NCA=',I3,2X,'NCAA=',I3/2X,'NN ' ,8I3/) 285 : ENDIF 286 : C 287 : IF(NCAA.EQ.0) THEN 288 : IF(IIMPI.EQ.42) THEN 289 : PRINT *,' UO2CA2 - NCAA EST NUL ' 290 : ENDIF 291 : NCA=NCAA 292 : ITERI=ITERI+1 293 : GO TO 444 294 : ENDIF 295 : C 296 : C 297 : IF(NCA.NE.NCAA) THEN 298 : IF(NCAA.GT.NCA) THEN 299 : PRINT *,' UO2CA2 - NCAA EST SUPERIEUR A NCA ' 300 : KERRE=989 301 : RETURN 302 : ENDIF 303 : NCA=NCAA 304 : ITERI=ITERI+1 305 : GO TO 444 306 : ENDIF 307 : C ----- 308 : ENDIF 309 : C ----- 310 : C 311 : C ------------------------------------- 312 : IF ((NCA.EQ.0).AND.(ITERI.NE.0)) THEN 313 : C ------------------------------------- 314 : DO IJ=1,NCA0 315 : JJ=NN0(IJ) 316 : IF (IFERM(JJ).EQ.1) THEN 317 : SXDIF=SIGGF(JJ)-SIGG0(JJ) 318 : IF (SXDIF.GT.XZER) THEN 319 : PRINT *,'ATTENTION FOIREUX IB IGAU',IB,IGAU 320 : ITERU=ITERU+1 321 : IF(ITERU.GT.IRMAX) THEN 322 : PRINT *,'&&&&&&&& UO2CA2 ITERU = ',ITERU 323 : KERRE=989 324 : RETURN 325 : ENDIF 326 : TAU=0.5*TAU 327 : GOTO 1500 328 : ENDIF 329 : ENDIF 330 : ENDDO 331 : C ----- 332 : ENDIF 333 : C ----- 334 : C --- Fin du controle de la coherence des resultats pour XXX*TAU 335 : C 336 : C 337 : DO I=1,3 338 : IF(WF(I).GE.WMAXF(I)) WMAXF(I)=WF(I) 339 : ENDDO 340 : C 341 : C 342 : C --------------------- 343 : C ENCORE QUELQUES TESTS 344 : C --------------------- 344 : CALL UO2VE2(NRESU,IRESU,SIGGF,WF,WMAXF, 345 : & XLTR,XINVL,PRECIE,PRECIZ,NN, 346 : & NN0,NC,NCA,FC,FC2,PENTE,LEBIL,KERRE) 347 : IF(KERRE.NE.0) RETURN 348 : C 349 : C 350 : IF (MCA.NE.0) THEN 351 : XX=XX+(XXX*TAU) 352 : GOTO 777 353 : ELSE 354 : XX=XX+TAU 355 : ENDIF 356 : C 357 : C ----- MAJ CONTRAINTES - DEF. VISCOPLAST. A t0+XX ----- 358 : C 359 : DO I=1,6 360 : SIGG0(I)=SIGGF(I) 361 : EPSV0(I)=EPSVVF(I) 362 : ENDDO 363 : C 364 : C ------- MAJ VARIABLES INTERNES DE GATT_MONERIE A t0+XX ------- 365 : C 366 : DO I=1,NGAT 367 : VAR0(I)=VARF(I) 368 : ENDDO 369 : C 370 : C ------------ MAJ VARIABLES DE FISSURATION A t0+XX ------------ 371 : C 372 : DO I=1,3 373 : W0(I)=WF(I) 374 : DX0(I)=DXF(I) 375 : WMAX0(I)=WMAXF(I) 376 : ENDDO 377 : C 378 : T0=TF 379 : FI0=FIF 380 : C 381 : C ---------------------------------------------------- 382 : C TEST DE FIN SS INCREMENTS / MISE A JOUR DE TAU 383 : C fin des boucles en ss increments si tau = dtleft 384 : C ---------------------------------------------------- 385 : C 386 : IF (TAU.LT.DTLEFT) THEN 387 : DTLEFT = DTLEFT - TAU 388 : IF (TAUNEX.GT.DTLEFT) TAUNEX = DTLEFT 389 : TAU=TAUNEX 390 : GOTO 1400 391 : ENDIF 392 : C 393 : IF (ABS(TAU-DTLEFT).GT.(TAU/1000.)) THEN 394 : PRINT *, ' UO2CA2 - PROBLEME TAU > DTLEFT ' 395 : KERRE=989 396 : RETURN 397 : ENDIF 398 : C 399 : XX=DTCALC 400 : C 401 : 777 CONTINUE 402 : C 403 : C ------------------------- 404 : C MAJ DES VARIABLES A t0+XX 405 : C ------------------------- 406 : C ------------ MAJ VARIABLES DE FISSURATION ------------ 407 : C 408 : DO I=1,3 409 : W(I)=WF(I) 410 : WMAX(I)=WMAXF(I) 411 : ENDDO 412 : C 413 : C ----- MAJ DEF. VISCOPLAST. ----- 414 : C 415 : DO I=1,6 416 : EPSVF(I)=EPSVVF(I) 417 : ENDDO 418 : C 419 : C ----- MAJ INCREMENT DES DEF. DE FISS. (OUV. + GLISS.) 420 : C 420 : CALL ZDANUL(EPSFF,6) 421 : IF (NCA.NE.0) THEN 422 : C 423 : C Calcul de DGDS0/DGDSF pour SIG0/SIGGF (etats initial/duree calculee) 423 : CALL UO2FL(NCA,NN,XINVL,PENTE,SIG0,GS,DFDS,DGDS0,HDFDQ,KERRE) 423 : CALL UO2FL(NCA,NN,XINVL,PENTE,SIGGF,GS,DFDS,DGDSF,HDFDQ,KERRE) 424 : C 425 : DO IJ=1,NCA 426 : JJ=NN(IJ) 427 : DO I=1,6 428 : DXF(IJ)=W(IJ)*XINVL(IJ) 429 : EPSFF(I)=EPSFF(I)+ 430 : & (DGDSF(I,JJ)*DXF(IJ))-(DGDS0(I,JJ)*DX00(IJ)) 431 : ENDDO 432 : ENDDO 433 : ENDIF 434 : C 435 : C ----- MAJ INCREMENT DES DEF. INELAST. (FISS.+VISCOPLAST.) 436 : C 437 : DO I=1,6 438 : EPSFF(I)=EPSFF(I)+(EPSVF(I)-EPSV(I)) 439 : ENDDO 440 : C 441 : C ------- MAJ VARIABLES INTERNES DE GATT_MONERIE ------- 442 : C 443 : DO I=1,NGAT 444 : VARGAF(I)=VARF(I) 445 : ENDDO 446 : C 447 : C -------------------------------------------------- 448 : C MAJ CONTR. - INCR. DES DEF. INELAST. - SORTIE 449 : C -------------------------------------------------- 450 : DO I=1,6 451 : SIGF(I)=SIGGF(I) 452 : DEFP(I)=EPSFF(I) 453 : ENDDO 454 : C 455 : C 456 : IF(IIMPI.EQ.42) THEN 457 : WRITE(IOIMP,77894) XX 458 : 77894 FORMAT(1X,' UO2CA2 - DUREE CALCULEE XX '/1X,1PE12.5/) 459 : WRITE(IOIMP,77895) (SIGF(IJ),IJ=1,6) 460 : 77895 FORMAT(1X,' UO2CA2 - SIGF '/(6(1X,1PE12.5))/) 461 : WRITE(IOIMP,77896) (DEFP(IJ),IJ=1,6) 462 : 77896 FORMAT(1X,' UO2CA2 - DEFP '/(6(1X,1PE12.5))/) 463 : ENDIF 464 : C 465 : RETURN 466 : END 467 : 468 :
© Cast3M 2003 - All rights reserved.
Disclaimer