dtak
C DTAK SOURCE CHAT 05/01/12 22:57:00 5004 C SUBRUTINE DTAK : APPLICATION D'UNE LOI DE COMPORTEMENT POUR DES C DEFORMATIONS DUES A LA FLEXION C====================================================================== 1 YLEF1,YLDEP1,YLEF2,YLDEP2,ULEF1,ULDEP1, 2 ULEF2,ULDEP2,EF,VARDEP,DEP,DEPE, 3 DEPMAX,DEPMIN,EFMAX,EFMIN,X0,RR) C C ===================================================================== C ELEF1 - EFFORT MAX. ELASTIQUE DANS LE SENS + C ELDEP1 - DEFORMATION MAX. ELASTIQUE DANS LE SENS + C ELEF1 - EFFORT MAX. ELASTIQUE DANS LE SENS - C ELDEP1 - DEFORMATION MAX. ELASTIQUE DANS LE SENS - C YLEF1 - EFFORT MAX. LINEAIRE DANS LE SENS + C YLDEP1 - DEFORMATION MAX. LINEAIRE DANS LE SENS + C YLEF1 - EFFORT MAX. LINEAIRE DANS LE SENS - C YLDEP1 - DEFORMATION MAX.LINEAIRE DANS LE SENS - C ULEF1 - EFFORT MAX. PLASTIQUE DANS LE SENS + C ULDEP1 - DEFORMATION MAX. PLASTIQUE DANS LE SENS + C ULEF2 - EFFORT MAX. PLASTIQUE DANS LE SENS - C ULDEP2 - 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 DEPMIN - DEFORMATION MAX. - C EFMAX - EFFORT MAX. + C EFMIN - EFFORT MAX. - C X0 - DERNIERE INTERSECTION AVEC L'AXE OX 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 - RIGIDITATE 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.LT.YLDEP1) THEN REL1 = (YLEF1 - ELEF1)/(YLDEP1 - ELDEP1) ELSE REL1 = REL END IF C IF (ELDEP2.GT.YLDEP2) THEN REL2 = (YLEF2 - ELEF2)/(YLDEP2 - ELDEP2) ELSE REL2 = REL END IF C RIN1 = (ULEF1 - YLEF1) / (ULDEP1 - YLDEP1) RIN2 = (ULEF2 - YLEF2) / (ULDEP2 - YLDEP2) RR1 = (YLEF1 / YLDEP1) RR2 = (YLEF2 / YLDEP2) C IF(IFLAG.EQ.0) THEN IFLAG = 1 RR = REL DEPMAX = ELDEP1 EFMAX = ELEF1 DEPMIN = ELDEP2 EFMIN = ELEF2 DEP = 0.0 X0 = 0.0 END IF C DEPT = DEP + VARDEP C C CAS EF = 0 C IF(EF.EQ.0.)THEN IF(IFLAG.EQ.1)THEN IF(DEPT.GT.0.)GO TO 11 IF(DEPT.LT.0.)GO TO 12 RETURN END IF IF((VARDEP.GT.0.).AND.(RR.EQ.(EFMIN / (DEPMIN - X0))))THEN RR = EFMAX / (DEPMAX - X0) GO TO 3 ELSE IF((VARDEP.LT.0.).AND.(RR.EQ.(EFMAX/(DEPMAX-X0))))THEN RR = EFMIN / (DEPMIN - X0) GO TO 3 END IF IF(IFLAG.EQ.3)GO TO 31 END IF C GO TO(1,2,3,4),IFLAG C C STADE ELASTIQUE C 1 IFLAG = 1 11 IF(EF.GE.0)THEN IF(DEPT.GT.YLDEP1)THEN DEPMAX = YLDEP1 EFMAX = YLEF1 VARDEP = DEPT - YLDEP1 DEP = YLDEP1 EF = YLEF1 RR = RIN1 GO TO 2 ELSE IF ((ELDEP1.LT.YLDEP1).AND.(DEPT.GE.0.))THEN IF (VARDEP.GE.0.)THEN IF ((DEP.GE.DEPMAX).OR.(DEPMAX.EQ.ELDEP1)) THEN IF ((DEP.LE.ELDEP1).AND.(DEPT.LE.ELDEP1))THEN RR=REL ELSE IF ((DEP.GE.ELDEP1).AND.(DEPT.GE.ELDEP1))THEN RR=REL1 ELSE IF ((DEP.LE.ELDEP1).AND.(DEPT.GE.ELDEP1))THEN VARDEP=DEPT-ELDEP1 EF=ELEF1 DEP=ELDEP1 RR=REL1 ENDIF ELSE IF (DEPT.GE.DEPMAX) THEN VARDEP=DEPT-DEPMAX EF=EFMAX DEP=DEPMAX RR=REL1 ELSE RR=(EFMAX/DEPMAX) ENDIF ENDIF ELSE IF (DEP.GT.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 END IF END IF IF(DEPT.LT.0.) THEN DEP = 0. VARDEP = DEPT EF = 0. RR = REL GO TO 12 END IF EF = EF + VARDEP * RR DEP = DEPT RETURN END IF 12 IF(EF.LE.0.)THEN IF(DEPT.LT.YLDEP2) THEN DEPMIN = YLDEP2 EFMIN = YLEF2 VARDEP = DEPT - YLDEP2 DEP = YLDEP2 EF = YLEF2 RR = RIN2 GO TO 2 ELSE IF ((ELDEP2.GT.YLDEP2).AND.(DEPT.LE.0.))THEN IF (VARDEP.LE.0.)THEN IF ((DEP.LE.DEPMIN).OR.(DEPMIN.EQ.ELDEP2)) THEN IF ((DEP.GE.ELDEP2).AND.(DEPT.GE.ELDEP2))THEN RR=REL ELSE IF ((DEP.LE.ELDEP2).AND.(DEPT.LE.ELDEP2))THEN RR=REL2 ELSE IF ((DEP.GE.ELDEP2).AND.(DEPT.LE.ELDEP2))THEN VARDEP=DEPT-ELDEP2 EF=ELEF2 DEP=ELDEP2 RR=REL2 ENDIF ELSE IF (DEPT.LE.DEPMIN) THEN VARDEP=DEPT-DEPMIN EF=EFMIN DEP=DEPMIN RR=REL2 ELSE RR=(EFMIN/DEPMIN) ENDIF ENDIF ELSE IF (DEP.LT.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 END IF END IF IF (DEPT.GT.0.) THEN DEP = 0. VARDEP = DEPT EF = 0. RR = REL GO TO 11 END IF EF = EF + VARDEP * RR DEP = DEPT RETURN END IF C C STADE PLASTIQUE C 2 IFLAG = 2 IF((EF * VARDEP).GE.0.) THEN EF = EF + VARDEP * RR DEP = DEPT IF(EF.GT.ULEF1) IDEP = 1 IF(EF.LT.ULEF2) IDEP = -1 RETURN END IF IF(EF.GE.0.)THEN DEPMAX = DEP EFMAX = EF RR = SQRT(YLDEP1 / DEP) * RR1 ELSE DEPMIN = DEP EFMIN = EF RR = SQRT(YLDEP2 / DEPMIN) * RR2 END IF C C DECHARGE SANS CHANGEMENT DE SENS C 3 IFLAG = 3 IF(EF.EQ.0.)GO TO 4 IF((EF * VARDEP).GT.0.)THEN IF(EF.GT.0.)RR = (EFMAX - EF) / (DEPMAX - DEP) IF(EF.LT.0.)RR = (EFMIN - EF) / (DEPMIN - DEP) GO TO 4 END IF EFT1 = EF + VARDEP * RR IF((EFT1 * EF).GT.0.0)THEN EF = EFT1 DEP = DEPT RETURN END IF 31 X0 = DEP - EF / RR IF(VARDEP.GT.0.)RR = EFMAX / (DEPMAX - X0) IF(VARDEP.LT.0.)RR = EFMIN / (DEPMIN - X0) DEP = X0 VARDEP = DEPT - DEP EF = 0. IF(VARDEP.EQ.0.)RETURN C C DECHARGE APRES LE CHANGEMENT DE SENS C 4 IFLAG = 4 IF((EF * VARDEP).GE.0.)THEN IF(DEPT.GT.DEPMAX)THEN VARDEP = DEPT - DEPMAX DEP = DEPMAX EF = EFMAX IF(DEPMAX.GT.YLDEP1)THEN RR = RIN1 GO TO 2 ELSE RR = (EFMAX/DEPMAX) GO TO 11 END IF END IF IF(DEPT.LT.DEPMIN)THEN VARDEP = DEPT - DEPMIN DEP = DEPMIN EF = EFMIN IF(DEPMIN.LT.YLDEP2)THEN RR = RIN2 GO TO 2 ELSE RR = (EFMIN/DEPMIN) GO TO 11 END IF END IF EF = EF + VARDEP * RR DEP = DEPT RETURN END IF IF(EF.GE.0.)RR = SQRT(YLDEP1 / DEPMAX) * RR1 IF(EF.LT.0.)RR = SQRT(YLDEP2 / DEPMIN) * RR2 GO TO 3 END
© Cast3M 2003 - Tous droits réservés.
Mentions légales