coml8
C COML8 SOURCE CB215821 24/04/12 21:15:24 11897 & mwrkxe,wrk3,wrk6,wrk7,wrk8,wrk9,wrk91,wr10, & iretou,wrk12,WR12,WRKK2,wrkgur,wkumat,wcreep, & ecou,iecou,necou,xecou) *---------------------------------------------------------------- * lois locales pour la mecanique * decrites au point d integration *---------------------------------------------------------------- IMPLICIT INTEGER(I-N) IMPLICIT REAL*8(A-H,O-Z) -INC PPARAM -INC CCOPTIO -INC CCGEOME -INC CCHAMP -INC SMMODEL -INC SMELEME -INC SMINTE -INC SMCOORD * segment deroulant le mcheml -INC DECHE * SEGMENT WRK2 REAL*8 TRAC(LTRAC) ENDSEGMENT * SEGMENT WRK3 ENDSEGMENT * SEGMENT MWRKXE REAL*8 XE(3,NBNNbi) ENDSEGMENT * SEGMENT WRK6 REAL*8 BB(NSTRS,NNVARI),R(NSTRS),XMU(NSTRS) REAL*8 S(NNVARI),QSI(NNVARI),DDR(NSTRS),BBS(NSTRS) ENDSEGMENT * SEGMENT WRK7 REAL*8 F(NCOURB,2),W(NCOURB),TRUC(NCOURB) ENDSEGMENT * SEGMENT WRK8 REAL*8 DD(NSTRS,NSTRS),DDV(NSTRS,NSTRS),DDINV(NSTRS,NSTRS) REAL*8 DDINVp(NSTRS,NSTRS) ENDSEGMENT * SEGMENT WRK9 REAL*8 YOG(NYOG),YNU(NYNU),YALFA(NYALFA),YSMAX(NYSMAX) REAL*8 YN(NYN),YM(NYM),YKK(NYKK),YALFA1(NYALF1) REAL*8 YBETA1(NYBET1),YR(NYR),YA(NYA),YKX(NYKX),YRHO(NYRHO) INTEGER NKX(NNKX) ENDSEGMENT * SEGMENT WRK91 REAL*8 YOG1(NYOG1),YNU1(NYNU1),YALFT1(NYALFT1),YSMAX1(NYSMAX1) REAL*8 YN1(NYN1),YM1(NYM1),YKK1(NYKK1),YALF2(NYALF2) REAL*8 YBET2(NYBET2),YR1(NYR1),YA1(NYA1),YQ1(NYQ1),YRHO1(NYRHO1) REAL*8 SIGY1(NSIGY1) ENDSEGMENT * SEGMENT WR10 INTEGER IABLO1(NTABO1) REAL*8 TABLO2(NTABO2) ENDSEGMENT * SEGMENT WR12 REAL*8 EM0(2,NWA(1)),EM1(2,NWA(2)),EM2(2,NWA(3)) REAL*8 EM3(2,NWA(4)),EM4(2,NWA(5)),EM5(2,NWA(6)) REAL*8 EM6(2,NWA(7)),EM7(2,NWA(8)),EM8(2,NWA(9)) REAL*8 SM0(NSTRS),SM1(NSTRS),SM2(NSTRS),SM3(NSTRS) REAL*8 SM4(NSTRS),SM5(NSTRS),SM6(NSTRS),SM7(NSTRS) REAL*8 SM8(NSTRS) ENDSEGMENT * SEGMENT WRK12 real*8 bbet1,bbet2,bbet3,bbet4,bbet5,bbet6,bbet7,bbet8,bbet9 real*8 bbet10,bbet11,bbet12,bbet13,bbet14,bbet15,bbet16,bbet17 real*8 bbet18,bbet19,bbet20,bbet21,bbet22,bbet23,bbet24,bbet25 real*8 bbet26,bbet27,bbet28,bbet29,bbet30,bbet31,bbet32,bbet33 real*8 bbet34,bbet35,bbet36,bbet37,bbet38,bbet39,bbet40,bbet41 real*8 bbet42,bbet43,bbet44,bbet45,bbet46,bbet47,bbet48,bbet49 real*8 bbet50,bbet51,bbet52,bbet53,bbet54,bbet55 integer ibet1,ibet2,ibet3,ibet4,ibet5,ibet6,ibet7,ibet8 integer ibet9,ibet10,ibet11,ibet12,ibet13,ibet14,ibet15,ibet16 ENDSEGMENT SEGMENT WRK22 REAL*8 XXE(3,NBNNbi) ENDSEGMENT SEGMENT WRKGUR REAL*8 WGUR1,WGUR2,WGUR3,WGUR4,WGUR5,WGUR6,WGUR7 REAL*8 WGUR8,WGUR9,WGUR10,WGUR11,WGUR12(6) REAL*8 WGUR13(7), WGUR14 REAL*8 WGUR15,WGUR16,WGUR17 ENDSEGMENT C C Segment de travail pour la loi 'NON_LINEAIRE' 'UTILISATEUR' appelant C l'integrateur externe specifique UMAT C SEGMENT WKUMAT C Entrees/sorties de la routine UMAT REAL*8 DDSDDE(NTENS,NTENS), SSE, SPD, SCD, & RPL, DDSDDT(NTENS), DRPLDE(NTENS), DRPLDT, & TIME(2), DTIME, TEMP, DTEMP, DPRED(NPRED), CHARACTER*16 CMNAME INTEGER NDI, NSHR, NSTATV, NPROPS, & LAYER, KSPT, KSTEP, KINC C Variables de travail LOGICAL LTEMP, LPRED, LVARI, LDFGRD INTEGER NSIG0, NPARE0, NGRAD0 ENDSEGMENT C C Segment de travail pour les lois 'VISCO_EXTERNE' C SEGMENT WCREEP C Entrees/sorties constantes de la routine CREEP REAL*8 SERD CHARACTER*16 CMNAMC INTEGER LEXIMP, NSTTVC, LAYERC, KSPTC C Entrees/sorties de la routine CREEP pouvant varier REAL*8 STV(NSTV), STV1(NSTV), STVP1(NSTV), & STVP2(NSTV), STV12(NSTV), STVP3(NSTV), & STVP4(NSTV), STV13(NSTV), STVF(NSTV), & TMP12, TMP, TMP32, & DTMP12, DTMP, & PRD12(NPRD), PRD(NPRD), PRD32(NPRD), & DPRD12(NPRD), DPRD(NPRD) INTEGER KSTEPC C Autres indicateurs et variables de travail LOGICAL LTMP, LPRD, LSTV INTEGER IVIEX, NPAREC REAL*8 dTMPdt, dPRDdt(NPRD) ENDSEGMENT * REAL*8 CRIGI(12) DIMENSION NWA(9) DIMENSION SIG01(8),VAR01(37) DIMENSION EPSFLU(8) SEGMENT ECOU REAL*8 ecow00,ecow0, C REAL*8 TEST, ALFAH, 1 ecow1,ecow2,ecow3(6),ecow4(9),ecow5(6), C 1 HPAS,TEMPS,COVNMS(6),VECPRO(9),VALPRO(6), 2 ecow6(12),ecow7(6),ecow8(6),ecow9(6),ecow10(6),ecow11(6), 2 ecow12(6), C 2 CVNMSD(12),STOT(6),SIGEL(6),DSIGP(6),SIGT(6),W1(6),W2(6), 1 ecow13(6),ecow14(6),ecow15(12),ecow16(3), C 1 DALPHA(6),EPSPLA(6),E(12),XINV(3), 2 ecow17(6),ecow18(6),ecow19,ecow20 C 2 SIPLAD(6),DSIGP0(6),TET,TETI ENDSEGMENT * * Segment NECOU utilisé dans ECOINC * SEGMENT NECOU INTEGER NCOURB,IPLAST,IT,IMAPLA,ISOTRO, . ITYP,IFOURB,IFLUAG, . ICINE,ITHER,IFLUPL,ICYCL,IBI, . JFLUAG,KFLUAG,LFLUAG, . IRELAX,JNTRIN,MFLUAG,JSOUFL,JGRDEF ENDSEGMENT * * Segment IECOU: sert de fourre-tout pour les initialisations * d'entiers * SEGMENT IECOU INTEGER NYOG,NYNU,NYALFA,NYSMAX,NYN,NYM,NYKK,NYALF1, . NYBET1,NYR,NYA,NYRHO,NSIGY,NNKX,NYKX,IND,NSOM,NINV, . NINCMA,NCOMP,JELEM,LEGAUS,INAT,NCXMAT,LTRAC,MFRBI, . IELE,NHRM,NBNNBI,NBELMB,ICARA,LW2BI,NDEF,NSTRSS, . MFR1,NBGMAT,NELMAT,MSOUPA,NUMAT1,LENDO,NBBB,NNVARI, . KERR1,MELEMB,NYOG1,NYNU1,NYALFT1,NYSMAX1,NYN1,NYM1, . NYKK1,NYALF2,NYBET2,NYR1,NYA1,NYQ1,NYRHO1,NSIGY1 ENDSEGMENT * * Segment XECOU: sert de fourre-tout pour les initialisations * de réels * SEGMENT XECOU REAL*8 DTOPTI,TSOM,TCAR,DTT,DT,TREFA,TEMP00 ENDSEGMENT * INTEGER WRKK2 * C----------------------------------------------------------------------- C c moterr(1:6) = 'COML8 ' c moterr(7:15) = 'element ' c interr(1) = ib c interr(2) = igau c call erreur(-329) * write(6,*) ' entrée dans coml8 iecou ', iecou c NSSINC = 0 NBPGAU = nbgs NVARI = NVART TETA1 = ture0(1) TETA2 = turef(1) SUCC1 = -1.E35 SUCC2 = -1.E35 nexo = exova0(/1) if (nexo.gt.0) then do 1296 inex = 1,nexo if ((nomexo(inex)(1:4) .eq.'SUCC').and. & (conexo(inex)(1:LCONMO).eq.CONM(1:LCONMO))) then SUCC1 = exova0(inex) SUCC2 = exova1(inex) goto 1295 endif 1296 continue endif 1295 continue C jnplas = inplas + 3 * inplas -2 -1 0 GOTO ( 898, 899, 900, * inplas 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 $ 900,302,900,900,900,900,900,900,309,900,900,900,900,314,900, $ 316,900,900,900,900,900,900,900,900,900,326,327,328,329,330, * 31 $ 331,332,333,334,335,336,337,338,339,340,341,342,900,900,900, $ 900,347,348,349,900,900,352,900,354,355,356,357,358,359,360, * 61 $ 900,362,900,364,365,366,367,368,369,900,371,372,373,374,375, $ 900,900,378,379,380,900,900,900,900,900,900,900,388,389,900, * 91 $ 391,392,393,900,900,396,397,398,900,900,900,900,900,404,900, $ 406,900,408,900,900,900,900,900,900,900,900,900,418,419,900, * 121 $ 900,900,900,900,425,900,427,428,429,900,431,432,433,434,435, $ 900,900,900,900,440,441,442,443,900,900,900,447,448,900,450, * 151 152 155 156 157 158 159 160 161 162 163 164 165 $ 451,452,900,900,455,456,900,900,900,900,900,900,900,900,900, * 166 167 168 169 170 171 172 173 174 $ 900,900,900,900,900,900,900,900,474 $ ) JNPLAS C C====================================================================== 900 CONTINUE WRITE(6,*) ' ERREUR D AIGUILLAGE COML8' RETURN C C====================================================================== C MODELE VISCOPLASTIQUE VISCODOMMAGE C====================================================================== 329 CONTINUE ntabo1 = iablo1(/1) ntabo2 = tablo2(/1) * NYOG=IABLO1(1) NYNU=IABLO1(2) NYALFA=IABLO1(3) NYSMAX=IABLO1(4) NYN=IABLO1(5) NYM=IABLO1(6) NYKK=IABLO1(7) NYALF1=IABLO1(8) NYBET1=IABLO1(9) NYR=IABLO1(10) NYA=IABLO1(11) C INTMAT=NMATT C IF (NTABO1.EQ.INTMAT) THEN NNKX=1 NYKX=IABLO1(12) ELSE NNKX=IABLO1(12) NYKX=0 DO 1881 I=1,NNKX NYKX=NYKX+(2*IABLO1(12+I)) 1881 CONTINUE NYKX=NYKX+NNKX ENDIF NYRHO=IABLO1(NTABO1) NSIGY=1 *** SEGINI WRK9 if (wrk9.eq.0) segini wrk9 if (yog(/1).ne.nyog.or.ynu(/1).ne.nynu.or.yalfa(/1).ne.nyalfa > .or.ysmax(/1).ne.nysmax.or.yn(/1).ne.nyn.or.ym(/1).ne.nym.or. > ykk(/1).ne.nykk.or.yalfa1(/1).ne.nyalf1.or. > ybeta1(/1).ne.nybet1.or.yr(/1).ne.nyr.or.ya(/1).ne.nya.or. > .or.nkx(/1).ne.nnkx) segadj wrk9 inplas2 = INPLAS ifour2 = IFOUR mfr2 = MFRbi *** SEGSUP WR10 IF (ITHHER.EQ.0.OR.ITHHER.EQ.1) THEN NCOURB=2*NKX(1) ELSE NCOURB=NKX(1) DO 1882 I=1,NNKX IF (NKX(I).GE.NCOURB) NCOURB=NKX(I) 1882 CONTINUE NCOURB=2*NCOURB ENDIF ** SEGINI WRK7 if (wrk7.eq.0) segini wrk7 if (w(/1).ne.ncourb) segadj wrk7 IF (VAR0(3).GE.0.96) THEN DO 1883 I=1,NVARI VARF(I) = VAR0(I) 1883 CONTINUE VARF(3) = 1.D0 DO 1884 I=1,NSTRS EPINF(I) = EPIN0(I) 1884 CONTINUE ELSE FI1=0.D0 FI2=0.D0 dtbi=dt iforb=ifourb nccor = ncourb 1 NVARI,NSSINC,INV,IFORB,TETA1,TETA2,FI1,FI2, 4 TLIFE,NCcor,IB,IGAU,NBPGAU,KERREU1,iecou,xecou) ifourb=iforb ncourb=nccor c IF (TLIFE.GE.0.D0) THEN INTERR(1)=IB INTERR(2)=IGAU REAERR(1)=TLIFE ENDIF DTOPTI = MIN(DTOPTI,DTT) NINCMA = MAX(NINCMA,NSSINC) NCOMP = NCOMP + 1 TSOM = TSOM + DTT NSOM = NSOM + NSSINC TCAR = TCAR + DTT* DTT IF (KERRE.NE.0) THEN KERR1=1 ENDIF ENDIF RETURN C C====================================================================== C MODELE VISCOPLASTIQUE PELLET C====================================================================== 442 CONTINUE ntabo1 = iablo1(/1) ntabo2 = tablo2(/1) * NYOG1=IABLO1(1) NYNU1=IABLO1(2) NYALFT1=IABLO1(3) NYSMAX1=IABLO1(4) NYN1=IABLO1(5) NYM1=IABLO1(6) NYKK1=IABLO1(7) NYALF2=IABLO1(8) NYBET2=IABLO1(9) NYR1=IABLO1(10) NYA1=IABLO1(11) NYQ1=IABLO1(12) NYRHO1=IABLO1(NTABO1) NSIGY1=1 *** SEGINI WRK91 if (wrk91.eq.0) segini wrk91 if (YOG1(/1).ne.NYOG1 .or. YNU1(/1).ne.NYNU1 .or. > YALFT1(/1).ne.NYALFT1 .or. > YSMAX1(/1).ne.NYSMAX1.or.YN1(/1).ne.NYN1.or. > YM1(/1).ne.NYM1.or.YKK1(/1).ne.NYKK1.or.YALF2(/1).ne.NYALF2.or. > YBET2(/1).ne.NYBET2.or.YR1(/1).ne.NYR1.or.YA1(/1).ne.NYA1.or. > YQ1(/1).ne.NYQ1.or.YRHO1(/1).ne.NYRHO1.or.SIGY1(/1).ne.NSIGY1) > segadj wrk91 inplas2 = INPLAS ifour2 = IFOUR mfr2 = MFRbi *** SEGSUP WR10 ** SEGINI WRK7 if (wrk7.eq.0) segini wrk7 if (w(/1).ne.ncourb) segadj wrk7 IF (VAR0(8).GE.0.96) THEN DO I=1,NVARI VARF(I) = VAR0(I) ENDDO VARF(8) = 1.D0 DO I=1,NSTRS EPINF(I) = EPIN0(I) ENDDO ELSE FI1=0.D0 FI2=0.D0 dtbi=dt iforb=ifourb nccor = ncourb 1 NVARI,NSSINC,INV,IFORB,TETA1,TETA2,FI1,FI2, 4 TLIFE,NCcor,IB,IGAU,NBPGAU,KERREU1,iecou,xecou) segact necou*mod ifourb=iforb ncourb=nccor c IF (TLIFE.GE.0.D0) THEN INTERR(1)=IB INTERR(2)=IGAU REAERR(1)=TLIFE ENDIF DTOPTI = MIN(DTOPTI,DTT) NINCMA = MAX(NINCMA,NSSINC) NCOMP = NCOMP + 1 TSOM = TSOM + DTT NSOM = NSOM + NSSINC TCAR = TCAR + DTT* DTT IF (KERRE.NE.0) THEN KERR1=1 ENDIF ENDIF SEGSUP WRK7 *** SEGSUP WRK91 RETURN C C====================================================================== C MODELE PLASTIQUE ENDOMMAGEABLE C====================================================================== c modele plastique d'endommagement de lemaitre c ++++++++++++++++++++++++++++++++++++++++++++ c traitement du materiau qui depend eventuellement de la temperature c ------------------------------------------------------------------ 326 CONTINUE ntabo1 = iablo1(/1) ntabo2 = tablo2(/1) NYOG=IABLO1(1) NYNU=IABLO1(2) NYRHO=IABLO1(3) NYALFA=IABLO1(4) c IF ((MFRbi.EQ.1.OR.MFRbi.EQ.31.OR.MFRbi.EQ.33).AND.IFOUR.EQ.-2) c & THEN c+DC INTMAT=9 c INTMAT=10 c ELSE c+DC INTMAT=8 c INTMAT=9 c ENDIF INTMAT=NMATT IF (NTABO1.EQ.INTMAT) THEN NNKX=1 NYKX=IABLO1(5) IEPS=0 ELSE NNKX=IABLO1(5) NYKX=0 DO 1789 I=1,NNKX NYKX=NYKX+(2*IABLO1(5+I)) 1789 CONTINUE NYKX=NYKX+NNKX IEPS=1 ENDIF IORIGI=6+(IEPS*NNKX) NYN=IABLO1(IORIGI) NYM=IABLO1(IORIGI+1) NYKK=IABLO1(IORIGI+2) NYSMAX=0 NYALF1=0 NYBET1=0 NYR=0 NYA=0 NSIGY=0 ** SEGINI WRK9 if (wrk9.eq.0) segini wrk9 if (yog(/1).ne.nyog.or.ynu(/1).ne.nynu.or.yalfa(/1).ne.nyalfa > .or.ysmax(/1).ne.nysmax.or.yn(/1).ne.nyn.or.ym(/1).ne.nym.or. > ykk(/1).ne.nykk.or.yalfa1(/1).ne.nyalf1.or. > ybeta1(/1).ne.nybet1.or.yr(/1).ne.nyr.or.ya(/1).ne.nya.or. > .or.nkx(/1).ne.nnkx) segadj wrk9 inplas2 = INPLAS ifour2 = IFOUR mfr2 = MFRbi * write(6,*) ' coml8 inplas2 ifour2 mfr2 ifourb' * write(6,*) inplas2,ifour2,mfr2,ifourb * write(6,*) ' sortier de mat29 kerre',kerre *** SEGSUP WR10 c c *** si le pt. de gauss est ruine, les contr. sont annulees et c *** on n' ecoule pas c IF (VAR0(3).GE.1.D0.OR.VAR0(3).GE.DC) THEN DO 1115 IEN=1,NVARI VARF(IEN)=VAR0(IEN) 1115 continue VARF(3)=1.D0 ELSE c ---------------------------------------------------------------------- c nnvari est le nbr. de var. int. pilotant les eq. du modele soit r et d c p est en supplement c ---------------------------------------------------------------------- NNVARI=2 IF (ITHHER.EQ.0.OR.ITHHER.EQ.1) THEN nccor=ncourb NCOURB=2*NKX(1) ELSE NCOURB=NKX(1) DO 1119 I=1,NNKX if (nkx(i).ge.ncourb) ncourb=nkx(i) 1119 CONTINUE NCOURB=4*NCOURB ENDIF IF (KERRE.EQ.0) THEN ** SEGINI WRK7 if (wrk7.eq.0) segini wrk7 if (w(/1).ne.ncourb) segadj wrk7 trefab=trefa iforb=ifourb nccor=ncourb 1 NVARI, TETA1,TETA2,TREFAb,IB,IGAU,iforb,nccor,iecou) ifourb=iforb ncourb=nccor trefa=trefab ** SEGSUP WRK7 IF (KERRE.GT.200) THEN KERR1=1 ENDIF ENDIF ENDIF ** SEGSUP WRK9 RETURN C C====================================================================== C MODELE PLASTIQUE_ENDOM ROUSSELIER C====================================================================== 362 CONTINUE c c Modèle d'endommagement de Rousselier c - on recupère la courbe de traction c nccor=ncourb ncourb=nccor c c - appel au modèle C IF (KERRE.EQ.0) THEN & XMAT,xcarb,NVARI,ICARA,SIGF,VARF,DEFP,TRAC,KERRE, & necou) IF ((KERRE.GT.0).AND.(KERRE.NE.99)) THEN KERR1=1 ENDIF ENDIF RETURN C C====================================================================== C MODELE PLASTIQUE_ENDOM GURSON2 C====================================================================== 364 CONTINUE c c Modèle d'endommagement de Gurson modifié Needleman Tvergaard c - on recupère la courbe de traction c nccor=ncourb ncourb=nccor c c - appel au modèle c IF (KERRE.EQ.0) THEN & XMAT,xcarb,NVARI,ICARA,SIGF,VARF,DEFP,TRAC,KERRE, & necou) IF ((KERRE.GT.0).AND.(KERRE.NE.99)) THEN KERR1=1 ENDIF ENDIF RETURN C C====================================================================== C MODELE PLASTIQUE_ENDOM DRAGON C====================================================================== 375 CONTINUE c c Modèle d'endommagement de Dragon c RETURN C C====================================================================== C MODELE PLASTIQUE_ENDOM BETON_DYNAR_LMT C====================================================================== 433 CONTINUE c c Modèle viscoplastique viscoendommageable pour la dynamique rapide du LMT c RETURN C C====================================================================== C MODELE ENDOMMAGEABLE MAZARS C====================================================================== 330 CONTINUE c c CALL MAZZZ(WRK0,WRK1,WRK5,NSTRSS,NVARI,NMATT,ISTEP,ICARA,MFR1) RETURN C C====================================================================== C MODELE ENDOMMAGEABLE UNILATERAL (beton) C====================================================================== 331 CONTINUE c c CALL CLBBBB(WRK0,WRK1,WRK5,NSTRSS,NVARI,NMATT,ISTEP, c & ICARA,KERRE,MFR1,IFOURB) RETURN C C====================================================================== C MODELE ENDOMMAGEABLE ROTATING_CRACK C====================================================================== 337 continue nstrbi=nstrss icarbi=icara nstrss=nstrbi icara=icarbi RETURN C C====================================================================== C MODELE ENDOMMAGEABLE SIC_SIC C====================================================================== 388 CONTINUE & ,iecou) RETURN C C====================================================================== C MODELE PLASTIQUE HINT C====================================================================== 389 CONTINUE & VARF,DEFP,PRECIS,MFR1,KERRE) RETURN C C====================================================================== C MODELE ENDOMMAGEABLE MICROPLANS C====================================================================== 396 CONTINUE C C MODELE D'ENDOMMAGEMENT + PLASTICITE ANISOTROPE MICROPLANS C RETURN C C====================================================================== C MODELE ENDOMMAGEABLE VISCOUNILATERAL (beton) C====================================================================== 397 CONTINUE icarbi=icara RETURN C C====================================================================== C MODELE ENDOMMAGEABLE MICROISO C====================================================================== 398 CONTINUE C C MODELE D'ENDOMMAGEMENT + PLASTICITE ISOTROPE MICROPLANS C RETURN C C====================================================================== C MODELE ENDOMMAGEABLE MVM (Modified Von Mises) C====================================================================== 418 CONTINUE RETURN C C====================================================================== C MODELE ENDOMMAGEABLE SICSCAL C====================================================================== 431 CONTINUE & ,iecou) RETURN C C====================================================================== C MODELE ENDOMMAGEABLE SICTENS C====================================================================== 432 CONTINUE & ,iecou) RETURN C C====================================================================== C MODELE ENDOMMAGEABLE DESMORAT C====================================================================== 434 CONTINUE RETURN C C====================================================================== C MODELE PLASTIQUE LINESPRING C====================================================================== 302 CONTINUE 327 CONTINUE RETURN C C====================================================================== C MODELE PLASTIQUE BETON C====================================================================== 309 CONTINUE 1 DDAUX,CMATE,VALMAT,VALCAR,N2EL,N2PTEL, IB, 2 IGAU,EPAIST,MELE,NPINT, SECT,LHOOK, 3 TXR,XLOC,XGLOB,D1HOOK,ROTHOO,DDHOMU,CRIGI,DSIGT, 4 SIGF,VARF,DEFP, NBPGAU,KERRE,ecou,necou,iecou) IF (KERRE.GT.200) THEN KERR1=1 ENDIF RETURN C C====================================================================== C MODELE PLASTIQUE TUYAU-FISSURE C====================================================================== 314 CONTINUE C IF(XMAT(8).NE.0.D0 .OR. XMAT(9).NE.0.D0) THEN INPLAS=18 XMAT(5)=XMAT(8) XMAT(6)=XMAT(9) xmat0(5)=xmat0(8) xmat0(6)=xmat0(9) ENDIF C iforb=ifourb ifourb=iforb c c pas de materiau 18 dans nomate 02/01 Kich if (inplas.eq.18) inplas = 14 RETURN C C====================================================================== C MODELE PLASTIQUE GAUVAIN C====================================================================== 316 CONTINUE c c on recupere les courbes moment-courbure c nccor=ncourb ncourb=nccor IF (KERRE.NE.0) RETURN iforb=ifourb nccor=ncourb mfr1bi=mfr1 nbgmab=nbgmat nlmatb=nelmat nstrbi=nstrs 1 IB,IGAU,EPAIST,MELE,NPINT,NBGMAb,NLMATb,SECT, 2 LHOOK,TXR,XLOC,XGLOB,D1HOOK,ROTHOO,DDHOMU,CRIGI, 3 SIG0,NSTRbi,DEPST,VAR0,XMAT,NCOMAT,xcarb,TRAC, 4 NCcor,NBPGAU,DSIGT,SIGF,VARF,DEFP,KERRE) ifourb=iforb ncourb=nccor mfr1=mfr1bi nbgmat=nbgmab nelmat=nlmatb nstrs=nstrbi IF (KERRE.GT.200) THEN KERR1=1 ENDIF RETURN C C====================================================================== C MODELE PLASTIQUE UBIQUITOUS C====================================================================== 328 CONTINUE 1 IGAU,EPAIST,MELE,NPINT ,SECT,LHOOK, 2 TXR,XLOC,XGLOB,D1HOOK,ROTHOO,DDHOMU,CRIGI,SIG0, 3 DEPST,VAR0,XMAT,NBPGAU,NMATT,xcarb,DSIGT, 4 SIGF,VARF,DEFP,KERRE,ecou,necou,iecou) IF (KERRE.GT.200) THEN KERR1=1 ENDIF RETURN C C====================================================================== C MODELE PLASTIQUE GLOBAL C====================================================================== 332 CONTINUE iforb=ifourb ifourb=iforb IF (KERRE.LT.0) THEN INTERR(1)=IB INTERR(2)=IGAU IF (KERRE.LE.(-4)) THEN MOTERR(5:16) = 'CISAILLEMENT' KERRE = KERRE + 4 ENDIF IF (KERRE.LE.(-2)) THEN MOTERR(5:16) = 'FLEXION' KERRE = KERRE + 2 ENDIF IF (KERRE.LT.0) THEN MOTERR(5:16) = 'COMPRESSION' KERRE = 0 ENDIF ENDIF RETURN C C====================================================================== C MODELE PLASTIQUE CAM_CLAY C====================================================================== 333 CONTINUE & VARF,DEFP,PRECIS,MFR1,KERRE) RETURN C C====================================================================== C MODELE PLASTIQUE COULOMB C====================================================================== 334 CONTINUE c c modele de mohr coulomb pour les joints c IF (MFR.EQ.35) THEN IF (IFOUR.EQ.2) THEN c c --------------------joints 3d c & XMAT,NMATT,ivalma,DD,SIGF,DEFP,VARF,KERRE) ELSE c c --------------------joints 2d c & XMAT,NMATT,ivalma,DD,SIGF,DEFP,VARF,KERRE) ENDIF c c --------------------joints JOI1 c ELSE IF (MFR.EQ.75) THEN & IFOURB,XMAT,NMATT,ivalma,DD,SIGF,DEFP,VARF,KERRE) ENDIF RETURN C C====================================================================== C MODELE PLASTIQUE JOINT_DILATANT C====================================================================== 335 CONTINUE c c modele de coulomb_dilatant pour les joints 2d c IF (IFOUR.NE.2) THEN ENDIF RETURN C C====================================================================== C MODELE PLASTIQUE GURSON C====================================================================== 338 CONTINUE nstrbi=nstrss icarbi=icara & NVARI,SIGF,VARF,DEFP,MFR1,KERRE,wrkgur) nstrss=nstrbi icara=icarbi RETURN C C====================================================================== C MODELE PLASTIQUE BETON_AXI C====================================================================== 336 CONTINUE nstrbi=nstrss & SIGF,VARF,DEFP,MFR1,KERRE,ecou,necou) nstrss=nstrbi IF (KERRE.GT.200) THEN KERR1=1 ENDIF RETURN C C====================================================================== C MODELE PLASTIQUE BETON_UNI C====================================================================== 339 CONTINUE c c modele beton_uni pour les elements unidirectionels (barre ..) c KERR1=0 RETURN C C====================================================================== C MODELE PLASTIQUE UNILATERAL C====================================================================== 404 CONTINUE c c modele beton unilateral pour les elements unidirectionels (barre ..) c KERR1=0 RETURN C C====================================================================== C MODELE PLASTIQUE ACIER_ANCRAGE C====================================================================== 393 CONTINUE c c modele ancrage_acier pour les elements unidirectionels (barre ..) c KERR1=0 RETURN C C====================================================================== C MODELE PLASTIQUE FRAGILE_UNI C====================================================================== 378 CONTINUE c c modele fragile_uni pour les elements unidirectionels (barre ..) c KERR1=0 RETURN C C====================================================================== C MODELE PLASTIQUE BETON_BAEL C====================================================================== 379 CONTINUE c c modele beton_bael pour les elements unidirectionels (barre ..) c KERR1=0 RETURN C C====================================================================== C MODELE PLASTIQUE CINEMATIQUE_ANCRAGE C====================================================================== 392 CONTINUE c c c modele ancrage_parfait pour les elements unidirectionels (barre ..) c KERR1=0 RETURN C C====================================================================== C MODELE PLASTIQUE PARFAIT_UNI C====================================================================== 380 CONTINUE c c modele parfait_uni pour les elements unidirectionels (barre ..) c KERR1=0 * IF (KERRE.NE.0) return RETURN C C====================================================================== C MODELE PLASTIQUE ACIER_UNI C====================================================================== 340 CONTINUE IF (MFRbi .EQ. 27) then c c modele acier_uni pour les elements unidirectionels (barre ..) c KERR1=0 C elseif(MATE.EQ.4) then nstrbi=nstrss mfr1bi=mfr1 nstrss=nstrbi mfr1=mfr1bi C endif RETURN C C====================================================================== C MODELE PLASTIQUE SECTION C====================================================================== 341 CONTINUE c c modele poutre en formulation section c nstrbi=nstrss icarbi=icara nstrss=nstrbi icara=icarbi RETURN C C====================================================================== C MODELE PLASTIQUE STEINBERG C====================================================================== 349 CONTINUE 1 XMAT,xcarb,NVARI,ICARA,SIGF,VARF,DEFP,TETA1,TETA2, 2 KERRE) IF ((KERRE.NE.0).AND.(KERRE.NE.99)) THEN KERR1=1 ENDIF RETURN C C====================================================================== C MODELE PLASTIQUE HUJEUX C====================================================================== 348 CONTINUE & VARF,DEFP,PRECIS,MFR1,KERRE) RETURN C C====================================================================== C MODELE PLASTIQUE OTTOSEN C====================================================================== 342 CONTINUE 1 xcarb,ICARA,NVARI,SIGF,VARF,DEFP,MFR1,KERRE,IB,IGAU) RETURN C C====================================================================== C MODELE PLASTIQUE OTTOVARI C====================================================================== 448 CONTINUE IF (IFOUR.NE.2) THEN KERRE=99 ELSE & VARF, SIGF, KERRE) ENDIF RETURN C C====================================================================== C MODELE PLASTIQUE AMADEI C====================================================================== 347 CONTINUE c c modele de amadei-saeb pour les joints c C# MC 03/11/97 : MPTVAL doit etre initialise ici aussi IF (IFOUR.EQ.2) THEN c c --------------------joints 3d c & XMAT,NMATT,ivalma,SIGF,DEFP,VARF,KERRE) ELSE c c --------------------joints 2d c & XMAT,NMATT,ivalma,SIGF,DEFP,VARF,KERRE) ENDIF RETURN C C====================================================================== C MODELE PLASTIQUE PRESTON C====================================================================== 352 CONTINUE c c modèle Preston-Tonks-Wallace c c on recupere le pas de temps dt : voir comval c kich : fixe dt = 0. pour plasticite dtk1 = dt dt = 0.d0 c 1 XMAT,xcarb,NVARI,ICARA,SIGF,VARF,DEFP,TETA1,TETA2, 2 KERRE,DT) IF (KERRE.NE.0) THEN KERR1=1 ENDIF dt = dtk1 RETURN C C====================================================================== C MODELE PLASTIQUE BETOCYCL C====================================================================== 354 CONTINUE c c modele BETOCYCL C C ON VERIFIE LES CONTRAINTES PLANES C IF (IFOUR.EQ.-2) THEN C C ON RECUPERE LES COURBES DE TRACTION ET DE COMPRESSION C IPOS1=1 NTRAT=NPOINT/2 IPOS2=IPOS1+NPOINT NTRAC=NPOINT/2 IF (KERRE.EQ.0) THEN ENDIF ELSE KERRE = 99 ENDIF RETURN C C====================================================================== C MODELE PLASTIQUE ROTATING_CRACK C====================================================================== 355 CONTINUE C C ON VERIFIE LES CONTRAINTES PLANES C IF (IFOUR.EQ.-2) THEN IF (KERRE.EQ.0) THEN ENDIF ELSE KERRE = 99 ENDIF RETURN C C====================================================================== C MODELE PLASTIQUE JOINT_SOFT C====================================================================== 356 CONTINUE C C ON RECUPERE LES COURBES DE TRACTION ET DE SHEAR C C C Note: Les courbes ont maintenant les indices 8, 9 et 10 alors que c'est C 6, 7 et 8 dans ecoul1.eso. C'est parce que l'on a incere 'RHO' et C 'ALFA' a la place 3 et 4 dans defmat.eso C IPOS1=1 NTRAC=NPOINT/2 IPOS2=IPOS1+NPOINT NTRAS=NPOINT/2 IPOS3=IPOS2+NPOINT NTRAT=NPOINT/2 C IF (IFOUR.EQ.-3.OR.IFOUR.EQ.-2.OR.IFOUR.EQ.-1)THEN IF(KERRE.EQ.0) THEN C . TRAC(IPOS1),NTRAC,TRAC(IPOS2),NTRAS, . TRAC(IPOS3),NTRAT, . SIGF,VARF,DEFP,KERRE) END IF ELSEIF(IFOUR.EQ.2)THEN IF(KERRE.EQ.0) THEN C . TRAC(IPOS1),NTRAS,TRAC(IPOS2),NTRAT, . TRAC(IPOS3),NTRAC, . SIGF,VARF,DEFP,KERRE) END IF END IF RETURN C C====================================================================== C MODELE PLASTIQUE JOINT_COAT C====================================================================== 419 CONTINUE C C ON RECUPERE LA COURBE DE SHEAR C C Note: La courbe a maintenant l'indices 4 alors que c'est C 2 dans ecoul1.eso. C'est parce que l'on a incere 'RHO' et C 'ALFA' a la place 2 et 3 dans defmat.eso (a verifier...) C IPOS1=1 NTRAS=NPOINT/2 C IF (IFOUR.EQ.-3.OR.IFOUR.EQ.-2.OR.IFOUR.EQ.-1)THEN IF(KERRE.EQ.0) THEN C . SIGF,VARF,DEFP,KERRE) END IF ELSEIF(IFOUR.EQ.2)THEN IF(KERRE.EQ.0) THEN END IF END IF RETURN C C====================================================================== C MODELE ENDOMMAGEABLE DAMAGE_TC C====================================================================== 425 CONTINUE IF(MFR.EQ.1)THEN & DEPST,DSIGT,EPST0,EPIN0, SIGF,VARF,DEFP, & XMAT0,DDAUX) ENDIF RETURN C C====================================================================== C MODELE PLASTIQUE_ENDOM ENDO_PLAS C====================================================================== 435 CONTINUE & SIGF,DEPST,NSTRS,KERRE,ISTEP) RETURN C C====================================================================== C MODELE PLASTIQUE MUR_SHEAR (DEBRANCHE) C====================================================================== 426 CONTINUE C C POUR LE MOMENT, ELEMENT DE POUTRE C MAIS ON AJOUTE MAINTENANT LE MACRO ELEMENT C IF(MFR.EQ.7.OR.MFR.EQ.61)THEN C C ON RECUPERE LES COURBES C C Note: Les courbes ont maintenant les indices 5 a 10 alors que C c'etait 3 a 8 dans ecoul1.eso. C'est parce que l'on a C incere 'RHO' et 'ALFA' a la place 2 et 3 dans defmat.eso C IPOS1=1 NCURFP=NPOINT/2 IPOS2=IPOS1+NPOINT NCURKP=NPOINT/2 IPOS3=IPOS2+NPOINT NCURLP=NPOINT/2 IPOS4=IPOS3+NPOINT NCURFM=NPOINT/2 IPOS5=IPOS4+NPOINT NCURKM=NPOINT/2 IPOS6=IPOS5+NPOINT NCURLM=NPOINT/2 C IF(KERRE.EQ.0) THEN C+PPM IF(MFR.EQ.7)THEN C+PPM > NCURFP,NCURKP,NCURLP,NCURFM,NCURKM,NCURLM, > IPOS1 ,IPOS2 ,IPOS3 ,IPOS4 ,IPOS5 ,IPOS6, > KERR2) KERRE = KERR2 C+PPM ELSE IF (IFOUR.EQ.-3.OR.IFOUR.EQ.-2.OR.IFOUR.EQ.-1) THEN CCC CALL MASHEJ(wrk52,wrk53,WRK2, CCC > NCURFP,NCURKP,NCURLP,NCURFM,NCURKM,NCURLM, CCC > IPOS1 ,IPOS2 ,IPOS3 ,IPOS4 ,IPOS5 ,IPOS6) ELSE KERRE=99 ENDIF ENDIF C+PPM END IF END IF RETURN C C====================================================================== C MODELE PLASTIQUE ANCRAGE_ELIGEHAUSEN C====================================================================== 391 CONTINUE IF (IFOUR.EQ.-3.OR.IFOUR.EQ.-2.OR.IFOUR.EQ.-1) THEN ENDIF RETURN C C====================================================================== C MODELE PLASTIQUE BILI_MOMY C====================================================================== 357 CONTINUE KERRE=0 RETURN C C====================================================================== C MODELE PLASTIQUE BILI_EFFZ C====================================================================== 358 CONTINUE KERRE=0 RETURN C C====================================================================== C MODELE PLASTIQUE TAKEMO_MOMY C====================================================================== 359 CONTINUE C C ON RECUPERE LES COURBES MOMENT-COURBURE C nccor=ncourb ncourb=nccor IF (KERRE.EQ.0) THEN C IF (IFOUR.EQ.-3.OR.IFOUR.EQ.-2.OR.IFOUR.EQ.-1) THEN & NCOURB,SIGF,VARF,DEFP,KERRE) ELSE & NCOURB,SIGF,VARF,DEFP,KERRE) ENDIF ENDIF RETURN C C====================================================================== C MODELE PLASTIQUE BA1D C====================================================================== 447 CONTINUE & NCOURB,SIGF,VARF,DEFP,KERRE) RETURN C C====================================================================== C MODELE PLASTIQUE TAKEMO_EFFZ C====================================================================== 360 CONTINUE C C ON RECUPERE LES COURBES MOMENT-COURBURE C nccor=ncourb ncourb=nccor IF (KERRE.EQ.0) THEN C IF (IFOUR.EQ.-3.OR.IFOUR.EQ.-2.OR.IFOUR.EQ.-1) THEN & NCOURB,SIGF,VARF,DEFP,KERRE) ELSE & NCOURB,SIGF,VARF,DEFP,KERRE) ENDIF C ENDIF RETURN C C====================================================================== C MODELE PLASTIQUE DRUCKER_PRAGER2 C====================================================================== 440 CONTINUE XLCARA=0.D0 NEXO = EXOVA0(/1) DO INEX=1,NEXO IF ((NOMEXO(INEX)(1:4) .EQ.'LCAR').AND. & (CONEXO(INEX)(1:LCONMO).EQ.CONM(1:LCONMO))) THEN XLCARA=EXOVA0(INEX) ENDIF ENDDO & NMATT,XCARB,ICARA,NVARI,SIGF,VARF,DEFP,MFR1,KERRE, & IB,IGAU,IFOURB,XLCARA,MELE) RETURN C C====================================================================== C MODELE ENDOMMAGEABLE FATSIN C====================================================================== 441 CONTINUE * Fatigue damage model (fatsin) * print*,'appel a cfattt dans coml8' RETURN C C====================================================================== C MODELE PLASTIQUE BETON_INSA C====================================================================== 366 CONTINUE C C modele BETON_INSA_LYON CYCLIQUE : CONTRAINTES PLANES, C DEFORMATION PLANES ET AXISYMETRIE C nstrbi=nstrss iwpoi1=wrk12 1 KERRE,MELE,IFOURB,NVARI,xcarb,NCARR,MFRbi,EPIN0, 2 EPINF,DT,XE,NBNNbi,CMATE,IB,IGAU,iwpoi1) RETURN C C====================================================================== C MODELE PLASTIQUE ECROUIS_DECOU C====================================================================== 367 CONTINUE C C modele ECROUIS_INSA (Materiau ORTHOTROPE ECROUISSABLE DECOUPLE) C MVEL1= nint(XMAT(NMATR) ) nccor=ncourb ncourb=nccor LT1=NCOURB*2 & LT1,MFRbi,NVARI,CMATE,xcarb,DDHOOK,NCARR,IFOURB) RETURN C C====================================================================== C MODELE PLASTIQUE PARFAIT_DECOU C====================================================================== 368 CONTINUE C C modele PARFAIT_INSA (Materiau ORTHOTROPE PLASTIQUE PARFAIT DECOUPLE) C NCOURB=3 KERRE = 0 TRAC(1)=0.D0 TRAC(2)=0.D0 TRAC(3)=XMAT(NMATR) TRAC(4)=XMAT(NMATR)/XMAT(1) TRAC(5)=XMAT(NMATR) TRAC(6)=1.D0 IF (XMAT(NMATR).EQ.0.D0) KERRE = 33 LT1=NCOURB*2 & LT1,MFRbi,NVARI,CMATE,xcarb,DDHOOK,NCARR,IFOURB) RETURN C C====================================================================== C MODELE PLASTIQUE ALONSO C====================================================================== 369 CONTINUE C C MODELE D'ARGILE PARTIELLEMENT SATURE D'ALONSO C **************************** * SPECIAL SUCCION * & VAR0,SIGF,VARF,DEFP,KERRE,DSIGT,SUCC1,SUCC2,necou) IF ((KERRE.NE.0).AND.(KERRE.NE.99)) THEN KERR1=1 ENDIF RETURN C C====================================================================== C MODELE PLASTIQUE PAKZAD C====================================================================== 371 CONTINUE C C MODELE D'ARGILE PARTIELLEMENT SATURE DE PAKZAD C & VAR0,SIGF,VARF,DEFP,KERRE,DSIGT,SUCC1,SUCC2,necou) IF ((KERRE.NE.0).AND.(KERRE.NE.99)) THEN KERR1=1 ENDIF RETURN C C====================================================================== C MODELE PLASTIQUE INFILL_UNI C====================================================================== 372 CONTINUE IF (MFRbi.EQ.27) THEN C C ON RECUPERE LA COURBE FORCE-DEPLACEMENT C NCOURB=NPOINT/2 IF (KERRE.EQ.0) THEN nccor=ncourb ncourb=nccor ENDIF ELSE KERRE = 99 ENDIF RETURN C C====================================================================== C MODELE PLASTIQUE CISAIL_NL C====================================================================== 373 CONTINUE C C MODELE ETAGE C pour le moment, element de barre * IF (MFRbi.EQ.7) THEN C C ON RECUPERE LA COURBE FORCE-DEPLACEMENT C IPOS1=1 NTRAP=NPOINT/2 IPOS2=IPOS1+NPOINT NTRAN=NPOINT/2 IF (KERRE.EQ.0) THEN ENDIF ELSE KERRE = 99 ENDIF RETURN C C====================================================================== C MODELE FLUAGE CERAMIQUE C====================================================================== *--------------------------------------------------------------------- * ceramique caroline, couplage gatt_monerie ottosen, * maxwell, couplage maxwell ottosen *--------------------------------------------------------------------- 365 CONTINUE * IF ((MFRbi.EQ.1).AND.(IFOMOD.EQ.2)) THEN IBIDO = 19 ELSE IBIDO = 14 ENDIF * * CAS OU ON NE PREND PAS EN COMPTE LA TEMPERATURE DE TRANSITION * CAD LORSQUE TTRAN = 0 * IF ((XMAT(IBIDO).LE.0.1).AND.(XMAT(IBIDO).GE.-0.1)) THEN * * si le point de gauss est déjà endommagé par endommagement généralisé * on le traite simplement par ccerac * IF (VAR0(NVARI-1).EQ.1) THEN iforb=ifourb IND=1 ELSE * * si le point de gauss n'a pas un endommagement généralisé * on regarde si il a été fissuré * par ottosen et si non on applique le fluage puis ottosen * si oui on le traite par ottosen * IF (ITOTO.EQ.0) THEN iforb=ifourb ifourb=iforb IND=1 * Ligne suivante à supprimer * IF (IND.EQ.0) THEN * on regarde si on a eu endommagement généralisé * si on n'a pas eu endommagement généralisé on appelle ottosen IF (VARF(NVARI-1).NE.1) THEN DO 161 I = 1,NVARI VAR01(I) = VARF(I) 161 CONTINUE DO 835 I=1,NSTRS * PRINT *,'DEPST EPINF-EPIN0 ', * 1 I,DEPST(I),(EPINF(I)-EPIN0(I)) DEPST(I) = DEPST(I) - (EPINF(I)-EPIN0(I)) C on remplace SIGF par SIG0 SIG01(I) = SIG0(I) 835 CONTINUE 1 ivalma,NMATT,xcarb,ICARA,NVARI,SIGF,VARF, 2 DEFP,MFR1,KERRE,IB,IGAU) C on met à jour la variable interne EPSE commune aux deux modèles VARF(1) = VARF(1)+VARF(NVARI) C DO 537 I=1,NSTRS C IF (SIGF(I).NE.SIG01(I)) THEN C PRINT *,'DIF CONTRAINTES',I,SIGF(I),SIG01(I) C ENDIF C537 CONTINUE C DO 538 I=1,NVARI C IF (VARF(I).NE.VAR01(I)) THEN C PRINT *,'DIF VARIABLES',I,VARF(I),VAR01(I) C ENDIF C 538 CONTINUE C on calcule l'increment de déformation du pas de temps DO 836 I=1,NSTRS C IF (DEFP(I).NE.0.) PRINT *,'DEFP',DEFP(I) DEFP(I) = DEFP(I)+(EPINF(I)-EPIN0(I)) 836 CONTINUE IND=0 ENDIF ELSE 1 NMATT,xcarb,ICARA,NVARI,SIGF,VARF,DEFP,MFR1, 2 KERRE,IB,IGAU) VARF(1) = VARF(1)+VARF(NVARI) IND=0 ENDIF ENDIF C ELSE * * CAS OU ON PREND EN COMPTE LA TEMPERATURE DE TRANSITION * IF (TETA2.GE.XMAT(IBIDO)) THEN IF (ITOTO.EQ.0) THEN iforb=ifourb ifourb=iforb IND=1 ELSE 1 NMATT,xcarb,ICARA,NVARI,SIGF,VARF,DEFP,MFR1, 2 KERRE,IB,IGAU) VARF(1) = VARF(1)+VARF(NVARI) IND=0 ENDIF ELSE IF (VAR0(NVARI-1).EQ.1) THEN iforb=ifourb ifourb=iforb IND=1 ELSE 1 NMATT,xcarb,ICARA,NVARI,SIGF,VARF,DEFP,MFR1, 2 KERRE,IB,IGAU) VARF(1) = VARF(1)+VARF(NVARI) IND=0 ENDIF ENDIF ENDIF IF (MFR1.EQ.17) THEN IF (KERREU1.NE.0.AND.NSSINC.EQ.1) THEN ENDIF ENDIF C DTOPTI = MIN(DTOPTI,DTT) NINCMA = MAX(NINCMA,NSSINC) NCOMP = NCOMP + 1 TSOM = TSOM + DTT NSOM = NSOM + NSSINC TCAR = TCAR + DTT* DTT IF (KERRE.NE.0.AND.KERRE.NE.99) THEN KERR1=1 ENDIF RETURN C C====================================================================== C MODELE VISCOPLASTIQUE UO2 C====================================================================== 408 CONTINUE C IND=0 FI1 = 0.D0 FI2 = 0.D0 nexo = exova0(/1) do 2050 inex = 1,nexo if ((nomexo(inex)(1:4).eq.'DFIS').and. & (conexo(inex)(1:LCONMO).eq.CONM(1:LCONMO))) then fi1 = exova0(inex) fi2 = exova1(inex) goto 2001 endif 2050 continue 2001 continue C C NSIMP pointe sur la caracteristique de fissuration facult. qui C indique le type de resolution souhaite C IF (IFOMOD.EQ.2.AND.MFR1.EQ.1) THEN NSIMP=71 ELSE NSIMP=66 IF(MFR1.EQ.1.AND.IFOUR.EQ.-2) NSIMP=62 IF(MFR1.EQ.3.OR.MFR1.EQ.9) NSIMP=61 ENDIF XSIMP=XMAT(NSIMP) C IF (XSIMP.EQ.0.D0) THEN C resolution complete C 1 XMAT,IVALMA,NMATT,NSIMP,XCARB,ICARA,SIG0,NSTRSS, 2 DEPST,VAR0,NVARI,SIGF,VARF,DEFP,KERRE) ELSE C resolution simplifiee C 1 XMAT,IVALMA,NMATT,NSIMP,XCARB,ICARA,SIG0,NSTRSS, 2 DEPST,VAR0,NVARI,SIGF,VARF,DEFP,KERRE) ENDIF IF (KERRE.NE.0.AND.KERRE.NE.99) KERR1=1 RETURN C C====================================================================== C MODELE FLUAGE MAXWELL C====================================================================== 374 CONTINUE * * CHAINE DE MAXWELL * * on commence par recuperer le nombre d'elements dans la chaine * et les proprietes et variables internes associees a des objets * nbgmab=nbgmat nlmatb=nelmat & NCHAIN) nbgmat=nbgmab nelmat=nlmatb IF (IERR.NE.0) THEN SEGSUP WR12 return ENDIF C IF (MFRbi.EQ.3.OR.MFRbi.EQ.39) THEN dtbi=dt dt=dtbi ELSE C * * MLR 10/08/99 * * ON PASSE LE SEGMENT DE TRAVAIL WTRAV dtbi=dt dt=dtbi ENDIF * * ici gerer les erreurs * C SEGSUP WR12 RETURN C C====================================================================== C MODELE FLUAGE MAXOTT C====================================================================== 406 CONTINUE * * on commence par recuperer le nombre d'elements dans la chaine * et les proprietes et variables internes associees a des objets * nbgmab=nbgmat nlmatb=nelmat & NCHAIN,EPSFLU) nbgmat=nbgmab nelmat=nlmatb IF (IERR.NE.0) THEN SEGSUP WR12 RETURN ENDIF * * modele maxott * dtbi=dt & EPSFLU) dt=dtbi * * stockage des variables internes et des proprietes * C SEGSUP WR12 RETURN C C====================================================================== C MODELES FLUAGE FBB1 ET FBB2 C====================================================================== 427 CONTINUE 428 CONTINUE LEPLAS = INPLAS RETURN C C====================================================================== C MODELE PLASTIQUE INCO C====================================================================== 429 CONTINUE RETURN C C====================================================================== C MODELE FLUAGE KELVIN C====================================================================== 474 CONTINUE RETURN C C====================================================================== C MODELE VISCOPLASTIQUE FLUTRA C====================================================================== 443 CONTINUE NMATER = NMATT + 3 LWTRA = NMATER + (8*NSTRS) + (3*NSTRS*NSTRS) IF(LW.LT.LWTRA) THEN LW = LWTRA SEGADJ WRK3 ENDIF * LA1 = 1 LA2 = LA1 + NMATER LA3 = LA2 + NSTRS LA4 = LA3 + NSTRS LA5 = LA4 + NSTRS LA6 = LA5 + NSTRS*NSTRS LA7 = LA6 + NSTRS LA8 = LA7 + NSTRS LA9 = LA8 + NSTRS LA10 = LA9 + NSTRS LA11 = LA10 + NSTRS LA12 = LA11 + NSTRS*NSTRS * & IFOUR,DT,IB,IGAU,TETA1,TETA2,ITHER,NMATER, RETURN C C====================================================================== C MODELE PLASTIQUE BILIN_EFFX C====================================================================== 450 CONTINUE KERRE=0 RETURN C C====================================================================== C MODELE PLASTIQUE ISS_GRANGE C====================================================================== 451 CONTINUE KERRE=0 IF (KERRE.EQ.22) THEN INTERR(1)=IB MOTERR(1:4) = 'JOI1' INTERR(2)=IGAU INTERR(3)=INPLAS ENDIF IF (KERRE.EQ.23) THEN ENDIF IF (KERRE.EQ.25) THEN ENDIF RETURN C C====================================================================== C MODELE PLASTIQUE RUP_THER C====================================================================== 452 CONTINUE KERRE=0 IF (KERRE.EQ.22) THEN INTERR(1)=IB MOTERR(1:4) = 'JOI1' INTERR(2)=IGAU INTERR(3)=INPLAS ENDIF RETURN C C====================================================================== C MODELE PLASTIQUE GERNAY C====================================================================== 455 CONTINUE KERRE=0 RETURN C C====================================================================== C MODELE PLASTIQUE WELLS C====================================================================== 456 CONTINUE RETURN C C====================================================================== C MODELE ELASTIQUE NON_LINEAIRE UTILISATEUR C====================================================================== C Modele 'NON_LINEAIRE' 'UTILISATEUR' : integrateur externe C specifique UMAT C----------------------------------------------------------------------- 899 CONTINUE C KERR1 = 0 C C Pointeur (>0) sur fonction externe si definie m_ptre = wrk53.jecher C C Preparation des entrees de la routine UMAT C N.B. Les arguments pointeurs sont reperes par des C caracteres minuscules C C C Integration de la loi externe au point courant C N.B. Les entrees/sorties non actives ou non exploitees sont C reperees par des caracteres minuscules C IF (m_ptre.LE.0) THEN C C Appel a UMAT standard de Cast3M & rpl, ddsddt, drplde, drpldt, & EPST0, DEPST, TIME, DTIME, & TEMP, DTEMP, PAREX0, DPRED, & CMNAME, ndi, nshr, NSIG0, NSTATV, & XMATF, NPROPS, COORGA, & DROT, PNEWDT, LCARAC, DFGRD0, DFGRD1, & IB, IGAU, layer, kspt, kstep, KINC ) C ELSE C C Branchement a la loi externe pointee par m_ptre CALL UMATEXT ( m_ptre, & SIGF, VARF, ddsdde, sse, spd, scd, & rpl, ddsddt, drplde, drpldt, & EPST0, DEPST, TIME, DTIME, & TEMP, DTEMP, PAREX0, DPRED, & CMNAME, ndi, nshr, NSIG0, NSTATV, & XMATF, NPROPS, COORGA, & DROT, PNEWDT, LCARAC, DFGRD0, DFGRD1, & IB, IGAU, layer, kspt, kstep, KINC ) C ENDIF C IF (KINC.NE.1) THEN IF (KINC.EQ.0) THEN ISIGN = 1 ELSE ISIGN = ABS(KINC)/KINC ENDIF KERRE = ISIGN*92 KERR1 = -1-ABS(KINC) ENDIF C C Releve du pas de temps optimal pour l'iteration suivante C DTOPTI=PNEWDT*DTIME RETURN C C====================================================================== C MODELE ELASTIQUE NON_LINEAIRE EQUIPLAS C====================================================================== C----------------------------------------------------------------------- C Modeles 'VISCO_EXTERNE' : integres par CCREEP C----------------------------------------------------------------------- 898 CONTINUE C KERR1 = 0 C C Pointeur (>0) sur fonction externe si definie m_ptre = wrk53.jecher C IF (m_ptre.LE.0) THEN C C Appel a CCREEP standard de Cast3M IFORB = IFOURB & IFORB, IB, IGAU, NBPGAU, & wcreep, iecou, xecou ) C ELSE C C Branchement a la loi externe pointee par m_ptre C* CALL EXTLOI(m_ptre,...) KSTEPC = 251 C*TMP Option non disponible pour l'instant (cf. modeli.eso) C ENDIF C Erreur detectee par l'integrateur CCREEP C IF (KERRE.NE.0) THEN KERR1 = 1 RETURN ENDIF C C Erreur lors d'un appel au module utilisateur CREEP C IF (KSTEPC.NE.1) THEN IF (KSTEPC.EQ.0) THEN ISIGN = 1 ELSE ISIGN = ABS(KSTEPC)/KSTEPC ENDIF KERRE = ISIGN*93 KERR1 = -1-ABS(KSTEPC) ENDIF RETURN C C====================================================================== END
© Cast3M 2003 - Tous droits réservés.
Mentions légales