dtai
C DTAI SOURCE CHAT 05/01/12 22:56:51 5004 C SUBRUTINE DTAI : APPLICATION D'UNE LOI DE COMPORTEMENT POUR DES C DEFORMATIONS DUES AUX CISAILLEMENT====================================================================== 1 YLEF1,YLDEP1,YLEF2,YLDEP2,ULEF1,ULDEP1,ULEF2, 2 ULDEP2,EF,VARDEP,DEP,DEPMAX, EFLIM, 3 DEPMIN,EFMAX,EFMIN,X01,X02,FINT,RR) C 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 X01 - DERNIERE INTERSECTION AVEC L'AXE OX DANS LA PARTIE + C X02 - DERNIERE INTERSECTION AVEC L'AXE OX DANS LA PARTIE - C FINT - EFFORT MAX. POUR LA DECHARGE AVEC UNE RIG. INELASTIQUE 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 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 EFLIM = 0.0 FINT = 0.0 DEP = 0.0 X01 = 0.0 X02 = 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(VARDEP.GT.0.) GO TO 11 IF(VARDEP.LT.0.) GO TO 12 END IF IF(IFLAG.EQ.3)THEN IF(((RR.EQ.RR1).AND.(VARDEP.GE.0.)).OR. 1 ((RR.EQ.RR2).AND.(VARDEP.LE.0.)))THEN IF(DEPT.GT.YLDEP1)THEN DEP = YLDEP1 EF = YLEF1 VARDEP = DEPT - DEP RR = RIN1 GO TO 2 END IF IF(DEPT.LT.YLDEP2)THEN DEP = YLDEP2 EF = YLEF2 VARDEP = DEPT - DEP RR = RIN2 GO TO 2 END IF EF = VARDEP * RR DEP = DEPT RETURN ELSE IF(RR.EQ.RR1)THEN EFLIM=(X02-X01)*RIN1*RR2/(RR2-RIN1) RR = RIN1 GO TO 4 END IF IF(RR.EQ.RR2)THEN RR = RIN2 EFLIM=(X01-X02)*RIN2*RR1/(RR1-RIN2) GO TO 4 END IF END IF GO TO 3 END IF IF(IFLAG.EQ.4)THEN IF((VARDEP.GT.0.).AND.(RR.EQ.RIN1))THEN RR = RR1 GO TO 3 END IF IF((VARDEP.LT.0.).AND.(RR.EQ.RIN2))THEN RR = RR2 GO TO 3 END IF GO TO 4 END IF END IF C GO TO(1,2,3,4,5)IFLAG C C STADE ELASTIQUE C 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(DEP.GT.ULDEP1) IDEP = 1 IF(DEP.LT.ULDEP2) IDEP = -1 RETURN END IF IF(EF.GE.0.)THEN DEPMAX = DEP EFMAX = EF RR = RR1 ELSE DEPMIN = DEP EFMIN = EF RR = RR2 END IF C C DECHARGE SANS CHANGEMENT DE SENS C 3 IFLAG = 3 EFT1 = EF + VARDEP * RR IF((EF * EFT1).GT.0.)THEN IF(((EF * VARDEP).GT.0.).AND.(FINT.NE.0.))THEN IF(ABS(EFT1).LT.ABS(FINT))GO TO 31 DEP = DEP + (FINT-EF)/RR VARDEP = DEPT - DEP EF = FINT FINT = 0.0 IF(EF.GE.0.)THEN RR = RIN2 ELSE RR = RIN1 END IF GO TO 4 END IF IF(DEPT.GT.DEPMAX)THEN VARDEP = DEPT - DEPMAX DEP = DEPMAX EF = EFMAX RR = RIN1 GO TO 2 END IF IF(DEPT.LT.DEPMIN)THEN VARDEP = DEPT - DEPMIN DEP = DEPMIN EF = EFMIN RR = RIN2 GO TO 2 END IF EF = EF + VARDEP * RR DEP = DEPT RETURN END IF 31 DEP = DEP - EF / RR VARDEP = DEPT - DEP IF(EF.GT.0.)THEN IF(DEP.GT.X01)X01 = DEP EF = 0. RR = RIN1 EFLIM = (X02 - DEP) * RIN1 * RR2 / (RR2 - RIN1) GO TO 4 ELSE IF(EF.LT.0.)THEN IF(DEP.LT.X02)X02 = DEP EF = 0. RR = RIN2 EFLIM = (X01 - DEP) * RIN2 * RR1 / (RR1 - RIN2) GO TO 4 END IF C C DECHARGE APRES LE CHANGEMENT DE SENS C 4 IFLAG = 4 IF((EF * VARDEP).GE.0.)THEN EFT1 = EF + VARDEP * RR IF((EF * EFT1).LT.0.)THEN FINT = 0. IF(EF.GE.0.)THEN DEP = X02 RR = RR2 ELSE DEP = X01 RR = RR1 END IF VARDEP = DEPT - DEP EF = 0. GO TO 3 END IF IF(ABS(EFT1).GE.ABS(EFLIM))THEN FINT = 0. DEP = DEP + (EFLIM - EF) / RR VARDEP = DEPT - DEP EF = EFLIM IF(EFT1.GT.0.)THEN RR = RR1 ELSE RR = RR2 END IF GO TO 5 END IF EF = EF + VARDEP * RR DEP = DEPT RETURN END IF FINT = EF IF(EF.GE.0.)RR = RR1 IF(EF.LT.0.)RR = RR2 GO TO 3 C C DECHARGE APRES LE DEPASSEMENT DU FINT C 5 IFLAG = 5 IF(DEPT.GT.YLDEP1) THEN IF(DEPMAX.LT.YLDEP1) THEN DEPMAX = YLDEP1 EFMAX = YLEF1 END IF IF(DEPT.GT.DEPMAX) THEN VARDEP = DEPT - DEPMAX DEP = DEPMAX EF = EFMAX RR = RIN1 GO TO 2 END IF END IF IF(DEPT.LT.YLDEP2) THEN IF(DEPMIN.GT.YLDEP2) THEN DEPMIN = YLDEP2 EFMIN = YLEF2 END IF IF(DEPT.LT.DEPMIN) THEN VARDEP = DEPT - DEPMIN DEP = DEPMIN EF = EFMIN RR = RIN2 GO TO 2 END IF END IF EFT1 = EF + VARDEP * RR IF((EF * EFT1).LT.0.)THEN DEP = DEP - EF / RR VARDEP = DEPT - DEP IF(EF.GE.0.)THEN IF(DEP.GT.X01)X01 = DEP EF = 0. RR = RIN1 EFLIM = (X02 - DEP) * RIN1 * RR2 / (RR2 - RIN1) GO TO 4 ELSE IF(DEP.LT.X02)X02 = DEP EF = 0. RR = RIN2 EFLIM = (X01 - DEP) * RIN2 * RR1 / (RR1 - RIN2) GO TO 4 END IF END IF EF = EF + VARDEP * RR DEP = DEPT RETURN C END
© Cast3M 2003 - Tous droits réservés.
Mentions légales