C SSTE SOURCE PV 09/03/12 21:35:04 6325 SUBROUTINE SSTE *--------------------------------------------------------------------- * ECOULEMENT INELASTIQUE *--------------------------------------------------------------------- * * SYNTAXE POUR LES LOIS PLASTIQUES: * * SIGF VARF DEPIN RI1 = 'SUBSTEP' MODL SIG0 VAR0 DEPST CARAC * (PRECIS) (NMAXSSTEPS) (NITMAX) * (NNUMER) (DELTAX); * IN= * MMODEL | MODL OBJET MODELE * MCHAML | SIG0 CONTRAINTES AU DEBUT DU PAS * | VAR0 VARIABLES INTERNES AU DEBUT DU PAS * | DEPST INCREMENT DE DEFORMATIONS TOTALES * | CARAC CONSTANTES DU MATERIAU * FLOTTANT | PRECIS PRECISION POUR ITERATIONS INTERNES * INTEGER | NMAXSSTEPS Maximum number of substeps * INTEGER | NITMAX Maximum number of iterations * INTEGER | NNUMER Numerical differentiation type (MRSLade) * FLOTTANT | DELTAX Numerical differentiation parameter (MRSLade) * * OUT= * MCHAML | SIGF CONTRAINTES A LA FIN DU PAS * | VARF VARIABLES INTERNES A LA FIN DU PAS * | DEPIN INCREMENT DE DEFORMATIONS INELASTIQUES * | RI1 CONSISTENT TANGENT MATRIX * *--------------------------------------------------------------------- IMPLICIT INTEGER(I-N) IMPLICIT REAL*8(A-H,O-Z) -INC CCOPTIO -INC SMCHAML * * Lectura de datos * * modelo CALL LIROBJ('MMODEL',IPMODL,1,IRT) IF(IRT.EQ.0) then write(*,*) ' No hay MODL' RETURN ENDIF * tensiones iniciales CALL LIROBJ('MCHAML',IPCHE1,1,IRT) IF(IRT.EQ.0) then write(*,*) ' No hay SIG0' RETURN ENDIF MCHELM=IPCHE1 SEGACT MCHELM c! Usa L1, N1, N3 IF(MCHELM.TITCHE.NE.'CONTRAINTES')THEN MOTERR(1:8)='CONTRAIN' CALL ERREUR(109) SEGDES MCHELM RETURN ENDIF SEGDES MCHELM * variables internas iniciales CALL LIROBJ('MCHAML',IPCHE2,1,IRT) IF(IRT.EQ.0) then write(*,*) ' No hay VAR0' RETURN ENDIF MCHELM=IPCHE2 SEGACT MCHELM IF(TITCHE.NE.'VARIABLES INTERNES')THEN MOTERR(1:8)='VARINTER' CALL ERREUR(109) SEGDES MCHELM RETURN ENDIF SEGDES MCHELM * incremento de deformacion CALL LIROBJ('MCHAML',IPCHE4,1,IRT) IF(IRT.EQ.0) then write(*,*) ' No hay DEPST' RETURN ENDIF MCHELM=IPCHE4 SEGACT MCHELM IF(TITCHE.NE.'DEFORMATIONS')THEN MOTERR(1:8)='DEFORMAT' CALL ERREUR(109) SEGDES MCHELM RETURN ENDIF SEGDES MCHELM * caracteristicas materiales y geometricas CALL LIROBJ('MCHAML',IPCAR,1,IRT) IF(IRT.EQ.0) then write(*,*) ' No hay CARAC' RETURN ENDIF MCHELM=IPCAR SEGACT MCHELM IF(TITCHE.NE.'CARACTERISTIQUES')THEN MOTERR(1:8)='CARACTER' CALL ERREUR(109) SEGDES MCHELM RETURN ENDIF SEGDES MCHELM * precision para iteraciones internas CALL LIRREE(PRECIS,0,IRT) IF(IRT.EQ.0) PRECIS=1.D-10 * num max de substeps CALL LIRENT(NMAXSSTEPS,0,IRT) IF (IRT.EQ.0) NMAXSSTEPS=1 * num max de iteraciones internas CALL LIRENT(NITMAX,0,IRT) IF (IRT.EQ.0) NITMAX=25 * tipo de derivacion numerica CALL LIRENT(NNUMER,0,IRT) IF (IRT.EQ.0) NNUMER=0 * delta de x relativo para las derivadas numericas CALL LIRREE(DELTAX,0,IRT) IF (IRT.EQ.0) DELTAX=0.D0 * comprovar que es def plana o axisimetrico IF ((IFOUR.gt.0).or.(IFOUR.lt.-1)) then write(*,*) ' Formulacion no disponible' return endif CALL SSTE1(IPMODL,IPCHE1,IPCHE2,IPCHE4,IPCAR, . PRECIS,NITMAX,NMAXSSTEPS,NNUMER,DELTAX, . IPCHE7,IPCHE8,IPCHE9,IPRIGI) IF(IERR.EQ.0)THEN CALL ECROBJ('MCHAML',IPCHE9) CALL ECROBJ('MCHAML',IPCHE8) CALL ECROBJ('MCHAML',IPCHE7) CALL ECROBJ('RIGIDITE',IPRIGI) ENDIF RETURN END