Download cendom.eso

Back to the list

   1 : C CENDOM    SOURCE    KICH      09/09/11    21:15:43     6505           
   2 :        SUBROUTINE CENDOM(wrk52,wrk53,wrk54,WRK6,WRK7,WRK8,WRK9,
   3 :      1  NVARI, T0,T1,TREF,IB,IGAU,ifourb,ncourb,iecou)
   4 :                             
   5 : C ENDOM     SOURCE    NICOLAS   99/02/10    21:16:58     3476           
   6 : *      SUBROUTINE ENDOM(WRK0,WR00,WRK1,WRK6,WRK7,WRK8,WRK9,WTRAV,
   7 : *     1  NSTRS,NXMATT,ICARA,INPLAS,NVARI,PRECIS,MFR,IFOURB,KERRE,
   8 : *     2   NNVARI,NYOG,NYNU,NYRHO,NYALFA,NNKX,NYKX,NCOURB,NYN,NYM,
   9 : *     3         NYKK,T0,T1,TREF,ITHHER,CMATE,N2EL,N2PTEL,IB,IGAU,
  10 : *     4         EPAIST,MELE,NPINT,NBGMAT,NELMAT,SECT,LHOOK,CRIGI)                         
  11 : C          
  12 : c NSTRSS <= NSTRS , MFR1 <- MFR , XCARB <- XCAR                                                                    
  13 : C ==================================================================            
  14 : C CE SOUS-PROGRAMME EST APPELE DANS "PLAST".                                    
  15 : C C'EST UN INTEGRATEUR GENERAL DES LOIS DE COMPORTEMENT DES                     
  16 : C MATERIAUX ENDOMMAGEABLES EN REGIME ANISOTHERME.                                                     
  17 : C                                                                               
  18 : C ENTREES:
  19 : C -------  
  20 : C WRK0,WR00,WRK1,WRK6,WRK7,WRK8,WRK9,WTRAV = SEGMENTS DE TRAVAIL                                                                      
  21 : C NSTRSS          = NBR. DE COMPOSANTES DES CONTR. OU DES DEFORM.                  
  22 : C SIG0(NSTRSS)    = CONTR. AU DEBUT DU PAS D'INTEGRATION                           
  23 : C DEPST(NSTRSS)   = INCREMENT DES DEFORM. ELASTIQUES                    
  24 : C NVARI          = NBR. DE VARIABLES INTERNES                                     
  25 : C VAR0(NVARI)    = VARIABLES INTERNES AU DEBUT DU PAS D'INTEGRATION               
  26 : C                  CE TABLEAU CONTIENT DANS L'ORDRE:                              
  27 : C                - LA DEFORM. PLASTIQUE CUMULEE                                 
  28 : C                - LES VARIABLES INTERNES PILOTANT LES EQUATIONS DU             
  29 : C                  MODELE                                                       
  30 : C                - LES DEFORM. PLASTIQUES                                                  
  31 : C MFR1            = INDICE DE LA FORMULATION MECANIQUE; SEULEMENT                  
  32 : C                  MASSIF OU COQUE POUR LES MATERIAUX ENDOMMAGEABLES              
  33 : * CMATE = NOM DU MATERIAU
  34 : * N2EL  = NBRE D ELEMENTS DANS SEGMENT DE HOOKE
  35 : * N2PTEL= NBRE DE POINTS DANS SEGMENT DE HOOKE
  36 : * MFR1   = NUMERO DE LA FORMULATION
  37 : * IFOURB= OPTION DE CALCUL
  38 : * IB    = NUMERO DE L ELEMENT COURANT
  39 : * IGAU  = NUMERO DU POINT COURANT
  40 : * EPAIST= EPAISSEUR
  41 : * NBPGAU= NBRE DE POINTS DE GAUSS
  42 : * MELE  = NUMERO DE L ELEMENT FINI
  43 : * NPINT = NBRE DE POINTS D INTEGRATION
  44 : * NBGMAT= NBRE DE POINTS DANS SEGMENT DE CARACTERISTIQUES
  45 : * NELMAT= NBRE D ELEMENTS DANS SEGMENT DE CARACTERISTIQUES
  46 : * SECT  = SECTION
  47 : * LHOOK = TAILLE DE LA MATRICE DE HOOKE
  48 : C ICARA          = NBR. DE CARACT. GEOMETRIQUES DES ELEMENTS FINIS                
  49 : C XCARB(ICARA)    = CARACT. GEOMETRIQUES DES ELEMENTS FINIS                        
  50 : C INPLAS         = INDICE DU MODELE DECRIVANT LE MATERIAU ENDOMMAGEABLE           
  51 : C NYKX          = DIMENSION DE YKX                          
  52 : C YKX(NYKX)   = TABLEAU CONTENANT LES COURBES DE TRACTION(EPS,SIGMA)
  53 : C                  A DES TEMPERATURES DONNEES (Ti);IL EST DE LA FORME
  54 : C                  SUIVANTE :
  55 : C                  (T1,X1,F(X1,T1),X2,F(X2,T1),..,T2,Y1,F(Y1,T2),Y2,..)
  56 : C NNKX           = NBRE DE COURBES DE TRACTION
  57 : C NKX            = TABLEAU CONTENANT LE NBRE DE PTS POUR CHAQUE COURBE
  58 : C                  DE TRACTION (EX:SI NKX(1)=4,LA COURBE DE TRACTION
  59 : C                  A LA TEMPERATURE T1 SERA DEFINIE PAR 4 POINTS)                                              
  60 : C PRECIS         = PRECISION DES ITERATIONS INTERNES
  61 : C TO             = TEMPERATURE INITIALE
  62 : C T1             = TEMPERATURE FINALE
  63 : C Tref           = TEMPERATURE DE REFERENCE
  64 : C NYOG          = 2*NBRE DE POINTS DE LA COURBE T-->YOG(T)
  65 : C YOG(NYOG)    = TABLEAU CONTENANT LES VALEURS CONNUES DU MODULE
  66 : C                  D'YOUNG E A DES TEMPERATURES PRECISES T
  67 : C NYNU           = 2*NBRE DE POINTS DE LA COURBE T-->YNU(T)
  68 : C YNU(NYNU)      = TABLEAU CONTENANT LES VALEURS CONNUES DU COEFF. DE
  69 : C                  POISSON YNU A DES TEMPERATURES PRECISES T
  70 : C NYALFA          = 2*NBRE DE POINTS DE LA COURBE T-->YALFA(T)
  71 : C YALFA(NYALFA)    = TABLEAU CONTENANT LES VALEURS CONNUES DU COEFF. DE
  72 : C                  DILAT. THERMIQUE YALFA A DES TEMPERATURES PRECISES T
  73 : C NYN          = 2*NBRE DE POINTS DE LA COURBE T-->YN(T)
  74 : C YN(NYN)    = TABLEAU CONTENANT LES VALEURS CONNUES DU SEUIL
  75 : C                  D'ENDOMT YN A DES TEMPERATURES PRECISES T
  76 : C NYM            = 2*NBRE DE POINTS DE LA COURBE T-->YM(T)
  77 : C YM(NYM)        = TABLEAU CONTENANT LES VALEURS CONNUES DE L'ENDOMT
  78 : C                  CRITIQUE YM A DES TEMPERATURES PRECISES T
  79 : C NYKK          = 2*NBRE DE POINTS DE LA COURBE T-->YKK(T)
  80 : C YKK(NYKK)    = TABLEAU CONTENANT LES VALEURS CONNUES DE LA DEFORM.
  81 : C                  A RUPTURE YKK A DES TEMPERATURES PRECISES T
  82 : C                                                                                
  83 : C SORTIES:                                                                      
  84 : C -------
  85 : C NCOURB     = DIMENSION DE TRUC
  86 : C TRUC       = TABLEAU DE DIMENSION LA PLUS GRANDE PARMI CELLES
  87 : C              DEFINIES DANS NKX;IL CONTIENDRA LA COURBE DE 
  88 : C              TRACTION A LA TEMPERATURE T,OBTENUE GRACE AU SOUS-
  89 : C              PROGRAMME TRACTT.                                                                       
  90 : C SIGF(NSTRSS)= CONTR. A LA FIN DU PAS D'INTEGRATION                             
  91 : C VARF(NVARI)= VARIABLES INTERNES A LA FIN DU PAS D'INTEGRATION                 
  92 : C DEFP(NSTRSS)= INCREMENT DES DEFORM. PLASTIQUES A LA FIN DU PAS                 
  93 : C              D'INTEGRATION                                                    
  94 : C KERRE      = INDICE QUI REGIT LES ERREURS
  95 : C            = 77 SI LA DEFORM. PLAST. CUMULEE ENDOMMAGEE (2IEME VAR.           
  96 : C                 INT.) EST EN DEHORS DE LA COURBE DE TRACTION, DS.             
  97 : C                 LE CAS DE L'ECROUISSAGE ET DE L'ENDOMM. ISOTROPES.            
  98 : C                 CECI PEUT SE PRODUIRE SUITE A L'APPEL A "CRIDAM"              
  99 : C            = 99 SI LA FORMULATION MECANIQUE N'EST PAS DISPONIBLE              
 100 : C                  POUR LE MODELE CONSIDERE OU S'IL Y A INCOMPATIBILITE          
 101 : C                 ENTRE MFR1 ET IFOURB                                            
 102 : C ==================================================================            
 103 : C                                                                               
 104 :       IMPLICIT INTEGER(I-N)
 105 :       IMPLICIT REAL*8 (A-H,O-Z)                                                 
 106 : -INC CCOPTIO
 107 : -INC DECHE
 108 :       SEGMENT IECOU
 109 : *      COMMON/IECOU/NYOG,NYNU,NYALFA,icow1,NYN,NYM,NYKK,
 110 :       INTEGER NYOG,NYNU,NYALFA,NYSMAX,NYN,NYM,NYKK,
 111 :      1  icow8,icow9,icow10,icow11,NYRHO,icow13,NNKX,NYKX,icow16,
 112 : *    .  NYALF1,NYBET1,NYR,  NYA,   NYRHO,NSIGY,  NNKX,  NYKX,  IND,
 113 :      2 icow17,icow18,icow19,icow20,icow21,icow22,icow23,icow24,
 114 : *     .  NSOM,NINV,NINCMA,NCOMP,JELEM,LEGAUS,INAT,NCXMAT,
 115 :      3 icow25,icow26,icow27,icow28,icow29,icow30,icara,
 116 : *     .  LTRAC,MFR,IELE,NHRM,NBNN,NBELEM,ICARA,
 117 :      4  icow32,icow33, NSTRSS,MFR1,NBGMAT,NELMAT,icow38,
 118 : *     .  LW2,   NDEF,  NSTRSS,MFR1,NBGMAT,NELMAT,MSOUPA,
 119 :      5  icow39,icow40,icow41,NNVARI,icow43,icow44
 120 : *     .  NUMAT1,LENDO,NBBB,NNVARI,KERR1,MELEME
 121 :         INTEGER icow45,icow46,icow47,icow48,icow49,icow50,
 122 :      .          icow51,icow52,icow53,icow54,icow55,icow56
 123 :      .          icow57,icow58
 124 :       ENDSEGMENT
 125 : 
 126 : *                                                                               
 127 :       SEGMENT WRK6                                                              
 128 :         REAL*8 BB(NSTRS,NNVARI),R(NSTRS),XMU(NSTRS)                             
 129 :         REAL*8 S(NNVARI),QSI(NNVARI),DDR(NSTRS),BBS(NSTRS)                      
 130 :         REAL*8 SIGMA(NSTRS),SIGGD(NSTRS)
 131 :       ENDSEGMENT                                                                
 132 : *                                                                               
 133 :       SEGMENT WRK7                                                              
 134 :         REAL*8 F(NCOURB,2),W(NCOURB),TRUC(NCOURB)                                            
 135 :       ENDSEGMENT                                                                
 136 : *                                                                               
 137 :       SEGMENT WRK8                                                              
 138 :         REAL*8 DD(NSTRS,NSTRS),DDV(NSTRS,NSTRS),DDINV(NSTRS,NSTRS)                                                  
 139 :         REAL*8 DDINVp(NSTRS1,NSTRS1)
 140 :       ENDSEGMENT                                                                
 141 : *
 142 :       SEGMENT WRK9
 143 :         REAL*8 YOG(NYOG),YNU(NYNU),YALFA(NYALFA),YSMAX(NYSMAX)
 144 :         REAL*8 YN(NYN),YM(NYM),YKK(NYKK),YALFA1(NYALF1)
 145 :         REAL*8 YBETA1(NYBET1),YR(NYR),YA(NYA),YKX(NYKX),YRHO(NYRHO)
 146 :         REAL*8 SIGY(NSIGY)
 147 :         INTEGER NKX(NNKX)
 148 :       ENDSEGMENT
 149 : 
 150 : *                                                                    
 151 :       DIMENSION DEPS(6)
 152 : *
 153 : C                                                                       
 154 : C ------------------------------------------------                              
 155 : C DEFINITION DU NBR. MAXIMUM D'ITERATIONS INTERNES                              
 156 : C ------------------------------------------------                              
 157 :       DATA ITMAX/30/ 
 158 : c
 159 :       NXMATT = NMATT                                                           
 160 : C  
 161 :       ZEERO=0.D0                                                          
 162 :       PRECI=PRECIS                                                              
 163 :       PRECIG=-2.D0*PRECIS                                                       
 164 :       PRECG=DABS(PRECIG)                                                        
 165 :       INDIC=0                                                                   
 166 :       IALPH=0
 167 :       T=T1
 168 :       YUNGV=0.D0
 169 :       XNUV=0.D0         
 170 : C                                                                               
 171 : C ================================================================              
 172 : C MAJ. POUR LE CAS ELASTIQUE ET TEST POUR SAVOIR SI ON A PLASTIFIE              
 173 : C ================================================================              
 173 :       CALL ZDANUL(DEFP,NSTRSS)
 174 :       ALPH=1.D0                                                                 
 175 :       ALPH0=0.D0
 176 :       ALPH1=1.D0
 177 :       X=VAR0(2)
 178 :     
 178 :       CALL INITTE(NYOG,YOG,NYNU,YNU,NYRHO,YRHO,NYALFA,YALFA,NYN,
 179 :      1     YN,NYM,YM,NYKK,YKK,NYKX,YKX,NNKX,NKX,X,T0,
 180 :      2                  XMAT1,NXMATT,TRUC,NCOURB)
 180 :       CALL INITTE(NYOG,YOG,NYNU,YNU,NYRHO,YRHO,NYALFA,YALFA,NYN,
 181 :      1     YN,NYM,YM,NYKK,YKK,NYKX,YKX,NNKX,NKX,X,T1,
 182 :      2                  XMAT2,NXMATT,TRUC,NCOURB)
 183 :       ALFA0=XMAT1(4)
 184 :       ALFA1=XMAT2(4)
 185 :       CTEPS=ALFA0*(T0-TREF)-ALFA1*(T1-TREF)
 186 : C
 187 : C==================================================
 188 : C  CALCUL DE L INCREMENT DE CONTRAINTES
 189 : C  DEPST EST L INCREMENT DE DEFORMATIONS ELASTIQUES
 190 : C==================================================
 191 : C
 191 :       CALL ELAST1(1,IFOUR,VAR0,NNVARI,XMAT2,NXMATT,YUNGV,XNUV,
 192 :      1          XCARB,ICARA,MFR1,NSTRSS,DD,DDV,KERRE,INDIC,ITHHER)
 193 : C
 193 :       CALL ZDANUL(DSIGT,NSTRSS)
 194 :       DO 13 I=1,NSTRSS
 195 :       DO 13 J=1,NSTRSS
 196 :              DSIGT(I)=DSIGT(I)+DD(I,J)*DEPST(J)
 197 :  13   CONTINUE
 198 : C
 199 : C===============================================
 200 : C  CALCUL DE L INCREMENT DE DEFORMATIONS TOTALES
 201 : C===============================================
 202 : C
 202 :       CALL ELAST1(2,IFOUR,VAR0,NNVARI,XMAT1,NXMATT,YUNGV,XNUV,
 203 :      1          XCARB,ICARA,MFR1,NSTRSS,DD,DDV,KERRE,INDIC,ITHHER)
 203 :       CALL ELAST1(2,IFOUR,VAR0,NNVARI,XMAT2,NXMATT,YUNGV,XNUV,
 204 :      1          XCARB,ICARA,MFR1,NSTRSS,DDINV,DDV,KERRE,INDIC,ITHHER)
 204 :            CALL ZDANUL(DEPS,NSTRSS)
 205 :            AA=1.D0  
 206 :            DO 45 I=1,NSTRSS
 207 :              DEPS(I)=DEPST(I)
 208 :              IF (I.GT.3) AA=0.D0
 209 :              DO 46 J=1,NSTRSS
 210 :                DEPS(I)=DEPS(I)+(DDINV(I,J)*SIG0(J))
 211 :                DEPS(I)=DEPS(I)-(DD(I,J)*SIG0(J))
 212 : 46           CONTINUE
 213 :              DEPS(I)=DEPS(I)-(AA*CTEPS)
 214 : 45         CONTINUE
 215 : C
 216 : C ------
 217 : C
 217 :       CALL INITTE(NYOG,YOG,NYNU,YNU,NYRHO,YRHO,NYALFA,YALFA,NYN,
 218 :      1     YN,NYM,YM,NYKK,YKK,NYKX,YKX,NNKX,NKX,X,T,
 219 :      2     XMAT,NXMATT,TRUC,NCOURB)                                                                 
 220 : 
 221 :     5 DO 10 I=1,NSTRSS                                                           
 222 :                       SIGF(I)=SIG0(I)+DSIGT(I) 
 223 :                       SIGMA(I)=SIG0(I)                                          
 224 :    10 CONTINUE                                                                  
 225 :       DO 20 I=1,NVARI
 226 :                       VARF(I)=VAR0(I)
 227 :    20 CONTINUE
 228 : C
 229 :       IF (ITHHER.EQ.2.AND.IALPH.GT.0) GOTO 32                                                                               
 229 :    30 CALL CRIDAM(SIGF,NSTRSS,VARF,XMAT,NXMATT,XCARB,ICARA,INPLAS,                
 230 :      1NYKX,YKX,NNKX,NKX,NNVARI,MFR1,XF,KERRE,SIGGD,YY,T,TRUC,
 231 :      2                                                    NNFUS)                                  
 232 :       IF (XF.LT.PRECI) GOTO 1000                                                
 232 :       CALL CRIDOM(SIG0,NSTRSS,VAR0,XMAT,NXMATT,XCARB,ICARA,INPLAS,                
 233 :      1NNVARI,MFR1,XG,KERRE,SIGGD,Y)                                              
 234 : C                                                                               
 235 : C............ Y DESIGNE LE SEUIL D'ENDOMMAGEMENT .................              
 236 :       IF (Y.EQ.ZEERO) THEN                                                      
 237 :                            INDIC=1                                              
 238 :                            GOTO 32                                              
 239 :       ENDIF                                                                     
 240 :       TTEST=XG/Y                                                                
 241 :       IF (TTEST.GT.PRECIG) INDIC=1                                              
 242 : C                                                                               
 243 : C                                                                               
 244 : C ==============                                                                
 245 : C ON A PLASTIFIE                                                                
 246 : C ==============                                                                
 247 : C ------------------------------------------------------------------            
 248 : C DEFINITION DE DD, BB, R, S, XMU, ET QSI:                                      
 249 : C  .          .         .                                                       
 250 : C SIG = DD*EPSELAS + BB*Q   AVEC:                                               
 251 : C         - SIG     = CONTR.                                                    
 252 : C         - EPSELAS = DEFORM. ELASTIQUES                                        
 253 : C         - DD      = MATR. DE HOOK ENDOMMAGEE                                  
 254 : C         - Q       = VARIABLES INTERNES PILOTANT LES LOIS DU MODELE            
 255 : C R   = LOI D'ECOULEMENT PLASTIQUE                                              
 256 : C S   = LOIS D'EVOLUTION DES VARIABLES Q                                        
 257 : C XMU = DERIVEE DU CRITERE PAR RAPPORT AUX CONTR.                               
 258 : C QSI = DERIVEE DU CRITERE PAR RAPPORT AUX VARIABLES Q                          
 259 : C ------------------------------------------------------------------            
 260 :    32 ICO=0                                                                       
 261 : C
 262 : C
 263 : C                                                                               
 264 : C ------------------------------------------                                    
 265 : C DEBUT DE LA BOUCLE DES ITERATIONS INTERNES                                    
 266 : C --------------------------------------------------------------------          
 267 : C A CHAQUE ITERATION, CORRESPONDANT A SIGF ET VARF CALCULES AU RANG I,          
 268 : C "ENDOM1" CALCULE DD, BB, R, S, XMU ET QSI EN FONCTION DU MODELE DU              
 269 : C MATERIAU ENDOMMAGEABLE.                                                       
 270 : C --------------------------------------------------------------------          
 271 : C
 271 :    35 CALL TRACTT(YKX,NKX,TRUC,NYKX,NNKX,NNFUS,T)
 272 :       NFUST=2*NNFUS
 272 :       CALL DERTRA(NYOG,YOG,T,TYUNG,YUNGV,TINF,TSUP)
 272 :       CALL DERTRA(NYNU,YNU,T,TNU,XNUV,TINF,TSUP)
 272 :       CALL ENDOM1(SIGF,NSTRSS,VARF,XMAT,NXMATT,XCARB,ICARA,   
 273 :      1NNFUS,TRUC,NNVARI,MFR1,IFOURB,DD,DDINV,
 274 :      2BB,R,S,XMU,QSI,KERRE,SIGGD,W,F,INDIC,ITHHER,
 275 :      3YUNGV,XNUV)
 276 :       IF (KERRE.NE.0) GOTO 1000
 277 : C                                                                               
 277 :       CALL ZDANUL(DDR,NSTRSS)                                                    
 278 :       DO 50 J=1,NSTRSS                                                           
 279 :       DO 40 K=1,NSTRSS                                                           
 280 :                       DDR(J)=DDR(J)+DD(J,K)*R(K)                                
 281 :    40 CONTINUE                                                                  
 282 :    50 CONTINUE                                                                  
 283 : C                                                                               
 283 :       CALL ZDANUL(BBS,NSTRSS)                                                    
 284 :       DO 70 J=1,NSTRSS                                                           
 285 :       DO 60 K=1,NNVARI                                                          
 286 :                       BBS(J)=BBS(J)+BB(J,K)*S(K)                                
 287 :    60 CONTINUE                                                                  
 288 :    70 CONTINUE                                                                  
 289 : C
 290 :       DLAMA1=0.D0                                                               
 291 :       DLAMA2=0.D0                                                               
 292 :       DO 80 J=1,NSTRSS                                                           
 293 :                       DLAMA1=DLAMA1+XMU(J)*(DDR(J)-BBS(J))                      
 294 :    80 CONTINUE                                                                  
 295 :       DO 90 J=1,NNVARI                                                          
 296 :                       DLAMA2=DLAMA2+QSI(J)*S(J)                                 
 297 :    90 CONTINUE                                                                  
 298 : C                                                                               
 299 : C -------------------------------------------------------------                 
 300 : C CALCUL DE LA VARIATION DU MULT. PLAST. PAR LE CRIT. DE PLAST.                 
 301 : C -------------------------------------------------------------
 302 :       DT=T-T0
 303 :       DLAMDA=XF/(DLAMA1-DLAMA2)   
 304 : C                                                                               
 305 : C ------------------------------------------------------------------            
 306 : C CALCUL DES CONTR., DES VAR. INT. Q ET DE LA DEFORM. PLAST. CUMULEE            
 307 : C AU RANG I+1                                                                   
 308 : C ------------------------------------------------------------------            
 309 :       DO 100 J=1,NSTRSS                                                          
 310 :          SIGF(J)=SIGF(J)-DLAMDA*(DDR(J)-BBS(J))
 311 :   100 CONTINUE                                                                  
 312 :       VARF(2)=VARF(2)+DLAMDA*S(1)
 313 : C                                                                               
 314 :       IF (INDIC.EQ.1) THEN
 315 :       S2=S(2)                                                      
 316 :       IF (IFOURB.NE.-2) THEN                                                     
 317 :       XA=1.D0+VARF(3)
 317 :       CALL ENDOM1(SIGF,NSTRSS,VARF,XMAT,NXMATT,XCARB,ICARA,           
 318 :      1NNFUS,TRUC,NNVARI,MFR1,IFOURB,DD,DDINV,
 319 :      2BB,R,S,XMU,QSI,KERRE,SIGGD,W,F,INDIC,ITHHER,
 320 :      3YUNGV,XNUV)
 321 : 
 322 :       IF (KERRE.NE.0) GOTO 1000                                                 
 323 :       XB=VARF(3)+DLAMDA*S(2)*(1.D0-VARF(3))                                     
 324 :       XDELTA=(XA*XA)-4.D0*XB
 325 :             IF (XDELTA.LT.0.D0) THEN
 326 :                VARF(3)=VARF(3)+DLAMDA*S2 
 327 :             ELSE                                                    
 328 :                 XDELTA=DSQRT(XDELTA)                                                      
 329 :                 VARF(3)=(XA-XDELTA)/2.D0
 330 :             ENDIF
 331 :       ELSE                                                                      
 332 : C                                                                               
 333 : C  CAS DES CONTR. PLANES - MAJ DE D                                             
 334 : C                                                                               
 335 :       XA=VARF(3)+0.5D0*DLAMDA*S(2)
 335 :       CALL ENDOM1(SIGF,NSTRSS,VARF,XMAT,NXMATT,XCARB,ICARA,           
 336 :      1NNFUS,TRUC,NNVARI,MFR1,IFOURB,DD,DDINV,
 337 :      2BB,R,S,XMU,QSI,KERRE,SIGGD,W,F,INDIC,ITHHER,
 338 :      3YUNGV,XNUV)
 339 :       XB=0.5D0*DLAMDA*S(2)*(1.D0-VARF(3))                                       
 340 :       XDELTA=(1.D0-XA)*(1.D0-XA)-4.D0*XB
 341 :             IF (XDELTA.LT.0.D0) THEN
 342 :                VARF(3)=VARF(3)+DLAMDA*S2 
 343 :             ELSE                                                                                            
 344 :                XDELTA=DSQRT(XDELTA)                                                      
 345 :                VARF(3)=(1.D0+XA-XDELTA)/2.D0
 346 :             ENDIF                                             
 347 :       ENDIF                                                                     
 348 :       ENDIF                                                                     
 349 : C                                                                               
 350 :       VARF(1)=VARF(1)+DLAMDA/(1.D0-VARF(3))                                     
 351 : C                                                                               
 352 : C CONTR. PLANES - MAJ DES DEFORM. PLAST.                                        
 353 : C                                                                               
 354 :       IF (IFOURB.EQ.-2) THEN
 354 :         CALL ENDOM1(SIGF,NSTRSS,VARF,XMAT,NXMATT,XCARB,ICARA,           
 355 :      1  NNFUS,TRUC,NNVARI,MFR1,IFOURB,DD,DDINV,
 356 :      2  BB,R,S,XMU,QSI,KERRE,SIGGD,W,F,INDIC,ITHHER,
 357 :      3  YUNGV,XNUV)
 358 :         DO 110 J=1,NSTRSS                                                        
 359 :               VARF(1+NNVARI+J)=VARF(1+NNVARI+J)+DLAMDA*R(J)                     
 360 :   110 CONTINUE                                                                  
 361 :       ENDIF                                                                     
 362 : C                                                          
 363 : C                                                                               
 364 : C                                                                               
 365 : C -------------------------------------------------------------                 
 366 : C SI LE CRIT. PLAST. EST ATTEINT, ON ARRETE LES ITERATIONS                      
 367 : C SI LE NBR. MAXIMUM D'ITERATIONS EST DEPASSE, IDEM MAIS ERREUR                 
 368 : C -------------------------------------------------------------                 
 368 :   115 CALL CRIDAM(SIGF,NSTRSS,VARF,XMAT,NXMATT,XCARB,ICARA,INPLAS,                
 369 :      1NYKX,YKX,NNKX,NKX,NNVARI,MFR1,XF,KERRE,SIGGD,YY,T,TRUC,
 370 :      2                                                   NNFUS)                                  
 371 :       TEST=DABS(XF/YY)                                                           
 372 :       IF (KERRE.NE.0) GOTO 1000                                                 
 373 :       IF (TEST.LT.PRECI.AND.INDIC.EQ.1) GOTO 120                                
 374 :       IF (TEST.LT.PRECI.AND.INDIC.EQ.0) THEN                                    
 374 :       CALL CRIDOM(SIGF,NSTRSS,VARF,XMAT,NXMATT,XCARB,ICARA,INPLAS,                
 375 :      1NNVARI,MFR1,XG,KERRE,SIGGD,Y)                                              
 376 :              TTEST=XG/Y                                                         
 377 :              ATTEST=DABS(TTEST)                                                 
 378 :              IF (ATTEST.LT.PRECG) GOTO 120                                      
 379 :              IF (TTEST.LE.PRECIG) THEN                                          
 380 :                 IF (ALPH.EQ.1.D0) GOTO 120                   
 381 :                 A=1.D0                                       
 382 :              ELSE                                          
 383 :                 A=-1.D0                                      
 384 :              ENDIF                                                              
 385 :              ALPH=ALPH1+0.5D0*A*DABS(ALPH1-ALPH0)                               
 386 :              ALPH0=ALPH1                                                        
 387 :              ALPH1=ALPH                                                         
 388 :              IALPH=IALPH+1
 389 :              T=(1-ALPH)*T0+ALPH*T1
 390 :              X=VARF(2)
 390 :              CALL INITTE(NYOG,YOG,NYNU,YNU,NYRHO,YRHO,NYALFA,YALFA,
 391 :      1       NYN,YN,NYM,YM,NYKK,YKK,NYKX,YKX,NNKX,NKX,X,T,
 392 :      2       XMAT,NXMATT,TRUC,NCOURB)
 393 :              ALFFA=XMAT(4)
 394 : C
 394 :              CALL ELAST1(1,IFOURB,VAR0,NNVARI,XMAT,NXMATT,YUNGV,     
 395 :      1       XNUV,XCARB,ICARA,MFR1,NSTRSS,DDINV,DDV,KERRE,INDIC,ITHHER)
 395 :              CALL ELAST1(2,IFOURB,VAR0,NNVARI,XMAT1,NXMATT,YUNGV,     
 396 :      1       XNUV,XCARB,ICARA,MFR1,NSTRSS,DD,DDV,KERRE,INDIC,ITHHER)
 396 :              CALL MULMAT(DDV,DDINV,DD,NSTRSS,NSTRSS,NSTRSS)
 397 : C
 398 :              CTEPS=ALFA0*(T0-TREF)-ALFFA*(T-TREF)
 398 :              CALL ZDANUL(DSIGT,NSTRSS)
 399 : C
 400 :              DO 8 I=1,NSTRSS
 401 :              AA=1.D0
 402 :                DO 9 J=1,NSTRSS
 403 :                 IF (J.GT.3) AA=0.D0 
 404 :                 DSIGT(I)=DSIGT(I)+DDINV(I,J)*((ALPH*DEPS(J))+(AA*CTEPS))
 405 :                 DSIGT(I)=DSIGT(I)+DDV(I,J)*SIG0(J)
 406 : 9              CONTINUE
 407 :                DSIGT(I)=DSIGT(I)-SIG0(I)
 408 : 8            CONTINUE                                                                  
 409 :              IF (IALPH.GT.50) GOTO 1000                                         
 410 :              GOTO 5                                                             
 411 :       ENDIF                                                                     
 412 :       ICO=ICO+1
 413 :       IF (ICO.GT.ITMAX) THEN                                                      
 414 :                             KERRE=2                                             
 415 :                             GOTO 1000                                           
 416 :       ENDIF                                                                     
 417 :       GOTO 35                                                                   
 418 : C ----------------------------------------                                      
 419 : C FIN DE LA BOUCLE DES ITERATIONS INTERNES                                      
 420 : C ----------------------------------------                                      
 421 : C                                                                               
 422 : C                                                                               
 423 : C ====================================================                          
 424 : C FIN DES ITERATIONS INTERNES - LE CRITERE EST VERIFIE                          
 425 : C                 MAJ DES VARIABLES                                             
 426 : C ====================================================                          
 427 : C                                                                               
 428 : C ----------------------------------------------------------------              
 429 : C CALCUL DES DEFORM. ELAST. A LA FIN DU PAS - ELLES SERONT DS. DDR              
 430 : C ----------------------------------------------------------------              
 430 :   120 CALL ELAST1(2,IFOURB,VARF,NNVARI,XMAT,NXMATT,YUNGV,XNUV,               
 431 :      1XCARB,ICARA,MFR1,NSTRSS,DD,DDV,KERRE,INDIC,ITHHER)                                                     
 431 :       CALL ZDANUL(DDR,NSTRSS)                                                    
 432 :       DO 140 J=1,NSTRSS                                                          
 433 :       DO 130 K=1,NSTRSS                                                          
 434 :                         DDR(J)=DDR(J)+DD(J,K)*SIGF(K)                           
 435 :   130 CONTINUE                                                                  
 436 :   140 CONTINUE                                                                  
 437 : C                                                                               
 438 : C -----------------------------------------                                     
 439 : C CALCUL DES DEFORM. PLAST. A LA FIN DU PAS                                     
 440 : C ----------------------------------------------------------------              
 441 : C ON CALCULE D'ABORD, DS. BBS, LES DEFORM. TOTALES A LA FIN DU PAS              
 442 : C ----------------------------------------------------------------              
 442 :       CALL ELAST1(2,IFOURB,VAR0,NNVARI,XMAT1,NXMATT,YUNGV,XNUV,               
 443 :      1XCARB,ICARA,MFR1,NSTRSS,DD,DDV,KERRE,INDIC,ITHHER)                                                     
 443 :       CALL ZDANUL(BBS,NSTRSS)                                                    
 444 :       DO 170 J=1,NSTRSS                                                          
 445 :       DO 160 K=1,NSTRSS                                                          
 446 :                       BBS(J)=BBS(J)+DD(J,K)*SIGMA(K)                          
 447 :   160 CONTINUE                                                                  
 448 :   170 CONTINUE
 449 :       AA=1.D0                                                                 
 450 :       DO 180 J=1,NSTRSS
 451 :       IF (J.GT.3) AA=0.D0                                                          
 452 :       BBS(J)=BBS(J)+VAR0(1+NNVARI+J)+(ALPH*DEPS(J))+(AA*CTEPS)                          
 453 :   180 CONTINUE                                                                  
 454 : C                                                                               
 455 : C                                                                               
 456 :       DO 190 J=1,NSTRSS                                                          
 457 :                IF (IFOURB.EQ.-2) GOTO 195                                      
 458 :                VARF(1+NNVARI+J)=BBS(J)-DDR(J)                                 
 459 :   195          DEFP(J)=VARF(1+NNVARI+J)-VAR0(1+NNVARI+J)                      
 460 :   190 CONTINUE
 461 :       IF (ALPH.EQ.1.D0) GOTO 900                                                
 462 :       IF (INDIC.EQ.0) THEN
 463 :                           INDIC=1
 464 :                           ALPH=1.D0-ALPH
 465 :                          DO 520 J=1,NVARI                                      
 466 :                           VAR0(J)=VARF(J)                                       
 467 :   520                    CONTINUE
 468 :                          DO 525 J=1,NSTRSS                                      
 469 :                           SIGMA(J)=SIGF(J)                                       
 470 :   525                    CONTINUE
 471 : C
 472 :                           T0=T                                                     
 473 :                           T=T1
 474 :                           DO 530 J=1,NXMATT
 475 :                           XMAT1(J)=XMAT(J)
 476 :                           XMAT(J)=XMAT2(J)
 477 :   530                     CONTINUE
 478 :                           ALFA0=XMAT1(4)    
 479 :                           ALFFA=XMAT(4)
 479 :              CALL ELAST1(1,IFOURB,VAR0,NNVARI,XMAT,NXMATT,YUNGV,     
 480 :      1       XNUV,XCARB,ICARA,MFR1,NSTRSS,DD,DDV,KERRE,INDIC,ITHHER)
 480 :              CALL ELAST1(2,IFOURB,VAR0,NNVARI,XMAT1,NXMATT,YUNGV,               
 481 :      1       XNUV,XCARB,ICARA,MFR1,NSTRSS,DDINV,DDV,KERRE,INDIC,
 482 :      2       ITHHER)
 482 :              CALL MULMAT(DDV,DD,DDINV,NSTRSS,NSTRSS,NSTRSS)
 483 : C
 484 :              CTEPS=ALFA0*(T0-TREF)-ALFFA*(T-TREF)
 484 :              CALL ZDANUL(DSIGT,NSTRSS)
 485 : C
 486 :              DO 515 I=1,NSTRSS
 487 :                AA=1.D0
 488 :                DO 510 J=1,NSTRSS
 489 :                  IF (J.GT.3) AA=0.D0 
 490 :                  DSIGT(I)=DSIGT(I)+DD(I,J)*((ALPH*DEPS(J))+(AA*CTEPS))
 491 :                  DSIGT(I)=DSIGT(I)+DDV(I,J)*SIGMA(J)
 492 : 510              CONTINUE
 493 :                DSIGT(I)=DSIGT(I)-SIGMA(I)
 494 :                SIGF(I)=SIGF(I)+DSIGT(I)
 495 : 515            CONTINUE                                                                                            
 496 :                           GOTO 30                                               
 497 :       ENDIF                                                                     
 498 : C                                                                               
 499 : C ==================================================================            
 500 : C SI LE PT. DE GAUSS EST ROMPU, ON ANNULE PROGRESSIVEMENT SES CONTR.            
 501 : C ==================================================================            
 502 :   900 DCT=XMAT(7)                                                                
 503 :       DCC=1.1D0*DCT                                                              
 504 :       XD=VARF(3)                                                                
 505 :       IF (XD.GE.DCC) THEN                                                       
 506 :                               VARF(3)=1.D0                                        
 506 :                               CALL ZDANUL(SIGF,NSTRSS)                           
 507 :       ENDIF                                                                     
 508 :       IF (XD.GT.DCT.AND.XD.LT.DCC) THEN                                          
 509 :                               VARF(3)=1.D0                                        
 510 :                               BETA=11.D0-10.D0*(XD/DCT)                          
 511 :                               DO 950 J=1,NSTRSS                                  
 512 :   950                               SIGF(J)=SIGF(J)*BETA
 513 :                          
 514 :       ENDIF                                                                     
 515 :  1000 RETURN
 516 :       END
 517 : ******************************************************************* 
 518 :  
 519 :  
 520 :  
 521 : 
 522 : 
 523 :  
 524 : 
 525 : 
 526 :  
 527 :  
 528 :  
 529 :  
 530 :  
 531 :  
 532 :  

© Cast3M 2003 - All rights reserved.
Disclaimer