0

The problem is solved by watching this video: https://www.youtube.com/watch?v=qGNAdlDoeTs

I've tried linking Abaqus 2018 with Fortran and the subroutine check passed.

But I got this error when running my UMAT:

"Error in job UMAT: Problem during compilation - C:\PhD\UMAT-elastic.for Job UMAT aborted due to errors."

I have Visual Studio Enterprise 2015 and Intel Parallel Studio XE 2018

here is my code which is exactly what derived in https://help.3ds.com/2018/english/dssimulia_established/simacaesubrefmap/simasub-c-umat.htm?contextscope=all

 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,JSTEP,KINC)

  INCLUDE 'ABA_PARAM.INC'

  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),DFGRD1(3,3),
 5 JSTEP(4)
  DIMENSION DSTRES(6),D(3,3)
    EVALUATE NEW STRESS TENSOR

  EV = 0.
  DEV = 0.
  DO K1=1,NDI
     EV = EV + STRAN(K1)
     DEV = DEV + DSTRAN(K1)
  END DO

  TERM1 = .5*DTIME + PROPS(5)
  TERM1I = 1./TERM1
  TERM2 = (.5*DTIME*PROPS(1)+PROPS(3))*TERM1I*DEV
  TERM3 = (DTIME*PROPS(2)+2.*PROPS(4))*TERM1I

  DO K1=1,NDI
     DSTRES(K1) = TERM2+TERM3*DSTRAN(K1)
 1     +DTIME*TERM1I*(PROPS(1)*EV
 2     +2.*PROPS(2)*STRAN(K1)-STRESS(K1))
     STRESS(K1) = STRESS(K1) + DSTRES(K1)
  END DO

  TERM2 = (.5*DTIME*PROPS(2) + PROPS(4))*TERM1I
  I1 = NDI
  DO K1=1,NSHR
     I1 = I1+1
     DSTRES(I1) = TERM2*DSTRAN(I1)+
 1     DTIME*TERM1I*(PROPS(2)*STRAN(I1)-STRESS(I1))
     STRESS(I1) = STRESS(I1)+DSTRES(I1)
  END DO

  CREATE NEW JACOBIAN

  TERM2 = (DTIME*(.5*PROPS(1)+PROPS(2))+PROPS(3)+
 1  2.*PROPS(4))*TERM1I
  TERM3 = (.5*DTIME*PROPS(1)+PROPS(3))*TERM1I
  DO K1=1,NTENS
     DO K2=1,NTENS
        DDSDDE(K2,K1) = 0.
     END DO
  END DO

  DO K1=1,NDI
     DDSDDE(K1,K1) = TERM2
  END DO

  DO K1=2,NDI
     N2 = K1−1
     DO K2=1,N2
        DDSDDE(K2,K1) = TERM3
        DDSDDE(K1,K2) = TERM3
     END DO
  END DO
  TERM2 = (.5*DTIME*PROPS(2)+PROPS(4))*TERM1I
  I1 = NDI
  DO K1=1,NSHR
     I1 = I1+1
     DDSDDE(I1,I1) = TERM2
  END DO

   TOTAL CHANGE IN SPECIFIC ENERGY

  TDE = 0.
  DO K1=1,NTENS
     TDE = TDE + (STRESS(K1)-.5*DSTRES(K1))*DSTRAN(K1)
  END DO

  CHANGE IN SPECIFIC ELASTIC STRAIN ENERGY

  TERM1 = PROPS(1) + 2.*PROPS(2)
  DO  K1=1,NDI
     D(K1,K1) = TERM1
  END DO
  DO K1=2,NDI
     N2 = K1-1
     DO K2=1,N2
        D(K1,K2) = PROPS(1)
        D(K2,K1) = PROPS(1)
     END DO
  END DO
  DEE = 0.
  DO K1=1,NDI
     TERM1 = 0.
     TERM2 = 0.
     DO K2=1,NDI
        TERM1 = TERM1 + D(K1,K2)*STRAN(K2)
        TERM2 = TERM2 + D(K1,K2)*DSTRAN(K2)
     END DO
     DEE = DEE + (TERM1+.5*TERM2)*DSTRAN(K1)
  END DO
  I1 = NDI
  DO K1=1,NSHR
     I1 = I1+1
     DEE = DEE + PROPS(2)*(STRAN(I1)+.5*DSTRAN(I1))*DSTRAN(I1)
  END DO
  SSE = SSE + DEE
  SCD = SCD + TDE − DEE
  RETURN
  END
Hamed
  • 1
  • 2
  • According documentation of Abaqus. The version of visual studio it supports is 2015. I do not recommend using unsupported programs it may lead to unstable behavior, that in some cases it works in others it doesn't. Furthermore post the code you are trying to compile and link. So we can assist you further. – UN4 Mar 19 '20 at 08:17
  • Thanks for your comment. Yes; I am using VS 2015 enterprise. my code is also added. – Hamed Mar 19 '20 at 22:49
  • Five years behind? They should do a better job of keeping up than that. – duffymo Mar 23 '20 at 14:26

1 Answers1

0

You say you want to run and compile UMAT (custom material model) but the subroutine you define is ABQmain (result post processor). Do you want to compile custom user subroutine or result post processor? By Looking to your code it seems that you would like user subroutine UMAT. therefore change ABQmain to UMAT and give it a shot again.

Best to follow examples from the manual: https://help.3ds.com/2018/english/dssimulia_established/simacaesubrefmap/simasub-c-umat.htm?contextscope=all

UN4
  • 587
  • 5
  • 19
  • Thanks for your comment. So, I copied and pasted the code in the link and defined 5 parameters in the Materials>>User Material and link the FORTRAN code in the job manager part, but it still gives me the error. – Hamed Mar 21 '20 at 08:04
  • You now changed the error to: `"Error in job UMAT: Problem during compilation - C:\PhD\UMAT-elastic.for Job UMAT aborted due to errors."` Before it was something with include. Could you also paste full error log? – UN4 Mar 24 '20 at 13:17
  • Thank you very much for your comments; I've solved the problem by watching this video: https://www.youtube.com/watch?v=qGNAdlDoeTs – Hamed Mar 30 '20 at 03:23