1 : C UO2XX2 SOURCE STRU 07/05/31 21:15:56 5744 2 : SUBROUTINE UO2XX2(T0,TPOINT,FI0,FPOINT,PRECIS,PRECIZ, 3 : & XMAT,NCOMAT,NSIMP,AAD,GS,LEBIL,XINVL,PENTE, 4 : & YOUN,EPSPT,SIG0,EPSV0,VAR0,W,WMAX0,DX0, 5 : & XLTR,NFISSU,NVF,VF,MC,MM,FC0,NGAT,NC1,NCA,NDIM, 6 : & NN,TAU,STOT,EPSVF,VARF,WF,DXF,WMAXF, 7 : & TF,FIF,MCA,XXMIN,JCRIT,NCRIT,LERED,KERRE) 8 : C---------------------------------------------------------------------- 9 : C ECOULEMENT MODELE UO2 (OTTOSEN ET GATT_MONERIE) SIMPLIFIE 10 : C---------------------------------------------------------------------- 11 : C 12 : C ENTREES 13 : C ------- 14 : C T0/FI0 = TEMPERATURE/DENSITE DE FISSION AU DEB. DU SS PAS 15 : C TPOINT = VITESSE DE TEMPERATURE SUR LE PAS D INTEGRATION 16 : C FPOINT = VITESSE DE DENSITE DE FISSION SUR LE PAS D INTEGRATION 17 : C PRECIS = PRECISION POUR LA CONVERGENCE DU SCHEMA NUMERIQUE 18 : C PRECIZ = PRECISION POUR TESTS SUR CONTRAINTES 19 : C XMAT(NCOMAT) = CARACTERISTIQUES THERMOMECANIQUES DU MATERIAU 20 : C NSIMP = POINTE SUR LA CARACTERISTIQUE FACULTATIVE 'SIMP' DE XMAT 21 : C AAD = COEFFICIENT INTERVENANT DANS LE CALCUL DE L INCREMENT 22 : C DE LA DEFORMATION DE DENSIFICATION 23 : C GS(3) = RESISTANCES AU CISAILLEMENT 24 : C LEBIL(NC) = COMPRESSION/TRACTION 25 : C XINVL(3) = PARAMETRES DE TAILLE 26 : C PENTE(NC) = PENTES DES CRITERES 27 : C YOUN = MODULE D YOUNG 28 : C EPSPT(6) = VITESSE DES DEFORM. TOTALES SUR LE PAS D INTEGRATION 29 : C SIG0(6) = CONTRAINTES AU DEBUT DU SOUS PAS D INTEGRATION 30 : C EPSV0(6) = DEFORM. VISCOPLAST. AU DEBUT DU SOUS PAS D'INTEGRATION 31 : C VAR0(NGAT) = VAR. INT. SCAL. DE GATT_MONERIE AU DEB. DU SS PAS 32 : C W(3)/WMAX0(3)= OUVERTURES/ MAXIMALES DES FISSURES AU DEB. DU SS PAS 33 : C DX0(NC) = DEF. DE FISSURATION (OUV.) AU DEB. DU SS PAS 34 : C XLTR(3) = LIMITES EN TRACTION POUR LA FISSURATION 35 : C NFISSU = NOMBRE DE FISSURES 36 : C NVF = NBR DE DIRECTIONS IMPOSEES POUVANT DEVENIR 37 : C DES DIRECTIONS DE FISSURATION 38 : C MM(20)/MC = TYPES/NBR DE CRIT DE FISS SUSCEPTIBLES D ETRE ATTEINTS 39 : C FC0(20) = CRIT. DE FISS. SUSCEPTIBLES D ETRE ATTEINTS 40 : C NC1 = NC+1 AVEC NC(=3) NBR. TOTAL DE DIRECTIONS DE FISS. 41 : C NDIM = NCA+1 SI CP, NCA SINON 42 : C NN(NC) = NUMEROS DES DIRECTIONS DE FISS. OU UN CRIT. EST ATTEINT 43 : C TAU = UN NOUVEAU CRIT EST-IL VIOLE POUR LES RESULTATS A TAU 44 : C STOT(6) = CONTRAINTES A LA FIN DU SOUS PAS D INTEGRATION 45 : C EPSVF(6) = DEFORM. VISCOPLAST. A LA FIN DU SOUS PAS D'INTEGRATION 46 : C VARF(NGAT) = VAR. INT. SCAL. DE GATT_MONERIE A LA FIN DU SS PAS 47 : C WF(3)/WMAXF(3)= OUVERTURES/ MAXIMALES DES FISSURES A LA FIN DU SS PAS 48 : C 49 : C SORTIES 50 : C ------- 51 : C VF(3,3) = VECTEURS DES DIRECTIONS DE FISSURATION 52 : C STOT(6) = CONTRAINTES A LA FIN DU NOUVEAU SOUS PAS D INTEGRATION 53 : C (LE CAS ECHEANT)/ UN DES NOUVEAUX CRITERES SOIT NUL 54 : C EPSVF(6) = DEFORM. VISCOPLAST. A LA FIN DU NOUVEAU SS PAS 55 : C VARF(NGAT) = VAR. INT. SCAL. A LA FIN DU NOUVEAU SS PAS 56 : C WF(3)/WMAXF(3)= OUV./ MAXIMALES DES FISS. A LA FIN DU NOUVEAU SS PAS 57 : C TF/FIF = TEMPER./DENSITE DE FISSION A LA FIN DU NOUVEAU SS PAS 58 : C MCA = NBR. DE CRIT. VIOLES AVEC STOT EN ENTREE PARMI LES 59 : C NOUVEAUX CRITERES SUSCEPTIBLES D ETRE ATTEINTS 60 : C XXMIN = UN DES NOUVEAUX CRIT. EST ATTEINT POUR XXMIN*TAU 61 : C JCRIT(20) = TYPE DES NOUVELLES NON LINEARITES RENCONTREES 62 : C POUR LA FISSURATION 63 : C NCRIT = NOMBRE DE NOUVELLES NON LINEARITES (FISSURATION) 64 : C LERED = 1 NOUVEAUX CRIT. INCOMPATIBLES POUR SIG0 ET STOT INITIAL 65 : C 0 OK 66 : C KERRE = GESTION DES ERREURS 67 : C---------------------------------------------------------------------- 68 : C 69 : IMPLICIT INTEGER(I-N) 70 : IMPLICIT REAL*8(A-H,O-Z) 71 : -INC CCOPTIO 72 : C 73 : DIMENSION EPSPT(*),SIG0(*),EPSV0(*),VAR0(*),DX0(*) 74 : DIMENSION W(*),WMAX0(*),XLTR(*) 75 : DIMENSION MM(*),NN(*) 76 : DIMENSION FC0(*) 77 : DIMENSION STOT(*),VF(3,*),EPSVF(*),VARF(*),DXF(*) 78 : DIMENSION WF(*),WMAXF(*),JCRIT(*) 79 : DIMENSION XMAT(*),GS(*) 80 : DIMENSION LEBIL(*),XINVL(*),PENTE(*) 81 : C 82 : DIMENSION DSIGT(6),DXVV(3),XXF(3) 83 : DIMENSION JFIS(3),JFIS2(3) 84 : DIMENSION JCDUM(1) 85 : DIMENSION FC2(20),FCT(20),MMA(20) 86 : C 87 : DATA ITMAX/250/ 88 : C 89 : C INITIALISATIONS 90 : C 91 : KERRE=0 92 : LERED=0 93 : XXFIS=1.D4 94 : XXMIN=1.D0 95 : NCRIT=0 96 : IFLAG0=0 96 : CALL IANUL(JCRIT,20) 97 : C 97 : CALL ZDANUL(DXVV,3) 98 : IF (NCA.NE.0) THEN 99 : DO IJ=1,NCA 100 : JJ=NN(IJ) 101 : DXVV(JJ)=DXF(JJ)-DX0(JJ) 102 : ENDDO 103 : ENDIF 104 : C 105 : DO I=1,6 106 : DSIGT(I)= STOT(I)-SIG0(I) 107 : ENDDO 108 : C 109 : C 110 : C Viole-t-on un nouveau crit. avec contr. a la fin du ss. pas ? 111 : C 111 : CALL UO2CE2(MC,MM,STOT,DXVV,W,XLTR,XINVL, 112 : & NFISSU,NVF,FCT,VF,YOUN,PRECIZ,JFIS,KERRE) 113 : IF(KERRE.NE.0) RETURN 114 : C 115 : C 116 : MCA=0 117 : DO IC=1,MC 118 : JC=MM(IC) 119 : C 120 : IF(IIMPI.EQ.42) THEN 121 : WRITE(IOIMP,30446) IC,JC,FCT(JC) 122 : 30446 FORMAT(/2X,' UO2XX2 - IC=',I4,2X,' JC=',I4,2X, 123 : & ' FCT(JC)=',1PE12.5/) 124 : ENDIF 125 : C 126 : IF(FCT(JC).GT.0.D0)THEN 127 : MCA=MCA+1 128 : MMA(MCA)=JC 129 : ELSE IF(ABS(FCT(JC)).LE.PRECIZ)THEN 130 : MCA=MCA+1 131 : MMA(MCA)=JC 132 : IF(FCT(JC).LT.0.D0) FCT(JC)=0.D0 133 : ENDIF 134 : ENDDO 135 : C 136 : C 137 : IF(IIMPI.EQ.42) THEN 138 : WRITE(IOIMP,50446) MCA 139 : 50446 FORMAT(/2X,' DANS UO2XX2 - MCA =',I4/) 140 : WRITE(IOIMP,40446) (MMA(I),I=1,MCA) 141 : 40446 FORMAT(/2X,' UO2XX2 - MMA =',5I4/) 142 : ENDIF 143 : C 144 : C 145 : IF(MCA.NE.0) THEN 146 : C 147 : C FAUT-IL APPELER OTTOXF ? 148 : C 149 : LAPPEL=0 150 : DO IC=1,MCA 151 : JC=MMA(IC) 152 : C 153 : IF(JC.GE.1.AND.JC.LE.3) THEN 154 : C 155 : IF(FC0(JC).GT.0.D0.AND.FC0(JC).LT.PRECIZ) THEN 156 : XXMIN=0.D0 157 : JCRIT(1)=JC 158 : NCRIT=1 159 : GO TO 300 160 : ENDIF 161 : IF(JFIS(JC).GT.1) LAPPEL=1 162 : C 163 : ENDIF 164 : ENDDO 165 : C 166 : C 167 : DO IC=1,MCA 168 : JC=MMA(IC) 169 : IF(FC0(JC)*FCT(JC).GT.0.D0) THEN 170 : IF(IIMPI.EQ.42) THEN 171 : PRINT *,'##### UO2XX2 CRITERES INCOMPATIBLES JC = ',JC 172 : PRINT *,' FC0 = ',FC0(JC), ' FCT = ', FCT(JC) 173 : ENDIF 174 : LERED=1 175 : RETURN 176 : ENDIF 177 : ENDDO 178 : C 179 : C APPEL A OTTOXF 180 : C 181 : IF(LAPPEL.EQ.1) THEN 181 : CALL OTTOXF(SIG0,DSIGT,XINVL,XLTR, 182 : & NFISSU,NVF,XXF,PRECIZ,KERRE) 183 : IF(KERRE.NE.0) RETURN 184 : C 185 : IF(IIMPI.EQ.42) THEN 186 : WRITE(IOIMP,44556) (XXF(I),I=1,3) 187 : 44556 FORMAT(/2X,' APRES OTTOXF : XXF ',3(1X,1PE12.5)/) 188 : ENDIF 189 : C 190 : C 191 : IF(XXF(2).EQ.1.D4.AND.XXF(3).EQ.1.D4) THEN 192 : LAPPEL=0 193 : GO TO 50 194 : ENDIF 195 : C 196 : C 197 : IF(JFIS(2).GT.1) THEN 198 : I1=1 199 : IF(JFIS(2).EQ.2) I1=2 200 : DO I=I1,3 201 : IF(XXF(I).GT.0.D0) THEN 202 : XXFIS=XXF(I) 203 : GO TO 50 204 : ENDIF 205 : ENDDO 206 : IF(IIMPI.EQ.42) THEN 207 : WRITE(IOIMP,77453) 208 : 77453 FORMAT(2X,'#### UO2XX2 - PAS DE RACINE POSITIVE ####',/) 209 : ENDIF 210 : C**** KERRE=70 211 : C**** RETURN 212 : C ON SE DONNE UNE DERNIERE CHANCE 213 : C 214 : LAPPEL=0 215 : ENDIF 216 : C 217 : 50 CONTINUE 218 : ENDIF 219 : C 220 : C 221 : DO IC=1,MCA 222 : JC=MMA(IC) 223 : F1=FC0(JC) 224 : F2=FCT(JC) 225 : IF(IIMPI.EQ.42) THEN 226 : PRINT *,' IC=',IC 227 : PRINT *,' JC=',JC 228 : PRINT *,' FC0=',FC0(JC) 229 : PRINT *,' FCT=',FCT(JC) 230 : ENDIF 231 : C 232 : XXDEP=0.D0 233 : C 234 : XX1=XXDEP 235 : XX2=1.D0 236 : XX= XX2 - F2*(XX2-XX1)/(F2-F1) 237 : C 238 : IF(IIMPI.EQ.42) THEN 239 : PRINT *,' UO2XX2 - ESTIMATION SECANTE XX = ',XX 240 : PRINT *,'JC=',JC,' JFIS(JC)=',JFIS(JC) 241 : ENDIF 242 : C 243 : C 244 : IF(JC.GE.1.AND.JC.LE.3.AND.LAPPEL.EQ.1) THEN 245 : IF(JFIS(JC).GE.2) THEN 246 : C 247 : IF(IIMPI.EQ.42) THEN 248 : PRINT *,'VALEUR CALCULEE XX = ',XXFIS 249 : ENDIF 250 : C 251 : C 252 : IF(XX.LE.1.D0.AND.XXFIS.LE.1.D0) THEN 253 : XX=XXFIS 254 : GO TO 75 255 : ELSE 256 : LAPPEL=0 257 : ENDIF 258 : C 259 : ENDIF 260 : ENDIF 261 : C 262 : C 263 : IF(IIMPI.EQ.42) THEN 264 : PRINT *,'PREMIERE ESTIMATION XX = ',XX 265 : ENDIF 266 : C 267 : C 268 : C ITERATIONS 269 : C 270 : 75 CONTINUE 271 : ITER=0 272 : C 273 : 100 CONTINUE 274 : ITER=ITER+1 275 : C 276 : IF(ITER.GT.ITMAX) THEN 277 : PRINT *,' UO2XX2 - NBR D ITERATIONS ',ITMAX 278 : KERRE=989 279 : RETURN 280 : ENDIF 281 : C 282 : TAUESS=XX*TAU 283 : C 283 : CALL UO2DC2(IFLAG0,T0,TPOINT,FI0,FPOINT,PRECIS,PRECIZ, 284 : & XMAT,NCOMAT,NSIMP,AAD,GS,LEBIL,XINVL,PENTE, 285 : & EPSPT,SIG0,EPSV0,VAR0,W,WMAX0,DX0, 286 : & NGAT,NC1,NCA,NDIM,NN,TAUESS,TAUNEX,STOT,EPSVF, 287 : & VARF,WF,DXF,WMAXF,TF,FIF,KERRE) 288 : C 288 : CALL ZDANUL(DXVV,3) 289 : IF (NCA.NE.0) THEN 290 : DO IJ=1,NCA 291 : JJ=NN(IJ) 292 : DXVV(JJ)=DXF(JJ)-DX0(JJ) 293 : ENDDO 294 : ENDIF 295 : C 296 : C 297 : JCDUM(1)=JC 297 : CALL UO2CE2(1,JCDUM,STOT,DXVV,W,XLTR,XINVL, 298 : & NFISSU,NVF,FC2,VF,YOUN,PRECIZ,JFIS2,KERRE) 299 : IF(KERRE.NE.0) RETURN 300 : C 301 : FF=FC2(JC) 302 : IF(ABS(FF).LT.PRECIZ) GO TO 200 303 : C 304 : IF(IIMPI.EQ.42) THEN 305 : ZOB1 = F1 306 : ZOB2 = F2 307 : ENDIF 308 : C 309 : IF(FF*F2.GE.0.D0) THEN 310 : XX2=XX 311 : F2=FF 312 : ELSE 313 : XX1=XX 314 : F1=FF 315 : ENDIF 316 : C 317 : XX= XX2 - F2*(XX2-XX1)/(F2-F1) 318 : C 319 : IF(IIMPI.EQ.42) THEN 320 : WRITE(IOIMP,75461) ITER,ZOB1,ZOB2,XX 321 : 75461 FORMAT( 2X, 'I=',I3,2X,'F1=',1PE12.5,2X, 322 : & 'F2=',1PE12.5,2X,'XX=',1PE12.5) 323 : ENDIF 324 : C 325 : GO TO 100 326 : C 327 : 200 CONTINUE 328 : C 329 : IF(XX.LT.XXMIN) THEN 330 : XXMIN=XX 331 : ENDIF 332 : C 333 : ENDDO 334 : C 335 : C 336 : C 337 : IF(IIMPI.EQ.42) THEN 338 : WRITE(IOIMP,73361) XXMIN 339 : 73361 FORMAT( 2X, ' UO2XX2 APRES BOUCLE - XXMIN= ',1PE12.5/) 340 : ENDIF 341 : C 342 : C 343 : C Maj et recherche des directions / on est pile sur un nouveau crit. 344 : C 345 : TAUESS=XXMIN*TAU 346 : C 346 : CALL UO2DC2(IFLAG0,T0,TPOINT,FI0,FPOINT,PRECIS,PRECIZ, 347 : & XMAT,NCOMAT,NSIMP,AAD,GS,LEBIL,XINVL,PENTE, 348 : & EPSPT,SIG0,EPSV0,VAR0,W,WMAX0,DX0, 349 : & NGAT,NC1,NCA,NDIM,NN,TAUESS,TAUNEX,STOT,EPSVF, 350 : & VARF,WF,DXF,WMAXF,TF,FIF,KERRE) 351 : C 351 : CALL ZDANUL(DXVV,3) 352 : IF (NCA.NE.0) THEN 353 : DO IJ=1,NCA 354 : JJ=NN(IJ) 355 : DXVV(JJ)=DXF(JJ)-DX0(JJ) 356 : ENDDO 357 : ENDIF 358 : C 358 : CALL UO2CE2(MCA,MMA,STOT,DXVV,W,XLTR,XINVL, 359 : & NFISSU,NVF,FC2,VF,YOUN,PRECIZ,JFIS2,KERRE) 360 : IF(KERRE.NE.0) RETURN 361 : C 362 : C 363 : DO IC=1,MCA 364 : JC=MMA(IC) 365 : C 366 : C Test supplementaire 367 : C 368 : IF(FC2(JC).GT.PRECIZ) THEN 369 : PRINT *,'######### UO2XX2 CRITERE INCOHERENT JC = ',JC 370 : PRINT *,' FC2 = ',FC2(JC), ' PRECIZ=',PRECIZ 371 : KERRE=989 372 : RETURN 373 : ENDIF 374 : C 375 : IF(ABS(FC2(JC)).LT.PRECIZ) THEN 376 : NCRIT=NCRIT+1 377 : JCRIT(NCRIT)=JC 378 : ENDIF 379 : ENDDO 380 : C 381 : 300 CONTINUE 382 : C 383 : ENDIF 384 : C 385 : C 386 : IF(IIMPI.EQ.42) THEN 387 : WRITE(IOIMP,77000) NCRIT,(JCRIT(I),I=1,NCRIT) 388 : 77000 FORMAT( 2X, ' UO2XX2 - NCRIT =',I3,4X,'JCRIT = ',15I3/) 389 : WRITE(IOIMP,77001) XXMIN 390 : 77001 FORMAT( 2X, ' UO2XX2 - XXMIN= ',1PE12.5/) 391 : ENDIF 392 : C 393 : RETURN 394 : END 395 : 396 : 397 : 398 : 399 : 400 : 401 :
© Cast3M 2003 - All rights reserved.
Disclaimer