ecou60
C ECOU60 SOURCE CB215821 24/04/12 21:15:43 11897 1 NUMAT,NUCAR,IVASTR,IVARI,IVADEF,IVADET, 1 IVADS,IVAMAT,IVACAR, 2 IPH1,IPH2,IPH3,ITHHER,LHOOK,NSTRS,NVARI,NMATT,NCARR, 3 CMATE,PRECIS,JECHER,IPOTAB,ISTEP,NPINT,JNOID,LOGSUC, *********************************************************************** * ecoulement inelastique appele par ecoul1 c ppu modif pour les materiaux unidirectionels en plastique * MATERIAUX: -PLASTIQUES NON INTEGRES PAR ECOINC *********************************************************************** * entrees : * * mate = numero de materiau elastique * inplas = numero de materiau inelastique * mele = numero element fini * ipmail = pointeur du maillage * nbptel = nombre de points par element * imat = pointeur sur un segment mptval de materiau (utilise par calsig) * icar = pointeur sur un segment mptval de caracteristiques * geometriques (utilise par calsig) * numat = nb de composantes du melval de imat * nucar = nb de composantes du melval de icar * ivastr =pointeur sur un segment mptval de contraintes * ivari =pointeur sur un segment mptval de variables internes * ivadef =pointeur sur un segment mptval de deformations * ivads =pointeur sur un segment mptval de contraintes (increments) * ivamat =pointeur sur un segment mptval de materiau * ivacar =pointeur sur un segment mptval de cacarteristiques geometrique * iph1 = pointeur sur un mchaml de temperatures au debut du pas * iph2 = pointeur sur un mchaml de temperatures a la fin du pas * iph3 = pointeur sur un mchaml de temperatures de reference * ithher = 0 si pas de chargement thermique * = 1 si chargement thermique mais materiau constant * = 2 si chargement thermique et mat. dependant de la temperature * ipch1,ipch2,ipch3,ithher ne servent que pour les materiaux * endommageables de lemaitre quand ils dependent de la temperature * lhook =taille de la matrice de hooke * nstrs =nombre de composantes de contraintes * nvari =nombre de composantes de variables internes * nmatt =nombre de composnates de proprietes de materiau * ncarr =nombre de composnates de caracteristiques geometriques * cmate =nom du materiau * precis =precision dans les iterations internes * jecher =0 ou 1 pour action dans ecoule * jnoid =0 ou 1 pour action dans ecoule * ipotab =pointeur sur segment table * istep =indicateur d'action pour calcul nonlocal * =0 dans le cas d'un calcul local (normal) * =1 ou 2 dans le cas d'un calcul nonlocal * =1 pour calcul des fonctions seuil uniquement * =2 pour calcul des variables dissipatives a partir * des fonctions seuil moyennees prealablement par nloc * * sorties : * ivastf =pointeur sur un segment mptval de contraintes * ivarif =pointeur sur un segment mptval de variables internes * ivadep =pointeur sur un segment mptval de deformations inelastiques * kerre =indicateur d'erreur * * p dowlatyari fev. 1992 * * c. la borderie fev 92 restructuration et reecriture de certains * passages pour une meilleure lisibilite * * avril 92 ajout istep pour le non local * dec 92 modif pour poutres timoschenko * ************************************************************************ IMPLICIT INTEGER(I-N) IMPLICIT REAL*8(A-H,O-Z) * -INC PPARAM -INC CCOPTIO -INC SMCHAML -INC SMELEME -INC SMCOORD -INC SMMODEL -INC SMINTE -INC CCHAMP -INC CECOU c======================================================================= c la variable kerre regit les impressions d erreurs dans plast c toutes erreurs de ecoule gerees dans ce sous programme c kerre=0 tout ok c de 1 a 6 s aligner sur valeurs donnees par ecoinc c = 7 un element tuyau a une epaisseur nulle c = 21 on ne trouve pas d intersection avec la surface de charge c = 22 sig0 a l exterieur de la surface de charge c c anomalies avec la courbe de traction c = 30 limite elastique nulle c = 31 trop de points c = 32 pas assez de points c = 33 pente incorrecte c = 34 module d'young nul c = 35 manque l'origine c = 36 pente a l'origine non egale a e c = 37 manque la courbe de traction c = 38 nu devrait etre nul c c = 48 donnees erronnees pour drucker-prager c = 49 matrice singuliere dans iter internes drucker-prager c = 51 pb dans drucker prager option non disponible c = 52 pb dans drucker prager donnees incompatibles c = 53 pb dans drucker prager solution impossible c = 54 les valeurs admissibles pour istep sont 0 1 ou 2 c = 55 modele non implante en non local c = 56 probleme dans l'integration du modele mazars c = 57 .... c = 58 .... c = 59 .... c = 60 pb donnees du cam-clay c c = 99 cas non encore disponible c======================================================================= * SEGMENT MPTVAL INTEGER IPOS(NS) ,NSOF(NS) INTEGER IVAL(NCOSOU) CHARACTER*16 TYVAL(NCOSOU) ENDSEGMENT * SEGMENT WRK0 REAL*8 XMAT(NCXMAT) ENDSEGMENT * SEGMENT WR00 CHARACTER*16 TYMAT(NCXMAT) REAL*8 XMAT1(NCXMAT),XMAT2(NCXMAT) ENDSEGMENT * SEGMENT WRK1 REAL*8 DDHOOK(LHOOK,LHOOK),SIG0(NSTRS),DEPST(NSTRS) REAL*8 SIGF(NSTRS),VAR0(NVARI),VARF(NVARI) REAL*8 DEFP(NSTRS),XCAR(ICARA) ENDSEGMENT * SEGMENT WRK2 REAL*8 TRAC(LTRAC) ENDSEGMENT * SEGMENT WRK22 REAL*8 XXE(3,NBNN) ENDSEGMENT * SEGMENT WRK3 ENDSEGMENT * SEGMENT WRK4 REAL*8 XE(3,NBBB) ENDSEGMENT * SEGMENT WRK5 REAL*8 EPIN0(NSTRS),EPINF(NSTRS),EPST0(NSTRS) 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) 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 WR10 INTEGER IABLO1(NTABO1) REAL*8 TABLO2(NTABO2) ENDSEGMENT * SEGMENT WR11 INTEGER IABLO3(NTABO3) REAL*8 TABLO4(NTABO4) ENDSEGMENT * SEGMENT WTRAV REAL*8 DDAUX(LHOOK,LHOOK),VALMAT(NUMAT) REAL*8 VALCAR(NUCAR),DSIGT(NSTRS) REAL*8 TXR(IDIM,IDIM),DDHOMU(LHOOK,LHOOK) REAL*8 XLOC(3,3),XGLOB(3,3) REAL*8 D1HOOK(LHOOK,LHOOK),ROTHOO(LHOOK,LHOOK) ENDSEGMENT * SEGMENT WPOUT REAL*8 X(2),Y(2),Z(2) ENDSEGMENT LOGICAL LOGVIS,LOGIN,LOGRE,LOGSUC LOGICAL LUNI1,LUNI2 DIMENSION BID(6),BID2(6),CRIGI(12),CMASS(12) * CHARACTER*72 CHARRE CHARACTER*8 CMATE c * * mise à disposition des temperatures tini tfin tref * aux points de gauss * TETA1=-1.E35 TETA2=-1.E35 TETREF=-1.E35 TREFA=-1.E35 IF (ITHHER.EQ.1.OR.ITHHER.EQ.2) THEN MCHAM3=IPH1 MCHAM4=IPH2 MCHAM5=IPH3 SEGACT MCHAM3 SEGACT MCHAM4 SEGACT MCHAM5 MELVA3=MCHAM3.IELVAL(1) MELVA4=MCHAM4.IELVAL(1) MELVA5=MCHAM5.IELVAL(1) SEGACT MELVA3 SEGACT MELVA4 SEGACT MELVA5 ENDIF c c Initialisations de variables c--------------------------------- c - mise à zéro des variables du commun NECOU si besoin c - modèles viscoplastiques: c . on récupère le pas de temps c . on récupère le nombre maximal de sous-pas c . on met IND=1 c - initialisation des dimensions des tableaux des segments c Sorties: en plus du commun NECOU, on range les autres données c initialisées dans les COMMON IECOU et XECOU c Sauf pour KERRE,LW,LOGVIS,LUNI1 et LUNI2 qui sont sortis comme c argument de DEFINI c . ISTEP,INPLAS,NPINT,IPOTAB,IVADEF, . IPMAIL,IVAMAT, . ITHHER,NUMAT,NUCAR,LOGVIS, . LUNI1,LUNI2,LW,KERRE) IF (KERRE.EQ.999) RETURN c c Initialisations des segments de travail c c IF ((CMATE.EQ.'ORTHOTRO'.OR.CMATE.EQ.'ANISOTRO'.OR. 1 CMATE.EQ.'UNIDIREC').AND.(MFR.EQ.1.OR.MFR.EQ.31 1 .OR.MFR.EQ.33)) THEN MINTE2=IPTR1 SEGACT MINTE2 SEGINI WRK22 ENDIF c IF (LOGVIS) SEGINI WRK8 SEGINI WRK0,WR00,WRK1,WRK2,WRK3,WRK5 IF(MFR.EQ.7.OR.MFR.EQ.13)THEN NBBB=NBNN SEGINI WRK4 ENDIF c SEGINI WTRAV * * * boucle sur les elements * DO 1000 IB=1,NBELEM * * Matériaux orthotropes, anisotropes et unidirectionnels * en formulation massive: * - on cherche les coordonnees des noeuds de l element ib * - calcul des axes locaux * Cas particulier de l'ACIER_UNI * . MELEME,WRK4,WRK22,WTRAV) * * * boucle sur les points de gauss * DO 1100 IGAU=1,NBPTEL * * -recuperation de valmat et de valcar * -on recupere les contraintes initiales * -on recupere les variables internes * -on recupere les deformations inelastiques initiales si besoin * -on recupere les increments de deformations totales * -on cherche la section de l'element ib * -prise en compte de l'epaisseur et de l'excentrement * dans le cas des coques minces avec ou sans cisaillement * transverse * . IMAT,IVACAR,ICAR,IVASTR,IVARI,IVADEF,IVADET, . IVADS,MFR,CMATE,INPLAS,IB,IGAU,IND, . WTRAV,WRK1,WRK5,SECT,EPAIST) * * on recupere les constantes du materiau * calcul des contraintes effectives en milieu poreux * . IVAMAT,IB,IGAU,CMATE,MATE,LUNI1,LUNI2, . WRK1,WRK5,WRK0,WR00,WTRAV,CMASS,CRIGI,COB,XMOB, . BID,BID2,KERR0) IF (KERR0.EQ.99) THEN KERRE=99 GOTO 1000 ELSE IF (KERR0.EQ.10) THEN GOTO 1000 ENDIF * * >>>>>>>>>> fin du traitement du materiau * * on recupere les caracteristiques geometriques * . WRK1) * * * quelques impressions si iimpi = 99 * * IF(IIMPI.EQ.99) THEN * WRITE(IOIMP,66770) IB,IGAU *66770 format(////////2x,'element ',i6,2x,'point ',i3//) * WRITE(IOIMP,66771) MATE,INPLAS *66771 format('0 mate=',i4,2x,'inplas=',i4/) * WRITE(IOIMP,66772) (SIG0(I),I=1,NSTRS) *66772 format(2x,' sig0 '/(6(1x,1pe12.5))) * WRITE(IOIMP,66773) (VAR0(I),I=1,NVARI) *66773 format(2x,' var0 '/(6(1x,1pe12.5))) * WRITE(IOIMP,66774) (DEPST(I),I=1,NSTRS) *66774 format(2x,' depst '/(6(1x,1pe12.5))) * WRITE(IOIMP,66775) (XMAT(I),I=1,NMATT) *66775 format(2x,' xmat '/(6(1x,1pe12.5))) * IF(IVACAR.NE.0)THEN * WRITE(IOIMP,66776) (XCAR(I),I=1,ICARA) *66776 format(2x,' xcar '/(6(1x,1pe12.5))) * ENDIF * ENDIF * * mise à disposition des temperatures tini tfin tref * aux points de gauss * IF (ITHHER.EQ.1.OR.ITHHER.EQ.2) THEN IBMN=MIN(IB,MELVA3.VELCHE(/2)) IGMN=MIN(IGAU,MELVA3.VELCHE(/1)) TETA1=MELVA3.VELCHE(IGMN,IBMN) IBMN=MIN(IB,MELVA4.VELCHE(/2)) IGMN=MIN(IGAU,MELVA4.VELCHE(/1)) TETA2=MELVA4.VELCHE(IGMN,IBMN) IBMN=MIN(IB,MELVA5.VELCHE(/2)) IGMN=MIN(IGAU,MELVA5.VELCHE(/1)) TETREF=MELVA5.VELCHE(IGMN,IBMN) ENDIF * * *--------------------------------------------------------------------- * * ecoulement selon les modeles * *--------------------------------------------------------------------- * c c c modele linespring c IF (INPLAS.EQ.2.OR.INPLAS.EQ.27) THEN 1 NSTRSS,CMATE,N2EL,N2PTEL,MFR,IFOUR,IB,IGAU,EPAIST, 2 MELE,NPINT,NBGMAT,NBPGAU,NELMAT,SECT,LHOOK,CRIGI) c c modele beton c ELSE IF (INPLAS.EQ.9) THEN MPTVAL=IVAMAT iecou=0 inecou=0 iiecou=0 ** CALL BETON(SIG0 ,DEPST,VAR0,XMAT,IVAL,NMATT,XCAR, ** 1 DDAUX,CMATE,VALMAT,VALCAR,N2EL,N2PTEL,IFOURB,IB,IGAU,EPAIST, ** 2 MELE,NPINT,NBGMAT,NELMAT,SECT,LHOOK,TXR,XLOC,XGLOB,D1HOOK, ** 3 ROTHOO,DDHOMU,CRIGI,DSIGT,SIGF,VARF,DEFP,MFR1,NBPGAU,KERRE, ** 4 iecou,inecou,iiecou) IF(KERRE.GT.200) THEN KERR1=1 END IF c c tuyau fissure c ELSE IF (INPLAS.EQ.14.OR.INPLAS.EQ.18) THEN 1 NSTRSS,CMATE,N2EL,N2PTEL,MFR1,IFOURB, 2 IB,IGAU,EPAIST,MELE,NPINT,NBGMAT, 3 NELMAT,NBPGAU,SECT,LHOOK,CRIGI,KERRE) c c modele gauvain c ELSE IF (INPLAS.EQ.16) THEN c c on recupere les courbes moment-courbure c IF(KERRE.EQ.0) THEN 1 MFR1,IFOURB,IB,IGAU,EPAIST,MELE,NPINT,NBGMAT,NELMAT,SECT,LHOOK, 2 TXR,XLOC,XGLOB,D1HOOK,ROTHOO,DDHOMU,CRIGI,SIG0,NSTRS,DEPST,VAR0, 3 XMAT,NCOMAT,XCAR,TRAC,NCOURB,NBPGAU,DSIGT,SIGF,VARF,DEFP,KERRE) IF(KERRE.GT.200) THEN KERR1=1 END IF END IF c c modele ubiquitous c ELSE IF (INPLAS .EQ.28) THEN iecou=0 inecou=0 iiecou=0 ** CALL UBIQUI(DDAUX,CMATE,VALMAT,VALCAR,N2EL,N2PTEL, ** 1 IFOURB,IB,IGAU,EPAIST,MELE,NPINT,NBGMAT,NELMAT,SECT,LHOOK,TXR, ** 2 XLOC,XGLOB,D1HOOK,ROTHOO,DDHOMU,CRIGI,SIG0,NSTRSS,DEPST,VAR0, ** 3 XMAT,NBPGAU,NMATT,XCAR,DSIGT,SIGF,VARF,DEFP,MFR1,KERRE, ** 4 iecou,inecou,iiecou) IF(KERRE.GT.200) THEN KERR1=1 END IF c c modele global c ELSE IF(INPLAS.EQ.32)THEN 1 MFR1,IFOURB,IB,IGAU,EPAIST,MELE,NPINT,NBGMAT, 2 NBPGAU,NELMAT,SECT,LHOOK,CRIGI,NMATT,WRK0,WRK1) IF(KERRE.LT.0) THEN INTERR(1)=IB INTERR(2)=IGAU IF(KERRE.LE.(-4)) THEN MOTERR(5:16) = 'CISAILLEMENT' KERRE = KERRE + 4 END IF IF(KERRE.LE.(-2)) THEN MOTERR(5:16) = 'FLEXION' KERRE = KERRE + 2 END IF IF(KERRE.LT.0) THEN MOTERR(5:16) = 'COMPRESSION' KERRE = 0 END IF END IF c c modele cam-clay c ELSE IF (INPLAS.EQ.33) THEN . SIGF,VARF,DEFP,PRECIS,MFR1,KERRE) c ELSE IF (INPLAS .EQ. 34) THEN c c modele de mohr coulomb pour les joints c MPTVAL=IVAMAT IF (IFOUR.EQ.2) THEN c c --------------------joints 3d c & DEPST,IFOURB,XMAT,NMATT,IVAL,DD,SIGF,DEFP,VARF,KERRE) ELSE c c --------------------joints 2d c & DEPST,IFOURB,XMAT,NMATT,IVAL,DD,SIGF,DEFP,VARF,KERRE) ENDIF c ELSE IF (INPLAS .EQ. 35) THEN c c modele de coulomb_dilatant pour les joints 2d c IF (IFOUR.NE.2) THEN & DEFP,KERRE) ENDIF c c modele de gurson c ELSE IF (INPLAS .EQ. 38) THEN iwrgur=0 & ICARA,NVARI,SIGF,VARF,DEFP,MFR1,KERRE,iwrgur) c ELSE IF (INPLAS .EQ. 36) THEN c c modele beton_axi c MPTVAL=IVAMAT iecou=0 inecou=0 & SIGF,VARF,DEFP,MFR1,KERRE,iecou,inecou) IF(KERRE.GT.200) THEN KERR1=1 END IF c ELSE IF ((INPLAS .EQ. 39) .AND. (MFR .EQ. 27)) THEN c c modele beton_uni pour les elements unidirectionels (barre ..) c KERR1=0 c ELSE IF ((INPLAS .EQ. 40) .AND. (MFR .EQ. 27)) THEN c c modele acier_uni pour les elements unidirectionels (barre ..) c KERR1=0 * c ELSE IF ((INPLAS .EQ. 93) .AND. (MFR .EQ. 27)) THEN c c c modele ancrage_acier pour les elements unidirectionels (barre ..) c KERR1=0 * ELSE IF ((INPLAS .EQ. 78) .AND. (MFR .EQ. 27)) THEN c c modele fragile_uni pour les elements unidirectionels (barre ..) c KERR1=0 * ELSE IF ((INPLAS .EQ. 79) .AND. (MFR .EQ. 27)) THEN c c modele beton_bael pour les elements unidirectionels (barre ..) c KERR1=0 c ELSE IF ((INPLAS .EQ. 92) .AND. (MFR .EQ. 27)) THEN c c c modele ancrage_parfait pour les elements unidirectionels (barre ..) c KERR1=0 * * ELSE IF ((INPLAS .EQ. 80) .AND. (MFR .EQ. 27)) THEN c c modele parfait_uni pour les elements unidirectionels (barre ..) c KERR1=0 * IF(KERRE.NE.0) THEN GOTO 1990 ENDIF c c modele acier_uni pour les materiau unidirectionel c ELSE IF (INPLAS .EQ. 40 .AND. MATE.EQ.4) THEN c c c modele poutre en formulation section c ELSE IF (INPLAS.EQ.41.AND.MFR.EQ.7) THEN * 1 CMATE,KERRE) c ELSE IF ( INPLAS .EQ. 50 ) THEN c c cas du modele de zerilli armstrong c c on recupere le pas de temps c 1 'DT',LOGIN,IOBIN, 2 'FLOTTANT',IVALRE,DT,CHARRE,LOGRE,IOBRE) c IF (KERRE .EQ. 0) THEN DO 1114 IC=1,ICARA 1114 continue BID(1)=0.D00 BID(2)=0.D00 BID(3)=0.D00 mfr1=mfr 1 N2PTEL,VAR0,BID,BID,XMAT,PRECIS,WORK2,WORK,TRAC, 2 SIGF,VARF,DEFP,KERRE, IB,IGAU,NSTRSS,EPAIST,MELE, 3 NPINT,NBPGAU, SECT,LHOOK,TXR,XLOC, 4 XGLOB,D1HOOK,ROTHOO,DDHOMU,CRIGI,DSIGT ) END IF c c modele de steinberg cochran guinan c ELSE IF (INPLAS.EQ.49) THEN 1 MFR1,IB,IGAU, 4 DSIGT,NMATT,SIG0,VAR0,XMAT,XCAR,NVARI, 5 ICARA,SIGF,VARF,DEFP,TETA1,TETA2,KERRE) IF((KERRE.NE.0).AND.(KERRE.NE.99)) THEN KERR1=1 END IF c c modele hujeux c ELSE IF (INPLAS.EQ.48) THEN . SIGF,VARF,DEFP,PRECIS,MFR1,KERRE) c c modele ottosen c ELSE IF (INPLAS.EQ.42) THEN MPTVAL=IVAMAT & NMATT,XCAR,ICARA,NVARI,SIGF,VARF,DEFP,MFR1,KERRE, & IB,IGAU) c ELSE IF (INPLAS.EQ.47) THEN c c modele de amadei-saeb pour les joints c C# MC 03/11/97 : MPTVAL doit etre initialise ici aussi MPTVAL=IVAMAT IF (IFOUR.EQ.2) THEN c c --------------------joints 3d c & DEPST,IFOURB,XMAT,NMATT,IVAL,SIGF,DEFP,VARF,KERRE) ELSE c c --------------------joints 2d c & DEPST,IFOURB,XMAT,NMATT,IVAL,SIGF,DEFP,VARF,KERRE) ENDIF c ELSE IF (INPLAS.EQ.52) THEN c c modèle Preston-Tonks-Wallace c c on recupere le pas de temps c 1 'DT',LOGIN,IOBIN, 2 'FLOTTANT',IVALRE,DT,CHARRE,LOGRE,IOBRE) c 1 MFR1,IB,IGAU, 4 DSIGT,NMATT,SIG0,VAR0,XMAT,XCAR,NVARI, 5 ICARA,SIGF,VARF,DEFP,TETA1,TETA2,KERRE,DT) IF(KERRE.NE.0) THEN KERR1=1 END IF c ELSE IF (INPLAS.EQ.54) THEN c c modele BETOCYCL c 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 END IF ELSE KERRE = 99 ENDIF * ELSE IF (INPLAS.EQ.55) THEN C C MODELE ROTATING CRACK C C ON VERIFIE LES CONTRAINTES PLANES C IF (IFOUR.EQ.-2)THEN IF(KERRE.EQ.0) THEN END IF ELSE KERRE = 99 ENDIF c ELSE IF (INPLAS.EQ.56)THEN C C MODELE JOINT_SOFT C C ON RECUPERE LES COURBES DE TRACTION ET DE SHEAR 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 C END IF C c ELSE IF (INPLAS.EQ.119)THEN C C MODELE JOINT_COAT 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 C END IF C+PPm c ELSE IF (INPLAS.EQ.126)THEN C C MODELE MUR_SHEAR C pour le moment, element de poutre C IF(MFR.EQ.7)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 > NCURFP,NCURKP,NCURLP,NCURFM,NCURKM,NCURLM, > IPOS1 ,IPOS2 ,IPOS3 ,IPOS4 ,IPOS5 ,IPOS6 , > KERRE) END IF C END IF C+PPm C C ELSE IF (INPLAS.EQ.91)THEN C C MODELE ANCRAGE_ELIGEHAUSEN C IF (IFOUR.EQ.-3.OR.IFOUR.EQ.-2.OR.IFOUR.EQ.-1)THEN C . SIGF,VARF,DEFP,KERRE) END IF c ELSE IF (INPLAS.EQ.57)THEN C C MODELE BILI_MOMY C KERRE=0 c ELSE IF (INPLAS.EQ.58)THEN C C MODELE BILI_EFFZ C KERRE=0 c ELSE IF (INPLAS.EQ.59)THEN C C MODELE TAKEMO_MOMY C C ON RECUPERE LES COURBES MOMENT-COURBURE C IF(KERRE.EQ.0) THEN C IF (IFOUR.EQ.-3.OR.IFOUR.EQ.-2.OR.IFOUR.EQ.-1) THEN & TRAC,NCOURB,SIGF,VARF,DEFP,KERRE) ELSE & TRAC,NCOURB,SIGF,VARF,DEFP,KERRE) ENDIF END IF c ELSE IF (INPLAS.EQ.60)THEN C C MODELE TAKEMO_EFFZ C C C ON RECUPERE LES COURBES MOMENT-COURBURE C IF(KERRE.EQ.0) THEN C IF (IFOUR.EQ.-3.OR.IFOUR.EQ.-2.OR.IFOUR.EQ.-1) THEN & TRAC,NCOURB,SIGF,VARF,DEFP,KERRE) ELSE & TRAC,NCOURB,SIGF,VARF,DEFP,KERRE) ENDIF C END IF c ELSE KERRE=99 ENDIF * * Erreurs * - problèmes de convergence * * * - autres problèmes * . KERR1,KERRE) 1998 IF (KERRE.NE.0) THEN IF (LOGVIS) SEGSUP WRK8 SEGSUP WRK0,WR00,WRK1,WRK2,WRK3,WRK5,WTRAV IF(MFR.EQ.7.OR.MFR.EQ.13) THEN SEGSUP WRK4 ENDIF IF ((CMATE.EQ.'ORTHOTRO'.OR.CMATE.EQ.'ANISOTRO'.OR. 1 CMATE.EQ.'UNIDIREC').AND.(MFR.EQ.1.OR.MFR.EQ.31 1 .OR.MFR.EQ.33)) THEN SEGDES MINTE2 SEGSUP WRK22 ENDIF IF (ITHHER.EQ.1.OR.ITHHER.EQ.2) THEN SEGDES MELVA3 SEGDES MELVA4 SEGDES MELVA5 SEGDES MCHAM3 SEGDES MCHAM4 SEGDES MCHAM5 ENDIF RETURN ENDIF c c remplissage du segment contenant les contraintes a la fin * ( rearrangement pour milieu poreux ), c les variables internes finales c et les increments de deformations plastiques c . INPLAS,IND,WRK1,WRK5,WTRAV, . IVASTF,IVARIF,IVADEP,COB,XMOB,IB,IGAU, . CMATE,MATE,MELE,KERRER) IF (KERRER.NE.0) GOTO 1000 c c fin de la boucle sur les points de gauss c 1100 continue c c special poutres et tuyaux sauf timoschenko c c c fin de la boucle sur les elements c 1000 continue * * FIN: modèles visqueux, on stocke le pas de temps * optimal en indice 'dtopti' * . TCAR,DTOPTI,IPOTAB,KERRE) IF (LOGVIS) SEGSUP WRK8 * SEGSUP WRK0,WR00,WRK1,WRK2,WRK3,WRK5,WTRAV IF(MFR.EQ.7.OR.MFR.EQ.13) THEN SEGSUP WRK4 END IF IF ((CMATE.EQ.'ORTHOTRO'.OR.CMATE.EQ.'ANISOTRO'.OR. 1 CMATE.EQ.'UNIDIREC').AND.(MFR.EQ.1.OR.MFR.EQ.31 1 .OR.MFR.EQ.33)) THEN SEGDES MINTE2 SEGSUP WRK22 ENDIF * IF (ITHHER.EQ.1.OR.ITHHER.EQ.2) THEN SEGDES MELVA3 SEGDES MELVA4 SEGDES MELVA5 SEGDES MCHAM3 SEGDES MCHAM4 SEGDES MCHAM5 ENDIF * RETURN END
© Cast3M 2003 - Tous droits réservés.
Mentions légales