1 : C DTAI SOURCE CHAT 05/01/12 22:56:51 5004 2 : C SUBRUTINE DTAI : APPLICATION D'UNE LOI DE COMPORTEMENT POUR DES 3 : C DEFORMATIONS DUES AUX CISAILLEMENT====================================================================== 4 : SUBROUTINE DTAI(IFLAG,IDEP,ELEF1,ELDEP1,ELEF2,ELDEP2, 5 : 1 YLEF1,YLDEP1,YLEF2,YLDEP2,ULEF1,ULDEP1,ULEF2, 6 : 2 ULDEP2,EF,VARDEP,DEP,DEPMAX, EFLIM, 7 : 3 DEPMIN,EFMAX,EFMIN,X01,X02,FINT,RR) 8 : C 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 X01 - DERNIERE INTERSECTION AVEC L'AXE OX DANS LA PARTIE + 31 : C X02 - DERNIERE INTERSECTION AVEC L'AXE OX DANS LA PARTIE - 32 : C FINT - EFFORT MAX. POUR LA DECHARGE AVEC UNE RIG. INELASTIQUE 33 : C IFLAG - FLAG POUR LE STADE DE COMPORTEMENT 34 : C REL - RIGIDITE ELASTIQUE COHERENTE AVEC LA MATRICE DE 35 : C RIGIDITE 36 : C REL1 - RIGIDITE ELASTIQUE DANS LE SENS + 37 : C REL2 - RIGIDITE ELASTIQUE DANS LE SENS - 38 : C RR1 - RIGIDITE SECANTE DANS LE SENS + 39 : C RR2 - RIGIDITE SECANTE DANS LE SENS - 40 : C RIN1 - RIGIDITE INELASTIQUE DANS LE SENS + 41 : C RIN2 - RIGIDITE INELASTIQUE DANS LE SENS - 42 : C DEPT - DEFORMATION TOTALE 43 : C RR - RIGIDITE POUR LE STADE DE COMPORTEMENT ACTUEL 44 : C ---------------------------------------------------------------------- 45 : C 46 : IMPLICIT INTEGER(I-N) 47 : IMPLICIT REAL*8(A-H,O-Z) 48 : C 49 : C INITIALISATION 50 : C 51 : REL = (ELEF1 - ELEF2) / (ELDEP1 - ELDEP2) 52 : C 53 : IF (ELDEP1.LT.YLDEP1) THEN 54 : REL1 = (YLEF1 - ELEF1) / (YLDEP1 - ELDEP1) 55 : ELSE 56 : REL1 = REL 57 : END IF 58 : C 59 : IF (ELDEP2.GT.YLDEP2) THEN 60 : REL2 = (YLEF2 - ELEF2) / (YLDEP2 - ELDEP2) 61 : ELSE 62 : REL2 = REL 63 : END IF 64 : C 65 : 66 : RIN1 = (ULEF1 - YLEF1) / (ULDEP1 - YLDEP1) 67 : RIN2 = (ULEF2 - YLEF2) / (ULDEP2 - YLDEP2) 68 : RR1 = (YLEF1 / YLDEP1) 69 : RR2 = (YLEF2 / YLDEP2) 70 : C 71 : IF(IFLAG.EQ.0)THEN 72 : IFLAG = 1 73 : RR = REL 74 : DEPMAX = ELDEP1 75 : EFMAX = ELEF1 76 : DEPMIN = ELDEP2 77 : EFMIN = ELEF2 78 : EFLIM = 0.0 79 : FINT = 0.0 80 : DEP = 0.0 81 : X01 = 0.0 82 : X02 = 0.0 83 : END IF 84 : C 85 : DEPT = DEP + VARDEP 86 : C 87 : C CAS EF = 0 88 : C 89 : IF(EF.EQ.0.)THEN 90 : IF(IFLAG.EQ.1)THEN 91 : IF(VARDEP.GT.0.) GO TO 11 92 : IF(VARDEP.LT.0.) GO TO 12 93 : END IF 94 : IF(IFLAG.EQ.3)THEN 95 : IF(((RR.EQ.RR1).AND.(VARDEP.GE.0.)).OR. 96 : 1 ((RR.EQ.RR2).AND.(VARDEP.LE.0.)))THEN 97 : IF(DEPT.GT.YLDEP1)THEN 98 : DEP = YLDEP1 99 : EF = YLEF1 100 : VARDEP = DEPT - DEP 101 : RR = RIN1 102 : GO TO 2 103 : END IF 104 : IF(DEPT.LT.YLDEP2)THEN 105 : DEP = YLDEP2 106 : EF = YLEF2 107 : VARDEP = DEPT - DEP 108 : RR = RIN2 109 : GO TO 2 110 : END IF 111 : EF = VARDEP * RR 112 : DEP = DEPT 113 : RETURN 114 : ELSE 115 : IF(RR.EQ.RR1)THEN 116 : EFLIM=(X02-X01)*RIN1*RR2/(RR2-RIN1) 117 : RR = RIN1 118 : GO TO 4 119 : END IF 120 : IF(RR.EQ.RR2)THEN 121 : RR = RIN2 122 : EFLIM=(X01-X02)*RIN2*RR1/(RR1-RIN2) 123 : GO TO 4 124 : END IF 125 : END IF 126 : GO TO 3 127 : END IF 128 : IF(IFLAG.EQ.4)THEN 129 : IF((VARDEP.GT.0.).AND.(RR.EQ.RIN1))THEN 130 : RR = RR1 131 : GO TO 3 132 : END IF 133 : IF((VARDEP.LT.0.).AND.(RR.EQ.RIN2))THEN 134 : RR = RR2 135 : GO TO 3 136 : END IF 137 : GO TO 4 138 : END IF 139 : END IF 140 : C 141 : GO TO(1,2,3,4,5)IFLAG 142 : C 143 : C STADE ELASTIQUE 144 : C 145 : C 146 : 1 IFLAG = 1 147 : 11 IF(EF.GE.0)THEN 148 : IF(DEPT.GT.YLDEP1)THEN 149 : DEPMAX = YLDEP1 150 : EFMAX = YLEF1 151 : VARDEP = DEPT - YLDEP1 152 : DEP = YLDEP1 153 : EF = YLEF1 154 : RR = RIN1 155 : GO TO 2 156 : ELSE 157 : IF ((ELDEP1.LT.YLDEP1).AND.(DEPT.GE.0.))THEN 158 : IF (VARDEP.GE.0.)THEN 159 : IF ((DEP.GE.DEPMAX).OR.(DEPMAX.EQ.ELDEP1)) THEN 160 : IF ((DEP.LE.ELDEP1).AND.(DEPT.LE.ELDEP1))THEN 161 : RR=REL 162 : ELSE IF ((DEP.GE.ELDEP1).AND.(DEPT.GE.ELDEP1))THEN 163 : RR=REL1 164 : ELSE IF ((DEP.LE.ELDEP1).AND.(DEPT.GE.ELDEP1))THEN 165 : VARDEP=DEPT-ELDEP1 166 : EF=ELEF1 167 : DEP=ELDEP1 168 : RR=REL1 169 : ENDIF 170 : ELSE 171 : IF (DEPT.GE.DEPMAX) THEN 172 : VARDEP=DEPT-DEPMAX 173 : EF=EFMAX 174 : DEP=DEPMAX 175 : RR=REL1 176 : ELSE 177 : RR=(EFMAX/DEPMAX) 178 : ENDIF 179 : ENDIF 180 : ELSE 181 : IF (DEP.GT.DEPMAX) THEN 182 : DEPMAX=DEP 183 : EFMAX=EF 184 : ENDIF 185 : IF (DEPMAX.EQ.ELDEP1)THEN 186 : RR=REL 187 : ELSE 188 : RR=(EFMAX/DEPMAX) 189 : ENDIF 190 : ENDIF 191 : EF = EF + VARDEP * RR 192 : DEP = DEPT 193 : RETURN 194 : END IF 195 : END IF 196 : IF(DEPT.LT.0.) THEN 197 : DEP = 0. 198 : VARDEP = DEPT 199 : EF = 0. 200 : RR = REL 201 : GO TO 12 202 : END IF 203 : EF = EF + VARDEP * RR 204 : DEP = DEPT 205 : RETURN 206 : END IF 207 : 12 IF(EF.LE.0.)THEN 208 : IF(DEPT.LT.YLDEP2) THEN 209 : DEPMIN = YLDEP2 210 : EFMIN = YLEF2 211 : VARDEP = DEPT - YLDEP2 212 : DEP = YLDEP2 213 : EF = YLEF2 214 : RR = RIN2 215 : GO TO 2 216 : ELSE 217 : IF ((ELDEP2.GT.YLDEP2).AND.(DEPT.LE.0.))THEN 218 : IF (VARDEP.LE.0.)THEN 219 : IF ((DEP.LE.DEPMIN).OR.(DEPMIN.EQ.ELDEP2)) THEN 220 : IF ((DEP.GE.ELDEP2).AND.(DEPT.GE.ELDEP2))THEN 221 : RR=REL 222 : ELSE IF ((DEP.LE.ELDEP2).AND.(DEPT.LE.ELDEP2))THEN 223 : RR=REL2 224 : ELSE IF ((DEP.GE.ELDEP2).AND.(DEPT.LE.ELDEP2))THEN 225 : VARDEP=DEPT-ELDEP2 226 : EF=ELEF2 227 : DEP=ELDEP2 228 : RR=REL2 229 : ENDIF 230 : ELSE 231 : IF (DEPT.LE.DEPMIN) THEN 232 : VARDEP=DEPT-DEPMIN 233 : EF=EFMIN 234 : DEP=DEPMIN 235 : RR=REL2 236 : ELSE 237 : RR=(EFMIN/DEPMIN) 238 : ENDIF 239 : ENDIF 240 : ELSE 241 : IF (DEP.LT.DEPMIN)THEN 242 : DEPMIN=DEP 243 : EFMIN=EF 244 : ENDIF 245 : IF (DEPMIN.EQ.ELDEP2)THEN 246 : RR=REL 247 : ELSE 248 : RR=(EFMIN/DEPMIN) 249 : ENDIF 250 : ENDIF 251 : EF = EF + VARDEP * RR 252 : DEP = DEPT 253 : RETURN 254 : END IF 255 : END IF 256 : IF (DEPT.GT.0.) THEN 257 : DEP = 0. 258 : VARDEP = DEPT 259 : EF = 0. 260 : RR = REL 261 : GO TO 11 262 : END IF 263 : EF = EF + VARDEP * RR 264 : DEP = DEPT 265 : RETURN 266 : END IF 267 : C 268 : C STADE PLASTIQUE 269 : C 270 : 2 IFLAG = 2 271 : IF((EF * VARDEP).GE.0.)THEN 272 : EF = EF + VARDEP * RR 273 : DEP = DEPT 274 : IF(DEP.GT.ULDEP1) IDEP = 1 275 : IF(DEP.LT.ULDEP2) IDEP = -1 276 : RETURN 277 : END IF 278 : IF(EF.GE.0.)THEN 279 : DEPMAX = DEP 280 : EFMAX = EF 281 : RR = RR1 282 : ELSE 283 : DEPMIN = DEP 284 : EFMIN = EF 285 : RR = RR2 286 : END IF 287 : C 288 : C DECHARGE SANS CHANGEMENT DE SENS 289 : C 290 : 3 IFLAG = 3 291 : EFT1 = EF + VARDEP * RR 292 : IF((EF * EFT1).GT.0.)THEN 293 : IF(((EF * VARDEP).GT.0.).AND.(FINT.NE.0.))THEN 294 : IF(ABS(EFT1).LT.ABS(FINT))GO TO 31 295 : DEP = DEP + (FINT-EF)/RR 296 : VARDEP = DEPT - DEP 297 : EF = FINT 298 : FINT = 0.0 299 : IF(EF.GE.0.)THEN 300 : RR = RIN2 301 : ELSE 302 : RR = RIN1 303 : END IF 304 : GO TO 4 305 : END IF 306 : IF(DEPT.GT.DEPMAX)THEN 307 : VARDEP = DEPT - DEPMAX 308 : DEP = DEPMAX 309 : EF = EFMAX 310 : RR = RIN1 311 : GO TO 2 312 : END IF 313 : IF(DEPT.LT.DEPMIN)THEN 314 : VARDEP = DEPT - DEPMIN 315 : DEP = DEPMIN 316 : EF = EFMIN 317 : RR = RIN2 318 : GO TO 2 319 : END IF 320 : EF = EF + VARDEP * RR 321 : DEP = DEPT 322 : RETURN 323 : END IF 324 : 31 DEP = DEP - EF / RR 325 : VARDEP = DEPT - DEP 326 : IF(EF.GT.0.)THEN 327 : IF(DEP.GT.X01)X01 = DEP 328 : EF = 0. 329 : RR = RIN1 330 : EFLIM = (X02 - DEP) * RIN1 * RR2 / (RR2 - RIN1) 331 : GO TO 4 332 : ELSE IF(EF.LT.0.)THEN 333 : IF(DEP.LT.X02)X02 = DEP 334 : EF = 0. 335 : RR = RIN2 336 : EFLIM = (X01 - DEP) * RIN2 * RR1 / (RR1 - RIN2) 337 : GO TO 4 338 : END IF 339 : C 340 : C DECHARGE APRES LE CHANGEMENT DE SENS 341 : C 342 : 4 IFLAG = 4 343 : IF((EF * VARDEP).GE.0.)THEN 344 : EFT1 = EF + VARDEP * RR 345 : IF((EF * EFT1).LT.0.)THEN 346 : FINT = 0. 347 : IF(EF.GE.0.)THEN 348 : DEP = X02 349 : RR = RR2 350 : ELSE 351 : DEP = X01 352 : RR = RR1 353 : END IF 354 : VARDEP = DEPT - DEP 355 : EF = 0. 356 : GO TO 3 357 : END IF 358 : IF(ABS(EFT1).GE.ABS(EFLIM))THEN 359 : FINT = 0. 360 : DEP = DEP + (EFLIM - EF) / RR 361 : VARDEP = DEPT - DEP 362 : EF = EFLIM 363 : IF(EFT1.GT.0.)THEN 364 : RR = RR1 365 : ELSE 366 : RR = RR2 367 : END IF 368 : GO TO 5 369 : END IF 370 : EF = EF + VARDEP * RR 371 : DEP = DEPT 372 : RETURN 373 : END IF 374 : FINT = EF 375 : IF(EF.GE.0.)RR = RR1 376 : IF(EF.LT.0.)RR = RR2 377 : GO TO 3 378 : C 379 : C DECHARGE APRES LE DEPASSEMENT DU FINT 380 : C 381 : 5 IFLAG = 5 382 : IF(DEPT.GT.YLDEP1) THEN 383 : IF(DEPMAX.LT.YLDEP1) THEN 384 : DEPMAX = YLDEP1 385 : EFMAX = YLEF1 386 : END IF 387 : IF(DEPT.GT.DEPMAX) THEN 388 : VARDEP = DEPT - DEPMAX 389 : DEP = DEPMAX 390 : EF = EFMAX 391 : RR = RIN1 392 : GO TO 2 393 : END IF 394 : END IF 395 : IF(DEPT.LT.YLDEP2) THEN 396 : IF(DEPMIN.GT.YLDEP2) THEN 397 : DEPMIN = YLDEP2 398 : EFMIN = YLEF2 399 : END IF 400 : IF(DEPT.LT.DEPMIN) THEN 401 : VARDEP = DEPT - DEPMIN 402 : DEP = DEPMIN 403 : EF = EFMIN 404 : RR = RIN2 405 : GO TO 2 406 : END IF 407 : END IF 408 : EFT1 = EF + VARDEP * RR 409 : IF((EF * EFT1).LT.0.)THEN 410 : DEP = DEP - EF / RR 411 : VARDEP = DEPT - DEP 412 : IF(EF.GE.0.)THEN 413 : IF(DEP.GT.X01)X01 = DEP 414 : EF = 0. 415 : RR = RIN1 416 : EFLIM = (X02 - DEP) * RIN1 * RR2 / (RR2 - RIN1) 417 : GO TO 4 418 : ELSE 419 : IF(DEP.LT.X02)X02 = DEP 420 : EF = 0. 421 : RR = RIN2 422 : EFLIM = (X01 - DEP) * RIN2 * RR1 / (RR1 - RIN2) 423 : GO TO 4 424 : END IF 425 : END IF 426 : EF = EF + VARDEP * RR 427 : DEP = DEPT 428 : RETURN 429 : C 430 : END 431 :
© Cast3M 2003 - All rights reserved.
Disclaimer