dcmp
C DCMP SOURCE CHAT 05/01/12 22:37:32 5004 C C SUBRUTINE DCMP : APPLICATION D'UNE LOI DE COMPORTEMENT POUR DES C DEFORMATIONS AXIALES C 1 YLDEP1,YLEF2,YLDEP2,ULEF1,ULDEP1, 2 EF,VARDEP,DEP,DEPE,DEPMAX,EFMAX,DEPMIN,EFMIN, 3 XINT,RR) C C ================================================================== C ELEF1 - EFFORT MAX. ELASTIQUE DANS LE SENS + C ELDEP1 - DEFORMATION MAX. ELASTIQUE DANS LE SENS + C ELEF2 - EFFORT MAX. ELASTIQUE DANS LE SENS - C ELDEP2 - DEFORMATION MAX. ELASTIQUE DANS LE SENS - C YLEF1 - EFFORT MAX. LINEAIRE DANS LE SENS + C YLDEP1 - DEFORMATION MAX. LINEAIRE DANS LE SENS + C YLEF2 - EFFORT MAX. LINEAIRE DANS LE SENS - C YLDEP2 - DEFORMATION MAX. LINEAIRE DANS LE SENS - C ULEF1 - EFFORT MAX. PLASTIQUE DANS LE SENS + C ULDEP1 - DEFORMATION MAX. PLASTIQUE DANS LE SENS + C EF - EFFORT DU PAS PRECEDENT C VARDEP - L'INCREMENT DE DEFORMATION C DEP - DEFORMATION DU PAS PRECEDENT C DEPMAX - DEFORMATION MAX. + C EFMAX - EFFORT MAX. + C DEPMIN - DEFORMATION MIN. - C EFMIN - EFFORT MIN. - C XINT - DEFORMATION MAX. POUR DECHARGE AVEC LA RIGIDITE RIN1 C IFLAG - FLAG POUR LE STADE DE COMPORTEMENT C REL - RIGIDITE ELASTIQUE COHERENTE AVEC LA MATRICE DE C RIGIDITE C REL1 - RIGIDITE ELASTIQUE DANS LE SENS + C REL2 - RIGIDITE ELASTIQUE DANS LE SENS - C RR1 - RIGIDITE SECANTE DANS LE SENS + C RR2 - RIGIDITE SECANTE DANS LE SENS - C RIN1 - RIGIDITE INELASTIQUE DANS LE SENS + C RIN2 - RIGIDITE INELASTIQUE DANS LE SENS - C DEPT - DEFORMATION TOTALE C RR - RIGIDITE POUR LE STADE DE COMPORTEMENT ACTUEL C C ---------------------------------------------------------------------- C IMPLICIT INTEGER(I-N) IMPLICIT REAL*8(A-H,O-Z) C C INITIALISATION C REL = (ELEF1 -ELEF2) /(ELDEP1 - ELDEP2) C IF (ELDEP1.GT.YLDEP1) THEN REL1 = (YLEF1 -ELEF1) /(YLDEP1 - ELDEP1) ELSE REL1 = REL ENDIF C IF (ELDEP2.LT.YLDEP2) THEN REL2 = (YLEF2 -ELEF2) /(YLDEP2 - ELDEP2) ELSE REL2 = REL ENDIF C RR1 = (YLEF1/YLDEP1) RR2 = (YLEF2/YLDEP2) RIN1 = (ULEF1 - YLEF1) / (ULDEP1 - YLDEP1) C IF(IFLAG.EQ.0)THEN IFLAG = 1 RR = REL DEPMAX = ELDEP1 EFMAX = ELEF1 DEPMIN = ELDEP2 EFMIN = ELEF2 DEP = 0.0 EF = 0.0 XINT = 0.0 END IF C DEPT = DEP + VARDEP C C CAS EF = 0.0 C IF(EF.EQ.0.0)THEN IF(IFLAG.EQ.1)THEN IF(VARDEP.LE.0.0)THEN IF(EFMAX.GE.YLEF1)THEN RR = REL GO TO 11 ELSE RR = EFMAX / (DEPMAX - DEP) GO TO 5 END IF ELSE RR = REL GO TO 12 END IF ELSE IF(VARDEP.LE.0.0)THEN RR = EFMAX / (DEPMAX - DEP) GO TO 5 ELSE RR = RIN1 GO TO 4 END IF END IF END IF C GO TO(1,2,3,4,5),IFLAG C C STADE ELASTIQUE C 1 IFLAG = 1 11 IF(EF.LE.0.)THEN IF (DEPT.LT.YLDEP1)THEN DEPMAX = YLDEP1 EFMAX = YLEF1 VARDEP=DEPT-YLDEP1 DEP=YLDEP1 EF=YLEF1 RR = RIN1 GO TO 2 ELSE IF((ELDEP1.GT.YLDEP1).AND.(DEPT.LE.0.))THEN IF (VARDEP.LE.0.)THEN IF ((DEP.LE.DEPMAX).OR.(DEPMAX.EQ.ELDEP1)) THEN IF((DEP.GE.ELDEP1).AND.(DEPT.GE.ELDEP1))THEN RR=REL ELSE IF((DEP.LE.ELDEP1).AND.(DEPT.LE.ELDEP1))THEN RR=REL1 ELSE IF((DEP.GE.ELDEP1).AND.(DEPT.LE.ELDEP1))THEN VARDEP=DEPT-ELDEP1 EF=ELEF1 DEP=ELDEP1 RR = REL1 ENDIF ELSE IF (DEPT.LE.DEPMAX) THEN VARDEP=DEPT-ELDEP1 EF=EFMAX DEP=DEPMAX RR=REL1 ELSE RR=(EFMAX/DEPMAX) ENDIF ENDIF ELSE IF(DEP.LT.DEPMAX)THEN DEPMAX = DEP EFMAX = EF ENDIF IF (DEPMAX.EQ.ELDEP1) THEN RR=REL ELSE RR=(EFMAX/DEPMAX) ENDIF ENDIF EF = EF + VARDEP * RR DEP=DEPT RETURN ENDIF ENDIF IF(DEPT.GT.0.)THEN DEP = 0. RR = REL VARDEP = DEPT EF = 0. GO TO 12 END IF EF = EF + VARDEP * RR DEP = DEPT RETURN END IF 12 IF(EF.GE.0.)THEN IF((ELDEP2.LT.YLDEP2).AND.(DEPT.GE.0.))THEN IF (VARDEP.GE.0.)THEN IF ((DEP.GE.DEPMIN).OR.(DEPMIN.EQ.ELDEP2)) THEN IF((DEP.LE.ELDEP2).AND.(DEPT.LE.ELDEP2))THEN RR=REL ELSE IF((DEP.GE.ELDEP2).AND.(DEPT.GE.ELDEP2))THEN RR=REL2 ELSE IF((DEP.LE.ELDEP2).AND.(DEPT.GE.ELDEP2))THEN VARDEP=DEPT-ELDEP2 EF=ELEF2 DEP=ELDEP2 RR = REL2 ENDIF ELSE IF (DEPT.GE.DEPMIN)THEN VARDEP=DEPT-DEPMIN EF=EFMIN DEP=DEPMIN RR=REL2 ELSE RR=(EFMIN/DEPMIN) ENDIF ENDIF ELSE IF(DEP.GT.DEPMIN)THEN DEPMIN = DEP EFMIN = EF ENDIF IF (DEPMIN.EQ.ELDEP2) THEN RR = REL ELSE RR=(EFMIN/DEPMIN) ENDIF ENDIF EF = EF + VARDEP * RR DEP=DEPT RETURN ENDIF EFT1 = EF + VARDEP * RR IF(EFT1.GT.YLEF2) IDEP = -1 IF(DEPT.LT.0.)THEN EF = 0.0 DEP = 0.0 VARDEP = DEPT IF(EFMAX.LT.YLEF1)THEN RR = EFMAX / DEPMAX GO TO 5 ELSE RR = REL GO TO 11 END IF ELSE * EF = EFT+ VARDEP * RR AM CORRECTION 22/02/96 EF = EF + VARDEP * RR DEP = DEPT RETURN END IF END IF C C STADE PLASTIQUE C 2 IFLAG = 2 IF(VARDEP.LE.0.)THEN EF = EF + VARDEP * RR IF(EF.LT.ULEF1) IDEP = 1 EFMAX = EF DEPMAX = DEPT DEP = DEPT RETURN END IF RR = SQRT(YLDEP1 / DEPMAX) * RR1 C C DECHARGE SANS CHANGEMENT DE SENS C 3 IFLAG = 3 EFT1 = EF + VARDEP * RR IF((EF * EFT1).GE.0.)THEN IF((EF * VARDEP).LT.0.)THEN EF = EFT1 DEP = DEPT RETURN ELSE IF(EF.LT.0.0)THEN RR = (EFMAX - EF) / (DEPMAX - DEP) GO TO 5 ELSE RR = RIN1 XLIM = DEP * RR / (RR2 - RR) - EF * RR2 GO TO 4 END IF ELSE DEP = DEP - EF / RR VARDEP = DEPT - DEP IF(EF.LT.0.0)THEN RR = RIN1 XINT = -1.0 * DEP * RR / (RR2 - RR) EF = 0.0 GO TO 4 ELSE RR = EFMAX / (DEPMAX - DEP) EF = 0.0 GO TO 5 END IF END IF C C CHANGEMENT DE SENS DANS + C 4 IFLAG = 4 IF((EF * VARDEP).LT.0.0)THEN RR = RR2 GO TO 3 ELSE IF(DEPT.GT.XINT)THEN EF = EF + (XINT - DEP) * RR DEP = XINT VARDEP = DEPT - DEP RR = RR2 GO TO 1 ELSE EF = EF + VARDEP * RR DEP = DEPT RETURN END IF END IF C C CHANGEMENT DE SENS DANS - C 5 IFLAG = 5 IF((EF * VARDEP).LT.0.0)THEN RR = SQRT(YLDEP1 / DEPMAX) * RR1 GO TO 3 ELSE IF(DEPT.LT.DEPMAX)THEN VARDEP = DEPT - DEPMAX DEP = DEPMAX EF = EFMAX RR = RIN1 GO TO 2 ELSE EF = EF + VARDEP * RR DEP = DEPT RETURN END IF END IF END
© Cast3M 2003 - Tous droits réservés.
Mentions légales