Download dcmp.eso

Back to the list

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

© Cast3M 2003 - All rights reserved.
Disclaimer