User-Defined Mechanical Material Behavior

User-defined mechanical material behavior in Abaqus:

  • is provided by means of an interface whereby any mechanical constitutive model can be added to the library;

  • requires that a constitutive model (or a library of models) is programmed in user subroutine UMAT (Abaqus/Standard) or VUMAT (Abaqus/Explicit); and

  • requires considerable effort and expertise: the feature is very general and powerful, but its use is not a routine exercise.

This page discusses:

Stress Components and Strain Increments

The subroutine interface has been implemented using Cauchy stress components (“true” stress). For soils problems “stress” should be interpreted as effective stress. The strain increments are defined by the symmetric part of the displacement increment gradient (equivalent to the time integral of the symmetric part of the velocity gradient).

The orientation of the stress and strain components in user subroutine UMAT depends on the use of local orientations (Orientations).

In user subroutine VUMAT all strain measures are calculated with respect to the midincrement configuration. All tensor quantities are defined in the corotational coordinate system that rotates with the material point. To illustrate what this means in terms of stresses, consider the bar shown in Figure 1, which is stretched and rotated from its original configuration, AB, to its new position, AB. This deformation can be obtained in two stages; the bar is first stretched, as shown in Figure 2, and is then rotated by applying a rigid body rotation to it, as shown in Figure 3.

Stretched and rotated bar.

Stretching of bar.

Rigid body rotation of bar.

The stress in the bar after it has been stretched is σ11, and this stress does not change during the rigid body rotation. The XY coordinate system that rotates as a result of the rigid body rotation is the corotational coordinate system. The stress tensor and state variables are, therefore, computed directly and updated in user subroutine VUMAT using the strain tensor since all of these quantities are in the corotational system; these quantities do not have to be rotated by the user subroutine as is sometimes required in user subroutine UMAT.

The elastic response predicted by a rate-form constitutive law depends on the objective stress rate employed. For example, the Green-Naghdi stress rate is used in VUMAT. However, the stress rate used for built-in material models may differ. For example, most material models used with solid (continuum) elements in Abaqus/Explicit employ the Jaumann stress rate. This difference in the formulation will cause significant differences in the results only if finite rotation of a material point is accompanied by finite shear. For a discussion of the objective stress rates used in Abaqus, see Stress rates.

Material Constants

Any material constants that are needed in user subroutine UMAT or VUMAT must be specified as part of a user-defined material behavior definition. Any other mechanical material behaviors included in the same material definition (except thermal expansion and, in Abaqus/Explicit, density) will be ignored; the user-defined material behavior requires that all mechanical material behavior calculations be programmed in subroutine UMAT or VUMAT. In Abaqus/Explicit the density (Density) is required when using a user-defined material behavior.

Unsymmetric Equation Solver in Abaqus/Standard

If the user material's Jacobian matrix, σ/ε, is not symmetric, the unsymmetric equation solution capability in Abaqus/Standard should be invoked (see Defining an Analysis).

Hybrid Formulation in Abaqus/Standard

If you use a hybrid element with user subroutine UMAT, by default Abaqus/Standard replaces the pressure stress calculated from the stress tensor returned by the user subroutine with that derived from the Lagrange multiplier and modifies the Jacobian appropriately (Hybrid incompressible solid element formulation). This approach is suitable for material models that use an incremental formulation (for example, metal plasticity) but is not consistent with the total formulation that is commonly used for hyperelastic materials. In the latter situation the default formulation may lead to convergence problems. Such convergence problems may be observed, for example, when an almost incompressible nonlinear elastic user material is subjected to large deformations. Abaqus/Standard provides an alternate total formulation that is more appropriate in such situations. The total formulation is consistent with the native almost incompressible formulation used by Abaqus for hyperelastic materials (Hyperelastic material behavior), and works better than the default (incremental) formulation for such cases.

Abaqus/Standard also provides a fully incompressible formulation for use with hybrid elements to define a fully incompressible user material response. The fully incompressible formulation is consistent with the native formulation used by Abaqus for incompressible hyperelastic materials. For the total hybrid formulation it is assumed that the deviatoric and the volumetric responses of the material are decoupled and that the volumetric response can be derived from a strain energy potential function. All the native hyperelastic materials in Abaqus use this assumption. For the incompressible hybrid formulation, it is assumed that the deviatoric stress can be derived from a strain energy potential function.

The total hybrid formulation is useful for an almost incompressible hyperelastic response. The volumetric response of the material is assumed to be defined in terms of an alternate variable, J^, in place of the volume change, J. The alternate variable is made available inside user subroutine UMAT. Further details are discussed in UMAT.

The fully incompressible formulation requires you to define only the deviatoric parts of the stress tensor and the material's Jacobian matrix inside the UMAT. Abaqus/Standard automatically accounts for the pressure stress based on the Lagrange multiplier.

Material State

Many mechanical constitutive models require the storage of solution-dependent state variables (plastic strains, “back stress,” saturation values, etc. in rate constitutive forms or historical data for theories written in integral form). You should allocate storage for these variables in the associated material definition (see Allocating Space for Solution-Dependent State Variables). There is no restriction on the number of state variables associated with a user-defined material.

The user material subroutines are provided with the material state at the start of each increment, as described below. They must return values for the new stresses and the new internal state variables. State variables associated with UMAT and VUMAT can be output to the output database file (.odb) and results file (.fil) using the output identifiers SDV and SDVn (see Abaqus/Standard Output Variable Identifiers and Abaqus/Explicit Output Variable Identifiers).

Material State in Abaqus/Standard

User subroutine UMAT is called for each material point at each iteration of every increment. It is provided with the material state at the start of the increment (stress, solution-dependent state variables, temperature, and any predefined field variables) and with the increments in temperature, predefined state variables, strain, and time.

In addition to updating the stresses and the solution-dependent state variables to their values at the end of the increment, subroutine UMAT must also provide the material Jacobian matrix, σ/ε, for the mechanical constitutive model. This matrix will also depend on the integration scheme used if the constitutive model is in rate form and is integrated numerically in the subroutine. For any nontrivial constitutive model these will be challenging tasks. For example, the accuracy with which the Jacobian matrix is defined will usually be a major determinant of the convergence rate of the solution and, therefore, will have a strong influence on computational efficiency.

If you specify the viscoelastic behavior of materials in the frequency domain, user subroutine UMAT must also provide the damping (loss modulus) contribution to the material Jacobian matrix, in addition to the stiffness (storage modulus) contribution.

Material State in Abaqus/Explicit

User subroutine VUMAT is called for blocks of material points at each increment. When the subroutine is called, it is provided with the state at the start of the increment (stress, solution-dependent state variables). It is also provided with the stretches and rotations at the beginning and the end of the increment. The VUMAT user material interface passes a block of material points to the subroutine on each call, which allows vectorization of the material subroutine.

The temperature is provided to user subroutine VUMAT at the start and the end of the increment. The temperature is passed in as information only and cannot be modified, even in a fully coupled thermal-stress analysis. However, if the inelastic heat fraction is defined in conjunction with the specific heat and conductivity in a fully coupled thermal-stress analysis in Abaqus/Explicit, the heat flux due to inelastic energy dissipation will be calculated automatically. If the VUMAT user subroutine is used to define an adiabatic material behavior (conversion of plastic work to heat) in an explicit dynamics procedure, you must specify both the inelastic heat fraction and the specific heat for the material, and you must store the temperatures and integrate them as user-defined state variables. Most often the temperatures are provided by specifying initial conditions (Initial Conditions) and are constant throughout the analysis.

Deleting Elements from a Mesh Using State Variables

Element deletion in a mesh can be controlled during the course of an Abaqus analysis through user subroutine VUMAT or UMAT. Deleted elements have no ability to carry stresses and, therefore, have no contribution to the stiffness of the model. You specify the state variable number controlling the element deletion flag. For example, specifying a state variable number of 4 indicates that the fourth state variable is the deletion flag in the user subroutine. The deletion state variable should be set to a value of one or zero. A value of one indicates that the material point is active, while a value of zero indicates that Abaqus should delete the material point from the model by setting the stresses to zero. In Abaqus/Explicit the structure of the block of material points passed to user subroutine VUMAT remains unchanged during the analysis; deleted material points are not removed from the block. Abaqus/Explicit passes zero stresses and strain increments for all deleted material points. Once a material point is flagged as deleted, it cannot be reactivated. An element is deleted from a mesh based on the material point status (active or deleted). Details for element deletion driven by material failure are described in Material Failure and Element Deletion. The status of a material point and an element can be determined by requesting output variables STATUSMP and STATUS, respectively.

Scaling the Transverse Shear Stiffness for Shell Elements Using State Variables

In an Abaqus/Explicit analysis, you can control the transverse shear stiffness for shell elements with user subroutine VUMAT. You specify the state variable number controlling the shell element transverse shear damage variable. For example, specifying a state variable number of 5 indicates that the fifth state variable is the shell element transverse shear damage variable in the user subroutine. You can set the state variable to a value between zero and one, with a default value of one indicating the initial undamaged state. The transverse shear stiffness scaling factor is computed using a weighted average through the section of the state values that you define. The transverse shear stiffness scaling factor is used to scale the transverse shear stiffness of the shell elements.

Hourglass Control and Transverse Shear Stiffness

Normally the default hourglass control stiffness for reduced-integration elements in Abaqus/Standard and the transverse shear stiffness for shell, pipe, and beam elements are defined based on the elasticity associated with the material (Section Controls, Shell Section Behavior, and Choosing a Beam Element). These stiffnesses are based on a typical value of the initial shear modulus of the material, which may, for example, be given as part of an elastic material behavior (Linear Elastic Behavior) included in the material definition. However, the shear modulus is not available during the preprocessing stage of input for materials defined with user subroutine UMAT or VUMAT. Therefore, you must provide the hourglass stiffness parameters (see Methods for Suppressing Hourglass Modes) when using UMAT to define the material behavior of elements with hourglassing modes.

You must specify the transverse shear modulus for the material (see Defining the Elastic Transverse Shear Modulus) or the transverse shear stiffness for the section (see Choosing a Beam Element or Shell Section Behavior) when using user subroutine UMAT or VUMAT to define the material behavior of beams and shells with transverse shear flexibility. If the transverse shear modulus is specified for a user-defined mechanical material that is associated with shells, Abaqus calls user subroutine UMAT or VUMAT in the data check phase of the analysis to obtain the initial plane stress elastic stiffness. It then computes the transverse shear stiffness by matching the shear response for the case of the shell bending about one axis (see Transverse shear stiffness in composite shells and offsets from the midsurface).

Defining the Effective Modulus to Control Time Incrementation in Abaqus/Explicit

The stable time increment in Abaqus/Explicit is a function of the dilatational wave speed of the material and the characteristic length of the element. By default, the dilatational wave speed is determined automatically by Abaqus/Explicit using a numerical calculation of the effective hypoelastic bulk and shear moduli from the user material's constitutive response. In situations when the user material is highly nonlinear, this calculation may not yield a conservative value of the time increment, leading to unstable behavior. To avoid these situations, you can define the values of the effective bulk and shear moduli directly inside user subroutine VUMAT. These values are then used by Abaqus/Explicit to compute the dilatational wave speed and the stable time increment. For more information, see Stability.

Use with Other Subroutines

In Abaqus/Standard user subroutine UMATHT can be used in conjunction with UMAT to define the constitutive thermal behavior of the material. The solution-dependent variables allocated in the material definition are accessible in both UMAT and UMATHT. In addition, user subroutines FRIC, GAPCON, and GAPELECTR are available for defining mechanical, thermal, and electrical interactions between surfaces.

In Abaqus/Explicit user subroutine VUMATHT can be used in conjunction with user subroutine VUMAT to define the constitutive thermal behavior of the material. The solution-dependent variables allocated in the material definition are accessible in both VUMAT and VUMATHT. In addition, user subroutines VFRIC, VFRICTION, VUINTER, and VUINTERACTION are availabe for defining interfacial constitutive behavior.

Material Options

A number of material behaviors can be used in the definition of a material when its mechanical behavior is defined by user subroutine UMAT or VUMAT. These behaviors include density, thermal expansion, permeability, and heat transfer properties. Thermal expansion can alternatively be an integral part of the constitutive model implemented in UMAT or VUMAT.

The temperature available in UMAT is always the interpolated temperature field at the element integration points. Naturally, if the thermal expansion behavior is implemented in UMAT, it is defined in terms of the integration point temperature. When the temperature field is interpolated differently within an element compared to the displacement field in Abaqus/Standard, implementing the thermal expansion behavior in UMAT may lead to differences compared to the built-in thermal expansion behavior. This situation commonly arises for coupled temperature-displacement elements. For example, for first-order coupled temperature-displacement elements, the built-in thermal expansion behavior uses a constant temperature field over the whole element (see Fully Coupled Thermal-Stress Analysis), while the behavior in UMAT will be defined in terms of a linear temperature field.

For a material defined by user subroutine UMAT or VUMAT, mass proportional damping can be included separately (see Material Damping), but stiffness proportional damping must be defined in the user subroutine by the Jacobian (Abaqus/Standard only) and stress definitions. Stiffness proportional damping cannot be specified if the user material is used in the direct steady-state dynamics procedure.

Elements

User subroutines UMAT and VUMAT can be used with all elements in Abaqus that include mechanical behavior (elements that have displacement degrees of freedom).