Download uo2xx2.eso

Back to the list

   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