Download infill.eso

Back to the list

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

© Cast3M 2003 - All rights reserved.
Disclaimer