ecou70
C ECOU70 SOURCE OF166741 25/11/04 21:15:52 12349 1 NUMAT,NUCAR,IVASTR,IVARI,IVADEF,IVADET, 1 IVADS,IVAMAT,IVACAR, 2 IPH1,IPH2,IPH3,ITHHER,LHOOK,NSTRS,NVARI,NMATT,NMATR,NCARR, 3 CMATE,PRECIS,JECHER,IPOTAB,ISTEP,NPINT,JNOID,LOGSUC, *********************************************************************** * ecoulement inelastique appele par ecoul1 * MATERIAUX: -PLASTIQUES NON INTEGRES PAR ECOINC * suite de ECOU60 *********************************************************************** * 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 CCHAMP -INC CECOU -INC SMCHAML -INC SMELEME -INC SMCOORD -INC SMMODEL -INC SMINTE 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======================================================================= -INC TMPTVAL 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,NBNN) ENDSEGMENT * SEGMENT WRK5 REAL*8 EPIN0(NSTRS),EPINF(NSTRS),EPST0(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 REAL*8 LCAR LOGICAL LOGVIS,LOGSUC, LUNI1,LUNI2 DIMENSION BID(6),BID2(6),CRIGI(12),CMASS(12) CHARACTER*72 CHARRE CHARACTER*(*) CMATE * * 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,MCHAM4,MCHAM5 MELVA3=MCHAM3.IELVAL(1) MELVA4=MCHAM4.IELVAL(1) MELVA5=MCHAM5.IELVAL(1) SEGACT MELVA3,MELVA4,MELVA5 ENDIF **************************** * SPECIAL SUCCION * SUCC1=-1.E35 SUCC2=-1.E35 IF (ITHHER.EQ.3) THEN MCHAM3=IPH1 MCHAM4=IPH2 SEGACT MCHAM3,MCHAM4 MELVA3=MCHAM3.IELVAL(1) MELVA4=MCHAM4.IELVAL(1) SEGACT MELVA3,MELVA4 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 SEGINI WRK0,WR00,WRK1,WRK2,WRK3,WRK5,WTRAV IPTR1 = 0 WRK22 = 0 WRK8 = 0 WRK4 = 0 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 IF (IRT1.NE.1) THEN GOTO 99 ENDIF MINTE2=IPTR1 c* SEGACT MINTE2 SEGINI,WRK22 ENDIF IF (LOGVIS) SEGINI WRK8 IF (MFR.EQ.7.OR.MFR.EQ.13.OR.LUNI1.OR.INPLAS.EQ.66) THEN SEGINI WRK4 ENDIF * * 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) * IF (INPLAS.EQ.66) THEN ENDIF * * CALCUL DE LA LONGUEUR CARACTERISTIQUE DE L'éLéMENT COURANT * POUR MODèLE BETON URGC INSA * IF (INPLAS.GE.99.AND.INPLAS.LE.101) THEN ENDIF * * 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 * * * 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,NMATT,NVARI *66771 format('0 mate=',i4,' inplas=',i4,' nmatt=',i4,' nvari=',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 **************************** * SPECIAL SUCCION * IF (ITHHER.EQ.3) THEN IBMN=MIN(IB,MELVA3.VELCHE(/2)) IGMN=MIN(IGAU,MELVA3.VELCHE(/1)) SUCC1=MELVA3.VELCHE(IGMN,IBMN) IBMN=MIN(IB,MELVA4.VELCHE(/2)) IGMN=MIN(IGAU,MELVA4.VELCHE(/1)) SUCC2=MELVA4.VELCHE(IGMN,IBMN) ENDIF **************************** * *--------------------------------------------------------------------- * * ecoulement selon les modeles * *--------------------------------------------------------------------- * MPTVAL=IVAMAT IF (INPLAS.EQ.66) THEN C C modele BETON_INSA_LYON CYCLIQUE : CONTRAINTES PLANES, C DEFORMATION PLANES ET AXISYMETRIE C iwrk12=0 1 SIGF,VARF,KERRE,MELE,IFOURB,NVARI,XCAR,NCARR,MFR, 2 EPIN0,EPINF,DT,XE,NBNN,CMATE,IB,IGAU,iwrk12) * ELSE IF (INPLAS.EQ.67) THEN C C modele ECROUIS_INSA (Materiau ORTHOTROPE ECROUISSABLE DECOUPLE) C MVEL1= nint(XMAT(NMATR)) LT1=NCOURB*2 1 TRAC,LT1,MFR,NVARI,CMATE,XCAR,DDHOOK,NCARR,IFOURB) * * ELSE IF (INPLAS.EQ.68) THEN 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 1 TRAC,LT1,MFR,NVARI,CMATE,XCAR,DDHOOK,NCARR,IFOURB) C ELSEIF (INPLAS.EQ.69) THEN C C MODELE D'ARGILE PARTIELLEMENT SATURE D'ALONSO C **************************** * SPECIAL SUCCION * 1 XMAT,SIG0,VAR0,SIGF,VARF,DEFP,KERRE,DSIGT, 2 SUCC1,SUCC2) IF((KERRE.NE.0).AND.(KERRE.NE.99)) THEN KERR1=1 END IF C ELSEIF (INPLAS.EQ.71) THEN C C MODELE D'ARGILE PARTIELLEMENT SATURE DE PAKZAD C 1 XMAT,SIG0,VAR0,SIGF,VARF,DEFP,KERRE,DSIGT, 2 SUCC1,SUCC2) IF((KERRE.NE.0).AND.(KERRE.NE.99)) THEN KERR1=1 END IF **************************** C ELSEIF (INPLAS.EQ.72) THEN C C MODELE INFILL_UNI C IF (MFR.EQ.27) THEN C C ON RECUPERE LA COURBE FORCE-DEPLACEMENT C NCOURB=NPOINT/2 IF(KERRE.EQ.0) THEN END IF ELSE KERRE = 99 ENDIF C ELSE IF (INPLAS.EQ.73)THEN C C MODELE ETAGE C pour le moment, element de barre * IF (MFR.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 END IF ELSE KERRE = 99 ENDIF C ELSEIF (INPLAS.EQ.99) THEN C C modele BETON_URGC ELASTO PLASTIQUE: CONTRAINTES PLANES, C DEFORMATION PLANES ET AXISYMETRIE C 1 KERRE,MELE,IFOURB,NCARR,MFR, 2 DT,TEMP0,CMATE,IB,IGAU,LCAR,0) c ELSEIF (INPLAS.EQ.101) THEN C C modele BETON_URGC VISCO ELASTO PLASTIQUE : CONTRAINTES PLANES, C DEFORMATION PLANES ET AXISYMETRIE C 1 KERRE,MELE,IFOURB,NCARR,MFR, 2 DT,TEMP0,CMATE,IB,IGAU,LCAR,2) C ELSE KERRE=99 ENDIF * * Erreurs * - problèmes de convergence * * * - autres problèmes * IF (MFR.EQ.49.OR.INPLAS.EQ.66) THEN KERR1=0 KERRE=0 LOGSUC=.TRUE. ENDIF IF (KERRE.NE.0) GOTO 99 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) * Fin normale ou erreur : gestion des segments de travail 99 CONTINUE SEGSUP WRK0,WR00,WRK1,WRK2,WRK3,WRK5,WTRAV IF (WRK8.NE.0) SEGSUP WRK8 IF (WRK4.NE.0) SEGSUP WRK4 IF (IPTR1.NE.0) SEGSUP MINTE2 IF (WRK22.NE.0) SEGSUP WRK22 IF (ITHHER.EQ.1.OR.ITHHER.EQ.2) THEN SEGDES MELVA3,MELVA4,MELVA5 SEGDES MCHAM3,MCHAM4,MCHAM5 ENDIF **************************** * SPECIAL SUCCION IF (ITHHER.EQ.3) THEN SEGDES MELVA3,MELVA4 SEGDES MCHAM3,MCHAM4 ENDIF **************************** RETURN END
© Cast3M 2003 - Tous droits réservés.
Mentions légales