Download umat.eso

Back to the list

   1 : C UMAT      SOURCE    CHAT      11/03/16    21:32:49     6902           
   2 :       SUBROUTINE UMAT ( STRESS, STATEV, DDSDDE, SSE, SPD, SCD,
   3 :      &                  RPL, DDSDDT, DRPLDE, DRPLDT,
   4 :      &                  STRAN, DSTRAN, TIME, DTIME,
   5 :      &                  TEMP, DTEMP, PREDEF, DPRED,
   6 :      &                  CMNAME, NDI, NSHR, NTENS, NSTATV,
   7 :      &                  PROPS, NPROPS, COORDS,
   8 :      &                  DROT, PNEWDT, CELENT, DFGRD0, DFGRD1,
   9 :      &                  NOEL, NPT, LAYER, KSPT, KSTEP, KINC )
  10 : 
  11 :       IMPLICIT INTEGER(I-N)
  12 :       IMPLICIT REAL*8(A-H,O-Z)
  13 : 
  14 : C-----------------------------------------------------------------------
  15 : C
  16 : C     DESCRIPTION FONCTIONNELLE :
  17 : C     -------------------------
  18 : C
  19 : C     Version du module externe UMAT integree au code pour eviter tout
  20 : C     probleme d'edition de lien et pour permettre le passage de tests
  21 : C     de non regression.
  22 : C
  23 : C     En utilisation normale, ce module doit etre surcharge par celui
  24 : C     de meme nom fourni par l'utilisateur.
  25 : C
  26 : C     Si cette version de UMAT est appelee, cela signifie qu'il n'y a
  27 : C     pas eu surcharge par le module utilisateur
  28 : C     ATTENTION : si l'utilisateur oublie de surcharger et affecte a sa
  29 : C     loi le meme numero que l'un de ceux pris en charge ci-apres, il y
  30 : C     a risque d'erreur non controlee a l'execution.
  31 : C
  32 : C     CONVENTION : on autorise la programmation de l'utilisateur a se
  33 : C     servir de KINC comme code retour, de la meme maniere que l'on
  34 : C     s'en sert ci-dessous. Regles a respecter :
  35 : C     1 - Pas d'initialisation superflue de KINC en entrant dans UMAT.
  36 : C         KINC est initialise a 1 par WKUMA0, avant l'appel a UMAT.
  37 : C     2 - En cas d'erreur, KINC est affecte d'une valeur differente de 1
  38 : C
  39 : C      Dans ce dernier cas, l'utilisateur a la possibilite de completer
  40 : C      le message d'erreur affiche (de numero 965) en surchargeant le
  41 : C      sousprogramme UMAERR (umaerr.eso).
  42 : C
  43 : C-----------------------------------------------------------------------
  44 : C
  45 : C     DESCRIPTION DE L'INTERFACE :
  46 : C     --------------------------
  47 : C
  48 : C     IN/OUT : STRESS : REAL*8(NTENS), tenseur des contraintes
  49 : C                       En entree : tenseur des contraintes a t0
  50 : C                       En sortie : tenseur des contraintes a t0+dt
  51 : C                       Dans le cas des grandes transformations, il
  52 : C                       s'agit des contraintes de Cauchy ("actuelles").
  53 : C     IN/OUT : STATEV : REAL*8(*), variables internes
  54 : C                       En entree : variables internes a t0
  55 : C                       En sortie : variables internes a t0+dt
  56 : C
  57 : C
  58 : C     OUT    : DDSDDE : REAL*8(NTENS,NTENS), matrice jacobienne du
  59 : C                       modele (matrice de Hooke tangente) a t0+dt
  60 : C                       Sortie facultative, non exploitee par CAST3M
  61 : C                       pour l'instant
  62 : C
  63 : C     IN/OUT : SSE    : REAL*8, energie de deformation elastique
  64 : C              SPD    : REAL*8, dissipation plastique
  65 : C              SCD    : REAL*8, dissipation visqueuse
  66 : C                       Valeurs a t0 en entree, a t0+dt en sortie
  67 : C                       Entrees/sorties facultatives, non exploitees par
  68 : C                       CAST3M pour l'instant
  69 : C
  70 : C
  71 : C     OUT    : RPL    : REAL*8, puissance calorifique volumique degagee
  72 : C                       par le travail mecanique, a t0+dt
  73 : C              DDSDDT : REAL*8(NTENS),derivee du tenseur des contraintes
  74 : C                       par rapport a la temperature, a t0+dt
  75 : C              DRPLDE : REAL*8(NTENS), derivees de RPL par rapport aux
  76 : C                       composantes du tenseur des deformations, a t0+dt
  77 : C              DRPLDT : REAL*8, derivee de RPL par rapport a la
  78 : C                       temperature, a t0+dt
  79 : C                       Sorties facultatives, non exploitees par CAST3M
  80 : C                       pour l'instant
  81 : C                       Ces sorties sont prevues pour un couplage fort
  82 : C                       entre thermique et mecanique
  83 : C
  84 : C
  85 : C     IN     : STRAN  : REAL*8(NTENS), tenseur des deformations
  86 : C                       totales a t0
  87 : C              DSTRAN : REAL*8(NTENS), tenseur des increments de
  88 : C                       deformation totale par rapport a l'etat
  89 : C                       de reference a t0
  90 : C
  91 : C
  92 : C     IN     : TIME   : REAL*8(2), TIME(1) = 0
  93 : C                                  TIME(2) = t0
  94 : C              DTIME  : REAL*8,    DTIME   = dt
  95 : C                       t0 : precedent instant d'equilibre atteint
  96 : C                       dt : nouveau pas de temps propose par PASAPAS
  97 : C                       pour atteindre l'equilibre avec l'increment de
  98 : C                       deformation totale impose (DSTRAN)
  99 : C                       Remarque : les notions attachees a ces entrees
 100 : C                       sont differentes lorsque l'on adhere a ABAQUS
 101 : C                       (dans ce cas la variable TIME(1) a son utilite)
 102 : C
 103 : C
 104 : C     IN     : TEMP   : REAL*8, temperature a t0
 105 : C              DTEMP  : REAL*8, increment de temperature a t0+dt
 106 : C              PREDEF : REAL*8(*), vecteur des parametres externes de
 107 : C                       la loi de comportement, valeurs a t0
 108 : C              DPRED  : REAL*8(*), increments des parametres externes
 109 : C                       a t0+dt
 110 : C
 111 : C
 112 : C     IN     : CMNAME : CHARACTER*16, identifiant de la loi de
 113 : C                       comportement
 114 : C                       On conserve le type 'chaine de caracteres' pour
 115 : C                       l'identifiant de la loi, afin de preserver la
 116 : C                       compatibilite avec ABAQUS.
 117 : C                       Dans le cas d'une adherence a CAST3M, la loi est
 118 : C                       identifiee par le numero qui lui a ete attribue:
 119 : C                       argument 'NUME_LOI' de l'operateur MODE.
 120 : C                       Par convention, ce numero est encode dans les 4
 121 : C                       derniers caracteres de la chaine, et doit etre
 122 : C                       recupere dans UMAT par une instruction du type
 123 : C                       K4ILOI = CMNAME(13:16)
 124 : C                       avec K4ILOI variable locale de type CHARACTER*4
 125 : C
 126 : C
 127 : C     IN     : NDI    : INTEGER definissant le type de calcul CAST3M
 128 : C                       =  2 : tridimensionnel (3D)
 129 : C                       =  0 : axisymetrie (2D)
 130 : C                       = -1 : deformations planes (2D)
 131 : C                       = -2 : contraintes planes (2D)
 132 : C                       = -3 : deformations planes generalisees (2D)
 133 : C                       =  3 a 11 : unidimensionnel plan (massif 1D)
 134 : C                       = 12 a 14 : unidimensionnel axisymetrique (massif 1D)
 135 : C                       = 15 : unidimensionnel spherique (massif 1D)
 136 : C
 137 : C
 138 : C     IN     : NSHR   : INTEGER, nombre de composantes extradiagonales
 139 : C                       du tenseur des contraintes
 140 : C                       Entree non active dans le cas d'une adherence
 141 : C                       a CAST3M
 142 : C
 143 : C
 144 : C     IN     : NTENS  : INTEGER, nombre de composantes du tenseur des
 145 : C                       contraintes
 146 : C              NSTATV : INTEGER, nombre de variables internes
 147 : C
 148 : C
 149 : C     IN     : PROPS  : REAL*8(NPROPS), vecteur des constantes
 150 : C                       de materiau
 151 : C                       N.B. Il peut s'agir de coefficients constants
 152 : C                       intervenant dans des formules analytiques
 153 : C                       decrivant les evolutions des proprietes du
 154 : C                       materiau en fonction de la temperature et/ou
 155 : C                       d'autres parametres externes.
 156 : C                       OU il peut s'agir plus simplement de proprietes
 157 : C                       de materiau constantes.
 158 : C              NPROPS : INTEGER, nombre de constantes de materiau
 159 : C
 160 : C
 161 : C     IN     : COORDS : REAL*8(3), coordonnees cartesiennes du point
 162 : C                       d'integration courant
 163 : C
 164 : C
 165 : C     IN     : DROT   : REAL*8(3,3)
 166 : C                       Dans le cas d'une adherence a CAST3M
 167 : C                       ------------------------------------
 168 : C                       Matrice de passage du repere local de l'element
 169 : C                       fini massif au repere general du maillage
 170 : C                       DROT(l,c) : composante l du vecteur c de la base
 171 : C                       locale dans la base generale
 172 : C                       Entree non active pour les elements finis non
 173 : C                       massifs
 174 : C                       Dans le cas d'une adherence a ABAQUS
 175 : C                       ------------------------------------
 176 : C                       Matrice d'increments de rotation
 177 : C                       Cette matrice decrit la rotation sur le pas de
 178 : C                       temps de la base dans laquelle sont exprimes
 179 : C                       les tenseurs de contraintes et de deformations
 180 : C
 181 : C
 182 : C     OUT    : PNEWDT : REAL*8, rapport entre le nouveau pas de temps
 183 : C                       suggere et le pas de temps donne en entree
 184 : C                       (NEWDT = PNEWDT * DTIME)
 185 : C
 186 : C
 187 : C     IN     : CELENT : REAL*8, longueur caracteristique de l'element
 188 : C                       Dans le cas d'une adherence a CAST3M, cette
 189 : C                       longueur caracteristique est determinee par
 190 : C                       LOCARA comme la distance maximale entre deux
 191 : C                       noeuds de l'element.
 192 : C
 193 : C
 194 : C     IN     : DFGRD0 : REAL*8(3,3), tenseur gradient de deplacement
 195 : C                       a t0
 196 : C              DFGRD1 : REAL*8(3,3), tenseur gradient de deplacement
 197 : C                       a t0+dt
 198 : C
 199 : C
 200 : C     IN     : NOEL   : INTEGER, numero de l'element courant
 201 : C              NPT    : INTEGER, numero du point d'integration courant
 202 : C
 203 : C
 204 : C     IN     : LAYER  : INTEGER, numero de couche pour des coques
 205 : C                       composites ou des solides multi-couches
 206 : C              KSPT   : INTEGER, numero de section dans la couche
 207 : C                       courante
 208 : C                       Entrees non actives dans le cas d'une adherence
 209 : C                       a CAST3M
 210 : C
 211 : C
 212 : C     IN     : KSTEP  : INTEGER
 213 : C     IN     : KINC   : INTEGER
 214 : C                       Entrees n'ayant pas de sens dans le cas
 215 : C                       d'une adherence a CAST3M
 216 : C
 217 : C-----------------------------------------------------------------------
 218 : C
 219 : C     MODELES PRIS EN CHARGE par le module UMAT 'bouchon' :
 220 : C     ---------------------------------------------------
 221 : C
 222 : C     ILOI = 10 : ELASTICITE ISOTROPE ISOTHERME
 223 : C                 FORMULATION MASSIVE
 224 : C
 225 : C     ILOI = 11 : ELASTICITE ISOTROPE NON ISOTHERME
 226 : C                 FORMULATION MASSIVE
 227 : C                 La temperature 'TETA' est definie en tant que
 228 : C                 parametre externe
 229 : C              => Instanciation du materiau et prise en charge de la
 230 : C                 dilatation thermique dans UMAT
 231 : C
 232 : C     ILOI = 12 : ELASTICITE ORTHOTROPE ISOTHERME
 233 : C                 FORMULATION MASSIVE
 234 : C
 235 : C     ILOI = 21 : Modele 'FLUAGE' 'POLYNOMIAL' de CAST3M, INPLAS=21
 236 : C                 RESTRICTION A LA FORMULATION MASSIVE
 237 : C
 238 : C     ILOI = 22 : Modele 'FLUAGE' 'POLYNOMIAL' de CAST3M, INPLAS=21
 239 : C                 RESTRICTION A LA FORMULATION MASSIVE
 240 : C                 Instanciation des composantes de materiau au fur et a
 241 : C                 mesure des iterations internes.
 242 : C                 Le modele comprend cette fois des parametres externes.
 243 : C                 Les composantes de materiau sont evaluees par les
 244 : C                 memes fonctions externes que celles utilisees par
 245 : C                 l'operateur VARI.
 246 : C                 MODELE 'MAQUETTE'
 247 : C
 248 : C     ILOI =  7 : Modele 'VISCOPLASTIQUE' 'GATT_MONERIE' de CAST3M,
 249 : C                 INPLAS=107
 250 : C                 RESTRICTION A LA FORMULATION MASSIVE
 251 : C
 252 : C     ILOI =  5 : Modele 'PLASTIQUE' 'ISOTROPE' de CAST3M, INPLAS=5
 253 : C                 RESTRICTION A LA FORMULATION MASSIVE
 254 : C
 255 : C     ILOI = 31 : Modele MOONEY-RIVLIN en GRANDES TRANSFORMATIONS
 256 : C                 Cas des CONTRAINTES PLANES dans la direction 3 (2D/3D)
 257 : C                 Restriction a la formulation MASSIVE
 258 : C
 259 : C     ILOI = 32 : Modele NEO-HOOKIEN en GRANDES TRANSFORMATIONS
 260 : C                 Restriction a la formulation MASSIVE
 261 : C
 262 : C-----------------------------------------------------------------------
 263 : C     Arguments de l'interface
 264 : C
 265 :       CHARACTER*16  CMNAME
 266 : C
 267 :       INTEGER       NDI, NSHR, NTENS, NSTATV, NPROPS,
 268 :      &              NOEL, NPT, LAYER, KSPT, KSTEP, KINC
 269 : C
 270 :       REAL*8        STRESS(NTENS), STATEV(*),
 271 :      &              DDSDDE(NTENS,NTENS),
 272 :      &              SSE, SPD, SCD,
 273 :      &              RPL, DDSDDT(NTENS), DRPLDE(NTENS), DRPLDT,
 274 :      &              STRAN(NTENS), DSTRAN(NTENS),
 275 :      &              TIME(2), DTIME,
 276 :      &              TEMP, DTEMP, PREDEF(*), DPRED(*),
 277 :      &              PROPS(NPROPS),
 278 :      &              COORDS(3),
 279 :      &              DROT(3,3),
 280 :      &              PNEWDT,
 281 :      &              CELENT,
 282 :      &              DFGRD0(3,3), DFGRD1(3,3)
 283 : C
 284 : C     Variables locales
 285 : C
 286 :       CHARACTER*4   K4ILOI
 287 : C
 288 :       PARAMETER(UN=1.D0,DEUX=2.D0,UNDEMI=.5D0)
 289 : C
 290 :       REAL*8        YOUN, NU, BULK3, G2, LAM, EPST0(6), DEPST(6),
 291 :      &              TETA0, DTETA, TETAF, ALPH, TREF, DYDT, DNDT,
 292 :      &              YOUN0, NU0, BULK30, G20, LAM0,
 293 :      &              YOUNF, NUF, BULK3F, G2F, LAMF,
 294 :      &              DELDSE(6,6), ETHERM(6), DTHERM(6),
 295 :      &              YREF, NREF, EPSE0(6), DEPSE(6),DHOOK(6,6),
 296 :      &              DSIG2(3,3),DEPST2(3,3),TENS(3,3),DSIG(6),
 297 :      &              V1(3),V2(3),V3(3),V(3,3),P(3,3)
 298 : C
 299 : C
 300 : C---------------------- Debut du code executable -----------------------
 301 : C
 302 : C
 303 :       K4ILOI = CMNAME(13:16)
 304 : C
 305 : C=======================================================================
 306 : C     ELASTICITE ISOTROPE ISOTHERME
 307 : C=======================================================================
 308 : C
 309 :       IF (K4ILOI.EQ.'  10') THEN
 310 : C
 311 : C-----------------------------------------------------------------------
 312 : C        Constantes de materiau
 313 : C        ----------------------
 314 : C        PROPS(1)  : YOUN  Module d'Young
 315 : C        PROPS(2)  : NU    Coefficient de Poisson
 316 : C-----------------------------------------------------------------------
 317 : C
 318 : C        Recuperation des constantes de materiau
 319 : C
 320 :          YOUN = PROPS(1)
 321 :          NU   = PROPS(2)
 322 : C
 323 : C        Calcul de la matrice de Hooke (constante)
 324 : C        Hypotheses : NTENS=6
 325 : C                     les composantes diagonales sont les 3 premieres
 326 : C
 327 :          BULK3 = YOUN/(1.0D0-2.0D0*NU)
 328 :          G2 = YOUN/(1.0D0+NU)
 329 :          LAM = (BULK3-G2)/3.0D0
 330 : C
 331 :          DO 100 J=1,NTENS
 332 :             DO 101 I=1,NTENS
 333 :                DDSDDE(I,J)=0.0D0
 334 :  101        CONTINUE
 335 :  100     CONTINUE
 336 : C
 337 :          DO 110 J=2,3
 338 :             DO 111 I=1,J-1
 339 :                DDSDDE(I,J)=LAM
 340 :                DDSDDE(J,I)=LAM
 341 :  111        CONTINUE
 342 :  110     CONTINUE
 343 :          DO 112 J=1,3
 344 :             DDSDDE(J,J)=G2+LAM
 345 :  112     CONTINUE
 346 :          DO 113 J=4,6
 347 :             DDSDDE(J,J)=G2
 348 :  113     CONTINUE
 349 : C
 350 : C        Deformations : gamma -> epsilon pour les termes extradiagonaux
 351 : C        Uniquement sur les increments car on n'a pas besoin des cumuls
 352 : C
 353 :          DO 120 J=1,3
 354 :             DEPST(J)=DSTRAN(J)
 355 :  120     CONTINUE
 356 :          DO 121 J=4,6
 357 :             DEPST(J)=DSTRAN(J)/2.0D0
 358 :  121     CONTINUE
 359 : C
 360 : C        Calcul des contraintes a la fin du pas
 361 : C
 362 :          DO 130 J=1,NTENS
 363 :             DO 131 I=1,NTENS
 364 :                STRESS(I)=STRESS(I)+DDSDDE(I,J)*DEPST(J)
 365 :  131        CONTINUE
 366 :  130     CONTINUE
 367 : C
 368 : C=======================================================================
 369 : C     ELASTICITE ISOTROPE NON ISOTHERME, premier modele
 370 : C     La temperature 'TETA' est definie en tant que parametre externe
 371 : C  => Instanciation du materiau et prise en charge de la dilatation
 372 : C     thermique dans UMAT
 373 : C=======================================================================
 374 : C
 375 :       ELSE IF (K4ILOI.EQ.'  11') THEN
 376 : C
 377 : C-----------------------------------------------------------------------
 378 : C        Variables internes du modele
 379 : C        ----------------------------
 380 : C
 381 : C        STATEV( 1): EEXX  Deformation elastique XX
 382 : C        STATEV( 2): EEYY  Deformation elastique YY
 383 : C        STATEV( 3): EEZZ  Deformation elastique ZZ
 384 : C        STATEV( 4): EEXY  Deformation elastique XY
 385 : C        STATEV( 5): EEXZ  Deformation elastique XZ
 386 : C        STATEV( 6): EEYZ  Deformation elastique YZ
 387 : C
 388 : C        STATEV( 7): ETXX  Deformation thermique XX
 389 : C        STATEV( 8): ETYY  Deformation thermique YY
 390 : C        STATEV( 9): ETZZ  Deformation thermique ZZ
 391 : C        STATEV(10): ETXY  Deformation thermique XY
 392 : C        STATEV(11): ETXZ  Deformation thermique XZ
 393 : C        STATEV(12): ETYZ  Deformation thermique YZ
 394 : C
 395 : C        Parametres externes du modele
 396 : C        -----------------------------
 397 : C
 398 : C        PREDEF(1) : TETA  Temperature
 399 : C        DPRED(1)  :       Variation de temperature sur le pas de temps
 400 : C
 401 : C        N.B. On nomme 'TETA' la temperature afin de pouvoir prendre en
 402 : C             charge au niveau le plus bas l'instanciation du materiau
 403 : C             et la dilatation thermique
 404 : C
 405 : C        Constantes de materiau
 406 : C        ----------------------
 407 : C
 408 : C        PROPS(1)  : YOUN  Module d'Young a la temperature
 409 : C                          de reference TREF
 410 : C        PROPS(2)  : NU    Coefficient de Poisson a la temperature
 411 : C                          de reference TREF
 412 : C        PROPS(3)  : ALPH  Coefficient de dilatation thermique
 413 : C                          (constant)
 414 : C        PROPS(4)  : TREF  Temperature de reference
 415 : C        PROPS(5)  : DYDT  Derivee du module d'Young par rapport
 416 : C                          a la temperature
 417 : C        PROPS(6)  : DNDT  Derivee du coefficient de Poisson
 418 : C                          par rapport a la temperature
 419 : C-----------------------------------------------------------------------
 420 : C
 421 : C        Recuperation des parametres externes du modele
 422 : C
 423 :          TETA0 = PREDEF(1)
 424 :          DTETA = DPRED(1)
 425 :          TETAF = TETA0 + DTETA
 426 : C
 427 : C        Recuperation des constantes de materiau
 428 : C
 429 :          YOUN = PROPS(1)
 430 :          NU   = PROPS(2)
 431 :          ALPH = PROPS(3)
 432 :          TREF = PROPS(4)
 433 :          DYDT = PROPS(5)
 434 :          DNDT = PROPS(6)
 435 : C
 436 : C        Evaluation des proprietes de materiau au debut du pas
 437 : C
 438 :          YOUN0 = YOUN + DYDT * (TETA0-TREF)
 439 :          NU0   = NU   + DNDT * (TETA0-TREF)
 440 : C
 441 :          BULK30 = YOUN0/(1.0D0-2.0D0*NU0)
 442 :          G20 = YOUN0/(1.0D0+NU0)
 443 :          LAM0 = (BULK30-G20)/3.0D0
 444 : C
 445 : C        Evaluation des proprietes de materiau a la fin du pas
 446 : C
 447 :          YOUNF = YOUN + DYDT * (TETAF-TREF)
 448 :          NUF   = NU   + DNDT * (TETAF-TREF)
 449 : C
 450 :          BULK3F = YOUNF/(1.0D0-2.0D0*NUF)
 451 :          G2F = YOUNF/(1.0D0+NUF)
 452 :          LAMF = (BULK3F-G2F)/3.0D0
 453 : C
 454 : C        Calcul de la matrice de Hooke a la fin du pas
 455 : C        Hypotheses : NTENS=6
 456 : C                     les composantes diagonales sont les 3 premieres
 457 : C
 458 :          DO 200 J=1,NTENS
 459 :             DO 201 I=1,NTENS
 460 :                DDSDDE(I,J)=0.0D0
 461 :  201        CONTINUE
 462 :  200     CONTINUE
 463 : C
 464 :          DO 210 J=2,3
 465 :             DO 211 I=1,J-1
 466 :                DDSDDE(I,J)=LAMF
 467 :                DDSDDE(J,I)=LAMF
 468 :  211        CONTINUE
 469 :  210     CONTINUE
 470 :          DO 212 J=1,3
 471 :             DDSDDE(J,J)=G2F+LAMF
 472 :  212     CONTINUE
 473 :          DO 213 J=4,6
 474 :             DDSDDE(J,J)=G2F
 475 :  213     CONTINUE
 476 : C
 477 : C        Calcul de la variation de la matrice de Hooke au cours du pas
 478 : C
 479 :          DO 220 J=1,NTENS
 480 :             DO 221 I=1,NTENS
 481 :                DELDSE(I,J)=0.0D0
 482 :  221        CONTINUE
 483 :  220     CONTINUE
 484 : C
 485 :          DO 230 J=2,3
 486 :             DO 231 I=1,J-1
 487 :                DELDSE(I,J)=LAMF-LAM0
 488 :                DELDSE(J,I)=LAMF-LAM0
 489 :  231        CONTINUE
 490 :  230     CONTINUE
 491 :          DO 232 J=1,3
 492 :             DELDSE(J,J)=(G2F+LAMF)-(G20+LAM0)
 493 :  232     CONTINUE
 494 :          DO 233 J=4,6
 495 :             DELDSE(J,J)=G2F-G20
 496 :  233     CONTINUE
 497 : C
 498 : C        Calcul de la dilatation thermique au debut du pas et de
 499 : C        l'increment de dilatation thermique au cours du pas
 500 : C
 501 :          DO 240 J=1,3
 502 :             ETHERM(J)=ALPH*(TETA0-TREF)
 503 :  240     CONTINUE
 504 :          DO 241 J=4,6
 505 :             ETHERM(J)=0.0D0
 506 :  241     CONTINUE
 507 : C
 508 :          DO 242 J=1,3
 509 :             DTHERM(J)=ALPH*DTETA
 510 :  242     CONTINUE
 511 :          DO 243 J=4,6
 512 :             DTHERM(J)=0.0D0
 513 :  243     CONTINUE
 514 : C
 515 : C        Deformations : gamma -> epsilon pour les termes extradiagonaux
 516 : C
 517 :          DO 250 J=1,3
 518 :             EPST0(J)=STRAN(J)
 519 :   250    CONTINUE
 520 :          DO 251 J=4,6
 521 :             EPST0(J)=STRAN(J)/2.0D0
 522 :   251    CONTINUE
 523 :          DO 252 J=1,3
 524 :             DEPST(J)=DSTRAN(J)
 525 :   252    CONTINUE
 526 :          DO 253 J=4,6
 527 :             DEPST(J)=DSTRAN(J)/2.0D0
 528 :   253    CONTINUE
 529 : C
 530 : C        Calcul des contraintes a la fin du pas
 531 : C
 532 :          DO 260 J=1,NTENS
 533 :             DO 261 I=1,NTENS
 534 :                STRESS(I)=STRESS(I)+DDSDDE(I,J)*(DEPST(J)-DTHERM(J))
 535 :      &                            +DELDSE(I,J)*(EPST0(J)-ETHERM(J))
 536 :  261        CONTINUE
 537 :  260     CONTINUE
 538 : C
 539 : C        Calcul de la dilatation thermique a la fin du pas
 540 : C
 541 :          DO 270 J=1,NTENS
 542 :             STATEV(NTENS+J)=ETHERM(J)+DTHERM(J)
 543 :  270     CONTINUE
 544 : C
 545 : C        Calcul de la deformation elastique a la fin du pas
 546 : C
 547 :          DO 280 J=1,NTENS
 548 :             STATEV(J)=EPST0(J)+DEPST(J)-STATEV(NTENS+J)
 549 :  280     CONTINUE
 550 : C
 551 : C=======================================================================
 552 : C     ELASTICITE ORTHOTROPE ISOTHERME
 553 : C=======================================================================
 554 : C
 555 :       ELSE IF (K4ILOI.EQ.'  12') THEN
 556 : C-----------------------------------------------------------------------
 557 : C        Constantes de materiau
 558 : C        ----------------------
 559 : C        PROPS(1-3)   : Modules d'Young
 560 : C        PROPS(4-6)   : Coefficients de Poisson
 561 : C        PROPS(7-9)   : Modules de cisaillement
 562 : C        PROPS(10-18) : repere d'orthotropie / repere local
 563 : C-----------------------------------------------------------------------
 564 : C
 565 : C        Recuperation des constantes du materiau
 566 : C
 567 :           YG1=PROPS(1)
 568 :           YG2=PROPS(2)
 569 :           YG3=PROPS(3)
 570 :           XNU12=PROPS(4)
 571 :           XNU23=PROPS(5)
 572 :           XNU13=PROPS(6)
 573 :           G12=PROPS(7)
 574 :           G23=PROPS(8)
 575 :           G13=PROPS(9)
 576 :           XNU21=(YG2/YG1)*XNU12
 577 :           XNU32=(YG3/YG2)*XNU23
 578 :           XNU31=(YG3/YG1)*XNU13
 579 :           AUX=(UN-XNU12*XNU21-XNU23*XNU32-XNU13*XNU31
 580 :      .       -DEUX*XNU21*XNU32*XNU13)
 581 :           AUX1=AUX/YG1
 582 :           AUX2=AUX/YG2
 583 :           AUX3=AUX/YG3
 584 : C-----------------------------------------------------------------------
 585 : C
 586 : C        Construction de la matrice de Hooke dans repere d'orthotropie
 587 : C
 587 :           CALL ZERO(DHOOK,6,6)
 588 :           DHOOK(1,1)=(UN-XNU23*XNU32)/AUX1
 589 :           DHOOK(1,2)=(XNU21+XNU31*XNU23)/AUX1
 590 :           DHOOK(2,1)=DHOOK(1,2)
 591 :           DHOOK(1,3)=(XNU31+XNU21*XNU32)/AUX1
 592 :           DHOOK(3,1)=DHOOK(1,3)
 593 :           DHOOK(2,2)=(UN-XNU13*XNU31)/AUX2
 594 :           DHOOK(2,3)=(XNU32+XNU12*XNU31)/AUX2
 595 :           DHOOK(3,2)=DHOOK(2,3)
 596 :           DHOOK(3,3)=(UN-XNU12*XNU21)/AUX3
 597 :           DHOOK(4,4)=DEUX * G12
 598 :           DHOOK(5,5)=DEUX * G13
 599 :           DHOOK(6,6)=DEUX * G23
 600 : C-----------------------------------------------------------------------
 601 : C
 602 : C        Recuperation des vecteurs d'orthotropie / repere local
 603 : C
 604 :           V1(1)=PROPS(10)
 605 :           V1(2)=PROPS(11)
 606 :           V1(3)=PROPS(12)
 607 :           V2(1)=PROPS(13)
 608 :           V2(2)=PROPS(14)
 609 :           V2(3)=PROPS(15)
 609 :           CALL CROSS2(V1,V2,V3,IER)
 610 :           V(1,1)=V1(1)
 611 :           V(2,1)=V1(2)
 612 :           V(3,1)=V1(3)
 613 :           V(1,2)=V2(1)
 614 :           V(2,2)=V2(2)
 615 :           V(3,2)=V2(3)
 616 :           V(1,3)=V3(1)
 617 :           V(2,3)=V3(2)
 618 :           V(3,3)=V3(3)
 619 : C----------------------------------------------------------------------------
 620 : C
 621 : C        Expression des increments des deformations dans repere d'orthotropie
 622 : C        P  : matrice de passage du repere global au repere d'orthotropie
 623 : C
 623 :           CALL MULMAT(P,DROT,V,3,3,3)
 624 : C
 625 :           DEPST2(1,1)=DSTRAN(1)
 626 :           DEPST2(2,2)=DSTRAN(2)
 627 :           DEPST2(3,3)=DSTRAN(3)
 628 :           DEPST2(1,2)=DSTRAN(4)/DEUX
 629 :           DEPST2(1,3)=DSTRAN(5)/DEUX
 630 :           DEPST2(2,3)=DSTRAN(6)/DEUX
 631 :           DEPST2(2,1)=DEPST2(1,2)
 632 :           DEPST2(3,1)=DEPST2(1,3)
 633 :           DEPST2(3,2)=DEPST2(2,3)
 633 :           CALL PRODT(TENS,DEPST2,P,3,3)
 634 : C----------------------------------------------------------------------------
 635 : C
 636 : C        Calcul des increments de contrainte dans le repere d'orthotropie
 637 : C
 638 :           DEPST(1)=TENS(1,1)
 639 :           DEPST(2)=TENS(2,2)
 640 :           DEPST(3)=TENS(3,3)
 641 :           DEPST(4)=TENS(1,2)
 642 :           DEPST(5)=TENS(1,3)
 643 :           DEPST(6)=TENS(2,3)
 644 : C
 645 :           DO 5500 I=1,6
 646 :              DSIG(I)=0.D0
 647 :              DO 55001 J=1,6
 648 :                 DSIG(I)=DSIG(I)+DHOOK(I,J)*DEPST(J)
 649 : 55001        CONTINUE
 650 :  5500     CONTINUE
 651 : C----------------------------------------------------------------------------
 652 : C
 653 : C        Expression des increments de contrainte dans le repere global
 654 : C
 655 :           DSIG2(1,1)=DSIG(1)
 656 :           DSIG2(2,2)=DSIG(2)
 657 :           DSIG2(3,3)=DSIG(3)
 658 :           DSIG2(1,2)=DSIG(4)
 659 :           DSIG2(1,3)=DSIG(5)
 660 :           DSIG2(2,3)=DSIG(6)
 661 :           DSIG2(2,1)=DSIG2(1,2)
 662 :           DSIG2(3,1)=DSIG2(1,3)
 663 :           DSIG2(3,2)=DSIG2(2,3)
 663 :           CALL TRPOSE(P)
 663 :           CALL PRODT(TENS,DSIG2,P,3,3)
 664 : C----------------------------------------------------------------------------
 665 : C
 666 : C        Calcul des contraintes a la fin du pas dans le repere global
 667 : C
 668 :           STRESS(1)=STRESS(1)+TENS(1,1)
 669 :           STRESS(2)=STRESS(2)+TENS(2,2)
 670 :           STRESS(3)=STRESS(3)+TENS(3,3)
 671 :           STRESS(4)=STRESS(4)+TENS(1,2)
 672 :           STRESS(5)=STRESS(5)+TENS(1,3)
 673 :           STRESS(6)=STRESS(6)+TENS(2,3)
 674 : C
 675 : C=======================================================================
 676 : C     Modele 'FLUAGE' 'POLYNOMIAL' de CAST3M, INPLAS=21
 677 : C     RESTRICTION A LA FORMULATION MASSIVE
 678 : C=======================================================================
 679 : C
 680 :       ELSE IF (K4ILOI.EQ.'  21') THEN
 681 : C
 681 :          CALL UMAPOL ( STRESS, STATEV, DDSDDE,
 682 :      &                 STRAN, DSTRAN, DTIME,
 683 :      &                 TEMP, DTEMP, PREDEF, DPRED,
 684 :      &                 NTENS, NSTATV,
 685 :      &                 PROPS, NPROPS, COORDS,
 686 :      &                 NOEL, NPT, KINC )
 687 : C
 688 : C=======================================================================
 689 : C     Modele 'FLUAGE' 'POLYNOMIAL' de CAST3M, INPLAS=21
 690 : C     RESTRICTION A LA FORMULATION MASSIVE
 691 : C     Instanciation des composantes de materiau au fur et a mesure des
 692 : C     iterations internes.
 693 : C     Le modele comprend cette fois des parametres externes.
 694 : C     Les composantes de materiau sont evaluees par les memes fonctions
 695 : C     externes que celles utilisees par l'operateur VARI.
 696 : C     MODELE 'MAQUETTE'
 697 : C=======================================================================
 698 : C
 699 :       ELSE IF (K4ILOI.EQ.'  22') THEN
 700 : C
 700 :          CALL UMAPO2 ( STRESS, STATEV, DDSDDE,
 701 :      &                 STRAN, DSTRAN, DTIME,
 702 :      &                 TEMP, DTEMP, PREDEF, DPRED,
 703 :      &                 NTENS, NSTATV,
 704 :      &                 PROPS, NPROPS, COORDS,
 705 :      &                 NOEL, NPT, KINC )
 706 : C
 707 : C=======================================================================
 708 : C     Modele 'VISCOPLASTIQUE' 'GATT_MONERIE' de CAST3M, INPLAS=107
 709 : C     RESTRICTION A LA FORMULATION MASSIVE
 710 : C=======================================================================
 711 : C
 712 :       ELSE IF (K4ILOI.EQ.'   7') THEN
 713 : C
 713 :          CALL UMAGAT ( STRESS, STATEV, DDSDDE,
 714 :      &                 STRAN, DSTRAN, DTIME,
 715 :      &                 TEMP, DTEMP, PREDEF, DPRED,
 716 :      &                 NTENS, NSTATV,
 717 :      &                 PROPS, NPROPS, COORDS,
 718 :      &                 NOEL, NPT, KINC )
 719 : C
 720 : C=======================================================================
 721 : C     Modele 'PLASTIQUE' 'ISOTROPE' de CAST3M, INPLAS=5
 722 : C     RESTRICTION A LA FORMULATION MASSIVE
 723 : C=======================================================================
 724 : C
 725 :       ELSE IF (K4ILOI.EQ.'   5') THEN
 726 : C
 726 :          CALL UMAPLI ( STRESS, STATEV, DDSDDE,
 727 :      &                 STRAN, DSTRAN, DTIME,
 728 :      &                 TEMP, DTEMP, PREDEF, DPRED,
 729 :      &                 NTENS, NSTATV,
 730 :      &                 PROPS, NPROPS, COORDS,
 731 :      &                 NOEL, NPT, KINC )
 732 : C
 733 : C=======================================================================
 734 : C     Modele HYPERELASTIQUE MOONEY-RIVLIN 
 735 : C            CONTRAINTES PLANES INCOMPRESSIBLE (direction 3)
 736 : C            DEFORMATIONS PLANES  Quasi INCOMPRESSIBLE
 737 : C            TRIDIMENSIONNEL      Quasi INCOMPRESSIBLE
 738 : C     Contribution de Laurent Gornet - Ecole Centrale de Nantes (2006)
 739 : C=======================================================================
 740 : C 
 741 :       ELSE IF (K4ILOI.EQ.'  31') THEN
 742 : C
 742 :         CALL MOONEY ( STRESS, STATEV, DDSDDE, STRAN, DSTRAN,
 743 :      &                TIME, DTIME, TEMP, DTEMP, PREDEF, DPRED,
 744 :      &                NDI, NSHR, NTENS, NSTATV, PROPS, NPROPS,
 745 :      &                DFGRD0, DFGRD1, KSTEP, KINC,SSE,spd,scd,rpl,
 746 :      &                DDSDDT,DRPLDE,DRPLDT,cmname,coords,drot, PNEWDT,
 747 :      &                celent,NOEL, NPT, LAYER, KSPT )
 748 : C
 749 : C=======================================================================
 750 : C     Modele HYPERELASTIQUE NEO-HOOKEEN COMPRESSIBLE (2006/2010)
 751 : C     en GRANDES TRANSFORMATIONS
 752 : C     Contribution de Laurent Gornet - Ecole Centrale de Nantes (2010)
 753 : C=======================================================================
 754 : C
 755 :       ELSE IF (K4ILOI.EQ.'  32') THEN
 756 : C
 756 :         CALL NEOHOO ( STRESS, STATEV, DDSDDE, STRAN, DSTRAN,
 757 :      &                TIME, DTIME, TEMP, DTEMP, PREDEF, DPRED,
 758 :      &                NDI, NSHR, NTENS, NSTATV, PROPS, NPROPS,
 759 :      &                DFGRD0, DFGRD1, KSTEP, KINC )
 760 : 
 761 : C
 762 :       ELSE IF (K4ILOI.EQ.'  33') THEN
 763 : C
 763 :         CALL GDGD (STRESS, STATEV, DDSDDE, STRAN, DSTRAN,
 764 :      &                   TIME, DTIME, TEMP, DTEMP, PREDEF, DPRED,
 765 :      &                   NDI, NSHR, NTENS, NSTATV, PROPS, NPROPS,
 766 :      &                   DFGRD0, DFGRD1, KSTEP, KINC,SSE,spd,scd,rpl,
 767 :      &                   DDSDDT,DRPLDE,DRPLDT,cmname,coords,drot,PNEWDT,
 768 :      &                   celent,NOEL, NPT, LAYER, KSPT )
 769 :       ELSE  IF (K4ILOI.EQ.'  34') THEN
 769 :        CALL HARTS (STRESS, STATEV, DDSDDE, STRAN, DSTRAN,
 770 :      &                   TIME, DTIME, TEMP, DTEMP, PREDEF, DPRED,
 771 :      &                   NDI, NSHR, NTENS, NSTATV, PROPS, NPROPS,
 772 :      &                   DFGRD0, DFGRD1, KSTEP, KINC,SSE,spd,scd,rpl,
 773 :      &                   DDSDDT,DRPLDE,DRPLDT,cmname,coords,drot,PNEWDT,
 774 :      &                   celent,NOEL, NPT, LAYER, KSPT )
 775 : C      
 776 :       ELSE  IF (K4ILOI.EQ.'  35') THEN
 777 : C      
 777 :        CALL BIDERM (STRESS, STATEV, DDSDDE, STRAN, DSTRAN,
 778 :      &                   TIME, DTIME, TEMP, DTEMP, PREDEF, DPRED,
 779 :      &                   NDI, NSHR, NTENS, NSTATV, PROPS, NPROPS,
 780 :      &                   DFGRD0, DFGRD1, KSTEP, KINC,SSE,spd,scd,rpl,
 781 :      &                   DDSDDT,DRPLDE,DRPLDT,cmname,coords,drot,PNEWDT,
 782 :      &                   celent,NOEL, NPT, LAYER, KSPT ) 
 783 :       ELSE IF (K4ILOI.EQ.'  36') THEN
 784 : C
 784 :       CALL HUITCH (STRESS, STATEV, DDSDDE, STRAN, DSTRAN,
 785 :      &                   TIME, DTIME, TEMP, DTEMP, PREDEF, DPRED,
 786 :      &                   NDI, NSHR, NTENS, NSTATV, PROPS, NPROPS,
 787 :      &                   DFGRD0, DFGRD1, KSTEP, KINC,SSE,spd,scd,rpl,
 788 :      &                   DDSDDT,DRPLDE,DRPLDT,cmname,coords,drot,PNEWDT,
 789 :      &                   celent,NOEL, NPT, LAYER, KSPT )     
 790 : C=======================================================================
 791 : C     Modele externe non reconnu
 792 : C=======================================================================
 793 : C
 794 :       ELSE
 795 : C
 796 :          KINC = -2
 797 : C
 798 :       ENDIF
 799 : C
 800 :       RETURN
 801 :       END
 802 : 
 803 :  
 804 :  

© Cast3M 2003 - All rights reserved.
Disclaimer