25.2.22 UFIELD
User subroutine to specify predefined field variables.

Product: ABAQUS/Standard  

References

Overview

User subroutine UFIELD:

  • allows you to prescribe predefined field variables at the nodes of a model—the predefined field variables at a node can be updated individually, or a number of field variables at the node can be updated simultaneously;

  • is called whenever a user-subroutine-defined field appears;

  • ignores any field variable values specified directly;

  • can be used to modify field variable values read from a results file; and

  • can be used in conjunction with user subroutine USDFLD such that the field variables that are passed in from UFIELD and interpolated to the material points can be modified (such changes are local to material point values, and nodal field variable values remain unaffected).

Updating field variables

Two different methods are provided for updating field variables.

Individual variable updates

By default, only one field variable at a time can be updated in user subroutine UFIELD. In this case the user subroutine will be called whenever a current value of a field variable is needed for a node that is listed in the specified field variable definition. This method can be used only for cases in which the field variables are independent of each other.

Simultaneous variable updates

For cases in which the field variables depend on each other, multiple (possibly all) field variables at a point can be updated simultaneously in user subroutine UFIELD. In this case you must specify the number of field variables to be updated simultaneously at a point, and the user subroutine will be called each time the current field variable values are needed.

User subroutine interface

      SUBROUTINE UFIELD(FIELD,KFIELD,NSECPT,KSTEP,KINC,TIME,NODE,
     1 COORDS,TEMP,DTEMP,NFIELD)
C
      INCLUDE 'ABA_PARAM.INC'
C
      DIMENSION FIELD(NSECPT,NFIELD), TIME(2), COORDS(3),
     1 TEMP(NSECPT), DTEMP(NSECPT)
C

      user coding to define FIELD

      RETURN
      END

Variable to be defined

FIELD(NSECPT,NFIELD)

Array of predefined field variable values at node number NODE. When updating only one field variable at a time, only the value of the specified field variable (see KFIELD below) must be returned. In this case NFIELD is passed into user subroutine UFIELD with a value of 1, and FIELD is thus dimensioned as FIELD(NSECPT,1). When updating all field variables simultaneously, the values of the specified number of field variables at the point must be returned. In this case FIELD is dimensioned as FIELD(NSECPT,NFIELD), where NFIELD is the number of field variables specified and KFIELD has no meaning.

If NODE is part of any element other than a beam or shell, only one value of each field variable must be returned (NSECPT=1). Otherwise, the number of values to be returned depends on the mode of temperature and field variable input selected for the beam or shell section. The following cases are possible:

  1. Temperatures and field variables for a beam section are given as values at the points shown in the beam section descriptions. The number of values required, NSECPT, is determined by the particular section type specified, as described in Beam cross-section library, Section 15.3.9.

  2. Temperatures and field variables are given as values at n equally spaced points through each layer of a shell section. The number of values required, NSECPT, is equal to n.

  3. Temperatures and field variables for a beam section are given as values at the origin of the cross-section together with gradients with respect to the 2-direction and, for three-dimensional beams, the 1-direction of the section; or temperatures and field variables for a shell section are given as values at the reference surface together with gradients through the thickness. The number of values required, NSECPT, is 3 for three-dimensional beams, 2 for two-dimensional beams, and 2 for shells. Give the midsurface value first, followed by the first and (if necessary) second gradients, as described in Beam elements, Section 15.3, and Shell elements, Section 15.6.

Since field variables can also be defined directly, it is important to understand the hierarchy used in situations of conflicting information (see Predefined fields, Section 19.6.1).

When the array FIELD is passed into user subroutine UFIELD, it will contain either the field variable values from the previous increment or those values obtained from the results file if this method was used. You are then free to modify these values within this subroutine.

Variables passed in for information

KFIELD

User-specified field variable number. This variable is meaningful only when updating individual field variables at a time.

NFIELD

User-specified number of field variables to be updated. This variable is meaningful only when updating multiple field variables simultaneously.

NSECPT

Maximum number of section values required for any node in the model.

KSTEP

Step number.

KINC

Increment number.

TIME(1)

Current value of step time.

TIME(2)

Current total time.

NODE

Node number.

COORDS

An array containing the coordinates of this node. These are the current coordinates if geometric nonlinearity is accounted for during the step (see Procedures: overview, Section 6.1.1); otherwise, the array contains the original coordinates of the node.

TEMP(NSECPT)

Current temperature at the node. If user subroutines UTEMP (UTEMP, Section 25.2.40) and UFIELD are both used, user subroutine UTEMP is processed before user subroutine UFIELD.

DTEMP(NSECPT)

Temperature increment at the node.

Example