what's wrong with the UMAT subroutine

classic Classic list List threaded Threaded
7 messages Options
Reply | Threaded
Open this post in threaded view
|

what's wrong with the UMAT subroutine

lei1024747@sina.com
hi,

    Thanks for your time and patience reading this email.

     Recently I've been trying to define a coordinate-dependent Young's modulus in a 2D plane stress model. I've write a user subroutine as below, but there's a error message ('Problem during compilation') when running the subroutine with ABAQUS/CAE.

    Could anyone tell me what's going wrong with the subroutine?  Thanks again!  Frankey

      SUBROUTINE UMAT(STRESS,STATEV,DDSDDE,SSE,SPD,SCD,
     1 RPL,DDSDDT,DRPLDE,DRPLDT,
     2 STRAN,DSTRAN,TIME,DTIME,TEMP,DTEMP,PREDEF,DPRED,CMNAME,
     3 NDI,NSHR,NTENS,NSTATV,PROPS,NPROPS,COORDS,DROT,PNEWDT,
     4 CELENT,DFGRD0,DFGRD1,NOEL,NPT,LAYER,KSPT,KSTEP,KINC)
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),DFGRD1(3,3)
     4 JSTEP(4)
C     VARIED YOUNG'S MODULUS WITH COORDINATE
      PARAMETER (poiss = .3D0, ONE = 1.D0, TWO= 2.D0, YY=20000.D0)
      X=COORDS(2)
      young = YY*X
      Lamda = young/(ONE - poiss*poiss)
      DO I=1,NTENS
       DO J=1,NTENS
        DDSDDE(I,J) = 0.
       ENDDO
      ENDDO
      DDSDDE(1,1) = Lamda
      DDSDDE(2,2) = Lamda
      DDSDDE(1,2) = Lamda*poiss
      DDSDDE(2,1) = Lamda*poiss
      DDSDDE(3,3) = (1.-poiss)*Lamda/TWO
     
      DO K=1,NTENS
       DO L=1,NTENS
          STRESS(K)=STRESS(K)+DDSDDE(K,L)* DSTRAIN(L)
       ENDDO
      ENDDO
     
      RETURN
      END




[hidden email]
Reply | Threaded
Open this post in threaded view
|

Re: what's wrong with the UMAT subroutine

Martin Bäker
don't know what's wrong with your routine, but it would be much simpler
to make Young's modulus dependent on a field variable and use
UFIELD/USDFLD to determine its value.

On Fri, 7 Dec 2018 10:00:57 +0800
"'[hidden email]' [hidden email] [Abaqus]"
<[hidden email]> wrote:

> hi,
>
>     Thanks for your time and patience reading this email.
>
>      Recently I've been trying to define a coordinate-dependent Young's modulus in a 2D plane stress model. I've write a user subroutine as below, but there's a error message ('Problem during compilation') when running the subroutine with ABAQUS/CAE.
>
>     Could anyone tell me what's going wrong with the subroutine?  Thanks again!  Frankey
>
>       SUBROUTINE UMAT(STRESS,STATEV,DDSDDE,SSE,SPD,SCD,
>      1 RPL,DDSDDT,DRPLDE,DRPLDT,
>      2 STRAN,DSTRAN,TIME,DTIME,TEMP,DTEMP,PREDEF,DPRED,CMNAME,
>      3 NDI,NSHR,NTENS,NSTATV,PROPS,NPROPS,COORDS,DROT,PNEWDT,
>      4 CELENT,DFGRD0,DFGRD1,NOEL,NPT,LAYER,KSPT,KSTEP,KINC)
> 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),DFGRD1(3,3)
>      4 JSTEP(4)
> C     VARIED YOUNG'S MODULUS WITH COORDINATE
>       PARAMETER (poiss = .3D0, ONE = 1.D0, TWO= 2.D0, YY=20000.D0)
>       X=COORDS(2)
>       young = YY*X
>       Lamda = young/(ONE - poiss*poiss)
>       DO I=1,NTENS
>        DO J=1,NTENS
>         DDSDDE(I,J) = 0.
>        ENDDO
>       ENDDO
>       DDSDDE(1,1) = Lamda
>       DDSDDE(2,2) = Lamda
>       DDSDDE(1,2) = Lamda*poiss
>       DDSDDE(2,1) = Lamda*poiss
>       DDSDDE(3,3) = (1.-poiss)*Lamda/TWO
>
>       DO K=1,NTENS
>        DO L=1,NTENS
>           STRESS(K)=STRESS(K)+DDSDDE(K,L)* DSTRAIN(L)
>        ENDDO
>       ENDDO
>
>       RETURN
>       END
>
>
>
>
> [hidden email]


--
                   Priv.-Doz. Dr. Martin Bäker
                   Institut für Werkstoffe
                   Technische Universität Braunschweig
                   Langer Kamp 8
                   38106 Braunschweig
                   Germany
                   Tel.: 00-49-531-391-3065
                   Fax   00-49-531-391-3058
                   e-mail <[hidden email]>
                   http://www.tu-braunschweig.de/ifw/institut/mitarbeiter/baeker
                http://www.scienceblogs.de/hier-wohnen-drachen
Reply | Threaded
Open this post in threaded view
|

RE: what's wrong with the UMAT subroutine

David Lindeman
In reply to this post by lei1024747@sina.com
  1.  Note that ABA_PARAM.INC contains the line ‘IMPLICIT REAL*8 (A-H,O-Z)’.  This means that variables starting with I through N are assumed to be integers.  Thus, your ‘Lambda’ variable would be an integer.
  2.  At least as posted in the e-mail, there seem to be some extraneous characters, for example:

      SUBROUTINE UMAT(STRESS,STATEV,DDSDDE,SSE,SPD,SCD,
    ! ; 1 RPL,DDSDDT,DRPLDE,DRPLDT,

     DDSDDE(3,3) = (1! .-poiss)*Lamda/TWO

Regards,

Dave Lindeman
Staff Scientist
Corporate Research Systems Laboratory
3M Center 235-3G-08
St. Paul, MN 55144
651-733-6383

From: [hidden email] [mailto:[hidden email]]
Sent: Thursday, December 06, 2018 8:01 PM
To: [hidden email]
Subject: [EXTERNAL] [Abaqus] what's wrong with the UMAT subroutine


hi,

    Thanks for your time and patience reading this email.

     Recently I've been trying to define a coordinate-dependent Young's modulus in a 2D plane stress model. I've write a user subroutine as below, but there's a error message ('Problem during compilation') when running the subroutine with ABAQUS/CAE.

    Could anyone tell me what's going wrong with the subroutine?  Thanks again!  Frankey

      SUBROUTINE UMAT(STRESS,STATEV,DDSDDE,SSE,SPD,SCD,
    ! ; 1 RPL,DDSDDT,DRPLDE,DRPLDT,
     2 STRAN,DSTRAN,TIME,DTIME,TEMP,DTEMP,PREDEF,DPRED,CMNAME,
     3 NDI,NSHR,NTENS,NSTATV,PROPS,NPROPS,COORDS,DROT,PNEWDT,
     4 CELENT,DFGRD0,DFGRD1,NOEL,NPT,LAYER,KSPT,KSTEP,KINC)
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),DFGRD1(3,3)
     4 JSTEP(4)
C     VARIED&! nbsp;YOUNG'S MODULUS WITH COORDINATE
 &! nbsp;    PARAMETER (poiss = .3D0, ONE = 1.D0, TWO= 2.D0, YY=20000.D0)
      X=COORDS(2)
      young = YY*X
      Lamda = young/(ONE - poiss*poiss)
      DO I=1,NTENS
       DO J=1,NTENS
        DDSDDE(I,J) = 0.
       ENDDO
      ENDDO
      DDSDDE(1,1) = Lamda
      DDSDDE(2,2) = Lamda
      DDSDDE(1,2) = Lamda*poiss
      DDSDDE(2,1) = Lamda*poiss
      DDSDDE(3,3) = (1! .-poiss)*Lamda/TWO

      DO K=1,NTENS
       DO L=1,NTENS
          STRESS(K)=STRESS(K)+DDSDDE(K,L)*DSTRAIN(L)
       ENDDO
      ENDDO

      RETURN
      END


________________________________
[hidden email]





________________________________



3M Notice: This communication is from an [EXTERNAL] sender.
If this email looks suspicious, do NOT click or open any links or attachments in the email. To report a suspicious email, click on the Report Phishing – PhishMe icon in the Outlook ribbon or forward this email using the report email as spam link in the text below.

Click here<https://spam.mmm.com/pem/pages/digestProcess/digestProcess.jsf?content=aedaaa864ecbae94140305c08d43986d739753923c2cddf483049b16f02976bac6c4ff5fb22097b592aab29dac82584f30f60c161a797f8d8d8a621478a2f25250f75f3a4b570e12125b08ef0dd8e5d1dbc7a045714a146255659761471276b9c37b570f20a98a734732948327931bff93d08ba9b6d561fece99c327acde977017d051a1b719785d> to report this email as spam





[Non-text portions of this message have been removed]

Reply | Threaded
Open this post in threaded view
|

Re: what's wrong with the UMAT subroutine

Amir Molavizadeh
In reply to this post by lei1024747@sina.com
Hi,
I strongly recommend you to open .log file type and investigate errors.You
can simply understand errors by checking this file.So, you can resolve it.

Also you can join to this group in order to gain suitable answers.

https://chat.whatsapp.com/JiBFoAQ8sP05JyjN8Wyr3L


On Fri, 7 Dec 2018, 15:31 '[hidden email]' [hidden email]
[Abaqus], <[hidden email]> wrote:

>
>
> hi,
>
>     Thanks for your time and patience reading this email.
>
>      Recently I've been trying to define a coordinate-dependent Young's
> modulus in a 2D plane stress model. I've write a user subroutine as below,
> but there's a error message ('Problem during compilation') when running
> the subroutine with ABAQUS/CAE.
>
>     Could anyone tell me what's going wrong with the subroutine?  Thanks
> again!  Frankey
>
>       SUBROUTINE UMAT(STRESS,STATEV,DDSDDE,SSE,SPD,SCD,
>      1 RPL,DDSDDT,DRPLDE,DRPLDT,
>      2 STRAN,DSTRAN,TIME,DTIME,TEMP,DTEMP,PREDEF,DPRED,CMNAME,
>      3 NDI,NSHR,NTENS,NSTATV,PROPS,NPROPS,COORDS,DROT,PNEWDT,
>      4 CELENT,DFGRD0,DFGRD1,NOEL,NPT,LAYER,KSPT,KSTEP,KINC)
> 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),DFGRD1(3,3)
>      4 JSTEP(4)
> C     VARIED YOUNG'S MODULUS WITH COORDINATE
>       PARAMETER (poiss = .3D0, ONE = 1.D0, TWO= 2.D0, YY=20000.D0)
>       X=COORDS(2)
>       young = YY*X
>       Lamda = young/(ONE - poiss*poiss)
>       DO I=1,NTENS
>        DO J=1,NTENS
>         DDSDDE(I,J) = 0.
>        ENDDO
>       ENDDO
>       DDSDDE(1,1) = Lamda
>       DDSDDE(2,2) = Lamda
>       DDSDDE(1,2) = Lamda*poiss
>       DDSDDE(2,1) = Lamda*poiss
>       DDSDDE(3,3) = (1.-poiss)*Lamda/TWO
>
>       DO K=1,NTENS
>        DO L=1,NTENS
>           STRESS(K)=STRESS(K)+DDSDDE(K,L)* DSTRAIN(L)
>        ENDDO
>       ENDDO
>
>       RETURN
>       END
>
>
> ------------------------------
> [hidden email]
>
>
>
Reply | Threaded
Open this post in threaded view
|

Re: what's wrong with the UMAT subroutine

cpmorena
In reply to this post by lei1024747@sina.com
Reply | Threaded
Open this post in threaded view
|

Re: what's wrong with the UMAT subroutine

lei1024747@sina.com
In reply to this post by lei1024747@sina.com
hey,

    thanks for all the suggestions!

    I think I should solve this problem in two steps, the first step is to comfirm that the link between abaqus and fortran compiler is successful (which I've solved last night through a re-installation of abaqus software), and the second is to check for syntax errors in the subroutine.

   Also, if there's anything relevant to this topic, advices or questions, please feel free to contact me.

  Thanks!

Frankey Zhang



[hidden email]
Reply | Threaded
Open this post in threaded view
|

Re: what's wrong with the UMAT subroutine

aysar_lami
Dear Zhang, I had the same problem as yours with linking Abaqus with Fortran, I've attached the verification file if you can kindly tell me how to solve the error.
 

 Best regards,
 

 Aysar
 

 

 Abaqus Product Install Verification...
 

 Wed Feb 13 23:56:10 2019
 

 Found C:\Temp\verify.  All verification files will reside in this directory.
 

 Old job files exist.  They will be moved to verifyOLD.
 

 -----------------------------------------------------------------------------
 Abaqus/Standard
 

 

          ...PASS
 

          Continuing...
 

 -----------------------------------------------------------------------------
 Abaqus/Standard with user subroutines
 

 

          ...PASS
 

          Continuing...
 

 -----------------------------------------------------------------------------
 Abaqus/Explicit (single precision)
 

 

          ...PASS
 

          Continuing...
 

 -----------------------------------------------------------------------------
 Abaqus/Explicit (double precision)
 

 

          ...PASS
 

          Continuing...
 

 -----------------------------------------------------------------------------
 Abaqus/Explicit with user subroutines (single precision)
 

 

          ...PASS
 

          Continuing...
 

 -----------------------------------------------------------------------------
 Abaqus/Explicit with user subroutines (double precision)
 

 

          ...PASS
 

          Continuing...
 

 -----------------------------------------------------------------------------
 Abaqus/Viewer
 

 

          ...ERROR
 

             Abaqus did not complete successfully.
 

             Please see Viewer.log for details.
 

             Turning off hardware acceleration may correct the
             problem. For more information see QA00000009378 in
             the 3DS Knowledge Base.
 

          Continuing...
 

 -----------------------------------------------------------------------------
 Abaqus/CAE
 

 

          ...ERROR
 

             Abaqus did not complete successfully.
 

             Please see CAE.log for details.
 

             Turning off hardware acceleration may correct the
             problem. For more information see QA00000009378 in
             the 3DS Knowledge Base.
 

          Continuing...
 

 -----------------------------------------------------------------------------
 Geometry Translator for CATIA V4
 

 

          ...WARNING
 

             Abaqus/CAE verification failed. Verification
             procedure will be skipped.
 

          Continuing...
 

 -----------------------------------------------------------------------------
 Geometry Translator for CATIA V5
 

 

          ...WARNING
 

             Abaqus/CAE verification failed. Verification
             procedure will be skipped.
 

          Continuing...
 

 -----------------------------------------------------------------------------
 Direct Geometry Import for CATIA V5
 

 

          ...WARNING
 

             Abaqus/CAE verification failed. Verification
             procedure will be skipped.
 

          Continuing...
 

 -----------------------------------------------------------------------------
 Geometry Translator for Parasolid
 

 

          ...WARNING
 

             Abaqus/CAE verification failed. Verification
             procedure will be skipped.
 

          Continuing...
 

 -----------------------------------------------------------------------------
 Geometry Translator for Pro/ENGINEER
 

 

          ...WARNING
 

             Abaqus/CAE verification failed. Verification
             procedure will be skipped.
 

          Continuing...
 

 -----------------------------------------------------------------------------
 Geometry Translator for SolidWorks
 

 

          ...WARNING
 

             Abaqus/CAE verification failed. Verification
             procedure will be skipped.
 

          Continuing...
 

 -----------------------------------------------------------------------------
 Abaqus/AMS
 

 

          ...PASS
 

          Continuing...
 

 -----------------------------------------------------------------------------
 Abaqus Interface for MSC.ADAMS
 

 

          ...PASS
 

          Continuing...
 

 -----------------------------------------------------------------------------
 Abaqus/Standard parametric studies
 

 

          ...PASS
 

          Continuing...
 

 -----------------------------------------------------------------------------
 Abaqus/Explicit parametric studies
 

 

          ...PASS
 

          Continuing...
 

 -----------------------------------------------------------------------------
 Abaqus/Design
 

 

          ...PASS
 

          Continuing...
 

 -----------------------------------------------------------------------------
 Abaqus Interface for Moldflow
 

 

          ...PASS
 

          Continuing...
 

 -----------------------------------------------------------------------------
 Abaqus make utility with Fortran
 

 

          ...PASS
 

          Continuing...
 

 -----------------------------------------------------------------------------
 Abaqus make utility with C++
 

 

          ...PASS
 

          Continuing...
 

 -----------------------------------------------------------------------------
 Abaqus make utility with object code
 

 

          ...PASS
 

          Continuing...
 

 -----------------------------------------------------------------------------
 Abaqus scripting interface
 

 

          ...PASS
 

          Continuing...
 

 -----------------------------------------------------------------------------
 Abaqus analyses using parallelization
 

 

       Running thread-based parallel with 2 cpu(s)
 

             Abaqus/Explicit domain-level parallel
 

          ...PASS
 

             Abaqus/Standard direct solver
 

          ...PASS
 

          Continuing...
 

 -----------------------------------------------------------------------------
 Abaqus/Foundation
 

 

          ...PASS
 

          Continuing...
 

 -----------------------------------------------------------------------------
 Abaqus noGUI (CAE/Viewer)
 

 

          ...PASS
 

          Continuing...
 

 -----------------------------------------------------------------------------
 Abaqus/CFD
 

 

          ...PASS
 

          Continuing...
 

 -----------------------------------------------------------------------------
 Tosca For Abaqus
 

 

          ...PASS
 

          Continuing...
 

 -----------------------------------------------------------------------------
 Clean-up...
 

 Job files exist. Verification directory C:\Temp\verify will not be deleted.