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?