VHETVAL

User subroutine to provide internal heat generation in a heat transfer analysis.

User subroutine VHETVAL:

  • can be used to define a heat flux due to internal heat generation in a material (for example, as might be associated with phase changes occurring during the solution);
  • will be called for blocks of material calculation points for which the material definition contains internal heat generation;
  • can be useful if it is necessary to include a kinetic theory for a phase change associated with latent heat release (for example, in the prediction of crystallization in a polymer casting process);
  • can use and update solution-dependent state variables as an alternative to user subroutine VUMATHT without a requirement to completely define material thermal behavior;
  • can use any field variables that are passed in; and
  • can be used with thermally coupled continuum elements and Eulerian elements.

This page discusses:

User Subroutine Interface

      subroutine vhetval (
C Read only (unmodifiable) variables -
     *     nblock, nElem, nIntPt, nLayer, nSectPt, 
     *     ntgrad, nstatev, nfieldv, nprops,
     *     cmname, stepTime, totalTime, dt, 
     *     coordMp, density, props,
     *     tempOld, fieldOld, stateOld, 
     *     tempNew, tempgradNew, fieldNew, 
C Write only (modifiable) variables -
     *     stateNew, flux )
C
      include 'vaba_param.inc'
C
      dimension nElem(nblock)
C
      dimension coordMp(nblock,*), density(nblock), props(nprops),
     *    tempOld(nblock), fieldOld(nblock, nfieldv), 
     *    stateOld(nblock, nstatev), tempNew(nblock), 
     *    tempgradNew(nblock, ntgrad), fieldNew(nblock, nfieldv), 
     *    stateNew(nblock, nstatev), flux(nblock)
C
      character*80 cmname
C
      do km = 1, nblock
C         user coding
      end do
C
      return
      end

Variables to Be Defined

flux(nblock)
Volumetric heat flux at each material point.
stateNew(nblock, nstatev)
State variables at each material point at the end of the increment.

Variables Passed in for Information

nblock
Number of material points to be processed in this call to user subroutine VHETVAL.
nElem(nblock)
User-defined element number.
nIntPt
Integration point number.
nLayer
Layer number.
nSectPt
Section point number in the current layer.
ntgrad
Number of spatial gradients of temperature.
nstatev
Number of user-defined state variables that are associated with this material type (see Allocating Space for Solution-Dependent State Variables).
nfieldv
Number of user-defined external field variables.
nprops
User-specified number of user-defined material properties.
cmname
User-specified material name, left justified. It is passed in as an uppercase character string. Some internal material models are given names starting with the “ABQ_” character string. To avoid conflict, you should not use “ABQ_” as the leading string for cmname.
stepTime
Value of time since the step began.
totalTime
Value of total time. The time at the beginning of the step is given by totalTime - stepTime.
dt
Time increment size.
coordMp(nblock,*)
Material point coordinates.
density(nblock)
Current density at the material points in the midstep configuration.
props(nprops)
User-supplied material properties.
tempOld(nblock)
Temperatures at each material point at the beginning of the increment.
fieldOld(nblock, nfieldv)
Values of the user-defined field variables at each material point at the beginning of the increment.
stateOld(nblock, nstatev)
State variables at each material point at the beginning of the increment.
tempNew(nblock)
Temperatures at each material point at the end of the increment.
tempgradNew(nblock, ntgrad)
Current values of the spatial gradients of temperature.
fieldNew(nblock, nfieldv)
Values of the user-defined field variables at each material point at the end of the increment.