1 : C DTAK SOURCE CHAT 05/01/12 22:57:00 5004 2 : C SUBRUTINE DTAK : APPLICATION D'UNE LOI DE COMPORTEMENT POUR DES 3 : C DEFORMATIONS DUES A LA FLEXION 4 : C====================================================================== 5 : SUBROUTINE DTAK(IFLAG,IDEP,ELEF1,ELDEP1,ELEF2,ELDEP2, 6 : 1 YLEF1,YLDEP1,YLEF2,YLDEP2,ULEF1,ULDEP1, 7 : 2 ULEF2,ULDEP2,EF,VARDEP,DEP,DEPE, 8 : 3 DEPMAX,DEPMIN,EFMAX,EFMIN,X0,RR) 9 : C 10 : C ===================================================================== 11 : C ELEF1 - EFFORT MAX. ELASTIQUE DANS LE SENS + 12 : C ELDEP1 - DEFORMATION MAX. ELASTIQUE DANS LE SENS + 13 : C ELEF1 - EFFORT MAX. ELASTIQUE DANS LE SENS - 14 : C ELDEP1 - DEFORMATION MAX. ELASTIQUE DANS LE SENS - 15 : C YLEF1 - EFFORT MAX. LINEAIRE DANS LE SENS + 16 : C YLDEP1 - DEFORMATION MAX. LINEAIRE DANS LE SENS + 17 : C YLEF1 - EFFORT MAX. LINEAIRE DANS LE SENS - 18 : C YLDEP1 - DEFORMATION MAX.LINEAIRE DANS LE SENS - 19 : C ULEF1 - EFFORT MAX. PLASTIQUE DANS LE SENS + 20 : C ULDEP1 - DEFORMATION MAX. PLASTIQUE DANS LE SENS + 21 : C ULEF2 - EFFORT MAX. PLASTIQUE DANS LE SENS - 22 : C ULDEP2 - DEFORMATION MAX. PLASTIQUE DANS LE SENS - 23 : C EF - EFFORT DU PAS PRECEDENT 24 : C VARDEP - L'INCREMENT DE DEFORMATION 25 : C DEP - DEFORMATION DU PAS PRECEDENT 26 : C DEPMAX - DEFORMATION MAX. + 27 : C DEPMIN - DEFORMATION MAX. - 28 : C EFMAX - EFFORT MAX. + 29 : C EFMIN - EFFORT MAX. - 30 : C X0 - DERNIERE INTERSECTION AVEC L'AXE OX 31 : C IFLAG - FLAG POUR LE STADE DE COMPORTEMENT 32 : C REL - RIGIDITE ELASTIQUE COHERENTE AVEC LA MATRICE DE 33 : C RIGIDITE 34 : C REL1 - RIGIDITE ELASTIQUE DANS LE SENS + 35 : C REL2 - RIGIDITE ELASTIQUE DANS LE SENS - 36 : C RR1 - RIGIDITE SECANTE DANS LE SENS + 37 : C RR2 - RIGIDITE SECANTE DANS LE SENS - 38 : C RIN1 - RIGIDITE INELASTIQUE DANS LE SENS + 39 : C RIN2 - RIGIDITE INELASTIQUE DANS LE SENS - 40 : C DEPT - DEFORMATION TOTALE 41 : C RR - RIGIDITATE POUR LE STADE DE COMPORTEMENT ACTUEL 42 : C 43 : C ---------------------------------------------------------------------- 44 : C 45 : IMPLICIT INTEGER(I-N) 46 : IMPLICIT REAL*8(A-H,O-Z) 47 : C 48 : C INITIALISATION 49 : C 50 : REL = (ELEF1 - ELEF2)/(ELDEP1 - ELDEP2) 51 : C 52 : IF (ELDEP1.LT.YLDEP1) THEN 53 : REL1 = (YLEF1 - ELEF1)/(YLDEP1 - ELDEP1) 54 : ELSE 55 : REL1 = REL 56 : END IF 57 : C 58 : IF (ELDEP2.GT.YLDEP2) THEN 59 : REL2 = (YLEF2 - ELEF2)/(YLDEP2 - ELDEP2) 60 : ELSE 61 : REL2 = REL 62 : END IF 63 : C 64 : RIN1 = (ULEF1 - YLEF1) / (ULDEP1 - YLDEP1) 65 : RIN2 = (ULEF2 - YLEF2) / (ULDEP2 - YLDEP2) 66 : RR1 = (YLEF1 / YLDEP1) 67 : RR2 = (YLEF2 / YLDEP2) 68 : C 69 : IF(IFLAG.EQ.0) THEN 70 : IFLAG = 1 71 : RR = REL 72 : DEPMAX = ELDEP1 73 : EFMAX = ELEF1 74 : DEPMIN = ELDEP2 75 : EFMIN = ELEF2 76 : DEP = 0.0 77 : X0 = 0.0 78 : END IF 79 : C 80 : DEPT = DEP + VARDEP 81 : C 82 : C CAS EF = 0 83 : C 84 : IF(EF.EQ.0.)THEN 85 : IF(IFLAG.EQ.1)THEN 86 : IF(DEPT.GT.0.)GO TO 11 87 : IF(DEPT.LT.0.)GO TO 12 88 : RETURN 89 : END IF 90 : IF((VARDEP.GT.0.).AND.(RR.EQ.(EFMIN / (DEPMIN - X0))))THEN 91 : RR = EFMAX / (DEPMAX - X0) 92 : GO TO 3 93 : ELSE IF((VARDEP.LT.0.).AND.(RR.EQ.(EFMAX/(DEPMAX-X0))))THEN 94 : RR = EFMIN / (DEPMIN - X0) 95 : GO TO 3 96 : END IF 97 : IF(IFLAG.EQ.3)GO TO 31 98 : END IF 99 : C 100 : GO TO(1,2,3,4),IFLAG 101 : C 102 : C STADE ELASTIQUE 103 : C 104 : 1 IFLAG = 1 105 : 11 IF(EF.GE.0)THEN 106 : IF(DEPT.GT.YLDEP1)THEN 107 : DEPMAX = YLDEP1 108 : EFMAX = YLEF1 109 : VARDEP = DEPT - YLDEP1 110 : DEP = YLDEP1 111 : EF = YLEF1 112 : RR = RIN1 113 : GO TO 2 114 : ELSE 115 : IF ((ELDEP1.LT.YLDEP1).AND.(DEPT.GE.0.))THEN 116 : IF (VARDEP.GE.0.)THEN 117 : IF ((DEP.GE.DEPMAX).OR.(DEPMAX.EQ.ELDEP1)) THEN 118 : IF ((DEP.LE.ELDEP1).AND.(DEPT.LE.ELDEP1))THEN 119 : RR=REL 120 : ELSE IF ((DEP.GE.ELDEP1).AND.(DEPT.GE.ELDEP1))THEN 121 : RR=REL1 122 : ELSE IF ((DEP.LE.ELDEP1).AND.(DEPT.GE.ELDEP1))THEN 123 : VARDEP=DEPT-ELDEP1 124 : EF=ELEF1 125 : DEP=ELDEP1 126 : RR=REL1 127 : ENDIF 128 : ELSE 129 : IF (DEPT.GE.DEPMAX) THEN 130 : VARDEP=DEPT-DEPMAX 131 : EF=EFMAX 132 : DEP=DEPMAX 133 : RR=REL1 134 : ELSE 135 : RR=(EFMAX/DEPMAX) 136 : ENDIF 137 : ENDIF 138 : ELSE 139 : IF (DEP.GT.DEPMAX) THEN 140 : DEPMAX=DEP 141 : EFMAX=EF 142 : ENDIF 143 : IF (DEPMAX.EQ.ELDEP1)THEN 144 : RR=REL 145 : ELSE 146 : RR=(EFMAX/DEPMAX) 147 : ENDIF 148 : ENDIF 149 : EF = EF + VARDEP * RR 150 : DEP = DEPT 151 : RETURN 152 : END IF 153 : END IF 154 : IF(DEPT.LT.0.) THEN 155 : DEP = 0. 156 : VARDEP = DEPT 157 : EF = 0. 158 : RR = REL 159 : GO TO 12 160 : END IF 161 : EF = EF + VARDEP * RR 162 : DEP = DEPT 163 : RETURN 164 : END IF 165 : 12 IF(EF.LE.0.)THEN 166 : IF(DEPT.LT.YLDEP2) THEN 167 : DEPMIN = YLDEP2 168 : EFMIN = YLEF2 169 : VARDEP = DEPT - YLDEP2 170 : DEP = YLDEP2 171 : EF = YLEF2 172 : RR = RIN2 173 : GO TO 2 174 : ELSE 175 : IF ((ELDEP2.GT.YLDEP2).AND.(DEPT.LE.0.))THEN 176 : IF (VARDEP.LE.0.)THEN 177 : IF ((DEP.LE.DEPMIN).OR.(DEPMIN.EQ.ELDEP2)) THEN 178 : IF ((DEP.GE.ELDEP2).AND.(DEPT.GE.ELDEP2))THEN 179 : RR=REL 180 : ELSE IF ((DEP.LE.ELDEP2).AND.(DEPT.LE.ELDEP2))THEN 181 : RR=REL2 182 : ELSE IF ((DEP.GE.ELDEP2).AND.(DEPT.LE.ELDEP2))THEN 183 : VARDEP=DEPT-ELDEP2 184 : EF=ELEF2 185 : DEP=ELDEP2 186 : RR=REL2 187 : ENDIF 188 : ELSE 189 : IF (DEPT.LE.DEPMIN) THEN 190 : VARDEP=DEPT-DEPMIN 191 : EF=EFMIN 192 : DEP=DEPMIN 193 : RR=REL2 194 : ELSE 195 : RR=(EFMIN/DEPMIN) 196 : ENDIF 197 : ENDIF 198 : ELSE 199 : IF (DEP.LT.DEPMIN)THEN 200 : DEPMIN=DEP 201 : EFMIN=EF 202 : ENDIF 203 : IF (DEPMIN.EQ.ELDEP2)THEN 204 : RR=REL 205 : ELSE 206 : RR=(EFMIN/DEPMIN) 207 : ENDIF 208 : ENDIF 209 : EF = EF + VARDEP * RR 210 : DEP = DEPT 211 : RETURN 212 : END IF 213 : END IF 214 : IF (DEPT.GT.0.) THEN 215 : DEP = 0. 216 : VARDEP = DEPT 217 : EF = 0. 218 : RR = REL 219 : GO TO 11 220 : END IF 221 : EF = EF + VARDEP * RR 222 : DEP = DEPT 223 : RETURN 224 : END IF 225 : C 226 : C STADE PLASTIQUE 227 : C 228 : 2 IFLAG = 2 229 : IF((EF * VARDEP).GE.0.) THEN 230 : EF = EF + VARDEP * RR 231 : DEP = DEPT 232 : IF(EF.GT.ULEF1) IDEP = 1 233 : IF(EF.LT.ULEF2) IDEP = -1 234 : RETURN 235 : END IF 236 : IF(EF.GE.0.)THEN 237 : DEPMAX = DEP 238 : EFMAX = EF 239 : RR = SQRT(YLDEP1 / DEP) * RR1 240 : ELSE 241 : DEPMIN = DEP 242 : EFMIN = EF 243 : RR = SQRT(YLDEP2 / DEPMIN) * RR2 244 : END IF 245 : C 246 : C DECHARGE SANS CHANGEMENT DE SENS 247 : C 248 : 3 IFLAG = 3 249 : IF(EF.EQ.0.)GO TO 4 250 : IF((EF * VARDEP).GT.0.)THEN 251 : IF(EF.GT.0.)RR = (EFMAX - EF) / (DEPMAX - DEP) 252 : IF(EF.LT.0.)RR = (EFMIN - EF) / (DEPMIN - DEP) 253 : GO TO 4 254 : END IF 255 : EFT1 = EF + VARDEP * RR 256 : IF((EFT1 * EF).GT.0.0)THEN 257 : EF = EFT1 258 : DEP = DEPT 259 : RETURN 260 : END IF 261 : 31 X0 = DEP - EF / RR 262 : IF(VARDEP.GT.0.)RR = EFMAX / (DEPMAX - X0) 263 : IF(VARDEP.LT.0.)RR = EFMIN / (DEPMIN - X0) 264 : DEP = X0 265 : VARDEP = DEPT - DEP 266 : EF = 0. 267 : IF(VARDEP.EQ.0.)RETURN 268 : C 269 : C DECHARGE APRES LE CHANGEMENT DE SENS 270 : C 271 : 4 IFLAG = 4 272 : IF((EF * VARDEP).GE.0.)THEN 273 : IF(DEPT.GT.DEPMAX)THEN 274 : VARDEP = DEPT - DEPMAX 275 : DEP = DEPMAX 276 : EF = EFMAX 277 : IF(DEPMAX.GT.YLDEP1)THEN 278 : RR = RIN1 279 : GO TO 2 280 : ELSE 281 : RR = (EFMAX/DEPMAX) 282 : GO TO 11 283 : END IF 284 : END IF 285 : IF(DEPT.LT.DEPMIN)THEN 286 : VARDEP = DEPT - DEPMIN 287 : DEP = DEPMIN 288 : EF = EFMIN 289 : IF(DEPMIN.LT.YLDEP2)THEN 290 : RR = RIN2 291 : GO TO 2 292 : ELSE 293 : RR = (EFMIN/DEPMIN) 294 : GO TO 11 295 : END IF 296 : END IF 297 : EF = EF + VARDEP * RR 298 : DEP = DEPT 299 : RETURN 300 : END IF 301 : IF(EF.GE.0.)RR = SQRT(YLDEP1 / DEPMAX) * RR1 302 : IF(EF.LT.0.)RR = SQRT(YLDEP2 / DEPMIN) * RR2 303 : GO TO 3 304 : END 305 : 306 :
© Cast3M 2003 - All rights reserved.
Disclaimer