uo2xx
C UO2XX SOURCE STRU 07/07/12 21:15:06 5789
& XMAT,NCOMAT,NSIMP,AAD,GS,WRUPT,LEBIL,XINVL,PENTE,BTR,
& YOUN,EPSPT,SIG0,EPSV0,VAR0,W,WMAX0,WREOU0,DX0,
& SMAX,XLTR,NFISSU,NVF,VF,MC,MM,FC0,NGAT,NC1,NCA,NDIM,
& NN,TAU,STOT,EPSVF,VARF,WF,DXF,WMAXF,WREOUF,
& TF,FIF,MCA,XXMIN,JCRIT,NCRIT,LERED,KERRE)
C----------------------------------------------------------------------
C ECOULEMENT MODELE UO2 (OTTOSEN ET GATT_MONERIE)
C----------------------------------------------------------------------
C
C ENTREES
C -------
C T0/FI0 = TEMPERATURE/DENSITE DE FISSION AU DEB. DU SS PAS
C TPOINT = VITESSE DE TEMPERATURE SUR LE PAS D INTEGRATION
C FPOINT = VITESSE DE DENSITE DE FISSION SUR LE PAS D INTEGRATION
C PRECIS = PRECISION POUR LA CONVERGENCE DU SCHEMA NUMERIQUE
C PRECIZ = PRECISION POUR TESTS SUR CONTRAINTES
C XMAT(NCOMAT) = CARACTERISTIQUES THERMOMECANIQUES DU MATERIAU
C NSIMP = POINTE SUR LA CARACTERISTIQUE FACULTATIVE 'SIMP' DE XMAT
C AAD = COEFFICIENT INTERVENANT DANS LE CALCUL DE L INCREMENT
C DE LA DEFORMATION DE DENSIFICATION
C GS(3) = RESISTANCES AU CISAILLEMENT
C WRUPT(3) = OUVERTURES CONDITIONNANT LA RUPTURE
C LEBIL(NC) = COMPRESSION/TRACTION
C XINVL(3) = PARAMETRES DE TAILLE
C PENTE(NC) = PENTES DES CRITERES
C BTR/YOUN = PARAMETRE DE FERMETURE/MODULE D YOUNG
C EPSPT(6) = VITESSE DES DEFORM. TOTALES SUR LE PAS D INTEGRATION
C SIG0(6) = CONTRAINTES AU DEBUT DU SOUS PAS D INTEGRATION
C EPSV0(6) = DEFORM. VISCOPLAST. AU DEBUT DU SOUS PAS D'INTEGRATION
C VAR0(NGAT) = VAR. INT. SCAL. DE GATT_MONERIE AU DEB. DU SS PAS
C W(3)/WMAX0(3)= OUVERTURES/ MAXIMALES DES FISSURES AU DEB. DU SS PAS
C WREOU0(3) = LIMITES DE FERMETURE AU DEBUT DU SOUS PAS D'INTEGRATION
C DX0(NC) = DEF. DE FISSURATION (OUV.) AU DEB. DU SS PAS
C SMAX(3) = CONTR. CORRESPONDANT A WMAX0
C XLTR(3) = LIMITES EN TRACTION POUR LA FISSURATION
C NFISSU = NOMBRE DE FISSURES
C NVF = NBR DE DIRECTIONS IMPOSEES POUVANT DEVENIR
C DES DIRECTIONS DE FISSURATION
C MM(20)/MC = TYPES/NBR DE CRIT DE FISS SUSCEPTIBLES D ETRE ATTEINTS
C FC0(20) = CRIT. DE FISS. SUSCEPTIBLES D ETRE ATTEINTS
C NC1 = NC+1 AVEC NC(=3) NBR. TOTAL DE DIRECTIONS DE FISS.
C NDIM = NCA+1 SI CP, NCA SINON
C NN(NC) = NUMEROS DES DIRECTIONS DE FISS. OU UN CRIT. EST ATTEINT
C TAU = UN NOUVEAU CRIT EST-IL VIOLE POUR LES RESULTATS A TAU
C STOT(6) = CONTRAINTES A LA FIN DU SOUS PAS D INTEGRATION
C EPSVF(6) = DEFORM. VISCOPLAST. A LA FIN DU SOUS PAS D'INTEGRATION
C VARF(NGAT) = VAR. INT. SCAL. DE GATT_MONERIE A LA FIN DU SS PAS
C WF(3)/WMAXF(3)= OUVERTURES/ MAXIMALES DES FISSURES A LA FIN DU SS PAS
C
C SORTIES
C -------
C VF(3,3) = VECTEURS DES DIRECTIONS DE FISSURATION
C STOT(6) = CONTRAINTES A LA FIN DU NOUVEAU SOUS PAS D INTEGRATION
C (LE CAS ECHEANT)/ UN DES NOUVEAUX CRITERES SOIT NUL
C EPSVF(6) = DEFORM. VISCOPLAST. A LA FIN DU NOUVEAU SS PAS
C VARF(NGAT) = VAR. INT. SCAL. A LA FIN DU NOUVEAU SS PAS
C WF(3)/WMAXF(3)= OUV./ MAXIMALES DES FISS. A LA FIN DU NOUVEAU SS PAS
C TF/FIF = TEMPER./DENSITE DE FISSION A LA FIN DU NOUVEAU SS PAS
C MCA = NBR. DE CRIT. VIOLES AVEC STOT EN ENTREE PARMI LES
C NOUVEAUX CRITERES SUSCEPTIBLES D ETRE ATTEINTS
C XXMIN = UN DES NOUVEAUX CRIT. EST ATTEINT POUR XXMIN*TAU
C JCRIT(20) = TYPE DES NOUVELLES NON LINEARITES RENCONTREES
C POUR LA FISSURATION
C NCRIT = NOMBRE DE NOUVELLES NON LINEARITES (FISSURATION)
C LERED = 1 NOUVEAUX CRIT. INCOMPATIBLES POUR SIG0 ET STOT INITIAL
C 0 OK
C KERRE = GESTION DES ERREURS
C----------------------------------------------------------------------
C
IMPLICIT INTEGER(I-N)
IMPLICIT REAL*8(A-H,O-Z)
-INC PPARAM
-INC CCOPTIO
C
DIMENSION EPSPT(*),SIG0(*),EPSV0(*),VAR0(*),DX0(*)
DIMENSION W(*),WMAX0(*),WREOU0(*),SMAX(*),XLTR(*)
DIMENSION MM(*),NN(*)
DIMENSION FC0(*)
DIMENSION STOT(*),VF(3,*),EPSVF(*),VARF(*),DXF(*)
DIMENSION WF(*),WMAXF(*),WREOUF(*),JCRIT(*)
DIMENSION XMAT(*),GS(*),WRUPT(*)
C
DIMENSION DSIGT(6),DXVV(3),XXF(3)
DIMENSION JFIS(3),JFIS2(3)
DIMENSION JCDUM(1)
DIMENSION FC2(20),FCT(20),MMA(20)
C
DATA ITMAX/350/
C
C INITIALISATIONS
C
KERRE=0
LERED=0
XXFIS=1.D4
XXMIN=1.D0
NCRIT=0
IFLAG0=0
C
IF (NCA.NE.0) THEN
DO IJ=1,NCA
JJ=NN(IJ)
DXVV(JJ)=DXF(JJ)-DX0(JJ)
ENDDO
ENDIF
C
DO I=1,6
DSIGT(I)= STOT(I)-SIG0(I)
ENDDO
C
C
C Viole-t-on un nouveau crit. avec contr. a la fin du ss. pas ?
C
& BTR,NFISSU,NVF,FCT,VF,YOUN,PRECIZ,JFIS,KERRE)
IF(KERRE.NE.0) RETURN
C
C
MCA=0
DO IC=1,MC
JC=MM(IC)
C
IF(IIMPI.EQ.42) THEN
WRITE(IOIMP,30446) IC,JC,FCT(JC)
30446 FORMAT(/2X,' UO2XX - IC=',I4,2X,' JC=',I4,2X,
& ' FCT(JC)=',1PE12.5/)
ENDIF
C
IF(FCT(JC).GT.0.D0)THEN
MCA=MCA+1
MMA(MCA)=JC
ELSE IF(ABS(FCT(JC)).LE.PRECIZ)THEN
MCA=MCA+1
MMA(MCA)=JC
IF(FCT(JC).LT.0.D0) FCT(JC)=0.D0
ENDIF
ENDDO
C
C
IF(IIMPI.EQ.42) THEN
WRITE(IOIMP,50446) MCA
50446 FORMAT(/2X,' DANS UO2XX - MCA =',I4/)
WRITE(IOIMP,40446) (MMA(I),I=1,MCA)
40446 FORMAT(/2X,' UO2XX - MMA =',5I4/)
ENDIF
C
C
IF(MCA.NE.0) THEN
C
C FAUT-IL APPELER OTTOXF ?
C
LAPPEL=0
DO IC=1,MCA
JC=MMA(IC)
C
IF(JC.GE.1.AND.JC.LE.3) THEN
C
IF(FC0(JC).GT.0.D0.AND.FC0(JC).LT.PRECIZ) THEN
XXMIN=0.D0
JCRIT(1)=JC
NCRIT=1
GO TO 300
ENDIF
IF(JFIS(JC).GT.1) LAPPEL=1
C
ENDIF
ENDDO
C
C
DO IC=1,MCA
JC=MMA(IC)
IF(FC0(JC)*FCT(JC).GT.0.D0) THEN
IF(IIMPI.EQ.42) THEN
PRINT *,'##### UO2XX CRITERES INCOMPATIBLES JC = ',JC
PRINT *,' FC0 = ',FC0(JC), ' FCT = ', FCT(JC)
ENDIF
LERED=1
RETURN
ENDIF
ENDDO
C
C APPEL A OTTOXF
C
IF(LAPPEL.EQ.1) THEN
& NFISSU,NVF,XXF,PRECIZ,KERRE)
IF(KERRE.NE.0) RETURN
C
IF(IIMPI.EQ.42) THEN
WRITE(IOIMP,44556) (XXF(I),I=1,3)
44556 FORMAT(/2X,' APRES OTTOXF : XXF ',3(1X,1PE12.5)/)
ENDIF
C
C
IF(XXF(2).EQ.1.D4.AND.XXF(3).EQ.1.D4) THEN
LAPPEL=0
GO TO 50
ENDIF
C
C
IF(JFIS(2).GT.1) THEN
I1=1
IF(JFIS(2).EQ.2) I1=2
DO I=I1,3
IF(XXF(I).GT.0.D0) THEN
XXFIS=XXF(I)
GO TO 50
ENDIF
ENDDO
IF(IIMPI.EQ.42) THEN
WRITE(IOIMP,77453)
77453 FORMAT(2X,'#### UO2XX - PAS DE RACINE POSITIVE ####'/)
ENDIF
C**** KERRE=70
C**** RETURN
C ON SE DONNE UNE DERNIERE CHANCE
C
LAPPEL=0
ENDIF
C
50 CONTINUE
ENDIF
C
C
DO IC=1,MCA
JC=MMA(IC)
F1=FC0(JC)
F2=FCT(JC)
IF(IIMPI.EQ.42) THEN
PRINT *,' IC=',IC
PRINT *,' JC=',JC
PRINT *,' FC0=',FC0(JC)
PRINT *,' FCT=',FCT(JC)
ENDIF
C
XXDEP=0.D0
C
XX1=XXDEP
XX2=1.D0
XX= XX2 - F2*(XX2-XX1)/(F2-F1)
C
IF(IIMPI.EQ.42) THEN
PRINT *,' UO2XX - ESTIMATION SECANTE XX = ',XX
PRINT *,'JC=',JC,' JFIS(JC)=',JFIS(JC)
ENDIF
C
C
IF(JC.GE.1.AND.JC.LE.3.AND.LAPPEL.EQ.1) THEN
IF(JFIS(JC).GE.2) THEN
C
IF(IIMPI.EQ.42) THEN
PRINT *,'VALEUR CALCULEE XX = ',XXFIS
ENDIF
C
C
IF(XX.LE.1.D0.AND.XXFIS.LE.1.D0) THEN
XX=XXFIS
GO TO 75
ELSE
LAPPEL=0
ENDIF
C
ENDIF
ENDIF
C
C
IF(IIMPI.EQ.42) THEN
PRINT *,'PREMIERE ESTIMATION XX = ',XX
ENDIF
C
C
C ITERATIONS
C
75 CONTINUE
ITER=0
C
100 CONTINUE
ITER=ITER+1
C
IF(ITER.GT.ITMAX) THEN
PRINT *,' UO2XX - NBR D ITERATIONS ',ITMAX
KERRE=1
RETURN
ENDIF
C
TAUESS=XX*TAU
C
& NCOMAT,NSIMP,AAD,BTR,GS,WRUPT,LEBIL,XINVL,PENTE,
& EPSPT,SIG0,EPSV0,VAR0,W,WMAX0,WREOU0,DX0,
& NGAT,NC1,NCA,NDIM,NN,TAUESS,TAUNEX,STOT,EPSVF,
& VARF,WF,DXF,WMAXF,WREOUF,TF,FIF,KERRE)
C
IF (NCA.NE.0) THEN
DO IJ=1,NCA
JJ=NN(IJ)
DXVV(JJ)=DXF(JJ)-DX0(JJ)
ENDDO
ENDIF
C
C
JCDUM(1)=JC
& BTR,NFISSU,NVF,FC2,VF,YOUN,PRECIZ,JFIS2,KERRE)
IF(KERRE.NE.0) RETURN
C
FF=FC2(JC)
IF(ABS(FF).LT.PRECIZ) GO TO 200
C
IF(IIMPI.EQ.42) THEN
ZOB1 = F1
ZOB2 = F2
ENDIF
C
IF(FF*F2.GE.0.D0) THEN
XX2=XX
F2=FF
ELSE
XX1=XX
F1=FF
ENDIF
C
XX= XX2 - F2*(XX2-XX1)/(F2-F1)
C
IF(IIMPI.EQ.42) THEN
WRITE(IOIMP,75461) ITER,ZOB1,ZOB2,XX
75461 FORMAT( 2X, 'I=',I3,2X,'F1=',1PE12.5,2X,
& 'F2=',1PE12.5,2X,'XX=',1PE12.5)
ENDIF
C
GO TO 100
C
200 CONTINUE
C
IF(XX.LT.XXMIN) THEN
XXMIN=XX
ENDIF
C
ENDDO
C
C
C
IF(IIMPI.EQ.42) THEN
WRITE(IOIMP,73361) XXMIN
73361 FORMAT( 2X, ' UO2XX APRES BOUCLE - XXMIN= ',1PE12.5/)
ENDIF
C
C
C Maj et recherche des directions / on est pile sur un nouveau crit.
C
TAUESS=XXMIN*TAU
C
& NCOMAT,NSIMP,AAD,BTR,GS,WRUPT,LEBIL,XINVL,PENTE,
& EPSPT,SIG0,EPSV0,VAR0,W,WMAX0,WREOU0,DX0,
& NGAT,NC1,NCA,NDIM,NN,TAUESS,TAUNEX,STOT,EPSVF,
& VARF,WF,DXF,WMAXF,WREOUF,TF,FIF,KERRE)
C
IF (NCA.NE.0) THEN
DO IJ=1,NCA
JJ=NN(IJ)
DXVV(JJ)=DXF(JJ)-DX0(JJ)
ENDDO
ENDIF
C
& BTR,NFISSU,NVF,FC2,VF,YOUN,PRECIZ,JFIS2,KERRE)
IF(KERRE.NE.0) RETURN
C
C
DO IC=1,MCA
JC=MMA(IC)
C
C Test supplementaire
C
IF(FC2(JC).GT.PRECIZ) THEN
PRINT *,'######### UO2XX CRITERE INCOHERENT JC = ',JC
PRINT *,' FC2 = ',FC2(JC), ' PRECIZ=',PRECIZ
KERRE=2
RETURN
ENDIF
C
IF(ABS(FC2(JC)).LT.PRECIZ) THEN
NCRIT=NCRIT+1
JCRIT(NCRIT)=JC
ENDIF
ENDDO
C
300 CONTINUE
C
ENDIF
C
C
IF(IIMPI.EQ.42) THEN
WRITE(IOIMP,77000) NCRIT,(JCRIT(I),I=1,NCRIT)
77000 FORMAT( 2X, ' UO2XX - NCRIT =',I3,4X,'JCRIT = ',15I3/)
WRITE(IOIMP,77001) XXMIN
77001 FORMAT( 2X, ' UO2XX - XXMIN= ',1PE12.5/)
ENDIF
C
RETURN
END
					© Cast3M 2003 - Tous droits réservés.
					Mentions légales