ktange
C KTANGE SOURCE PV 20/04/02 21:15:26 10567 SUBROUTINE KTANGE *_______________________________________________________________________ * * Operateur matrice de rigidite tangente KTAN * * RI1 = 'KTAN' MOD1 SI1 VA1 CA1 * ('PREC' FLO1) ('DT ' FLO2 ) ('SYME') ; * * MOD1 MMODEL Modele de calcul * SI1 MCHAML Champ par element de contraintes * VA1 MCHAML Champ par element de variables internes * CA1 MCHAML Champ par element de caracteristiques * (materielles et/ou geometriques) * FLO1 FLOTTANT (par defaut 1.D-3) * précision avec laquelle on cherche si un état de * contraintes est plastique ou non * FLO2 FLOTTANT nécessaire que pour les modèles visqueux * pas de temps servant à calculer la matrice tangente * *_______________________________________________________________________ * * Calcul de la matrice de rigidite tangente par perturbation * * RI1 = 'KTAN' 'PERT' MOD1 CHE1 CHE2 * ('C1' FLO1) ('C2' FLO2) ('SYME') ; * * MOD1 MMODEL Modele de calcul * CHE1 MCHAML Champ par element a t pour COMP * CHE2 MCHAML Champ par element a t+dt * (champs pour COMP et les contraintes) * FLO1 FLOTTANT positif (par defaut 1.D-3) * coefficient de perturbation de l increment de * deformation * FLO2 FLOTTANT positif (par defaut FLO1/100.) * perturbation minimale * *_______________________________________________________________________ * IMPLICIT INTEGER(I-N) IMPLICIT REAL*8(A-H,O-Z) * -INC PPARAM -INC CCOPTIO -INC SMCOORD * LOGICAL BC2 CHARACTER*4 DEUXMOT(3),PERTURB(4) * DATA DEUXMOT / 'PREC','DT ','SYME' / DATA PERTURB / 'PERT','C1 ','C2 ','SYME' / * IF (IERR.NE.0) RETURN * IPRIGI=0 segact mcoord * ************************************************************************ * MATRICE TANGENTE ANALYTIQUE SI POSSIBLE, SINON ELASTIQUE ************************************************************************ IF (IPLA.EQ.0) THEN * * Lecture d'un modele * IF (IERR.NE.0) RETURN * * Lecture du MCHAML de CONTRAINTES * IF (IERR.NE.0) RETURN IF(IERR .NE. 0) RETURN * * Lecture du MCHAML de VARIABLES INTERNES * IF (IERR.NE.0) RETURN IF(IERR .NE. 0) RETURN * * Lecture du MCHAML de CARACTERISTIQUES * IF (IERR.NE.0) RETURN IF(IERR .NE. 0) RETURN * * On lit un ou deux flottants xprec et dt * XPREC = 1.D-3 DTPS = 0.D0 IKTSYM = 0 1 CONTINUE IF (IERR.NE.0) RETURN IF (IVAL .EQ. 1) THEN IF (IERR.NE.0) RETURN GOTO 1 ELSE IF (IVAL .EQ. 2) THEN IF (IERR.NE.0) RETURN GOTO 1 ELSE IF (IVAL .EQ. 3) THEN IKTSYM = 1 GOTO 1 ENDIF * * Calcul de la matrice tangente * & IPRIGI) * ************************************************************************ * MATRICE DE RAIDEUR TANGENTE PAR PERTURBATION ************************************************************************ * Appel a 'KTAN' 'PERT' ELSE IF (IPLA.EQ.1) THEN * * Lecture d'un modele * IF (IERR.NE.0) RETURN * * Lecture du MCHAML initial * IF (IERR.NE.0) RETURN IF(IERR .NE. 0) RETURN * * Lecture du MCHAML final * IF (IERR.NE.0) RETURN IF(IERR .NE. 0) RETURN * * On lit un ou deux flottants CO1 et CO2 * par defaut CO1 = 1.D-3 et CO2 = CO1/100. * CO1 = 1.D-3 BC2 = .TRUE. IKTSYM = 0 100 CONTINUE IF (IERR.NE.0) RETURN IF (IVAL .EQ. 1) THEN IF (IERR.NE.0) RETURN GOTO 100 ELSE IF (IVAL .EQ. 2) THEN IF (IERR.NE.0) RETURN BC2 = .FALSE. GOTO 100 ELSE IF (IVAL .EQ. 3) THEN IKTSYM = 1 GOTO 100 ENDIF * * Verification des coefficients de perturbation C1 et C2 * IF (CO1.LE.0.) THEN CO1 = 1.D-3 WRITE (IOIMP,*) 'Valeur de C1 negative ==> ', & 'valeur par defaut (1.D-3) utilisee' ENDIF IF (CO2.LE.0.) THEN BC2 = .TRUE. WRITE (IOIMP,*) 'Valeur de C2 negative ==> ', & 'valeur par defaut (C1/100.) utilisee' ENDIF IF (BC2) CO2 = CO1/1.D2 * * Calcul de la matrice par perturbation * * ENDIF * ************************************************************************ * Ecriture de la RIGIDITE ************************************************************************ END
© Cast3M 2003 - Tous droits réservés.
Mentions légales