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