Results 1 to 6 of 6

Thread: ask for help---Problem with UMAT subroutine

  1. #1

    ask for help---Problem with UMAT subroutine

    Hi all,

    I am so glad to find this forum. Hope somebody can help me out.
    I am trying to use ABAQUS to model artery vessel wall motion,
    and need to use UMAT to give an anisotropic strain energy density function.

    By some reason, I always got a error message as follows, I have no idea what is going wrong.

    Your help will be greatly appreciated!
    Thanks,
    Michelle

    I use ABAQUS 6.3.1 under unix system. The user subroutine is written in Fortran77.

    ------------- error message ------------------------------------------

    Begin ABAQUS/Standard Analysis
    Fri Sep 22 16:16:06 2006
    Run /home/abaqus/6.3-1/exec/standard.x
    ld.so.1: standard.x: fatal: relocation error: file /opt/SUNWspro/lib/libf77compat.so.1: symbol __f90_default_input_unit: referenced symbol not found
    Fri Sep 22 16:16:06 2006
    ABAQUS Error: The executable /home/abaqus/6.3-1/exec/standard.x aborted with error code 9.
    Please check the .dat, .msg, and .sta files for error messages if the files
    exist. If there are no error messages and you cannot resolve the problem,
    please run the command "abaqus job=support information=all" to report and
    save your system information. Use the same command to run ABAQUS that you
    used when the problem occurred. Please contact your local ABAQUS support
    office and send them the input file, the file support.log which you just
    created, the executable name, and the error code.
    ABAQUS/Analysis exited with errors
    ----------end of error message----------------------------

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

    First, I am curious, can you explain more about the material model you have implemented into a UMAT?

    Here are few comments/questions:
    The error message that you provided unfortunately does not pinpoint what the problem is. I suspect that the problem is related to some incompatibility between the version of ABAQUS that you are using, the Fortran compiler that you are using, and the OS version on your computer.
    Do you have access to a more recent version of ABAQUS?
    Have you been able to run any UMAT on your computer?

    - Jorgen

  3. #3
    Hello, Jorgen,

    Thank you very much for your reply.
    I am using an exponential strain energy density function,
    W=c/2 * EXP{b1*E1**2+b2*E2**2+b3*E3**2+2*b4*E1*E2+2*b5*E2* E3+2*b6*E3*E1};
    I can access to ABAQUS 6.5-1, but there is no f77 compiler installed in that machine, I am trying to install a f77 compiler now, and will run ABAQUS with UMAT again after that to see how it goes;
    You said it! I can not run any UMAT on my computer, even examples from the verification manual.

    Thanks a lot and best wishes,
    Michelle[/img]

  4. #4
    This passage is given by the My ABAQUS resource to be found at http://abaqus.custhelp.com/. This describes the error codes for Unix and Linux Systems:

    The error codes depend on the system on which ABAQUS is being executed and are standardized for each specific system by the system provider. Unix and Linux error codes are defined in file signal.h under the heading "Signal Numbers". This file is located in /usr/include/sys or in /usr/include/asm on Linux systems. There is not a direct correlation among all error codes on all Unix platforms; however the following error codes typically have identical meanings across most platforms:


    4: An Illegal Instruction was made.

    6: An unexpected error condition has caused the program to terminate itself.

    On rare occasions this error code may be thrown when the computer has run out of disk space. In this situation it is more often the case that a proper error message will be delivered.

    8: Floating point exception; the code has attempted an invalid floating point operation.

    9: External job kill; the operating system or the user has killed the job.

    10: Bus error; sometimes caused by writing past the end of a local array in a user subroutine.

    11: Segmentation fault or Illegal memory reference; an error in which the program is attempting to access memory not allocated to it.

    13: An error caused by an attempt to write to a pipe with no one to read it.

    The main purpose of the error code is to assist the ABAQUS, Inc. support and development personnel in determining the cause of the analysis failure. ABAQUS users are not expected to be familiar with these error codes and are encouraged to report them to the assisting support engineer.

    Apart from error code 9, in most cases the only time these errors are caused by the user is when a user subroutine is part of the analysis. Good programming practices will reduce the number of occasions that may lead to the above mentioned error codes. ABAQUS, Inc. is continuing to improve the diagnostics provided in cases where the analysis aborts due to system errors. Future releases of the program will provide a text message providing more information about the cause of the abnormal termination in most situations. The quality and reliability of all ABAQUS products is a continuing focus of ABAQUS, Inc. and we constantly strive to create a robust software suite with minimal abnormal terminations.

  5. #5

    moving forward - but stuck again

    Hi,

    I can use user subroutine on my machine finally.
    the UMAT program is finished according to my own understanding --
    it gives error messages as expected. I tried some ideas but none of them worked

    Can somebody give me a direction, thanks a lot!
    Michelle


    The error message in .msg file says:
    ***WARNING: THE SOLUTION APPEARS TO BE DIVERGING.
    ***NOTE: THE INCREMENT WILL BE ATTEMPTED AGAIN WITH A TIME INCREMENT OF 9.76563E-05
    ***ERROR: TOO MANY ATTEMPTS MADE FOR THIS INCREMENT: ANALYSIS TERMINATED

    The error message in .dat file says:
    ***WARNING: USER SUBROUTINE UMAT WILL BE USED WITH THE STAVEV ARRAY DIMENSIONED TO ZERO SINCE THE *DEPVAR OPTION IS NOT USED WITH THIS MATERIAL. CONSEQUENTLY, DEFINING STATEV ENTRIES IN SUBROUTINE UMAT WILL CAUSE CODE EXECUTION ERRORS.


    My programme is as follows:
    %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    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),DDSDDT(NTENS),DRPLDE(NTENS),
    2 STRAN(NTENS),DSTRAN(NTENS),TIME(2),PREDEF(1),DPRED (1),
    3 PROPS(NPROPS),COORDS(3),DROT(3,3),DFGRD0(3,3),DFGR D1(3,3)


    C Quantities that must be defined by umat
    C stress, svd's and material Jacobin (elastic constants, ddsdde)
    C Quantities that can be defined by umat
    C strain energy, plastic dissipation, creep distortion
    C suggested new time increment


    C stress and strains stored as vectors, in axisymmetric case
    C stress(s11,s22,s33,s12), stran(e11,e22,e33,e12) 123=rzt
    C ddsdde=dfrac{\partial stress}{\partial strain}


    C properties fed to subroutine
    C props(1)=c
    C props(2)=b1
    C props(3)=b2
    C props(4)=b3
    C props(5)=b4
    C props(6)=b5
    C props(7)=b6


    C where W is the strain energy density function
    C W=c/2*exp( b1 Et^2 + b2 Ez^2 + b3 Er^2
    C + 2b4 EtEz + 2b5 EzEr +2b6 ErEt )
    C----------------------------------------------------------------------
    C local variables
    C----------------------------------------------------------------------
    C properties
    REAL*8 cc,bb1,bb2,bb3,bb4,bb5,bb6,bb7
    C boring elements of the strain tensor
    REAL*8 err, ett, ezz, erz, lamrr, lamtt, lamzz
    C elements of the stress tensor
    REAL*8 srr, stt, szz, srz
    C elements of the jacobian matrix
    REAL*8 Crrrr,Ctttt,Czzzz
    REAL*8 Crrzz,Czztt,Crrtt
    REAL*8 Crzrz


    C energy function
    REAL*8 energy


    C check we are not plane stress
    C IF(ndi.NE.3) THEN
    C WRITE(7,*) "Needs three direct strain components"
    C ENDIF


    C set parameters
    cc=props(1)
    bb1=props(2)
    bb2=props(3)
    bb3=props(4)
    bb4=props(5)
    bb5=props(6)
    bb6=props(7)
    bb7=bb2+bb3-2*bb5


    C Setup various strain related quantities
    C stretch ratio
    lamrr=EXP(STRAN(1))
    lamzz=EXP(STRAN(2))
    lamtt=EXP(STRAN(3))


    C Green Strain Tensor
    err=(lamrr*lamrr-1)/2
    ezz=(lamzz*lamzz-1)/2
    ett=(lamtt*lamtt-1)/2
    erz=STRAN(4)


    C Energy function
    energy=cc/2*EXP( bb1*ett**2 + bb2*ezz**2 + bb3*err**2
    1 +bb7*erz**2
    2 +2*bb4*ett*ezz+2*bb5*ezz*err+2*bb6*err*ett)


    C Elements of the stress tensor
    srr=2*energy*(bb3*err+bb5*ezz+bb6*ett)*lamrr*lamrr
    stt=2*energy*(bb1*ett+bb4*ezz+bb6*err)*lamtt*lamtt
    szz=2*energy*(bb2*ezz+bb4*ett+bb5*err)*lamzz*lamzz
    srz=2*energy*bb7*erz*lamrr*lamzz


    C Elements of the jacobian matrix
    Crrrr=2*lamrr*lamrr*energy*(2*lamrr*lamrr*(bb3*err
    1 +bb5*ezz+bb6*ett)*(bb3*err+bb5*ezz+bb6*ett)
    1 +2*(bb3*err+bb5*ezz+bb6*ett)+bb3*lamrr*lamrr)
    Czzzz=2*lamzz*lamzz*energy*(2*lamzz*lamzz*(bb2*ezz
    1 +bb4*ett+bb5*err)*(bb2*ezz+bb4*ett+bb5*err)
    1 +2*(bb2*ezz+bb4*ett+bb5*err)+bb2*lamzz*lamzz)
    Ctttt=2*lamtt*lamtt*energy*(2*lamtt*lamtt*(bb1*ett
    1 +bb4*ezz+bb6*err)*(bb1*ett+bb4*ezz+bb6*err)
    1 +2*(bb1*ett+bb4*ezz+bb6*err)+bb1*lamtt*lamtt)
    Crzrz= 2*energy*bb7*lamrr*lamzz
    Crrzz=2*lamrr*lamrr*lamzz*lamzz*energy*(2*(bb3*err
    1 +bb5*ezz+bb6*ett)*(bb2*ezz+bb4*ett+bb5*err)+bb5)
    Czztt=2*lamzz*lamzz*lamtt*lamtt*energy*(2*(bb1*ett
    1 +bb4*ezz+bb6*err)*(bb2*ezz+bb4*ett+bb5*err)+bb4)
    Crrtt=2*lamrr*lamrr*lamtt*lamtt*energy*(2*(bb3*err
    1 +bb5*ezz+bb6*ett)*(bb1*ett+bb4*ezz+bb6*err)+bb6)


    C Fill them up


    STRESS(1)=srr
    STRESS(2)=szz
    STRESS(3)=stt
    STRESS(4)=srz


    DDSDDE(1,1)=Crrrr
    DDSDDE(2,2)=Czzzz
    DDSDDE(3,3)=Ctttt
    DDSDDE(4,4)=Crzrz


    DDSDDE(1,2)=Crrzz
    DDSDDE(2,1)=Crrzz
    DDSDDE(2,3)=Czztt
    DDSDDE(3,2)=Czztt
    DDSDDE(3,1)=Crrtt
    DDSDDE(1,3)=Crrtt


    DDSDDE(1,4)=0
    DDSDDE(4,1)=0
    DDSDDE(2,4)=0
    DDSDDE(4,2)=0
    DDSDDE(3,4)=0
    DDSDDE(4,3)=0
    C all done


    RETURN
    END
    %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

  6. #6
    Join Date
    2000-02
    Location
    Boston, USA
    Posts
    3,280
    Michelle,

    At first sight, your code looks OK. Do you run your simulation on one element with prescribed displacements? What results do you get in the sta-file?

    I would add print statements to your code to output what is going on with the code and what values it calculates. That will allow you to verify that the values that are calculated are what you think they should be.

    - Jorgen

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
  •