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