subroutineabaqus

Abaqus HETVAL or DFLUX Input Variables : Possible to create heat flux dependent on stresses and strain rate?


I'm new to abaqus subroutines and Fortran in general and a bit confused right now. I'm trying to simulate the anelastic heat dissipation during cyclic loading. Because of that I need some way to define a heat flux which is dependent on strain, stress and possibly some damge Parameter. There are different user subroutines like HETVAL or DFLUX which seem to be appropriate for this problem, but in the Documentation it states that none of these can use stresses or strains as input variables.

SUBROUTINE HETVAL(CMNAME,TEMP,TIME,DTIME,STATEV,FLUX,
     1 PREDEF,DPRED)
C
      INCLUDE 'ABA_PARAM.INC'
C
      CHARACTER*80 CMNAME
C
      DIMENSION TEMP(2),STATEV(*),PREDEF(*),TIME(2),FLUX(2),
     1 DPRED(*)


      user coding to define FLUX and update STATEV


      RETURN
      END

      
      SUBROUTINE DFLUX(FLUX,SOL,KSTEP,KINC,TIME,NOEL,NPT,COORDS,
     1 JLTYP,TEMP,PRESS,SNAME)
C
      INCLUDE 'ABA_PARAM.INC'
C
      DIMENSION FLUX(2), TIME(2), COORDS(3),
      CHARACTER*80 SNAME


      user coding to define FLUX(1) and FLUX(2)


      RETURN
      END

As you see neither Hetvall nor DFLUX support Stresses 'S' or Strains 'LE' (logarithmic strain) as input variables.

I already googled extensively but could't find anyone withe the same problem. So i just wanted to ask if someone else managed to teach the HETVAL or DFLUX Subroutine to read solution variables like stresses or strains? Is that even possible at all? My Problem actually shouldn't be that hard the biggest problem is to tell abaqus what to do.

Thank you!:)


Solution

  • It looks like you can access 'S' or 'LE' through state variables which are part of the HETVAL subroutine. You can access and modify the state variables in the USDFLD subroutine, which is called before HETVAL. In your USDFLD subroutine you call the GETVRM utility routine to get 'S' or 'LE' and can then set the corresponding state variable to that value.