Writing an UHARD

Hello everyone!

In the course of my studies i want to experiment with different plasticity models/different yielding models. To achieve this, i want to write a subroutine for Abaqus Standard. As i understand it, for my purposes an UHARD will suffice.

For practicing, i tried to rewrite the Johnson & Cook - flow stress model (https://wikimedia.org/api/rest_v1/media/math/render/svg/e465f21e3f33e47fd9fb67b27f892a42cfc536fa) as a subroutine. It looks like this:

SUBROUTINE UHARD(SYIELD,HARD,EQPLAS,EQPLASRT,TIME,DTIME,TEMP,
1 DTEMP,NOEL,NPT,LAYER,KSPT,KSTEP,KINC,CMNAME,NSTATV,
2 STATEV,NUMFIELDV,PREDEF,DPRED,NUMPROPS,PROPS)
C
INCLUDE 'ABA_PARAM.INC'
C
CHARACTER*80 CMNAME
DIMENSION HARD(3),STATEV(NSTATV),TIME(*),
\$ PREDEF(NUMFIELDV),DPRED(*),PROPS(*)
C------------------------------------------------------------------------------------------------------------------------
PARAMETER (ZERO=0.0D0,ONE=1.0D0,TWO=2.0D0)
C------------------------------------------------------------------------------------------------------------------------
A=PROPS(1)
B=PROPS(2)
EN=PROPS(3)
C=PROPS(4)
EM=PROPS(5)
EQPLASRT0=PROPS(6)
TM=PROPS(7)
TR=PROPS(8)
C------------------------------------------------------------------------------------------------------------------------
C JC-PLASTICITY MODEL:
C------------------------------------------------------------------------------------------------------------------------  
C FIRST FACTOR (STRAIN HARDENING):
C------------------------------------------------------------------------------------------------------------------------ 
STRAINF=A+(B*EQPLAS**EN)
C------------------------------------------------------------------------------------------------------------------------  
C SECOND FACTOR (STRAIN RATE HARDENING):
C------------------------------------------------------------------------------------------------------------------------ 
LOGF=log(EQPLASRT/EQPLASRT0)
IF (LOGF .LT. ZERO) LOGF=ZERO
STRAINRTF=ONE+C*LOGF
C------------------------------------------------------------------------------------------------------------------------  
C THIRD FACTOR (TEMPERATURE SOFTENING):
C------------------------------------------------------------------------------------------------------------------------ 
CURRENTTEMP=TEMP+DTEMP
TEMPF=ONE-((CURRENTTEMP-TR)/(TM-TR))**EM
IF (TEMPF .LT. ZERO) TEMPF=ZERO
IF (TEMPF .GT. ONE) TEMPF=ONE
C------------------------------------------------------------------------------------------------------------------------
C DEFINE HARD(1),HARD(2),HARD(3) --> DERIVATE JC-PLASTICITY MODEL WITH RESPECT TO EPS,DEPS,TEMP
C------------------------------------------------------------------------------------------------------------------------
C------------------------------------------------------------------------------------------------------------------------
C DEFINE HARD(1) --> DERIVATE JC-PLASTICITY MODEL WITH RESPECT TO PLASTIC STRAIN (=EQPLAS)
C------------------------------------------------------------------------------------------------------------------------  
DEPSSTRAINF=EN*B*EQPLAS**(EN-ONE)
C------------------------------------------------------------------------------------------------------------------------
C DEFINE HARD(2) --> DERIVATE JC-PLASTICITY MODEL WITH RESPECT TO PLASTIC STRAIN RATE (EQPLASRT)
C------------------------------------------------------------------------------------------------------------------------
DSTRAINRTF=C/EQPLASRT
C------------------------------------------------------------------------------------------------------------------------
C DEFINE HARD(3) --> DERIVATE JC-PLASTICITY MODEL WITH RESPECT TO THE TEMPERATURE
C------------------------------------------------------------------------------------------------------------------------
DTEMPF=(EM*((CURRENTTEMP-TR)/(TM-TR))**(EM-ONE))*(ONE/(TM-TR))
C------------------------------------------------------------------------------------------------------------------------  
C JOHNSON & COOK YIELD STRESS & HARDENING FACTOR COMPUTATION:
C------------------------------------------------------------------------------------------------------------------------ 
SYIELD=STRAINF*STRAINRTF*TEMPF
HARD(1)=DEPSSTRAINF*STRAINRTF*TEMPF
HARD(2)=STRAINF*DSTRAINRTF*TEMPF
HARD(3)=STRAINF*STRAINRTF*DTEMPF
RETURN
END

The input file for the material reads like this:

*Conductivity
7.2, 25.
*Density
4.43e-09,
*Elastic
110000., 0.31
*Expansion
8.8e-06,
*Inelastic Heat Fraction
0.9,
*Plastic, hardening=USER, properties=8
968., 380., 0.42, 0.012, 0.57, 1., 1550., 25.
*Specific Heat
6.3e+08, 25.

I get no compilation errors, which means the code is correct from an syntactic POV.

But if i try to simulate an orthogonal cut with an step time from 1e-05s and an initial increment of 1e-08s i get convergence issues:

(Warnings & errors for the last attempt)

***WARNING: THE PLASTICITY/CREEP/CONNECTOR FRICTION ALGORITHM DID NOT CONVERGE 
AT 21261 POINTS

***NOTE: MATERIAL CALCULATIONS FAILED TO CONVERGE OR WERE NOT ATTEMPTED AT ONE 
OR MORE POINTS. CONVERGENCE IS JUDGED UNLIKELY.

***ERROR: TIME INCREMENT REQUIRED IS LESS THAN THE MINIMUM SPECIFIED

***ERROR: TOO MANY ATTEMPTS MADE FOR THIS INCREMENT

The model works with the ABAQUS-given JC-plasticity-model.

What did i do wrong/forget?