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.
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
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
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.
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.
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).