1.1.32 UMATHT
User subroutine to define a material's thermal behavior.

Product: ABAQUS/Standard  

Warning:  The use of this subroutine generally requires considerable expertise. You are cautioned that the implementation of any realistic thermal model requires significant development and testing. Initial testing on models with few elements under a variety of boundary conditions is strongly recommended.

References

Overview

User subroutine UMATHT:

  • can be used to define the thermal constitutive behavior of the material as well as internal heat generation during heat transfer processes;

  • will be called at all material calculation points of elements for which the material definition includes a user-defined thermal material behavior;

  • can be used with the procedures discussed in Heat transfer analysis procedures: overview, Section 6.5.1 of the ABAQUS Analysis User's Manual;

  • can use solution-dependent state variables;

  • must define the internal energy per unit mass and its variation with respect to temperature and to spatial gradients of temperature;

  • must define the heat flux vector and its variation with respect to temperature and to gradients of temperature;

  • must update the solution-dependent state variables to their values at the end of the increment;

  • can be used in conjunction with user subroutine USDFLD to redefine any field variables before they are passed in; and

  • is described further in User-defined thermal material behavior, Section 20.8.2 of the ABAQUS Analysis User's Manual.

Use of subroutine UMATHT with coupled temperature-displacement elements

User subroutine UMATHT can be used only with fully integrated coupled temperature-displacement and heat transfer elements. It cannot be used with reduced-integration or modified coupled temperature-displacement elements.

User subroutine interface

SUBROUTINE UMATHT(U,DUDT,DUDG,FLUX,DFDT,DFDG,
     1 STATEV,TEMP,DTEMP,DTEMDX,TIME,DTIME,PREDEF,DPRED,
     2 CMNAME,NTGRD,NSTATV,PROPS,NPROPS,COORDS,PNEWDT,
     3 NOEL,NPT,LAYER,KSPT,KSTEP,KINC)
C
      INCLUDE 'ABA_PARAM.INC'
C
      CHARACTER*80 CMNAME
      DIMENSION DUDG(NTGRD),FLUX(NTGRD),DFDT(NTGRD),
     1 DFDG(NTGRD,NTGRD),STATEV(NSTATV),DTEMDX(NTGRD),
     2 TIME(2),PREDEF(1),DPRED(1),PROPS(NPROPS),COORDS(3)


      user coding to define U,DUDT,DUDG,FLUX,DFDT,DFDG,
      and possibly update STATEV, PNEWDT


      RETURN
      END

Variables to be defined

U

Internal thermal energy per unit mass, U, at the end of increment. This variable is passed in as the value at the start of the increment and must be updated to its value at the end of the increment.

DUDT

Variation of internal thermal energy per unit mass with respect to temperature, , evaluated at the end of the increment.

DUDG(NTGRD)

Variation of internal thermal energy per unit mass with respect to the spatial gradients of temperature, , at the end of the increment. The size of this array depends on the value of NTGRD as defined below. This term is typically zero in classical heat transfer analysis.

FLUX(NTGRD)

Heat flux vector, , at the end of the increment. This variable is passed in with the values at the beginning of the increment and must be updated to the values at the end of the increment.

DFDT(NTGRD)

Variation of the heat flux vector with respect to temperature, , evaluated at the end of the increment.

DFDG(NTGRD,NTGRD)

Variation of the heat flux vector with respect to the spatial gradients of temperature, , at the end of the increment. The size of this array depends on the value of NTGRD as defined below.

Variables that can be updated

STATEV(NSTATV)

An array containing the solution-dependent state variables.

In an uncoupled heat transfer analysis STATEV is passed into UMATHT with the values of these variables at the beginning of the increment. However, any changes in STATEV made in user subroutine USDFLD will be included in the values passed into UMATHT, since USDFLD is called before UMATHT. In addition, if UMATHT is being used in a fully coupled temperature-displacement analysis and user subroutine CREEP, user subroutine UEXPAN, user subroutine UMAT, or user subroutine UTRS is used to define the mechanical behavior of the material, those routines are called before this routine; therefore, any updating of STATEV done in CREEP, UEXPAN, UMAT, or UTRS will be included in the values passed into UMATHT.

In all cases STATEV should be passed back from UMATHT as the values of the state variables at the end of the current increment.

PNEWDT

Ratio of suggested new time increment to the time increment being used (DTIME, see below). This variable allows you to provide input to the automatic time incrementation algorithms in ABAQUS/Standard (if automatic time incrementation is chosen).

PNEWDT is set to a large value before each call to UMATHT.

If PNEWDT is redefined to be less than 1.0, ABAQUS/Standard must abandon the time increment and attempt it again with a smaller time increment. The suggested new time increment provided to the automatic time integration algorithms is PNEWDT × DTIME, where the PNEWDT used is the minimum value for all calls to user subroutines that allow redefinition of PNEWDT for this iteration.

If PNEWDT is given a value that is greater than 1.0 for all calls to user subroutines for this iteration and the increment converges in this iteration, ABAQUS/Standard may increase the time increment. The suggested new time increment provided to the automatic time integration algorithms is PNEWDT × DTIME, where the PNEWDT used is the minimum value for all calls to user subroutines for this iteration.

If automatic time incrementation is not selected in the analysis procedure, values of PNEWDT that are greater than 1.0 will be ignored and values of PNEWDT that are less than 1.0 will cause the job to terminate.

Variables passed in for information

TEMP

Temperature at the start of the increment.

DTEMP

Increment of temperature.

DTEMDX(NTGRD)

Current values of the spatial gradients of temperature,

TIME(1)

Value of step time at the beginning of the current increment.

TIME(2)

Value of total time at the beginning of the current increment.

DTIME

Time increment.

PREDEF

Array of interpolated values of predefined field variables at this point at the start of the increment, based on the values read in at the nodes.

DPRED

Array of increments of predefined field variables.

CMNAME

User-defined material name, left justified.

NTGRD

Number of spatial gradients of temperature.

NSTATV

Number of solution-dependent state variables associated with this material type (defined as described in Allocating space” in “User subroutines: overview, Section 13.2.1 of the ABAQUS Analysis User's Manual).

PROPS(NPROPS)

User-specified array of material constants associated with this user material.

NPROPS

User-defined number of material constants associated with this user material.

COORDS

An array containing the coordinates of this point. These are the current coordinates in a fully coupled temperature-displacement analysis if geometric nonlinearity is accounted for during the step (see Procedures: overview, Section 6.1.1 of the ABAQUS Analysis User's Manual); otherwise, the array contains the original coordinates of the point.

NOEL

Element number.

NPT

Integration point number.

LAYER

Layer number (for composite shells and layered solids).

KSPT

Section point number within the current layer.

KSTEP

Step number.

KINC

Increment number.

Example: Using more than one user-defined thermal material model

To use more than one user-defined thermal material model, the variable CMNAME can be tested for different material names inside user subroutine UMATHT, as illustrated below:

IF (CMNAME(1:4) .EQ. 'MAT1') THEN
   CALL UMATHT_MAT1(argument_list)
ELSE IF(CMNAME(1:4) .EQ. 'MAT2') THEN
    CALL UMATHT_MAT2(argument_list)
END IF
UMATHT_MAT1 and UMATHT_MAT2 are the actual user material subroutines containing the constitutive material models for each material MAT1 and MAT2, respectively. Subroutine UMATHT merely acts as a directory here. The argument list can be the same as that used in subroutine UMATHT.

Example: Uncoupled heat transfer

As a simple example of the coding of user subroutine UMATHT, consider uncoupled heat transfer analysis in a material. The equations for this case are developed here, and the corresponding UMATHT is given. This problem can also be solved by specifying thermal conductivity, specific heat, density, and internal heat generation directly.

First, the equations for an uncoupled heat transfer analysis are outlined.

The basic energy balance is

where V is the volume of solid material with surface area S, is the density of the material, is the material time rate of the internal thermal energy, q is the heat flux per unit area of the body flowing into the body, and r is the heat supplied externally into the body per unit volume.

A heat flux vector is defined such that

where is the unit outward normal to the surface S. Introducing the above relation into the energy balance equation and using the divergence theorem, the following relation is obtained:

The corresponding weak form is given by

where

is the temperature gradient and is an arbitrary variational field satisfying the essential boundary conditions.

Introducing the backward difference integration algorithm:

the weak form of the energy balance equation becomes

This nonlinear system is solved using Newton's method.

In the above equations the thermal constitutive behavior of the material is given by

and

where are state variables.

The Jacobian for Newton's method is given by (after dropping the subscripts on U)

The thermal constitutive behavior for this example is now defined. We assume a constant specific heat for the material. The heat conduction in the material is assumed to be governed by Fourier's law.

The internal thermal energy per unit mass is defined as

with

where c is the specific heat of the material and

Fourier's law for heat conduction is given as

where is the thermal conductivity matrix and is position, so that

and

The assumption of conductivity without any temperature dependence implies that

No state variables are needed for this material, so the allocation of space for them is not necessary.

A thermal user material definition can be used to read in the two constants for our simple case, namely the specific heat, c, and the coefficient of thermal conductivity, k, so that

SUBROUTINE UMATHT(U,DUDT,DUDG,FLUX,DFDT,DFDG,
     1 STATEV,TEMP,DTEMP,DTEMDX,TIME,DTIME,PREDEF,DPRED,
     2 CMNAME,NTGRD,NSTATV,PROPS,NPROPS,COORDS,PNEWDT,
     3 NOEL,NPT,LAYER,KSPT,KSTEP,KINC)
C
      INCLUDE 'ABA_PARAM.INC'
C
      CHARACTER*80 CMNAME
      DIMENSION DUDG(NTGRD),FLUX(NTGRD),DFDT(NTGRD),
     1 DFDG(NTGRD,NTGRD),STATEV(NSTATV),DTEMDX(NTGRD),
     2 TIME(2),PREDEF(1),DPRED(1),PROPS(NPROPS),COORDS(3)
C
      COND = PROPS(1)
      SPECHT = PROPS(2)
C
      DUDT = SPECHT
      DU = DUDT*DTEMP
      U = U+DU
C
      DO I=1, NTGRD
         FLUX(I) = –COND*DTEMDX(I)
         DFDG(I,I) = –COND
      END DO
C
      RETURN
      END
For information on related topics, click any of the following items: