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, , to its new position, . 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.
Figure 1. Stretched and rotated bar. Figure 2. Stretching of bar. Figure 3. Rigid body rotation of bar.
The stress in the bar after it has been stretched is , and this stress does not change during the rigid body rotation. The 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.
Input File Usage
In Abaqus/Standard use the following option to specify a user-defined material behavior:
USER MATERIAL, TYPE=MECHANICAL, CONSTANTS=number_of_constants
In Abaqus/Explicit use both of the following options to specify a user-defined material behavior:
In either case you must specify the number of material constants being entered.
Abaqus/CAE Usage
In Abaqus/Standard use the following option to specify a user-defined material behavior:
Property module: material editor: GeneralUser Material: User material type: Mechanical
In Abaqus/Explicit use both of the following options to specify a user-defined material behavior:
Property module: material editor:
GeneralUser Material: User material type: MechanicalGeneralDensity
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).
Input File Usage
USER MATERIAL, TYPE=MECHANICAL, CONSTANTS=number_of_constants, UNSYMM
Abaqus/CAE Usage
Property module: material editor: GeneralUser Material: User material type: Mechanical, toggle on Use unsymmetric material stiffness matrix
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, , in place of the volume change, . 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.
Input File Usage
Use the following option to invoke the total hybrid formulation:
USER MATERIAL, TYPE=MECHANICAL, CONSTANTS=number_of_constants, HYBRID FORMULATION=TOTAL
Use following option to invoke the incremental hybrid formulation (default):
USER MATERIAL, TYPE=MECHANICAL, CONSTANTS=number_of_constants,
HYBRID FORMULATION=INCREMENTAL
Use the following option to invoke the incompressible hybrid formulation:
USER MATERIAL, TYPE=MECHANICAL, CONSTANTS=number_of_constants,
HYBRID FORMULATION=INCOMPRESSIBLE
Abaqus/CAE Usage
Property module: material editor: GeneralUser Material: User material type: Mechanical, Hybrid formulation: Specify: Total, Incremental, Incompressible, or None (default)
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.
Property module: material editor: GeneralDepvar: Variable number controlling element deletion:variable number
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.
Scaling the transverse shear stiffness for shell elements using state variables is
not supported in Abaqus/CAE.
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.
Property module: material editor: GeneralUser Material: User material type: Mechanical, toggle on VUMAT defines effective modulus
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).