cddis
C CDDIS SOURCE OF166741 25/09/30 21:15:04 12371 1 IGAU,NBPGAU,NBGMAT,NELMAT,INDLEG,IPWRKG) C SUBROUTINE DDIS : L'INITIALISATION ET L'APPEL DES LOI DE COMPORTEMENT C========================================================================= c SUBROUTINE DDIS(NSTRS,CMATE,N2EL,N2PTEL,WTRAV,MFR,IFOU,IB, c 1 IGAU,EPAIST,MELE,NPINT,NBPGAU,NBGMAT,NELMAT,SECT, c 2 LHOOK,CRIGI,NMATT,INDLEG,IPWRKG,WRKGL,WRK0,WRK1,KERRE) IMPLICIT INTEGER(I-N) IMPLICIT REAL*8(A-H,O-Z) -INC PPARAM -INC CCOPTIO -INC SMCOORD -INC DECHE *********************************************************************** * INITIALISATION ET APPEL DES LOIS DE COMPORTEMENT * *********************************************************************** * * ENTREES : * WRK0 SEGMENT DE TRAVAIL CONTENANT LES CARACTERISTIQUES * MATERIAUX * WRK1 SEGMENT DE TRAVAIL CONTENANT LES EFFORTS, LES DEPLACEMENTS * ET LA MATRICE DE HOOK * NMATT NOMBRE DE COMPOSANTES DE PROPRIETES DE MATERIAU * INDLEG CODAGE DES, TYPES DE LOI DE COMPORTEMENT RETENUS * WRKGL SEGMENT CONTENANT LES LOIS DE COMPORTEMENT DE LA SECTION * IPWRKG SEGMENT DE POINTEUR SUR LES LOIS CONTENUES DANS WRKGL * KERRE INDICATEUR D'ERREUR * WTRAV SEGMENT DE TRAVAIL CONTENANT LES TABLEAUX UTILISES POUR * LE CALCUL DE LA MATRICE DE HOOKE ELASTIQUE (SS-PROGRAMME CALSIG) * * N2EL = NBRE D ELEMENTS DANS SEGMENT DE HOOKE * N2PTEL= NBRE DE POINTS DANS SEGMENT DE HOOKE * MFR1 = NUMERO DE LA FORMULATION * IFOU = OPTION DE CALCUL * IB = NUMERO DE L ELEMENT COURANT * IGAU = NUMERO DU POINT COURANT * EPAIST= EPAISSEUR * NBPGAU= NBRE DE POINTS DE GAUSS * MELE = NUMERO DE L ELEMENT FINI * NPINT = NBRE DE POINTS D INTEGRATION * NBGMAT= NBRE DE POINTS DANS SEGMENT DE CARACTERISTIQUES * NELMAT= NBRE D ELEMENTS DANS SEGMENT DE CARACTERISTIQUES * SECT = SECTION * LHOOK = TAILLE DE LA MATRICE DE HOOKE * * SORTIES : * WRK1 SEGMENT DE TRAVAIL CONTENANT SOLLICITATIONS CORRIGEES * AU COURS DU PAS DE TEMPS CONSIDERE * KERRE INDICATEUR D'ERREUR * *********************************************************************** * * ATTENTION : * (ELEF1,ELDEP1) ET (ELEF2,ELDEP2) DEFINISSENT LE DOMAINE DE * COMPORTEMENT ELASTIQUE LINEAIRE PUR DE L'ELEMENT * CES COUPLES DE VALEURS DOIVENT DONC ETRE COHERENTS AVEC LA * MATRICE DE RIGIDITE DE L'ELEMENT (INERTIE ET MODULE D'YOUNG) * * CES DEUX COUPLES DE VALEURS SONT A DECLARER DANS LES OPTIONS A * 5 OU 7 POINTS (4 OU 6 POUR LA COMPRESSION) * * LES COUPLES (YEF1,YDEP1) ET (YEF2,YDEP2) TENANT COMPTE DE * L'ENDOMMAGEMENT SONT A RENTRER DANS L'OPTION 6 OU 7 POINTS * ********************************************************************** SEGMENT WRKGL REAL*8 TLOICO(NBLOI) ENDSEGMENT SEGMENT IPWRKG POINTEUR IPOL(3).WRKGL ENDSEGMENT DIMENSION ICOMP(3),DD(5),IDP(3),CRIGI(12) C C INITIALISATIONS C JJ=0 IDP(1) = 0 IDP(2) = 0 IDP(3) = 0 ICOMP(1) = 0 ICOMP(2) = 0 ICOMP(3) = 0 DD(1) = 0.D0 DD(2) = 0.D0 DD(3) = 0.D0 DD(4) = 0.D0 DD(5) = 0.D0 XLUNG = SQRT( (XCOOR(1)-XCOOR(5))**2 + (XCOOR(2)-XCOOR(6))**2 + & (XCOOR(3)-XCOOR(7))**2 ) C C RECUPERATION DES COURBES ET DECODAGE DE INDLEG C DO II = 1,2 IF (INDLEG.GE.100) THEN ICOMP(3) = ICOMP(3) + 1 INDLEG = INDLEG - 100 END IF ENDDO DO II = 1,2 IF (INDLEG.GE.10) THEN ICOMP(2) = ICOMP(2) + 1 INDLEG = INDLEG - 10 END IF ENDDO IF (INDLEG.GE.1) ICOMP(1) = 1 C C CALCUL DE L'INCREMENT DE CONTRAINTES C 1 N2EL,N2PTEL,MFR1,IFOU,IB,IGAU,EPAIST,NBPGAU, 2 MELE,NPINT,NBGMAT,NELMAT,SECT,LHOOK,TXR,XLOC, 3 XGLOB,D1HOOK,ROTHOO,DDHOMU,CRIGI,DSIGT,IRTD) IF (IRTD.NE.1) THEN KERRE=69 RETURN ENDIF C C RECUPERATION DES EFFORTS PRECEDANTS ET DES INCREMENTS C DO II = 1,6 SIGF(II) = SIG0(II) + DSIGT(II) ENDDO C C COMPRESSION C C RECUPERATION DE LA LOI DE COMPORTEMENT ET VARIABLES INT. C IF (ICOMP(1).EQ.0) GO TO 100 JJ=JJ+1 WRKGL = IPOL(JJ) NBLOI = WRKGL.TLOICO(/1) IF (NBLOI.EQ.12) THEN YEFC2 = -1.*TLOICO(1) YDEPC2 = -1.*TLOICO(2) ELEFC2 = -1.*TLOICO(3) ELDEPC2= -1.*TLOICO(4) ELEFC1 = -1.*TLOICO(7) ELDEPC1= -1.*TLOICO(8) YEFC1 = -1.*TLOICO(9) YDEPC1 = -1.*TLOICO(10) UEFC1 = -1.*TLOICO(11) UDEPC1 = -1.*TLOICO(12) ELSE YEFC2 = -1.*TLOICO(1) YDEPC2 = -1.*TLOICO(2) ELEFC2 = -1.*TLOICO(1) ELDEPC2= -1.*TLOICO(2) ELEFC1 = -1.*TLOICO(5) ELDEPC1= -1.*TLOICO(6) YEFC1 = -1.*TLOICO(5) YDEPC1 = -1.*TLOICO(6) UEFC1 = -1.*TLOICO(7) UDEPC1 = -1.*TLOICO(8) ENDIF IFLAGC = INT(VAR0(2)) RRC = VAR0(3) EFMXC = VAR0(4) DEPMXC = VAR0(5) EFMNC = VAR0(6) DEPMNC = VAR0(7) DEPC = VAR0(8) XINT = VAR0(9) PLASC = VAR0(10) RR1 = (ELEFC1 - ELEFC2)/(ELDEPC1 - ELDEPC2) EFC = SIG0(1) VAREFC = DSIGT(1) VARDPC = VAREFC / RR1 C C APPEL DE LA LOI DE COMPORTEMENT C VARDP0 = VARDPC IF ((ABS(VARDP0)).GE.1.0E-9)THEN 1 YEFC1,YDEPC1,YEFC2,YDEPC2,UEFC1,UDEPC1, 2 EFC,VARDPC,DEPC,DEPEC,DEPMXC,EFMXC, 3 DEPMNC,EFMNC,XINT,RRC) VARF(2) = IFLAGC VARF(3) = RRC VARF(4) = EFMXC VARF(5) = DEPMXC VARF(6) = EFMNC VARF(7) = DEPMNC VARF(8) = DEPC VARF(9) = XINT SIGF(1) = EFC DEPE = EFC / RR1 VARDEP = DEPC - DEPE DD(1) = VARDEP - PLASC DEFP(1) = DD(1) VARF(10) = VARDEP ELSE DEFP(1) = DEFP(1) DO II = 2,10 VARF(II) = VAR0(II) ENDDO END IF C C FLEXION C C RECUPERATION DE LA LOI DE COMPORTEMENT ET VARIABLES INT. C 100 CONTINUE IF (ICOMP(2).EQ.0) GO TO 200 JJ=JJ+1 WRKGL = IPOL(JJ) NBLOI = WRKGL.TLOICO(/1) IF (NBLOI.EQ .14) THEN UEFF1 = (-1.*TLOICO(1)) UDEPF1 = (-1.*TLOICO(2)) YEFF1 = (-1.*TLOICO(3)) YDEPF1 = (-1.*TLOICO(4)) ELEFF1 = (-1.*TLOICO(5)) ELDEPF1 = (-1.*TLOICO(6)) ELEFF2 = (-1.*TLOICO(9)) ELDEPF2 = (-1.*TLOICO(10)) YEFF2 = (-1.*TLOICO(11)) YDEPF2 = (-1.*TLOICO(12)) UEFF2 = (-1.*TLOICO(13)) UDEPF2 = (-1.*TLOICO(14)) ELSE UEFF1 = (-1.*TLOICO(1)) UDEPF1 = (-1.*TLOICO(2)) YEFF1 = (-1.*TLOICO(3)) YDEPF1 = (-1.*TLOICO(4)) ELEFF1 = (-1.*TLOICO(3)) ELDEPF1 = (-1.*TLOICO(4)) ELEFF2 = (-1.*TLOICO(7)) ELDEPF2 = (-1.*TLOICO(8)) YEFF2 = (-1.*TLOICO(7)) YDEPF2 = (-1.*TLOICO(8)) UEFF2 = (-1.*TLOICO(9)) UDEPF2 = (-1.*TLOICO(10)) ENDIF * IFLAGF = INT(VAR0(11)) RRF = VAR0(12) EFMXF = VAR0(13) DEPMXF = VAR0(14) EFMNF = VAR0(15) DEPMNF = VAR0(16) X0F = VAR0(17) DEPF = VAR0(18) PLASF = VAR0(19) * RR2 = (ELEFF1 - ELEFF2)/(ELDEPF1 - ELDEPF2) M2 = ICOMP(2) + 4 EFF = SIG0(M2) VAREFF = DSIGT(M2) VARDPF = VAREFF / RR2 C C APPEL DE LA LOI DE COMPORTEMENT C VARDP0 = VARDPF IF (ABS(VARDP0).GT.1.0E-9)THEN 1 YEFF1,YDEPF1,YEFF2,YDEPF2,UEFF1,UDEPF1, 2 UEFF2,UDEPF2,EFF,VARDPF,DEPF,DEPEF, 3 DEPMXF,DEPMNF,EFMXF,EFMNF,X0F,RRF) VARF(11) = IFLAGF VARF(12) = RRF VARF(13) = EFMXF VARF(14) = DEPMXF VARF(15) = EFMNF VARF(16) = DEPMNF VARF(17) = X0F VARF(18) = DEPF SIGF(M2) = EFF DEPE = EFF / RR2 VARDEP = DEPF - DEPE IF (M2.EQ.6) THEN DD(2) = VARDEP - PLASF DD(5) = (VARDEP - PLASF) / XLUNG ELSE DD(3) = -1.0 * (VARDEP - PLASF) DD(4) = (VARDEP - PLASF) / XLUNG END IF VARF(19) = VARDEP ELSE DO II = 11,19 VARF(II) = VAR0(II) ENDDO END IF C C CISAILLEMENT C C RECUPERATION DE LA LOI DE COMPORTEMENT ET VARIABLES INT. C 200 CONTINUE IF (ICOMP(3).EQ.0) GO TO 300 JJ= JJ+1 WRKGL = IPOL(JJ) NBLOI = WRKGL.TLOICO(/1) IF (NBLOI.EQ.14) THEN UEFT1 = (-1 * TLOICO(1)) UDEPT1 = (-1 * TLOICO(2)) YEFT1 = (-1 * TLOICO(3)) YDEPT1 = (-1 * TLOICO(4)) ELEFT1 = (-1 * TLOICO(5)) ELDEPT1 = (-1 * TLOICO(6)) ELEFT2 = (-1 * TLOICO(9)) ELDEPT2 = (-1 * TLOICO(10)) YEFT2 = (-1 * TLOICO(11)) YDEPT2 = (-1 * TLOICO(12)) UEFT2 = (-1 * TLOICO(13)) UDEPT2 = (-1 * TLOICO(14)) ELSE UEFT1 = (-1 * TLOICO(1)) UDEPT1 = (-1 * TLOICO(2)) YEFT1 = (-1 * TLOICO(3)) YDEPT1 = (-1 * TLOICO(4)) ELEFT1 = (-1 * TLOICO(3)) ELDEPT1 = (-1 * TLOICO(4)) ELEFT2 = (-1 * TLOICO(7)) ELDEPT2 = (-1 * TLOICO(8)) YEFT2 = (-1 * TLOICO(7)) YDEPT2 = (-1 * TLOICO(8)) UEFT2 = (-1 * TLOICO(9)) UDEPT2 = (-1 * TLOICO(10)) ENDIF IFLAGS = INT(VAR0(20)) RRS = VAR0(21) EFMXS = VAR0(22) DEPMXS = VAR0(23) EFMNS = VAR0(24) DEPMNS = VAR0(25) X01S = VAR0(26) X02S = VAR0(27) FINS = VAR0(28) EFLIMS = VAR0(29) DEPS = VAR0(30) PLASS = VAR0(31) RR3 = (ELEFT1 - ELEFT2)/(ELDEPT1 - ELDEPT2) M3 = ICOMP(3) + 1 EFS = SIG0(M3) VAREFS = DSIGT(M3) VARDPS =VAREFS / RR3 C C APPEL DES LOIS DE COMPORTEMENT C VARDP0 = VARDPS C WRITE (6,*) 'RR entree=',RRS C WRITE (6,*) 'EF entree=',EFS C WRITE (6,*) 'DEP entree=',DEPS C WRITE (6,*) 'VARDEP entree=', VARDPS C WRITE (6,*) 'IFLAG entree=' , IFLAGS IF (ABS(VARDP0).GT.1.E-9)THEN 1 YEFT1,YDEPT1,YEFT2,YDEPT2,UEFT1,UDEPT1, 2 UEFT2,UDEPT2,EFS,VARDPS,DEPS,EFLIMS, 3 DEPMXS,DEPMNS,EFMXS,EFMNS,X01S,X02S,FINS,RRS) VARF(20) = IFLAGS VARF(21) = RRS VARF(22) = EFMXS VARF(23) = DEPMXS VARF(24) = EFMNS VARF(25) = DEPMNS VARF(26) = X01S VARF(27) = X02S VARF(28) = FINS VARF(29) = EFLIMS VARF(30) = DEPS SIGF(M3) = EFS C WRITE (6,*) 'RR sortie=',RRS C WRITE (6,*) 'EF sortie=',EFS C WRITE (6,*) 'DEP sortie=',DEPS C WRITE (6,*) 'VARDEP sortie=', VARDPS C WRITE (6,*) 'IFLAG sortie=' , IFLAGS DEPE = EFS / RR3 VARDEP = DEPS - DEPE C WRITE (6,*) 'VARDEP PLAST sortie=' , VARDEP IF(M3.EQ.2)THEN DD(2) = DD(2) + VARDEP - PLASS DD(5) = DD(5) + (VARDEP - PLASS) / XLUNG ELSE DD(3) = DD(3) + VARDEP - PLASS DD(4) = DD(4) + (VARDEP - PLASS) / XLUNG END IF VARF(31) = VARDEP ELSE DO II = 20,31 VARF(II) = VAR0(II) ENDDO END IF C C MISE A JOUR DES VARIABLES INTERNES C 300 CONTINUE DEFP(2) = DEFP(2) + DD(2) DEFP(3) = DEFP(3) + DD(3) DEFP(5) = DEFP(5) + DD(4) DEFP(6) = DEFP(6) + DD(5) VARF(1) = VAR0(1) + SQRT(DD(1)**2 + DD(2)**2 + DD(3)**2) C C MISE A JOUR DE L'INDICE D'ERREUR C IF(IDP(1).NE.0) KERRE = -1 IF(IDP(2).NE.0) KERRE = KERRE - 2 IF(IDP(3).NE.0) KERRE = KERRE - 4 RETURN END
© Cast3M 2003 - Tous droits réservés.
Mentions légales