Download dtai.eso

Back to the list

   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