1 : C CINFIL SOURCE PV 11/03/07 21:15:30 6885 2 : C INFILL SOURCE KK2000 00/07/25 21:21:27 3913 3 : C====================================================================== 4 : C INFILL - D. COMBESCURE et P. PEGON - ELSA- 1996 5 : C====================================================================== 6 : C 7 : C MODELE GLOBAL DE DIAGONALE POUR LES MURS DE REMPLISSAGE 8 : C (Sur des elements de barre uniquement) 9 : C 10 : SUBROUTINE CINFIL(wrk52,wrk53,wrk54,WRK2,NCURV) 11 : c SUBROUTINE INFILL(WRK0,WRK1,WRK2,NCURV,KERRE) 12 : IMPLICIT INTEGER(I-N) 13 : IMPLICIT REAL*8(A-H,O-Z) 14 : C 15 : C======================================================================= 16 : C CETTE ROUTINE EST APPELE DANS ECO100 17 : C 18 : C 19 : C WRK0 = Segment materiaux 20 : C WRK1 = Segment contraintes 21 : C WRK2 = Segment courbe 22 : C NCURV = Longueur courbe 23 : C 24 : C====================================================================== 25 : C xcarb = Section de la barre 26 : C DEPST = Increment de deformation axiale 27 : C SIG0 = Contrainte initiale 28 : C VAR0 = Variables internes initiales 29 : C SIGF = Contrainte finale 30 : C VARF = Variables internes finales 31 : C DEFP = Deformation plastique 32 : C 33 : C======================================================================= 34 : C 35 : PARAMETER (XZER=0.D0,UN=1.D0,EPSILO=1.D-10) 36 : C 37 : C======================================================================= 38 : C VARIABLES ET SEGMENTS NECESSAIRES 39 : C========================================================================= 40 : -INC CCOPTIO 41 : -INC DECHE 42 : 43 : C Segment de la courbe 44 : SEGMENT WRK2 45 : REAL*8 TRAC(LTRAC) 46 : ENDSEGMENT 47 : C 48 : C Lecture materiau 49 : C 50 : YOUN = XMAT(1) 51 : XDELA = XMAT(5) 52 : XDMAX = XMAT(6) 53 : XBETA = XMAT(7) 54 : XGAMM = XMAT(8) 55 : XGAMP = XMAT(9) 56 : XALPH = XMAT(10) 57 : XTETA = XMAT(11) 58 : C+TEST 59 : C XNETA = XMAT(12) 60 : C+TEST 61 : XSECT = xcarb(1) 62 : YOUN = YOUN*XSECT 63 : C 64 : C Lecture variables internes 65 : C 66 : XDAM = VAR0(1) 67 : XDEPM = -VAR0(2) 68 : XDEPA = -VAR0(3) 69 : XDEPI = -VAR0(4) 70 : XDEPC = -VAR0(5) 71 : ICAS = nint(VAR0(6)) 72 : C 73 : XDDEP = -DEPST(1) 74 : XFOR0 = -SIG0(1) 75 : XDEP0 = XDEPA + (XFOR0/((UN - XDAM)*YOUN)) 76 : XDEPF = XDEP0 + XDDEP 77 : C 78 : C Fin de la lecture des variables et caracteristiques necessaires 79 : C 80 : 81 : C Quelques calculs preliminairesC 82 : XDEGRA = (UN - XTETA)*DEXP(-XALPH*XDEPC) + XTETA 83 : C+TEST 84 : C XDEPMB = (UN-XNETA)*XDEPM 85 : C+TEST 86 : XDEPMB = XDEPM 87 : C 87 : CALL VALINF(XDEPMB,XDEGRA,TRAC(1),NCURV,XZER,XFMAC,KERRE) 88 : IF (ABS(XDEPMB).LE.EPSILO) THEN 89 : XFELC = XDEGRA*YOUN*XDELA 90 : XPEN = (UN - (XFMAC/XFELC))/ 91 : &(UN - ((UN/(UN - XDMAX))*(XFMAC/XFELC))) 92 : XFMAX = XFELC*( UN - XPEN )/( UN - (XPEN/(UN - XDAM))) 93 : ELSE 94 : XFMAX = XFMAC 95 : ENDIF 96 : XFPIN = XBETA*XFMAX 97 : C+TEST 98 : XDEPIN = XDEPMB + (XFPIN/((UN - XDAM)*YOUN)) 99 : XDEPMX = XDEPMB + (XFMAX/((UN - XDAM)*YOUN)) 100 : C+TEST 101 : C 102 : C================================================================== 103 : C 104 : C DRIVER 105 : C 106 : C================================================================== 107 : IF (XDDEP.GE.XZER) THEN 108 : IF ((ICAS.EQ.1).OR.(ICAS.EQ.0)) THEN 109 : GOTO 1000 110 : ELSEIF (ICAS.EQ.11) THEN 111 : GOTO 2100 112 : ELSEIF (ICAS.EQ.12) THEN 113 : GOTO 2200 114 : ELSEIF (ICAS.EQ.13) THEN 115 : GOTO 2300 116 : ELSEIF (ICAS.EQ.14) THEN 117 : GOTO 2400 118 : ELSEIF (ICAS.EQ.21) THEN 119 : XDLIM = XDEPIN 120 : IF (XDEP0.GE.XDLIM) THEN 121 : GOTO 2400 122 : ELSE 123 : GOTO 2300 124 : ENDIF 125 : ELSEIF (ICAS.EQ.22) THEN 126 : IF (XDEP0.GE.XDEPI) THEN 127 : GOTO 2300 128 : ELSE 129 : GOTO 2100 130 : ENDIF 131 : ELSE 132 : KERRE = 99 133 : GOTO 9999 134 : ENDIF 135 : ELSE 136 : IF ((ICAS.EQ.0).OR.(ICAS.EQ.22).OR.(ICAS.EQ.11)) THEN 137 : GOTO 3200 138 : ELSEIF ((ICAS.EQ.21).OR.(ICAS.EQ.1).OR.(ICAS.EQ.13) 139 : &.OR.(ICAS.EQ.12).OR.(ICAS.EQ.14)) THEN 140 : GOTO 3100 141 : ELSE 142 : KERRE = 99 143 : GOTO 9999 144 : ENDIF 145 : ENDIF 146 : C========================================================== 147 : C CAS A - Courbe de simple charge -ICAS=1 148 : C========================================================== 149 : 1000 CONTINUE 149 : CALL VALINF(XZER,XDEGRA,TRAC(1),NCURV,XZER,XFMAC,KERRE) 150 : XDMAC = XFMAC/((UN - XDMAX)*YOUN) 151 : XFELC = XDEGRA*YOUN*XDELA 152 : XDEPMA = XFMAC/((UN - XDMAX)*YOUN) 153 : XDEPEL = XFELC/YOUN 154 : IF (XDEPF.LE.XDEPMA) THEN 155 : IF (XDEPF.LE.XDEPEL) THEN 156 : XFORF = YOUN*XDEPF 157 : XDAM = XZER 158 : ELSE 159 : XFORF= XFELC + ((XFMAC - XFELC) 160 : &/(XDEPMA - XDEPEL))*(XDEPF - XDEPEL) 161 : XDAM = UN - (XFORF/(XDEPF*YOUN)) 162 : ENDIF 163 : ELSE 164 : YOUNF = (UN - XDMAX)*YOUN 164 : CALL VALINF(XDEPF,XDEGRA,TRAC(1),NCURV,YOUNF,XFORF,KERRE) 165 : XDAM = XDMAX 166 : XDEPA = XDEPF - (XFORF/YOUNF) 167 : XDEPI = XDEPA 168 : IF (XDEPM.LE.XDEPA) THEN 169 : XDEPM = XDEPA 170 : ENDIF 171 : ENDIF 172 : ICAS = 1 173 : GOTO 9999 174 : C 175 : C========================================================== 176 : C CAS C1 - Courbe de recharge avec glissement -ICAS=11 177 : C========================================================== 178 : 2100 CONTINUE 179 : XDLIM = XDEPI 180 : C 181 : IF (XDEPF.LE.XDLIM) THEN 182 : XDERES = XZER 183 : XDELOC = XDDEP 184 : ELSE 185 : XDELOC = XDLIM - XDEP0 186 : XDERES = XDDEP - XDELOC 187 : ENDIF 188 : C 189 : XKKK = XZER 190 : XFORF = XFOR0 + (XKKK*XDELOC) 191 : XDEPA = XDEP0 + XDELOC 192 : C 193 : IF (XDERES.EQ.XZER) THEN 194 : ICAS = 11 195 : GOTO 9999 196 : ELSE 197 : XFOR0 = XFORF 198 : XDEP0 = XDLIM 199 : XDDEP = XDERES 200 : GOTO 2200 201 : ENDIF 202 : C 203 : C========================================================== 204 : C CAS C2 - Courbe de recharge avec pincement -ICAS=12 205 : C========================================================== 206 : 2200 CONTINUE 207 : XDLIM = XDEPIN 208 : C 209 : IF (XDEPF.LE.XDLIM) THEN 210 : XDERES = XZER 211 : XDELOC = XDDEP 212 : ELSE 213 : XDELOC = XDLIM - XDEP0 214 : XDERES = XDDEP - XDELOC 215 : ENDIF 216 : C 217 : IF (ABS(XDEPIN-XDEPI).LE.EPSILO) THEN 218 : XKKK = XZER 219 : ELSE 220 : XKKK = (XFPIN/(XDEPIN - XDEPI)) 221 : ENDIF 222 : XFORF = XFOR0 + (XKKK*XDELOC) 223 : XDEPA = XDEP0 + XDELOC - (XFORF/((UN - XDAM)*YOUN)) 224 : IF (XDERES.EQ.XZER) THEN 225 : ICAS = 12 226 : GOTO 9999 227 : ELSE 228 : XFOR0 = XFORF 229 : XDEP0 = XDLIM 230 : XDDEP = XDERES 231 : GOTO 2400 232 : ENDIF 233 : C 234 : C========================================================== 235 : C CAS C2bis - Courbe de recharge petit cycle -ICAS=13 236 : C========================================================== 237 : 2300 CONTINUE 238 : IF (ABS(XDEPMB-XDEPI).GT.EPSILO) THEN 239 : XDLIM = XDEPA + ((XFPIN/((UN - XDAM)*YOUN)) 240 : &/(XDEPMB - XDEPI))*(XDEPA - XDEPI) 241 : ELSE 242 : XDLIM = XDEPIN 243 : ENDIF 244 : C 245 : IF (XDEPF.LE.XDLIM) THEN 246 : XDERES = XZER 247 : XDELOC = XDDEP 248 : ELSE 249 : XDELOC = XDLIM - XDEP0 250 : XDERES = XDDEP - XDELOC 251 : ENDIF 252 : C 253 : XKKK = (UN - XDAM)*YOUN 254 : XFORF = XFOR0 + (XKKK*XDELOC) 255 : C 256 : IF (XDERES.EQ.XZER) THEN 257 : ICAS = 13 258 : GOTO 9999 259 : ELSE 260 : XFOR0 = XFORF 261 : XDEP0 = XDLIM 262 : XDDEP = XDERES 263 : GOTO 2200 264 : ENDIF 265 : C 266 : C========================================================== 267 : C CAS C3 - Courbe de recharge -ICAS=14 268 : C========================================================== 269 : 2400 CONTINUE 270 : XDLIM = XDEPMX 271 : C 272 : IF (XDEPF.LE.XDLIM) THEN 273 : XDERES = XZER 274 : XDELOC = XDDEP 275 : ELSE 276 : XDELOC = XDLIM - XDEP0 277 : XDERES = XDDEP - XDELOC 278 : ENDIF 279 : C 280 : XKKK = (UN - XDAM)*YOUN 281 : XFORF = XFOR0 + (XKKK*XDELOC) 282 : C XDEPI = XDEPA 283 : IF (XDERES.EQ.XZER) THEN 284 : ICAS = 14 285 : GOTO 9999 286 : ELSE 287 : XFOR0 = XFORF 288 : XDEP0 = XDLIM 289 : XDDEP = XDERES 290 : GOTO 1000 291 : ENDIF 292 : C 293 : C========================================================== 294 : C CAS B2 -Courbe de decharge avec E -ICAS=21 295 : C========================================================== 296 : 3100 CONTINUE 297 : XDLIM = XDEPA 298 : C 299 : IF (XDEPF.GT.XDLIM) THEN 300 : XDERES = XZER 301 : XDELOC = XDDEP 302 : ELSE 303 : XDELOC = XDLIM - XDEP0 304 : XDERES = XDDEP - XDELOC 305 : ENDIF 306 : C 307 : XKKK = (UN - XDAM)*YOUN 308 : XFORF = XFOR0 + (XKKK*XDELOC) 309 : C 310 : IF (XDEPM.LE.XDEPA) THEN 311 : XDEPM = XDEPA 312 : ENDIF 313 : C 314 : C 315 : IF (XDERES.EQ.XZER) THEN 316 : ICAS = 21 317 : GOTO 9999 318 : ELSE 319 : XFOR0 = XFORF 320 : XDEP0 = XDLIM 321 : XDDEP = XDERES 322 : GOTO 3200 323 : ENDIF 324 : C========================================================== 325 : C CAS B1 -Courbe de decharge avec glissement -ICAS=22 326 : C========================================================== 327 : 3200 CONTINUE 328 : XFORF = XZER 329 : IF (XDEPI.GE.XDEPF) THEN 330 : C XDEPGL = XGAMM*(UN-XNETA)*XDEPM + XGAMP*XDELA 331 : XDEPGL = XGAMM*XDEPM + XGAMP*XDELA 332 : C XDEPG2 = (UN-XNETA)*XDEPM 333 : XDEPG2 = XDEPM 334 : IF (XDEPGL.GE.XDEPG2) THEN 335 : XDEPGL = XDEPG2 336 : ENDIF 337 : IF (XDEPGL.GE.XDEPF) THEN 338 : XDEPI = XDEPGL 339 : ELSE 340 : XDEPI = XDEPF 341 : ENDIF 342 : ENDIF 343 : XDEPC = XDEPC + ABS(XDDEP) 344 : XDEPA = XDEPF 345 : ICAS = 22 346 : GOTO 9999 347 : C================================================================== 348 : 9999 CONTINUE 349 : C================================================================== 350 : C 351 : C On remplit les tableaux avant de sortir 352 : C 353 : C================================================================== 354 : XDEPA = XDEPF - (XFORF/((UN - XDAM)*YOUN)) 355 : SIGF(1) = -XFORF 356 : C 357 : VARF(1) = XDAM 358 : VARF(2) = -XDEPM 359 : VARF(3) = -XDEPA 360 : VARF(4) = -XDEPI 361 : VARF(5) = -XDEPC 362 : VARF(6) = ICAS 363 : C===================================================== 364 : C FIN DE LA ROUTINE DU MODELE 365 : C====================================================== 366 : RETURN 367 : END 368 : 369 : 370 : 371 : 372 : 373 : 374 : 375 : 376 : 377 :
© Cast3M 2003 - All rights reserved.
Disclaimer