Results 1 to 2 of 2

Thread: Umat simple viscoelastic model

  1. #1

    Umat simple viscoelastic model

    At present I'm trying to create an UMAT for simple viscoelastic behavior.
    I would like to implement the differential equation model ( as described in the finite element method Zienkiewicz chapter 3)

    s = 2G(mu0*E + sum(mu_m*qm) (eq.1)

    where

    qdot + 1/lambdam*q = Edot

    So for every new increment I have to calculate q_(n+1) and fill it in eq.1 and finally I calculate the jacobian.

    So far I succeeded to implement all this, and it turned out that the subroutine works on 1 element.

    Now I notice that in case ABAQUS needs more iterations I do not reach convergence.
    So I'm wondering what might go wrong during these iterations. What about updates of the statev vector during the iterations?

    Below I copy the UMAT file that I made:

    SUBROUTINE UMAT(STRESS,STATEV,DDSDDE,SSE,SPD,SCD,
    1 RPL,DDSDDT,DRPLDE,DRPLDT,
    2 STRAN,DSTRAN,TIME,DTIME,TEMP,DTEMP,PREDEF,DPRED,CM NAME,
    3 NDI,NSHR,NTENS,NSTATV,PROPS,NPROPS,COORDS,DROT,PNE WDT,
    4 CELENT,DFGRD0,DFGRD1,NOEL,NPT,LAYER,KSPT,KSTEP,KIN C)
    C
    INCLUDE 'ABA_PARAM.INC'
    C
    CHARACTER*80 CMNAME
    DIMENSION STRESS(NTENS),STATEV(NSTATV),
    1 DDSDDE(NTENS,NTENS),
    2 DDSDDT(NTENS),DRPLDE(NTENS),
    3 STRAN(NTENS),DSTRAN(NTENS),TIME(2),PREDEF(1),DPRED (1),
    4 PROPS(NPROPS),COORDS(3),DROT(3,3),DFGRD0(3,3),DFGR D1(3,3)
    DIMENSION DSTRES(6),D(3,3)

    DOUBLE PRECISION ONE, TWO, THREE
    DOUBLE PRECISION KQN(6), KQ(6)
    DOUBLE PRECISION K, G, LAMBDA1, MU0, MU1, ID(3,3)
    DOUBLE PRECISION TERM1, KE(6), KDE(6), KEM, KDEM

    INTEGER K1, K2

    C VARIABLES
    ONE = 1.0
    TWO = 2.0
    THREE = 3.0

    ID(1,1) = 2d0/3d0
    ID(1,2) = -1d0/3d0
    ID(1,3) = -1d0/3d0
    C
    C
    ID(2,1) = -1d0/3d0
    ID(2,2) = 2d0/3d0
    ID(2,3) = -1d0/3d0
    C
    C
    ID(3,1) = -1d0/3d0
    ID(3,2) = -1d0/3d0
    ID(3,3) = 2d0/3d0

    C ELASTIC PROPERTIES

    G = 2.0E9
    K = 1.8E9

    MU0 = 0.5
    MU1 = 0.4
    LAMBDA1 = 1000.0

    C DEVIATORIC STRAIN DEFINITION

    C CALL DEVIATORIC(ID)

    DO K1 = 1,3
    KEM = 0.0
    KDEM = 0.0
    DO K2 = 1,3
    KEM = ID(K1,K2)*STRAN(K2) + KEM
    KDEM = ID(K1,K2)*DSTRAN(K2) + KDEM
    END DO
    KE(K1) = KEM
    KDE(K1) = KDEM
    END DO

    DO K1 = 4,6
    KE(K1) = 0.5*STRAN(K1)
    KDE(K1) = 0.5*DSTRAN(K1)
    END DO

    EV = 0.0
    DEV = 0.0
    DO K1 = 1,3
    EV = EV + STRAN(K1)
    DEV = DEV + DSTRAN(K1)
    END DO

    IF (KINC.LE.1) THEN
    DO K1 = 1,6
    KQN(K1) = KE(K1)
    STATEV(K1) = KQN(K1)

    END DO

    GOTO 10
    ELSE
    DO K1 = 1,6
    KQ(K1) = STATEV(K1)
    KQN(K1) = ((1.0 - (0.5*DTIME)/LAMBDA1)*KQ(K1)
    1 + KDE(K1))/(1.0 + 0.5*DTIME/LAMBDA1)

    END DO
    END IF


    DO K1 = 1,6
    STATEV(K1) = KQN(K1)
    END DO


    10 DO K1 = 1,3
    STRESS(K1) = 2.0*G*(MU0*KE(K1) + MU1*KQN(K1))
    END DO

    DO K1 = 4,6
    STRESS(K1) = 2.0*G*(MU0*KE(K1) + MU1*KQN(K1))
    END DO

    DO K1 = 1,3
    STRESS(K1) = STRESS(K1) + K*EV
    END DO

    C DEFINE THE JACOBIAN OR TANGENTIAL MATRIX.

    TERM1 = 2.0*G*(MU0 + MU1/(1.0+0.5*DTIME/LAMBDA1))

    DO K1 = 1,6
    DO K2 = 1,6
    DDSDDE(K2,K1) = 0.0
    END DO

    END DO
    DO K1 = 1,3
    DO K2 = 1,3
    DDSDDE(K1,K2) = TERM1*ID(K1,K2) + K
    END DO
    END DO

    DO K1 = 4,6
    DDSDDE(K1,K1) = 0.5*TERM1
    END DO

    STATEV(7) = KINC
    write(6,*) 'state', statev
    RETURN
    END



    Jan

  2. #2
    Join Date
    2000-02
    Location
    Boston, USA
    Posts
    3,280
    Hello Jan,

    I don't have Zienkiewicz's book, so I cannot comment on the equations. But in general, if your UMAT works on one element but not multiple elements then that typically means that the Jacobian is not accurate enough. You can attempt to convert your UMAT to a VUMAT. That way you don't need the Jacobian and you should be able to figure out if the rest of the implementation is correct. You might also want to re-derive the Jacobian, perhaps you can find a more accurate expression.

    - Jorgen
    Jorgen Bergstrom, Ph.D.
    PolymerFEM Administrator

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •