5.4. ABAQUS Materials
This chapter describes input for ABAQUS material models, or so-called VUMAT and UMAT materials. The VUMAT specification is for explicit material models/analyses, whereas UMAT materials are typlically used for implicit analyses as they provide a material stiffness.
USER SUBROUTINE FILE = <string>sub_file_name
BEGIN MATERIAL <string>mat_name
DENSITY = <real>density_value
BEGIN PARAMETERS FOR MODEL ABAQUS_VUMAT | ABAQUS_UMAT
#
# Elastic constants
#
YOUNGS MODULUS = <real>
POISSONS RATIO = <real>
SHEAR MODULUS = <real>
BULK MODULUS = <real>
LAMBDA = <real>
#
# Required parameters
#
VUMAT SUBROUTINE | UMAT SUBROUTINE = <string>sub_name
PROPERTIES = <real list>props
DEPVAR = <int>num_state
#
# Optional parameters
#
COORDINATE SYSTEM = <string>coordinate_system_name
END
END
The ABAQUS_VUMAT and ABAQUS_UMAT models in Sierra/SM provides an interface for most user-defined material subroutines which conform to the Abaqus VUMAT or UMAT standards. The VUMAT interface currently supports both shell and solid elements, whereas the UMAT interface currently only supports solid elements.
The following commands are available.
Although the material response is defined solely by the user subroutine, at least two elastic constants must still be provided. The elastic constants are used in computation of hourglass stiffness, contact stiffness, solver preconditioners, and other capabilities that require a measure of approximate material stiffness. See Section 5.1.5 for more information on elastic constants input.
The name of the VUMAT/UMAT subroutine is specified by the
VUMAT SUBROUTINEandUMAT SUBROUTINEcommand lines, respectively.
The USER SUBROUTINE FILE should contain the source code for the material subroutine.
User subroutines are built into Sierra/SM using the sierra --make option.
Consult Section 10.2 and/or Section 10.3 for more information on building and running user subroutines.
Warning
The subroutine name
sub_namemust not beVUMATorvumat. Simularly, it must not be namedUMATorumat. Instead, choose a unique name.
The user may supply a list of material properties for the ABAQUS_VUMAT model associated with material
mat_nameusing thePROPERTIEScommand line. The order of the property list will be the same as the order of thePROPSarray in the material subroutine.The
DEPVARcommand line specifies the number of state variables that should be allocated for the VUMAT/UMAT material.Users may also specify a material coordinate system for the VUMAT. In order to use a material coordinate system, the user must specify a coordinate system using the
COORDINATE SYSTEMcommand line in theVUMATcommand block. Consult Section 5.1.7 for additional guidance on defining coordinate systems.If a custom coordinate system is specified,
STRESSOLD,STRAININC,DEFGRADOLD, andDEFGRADNEWwill be rotated into the material frame before entering the VUMAT subroutine. Output stressSTRESSNEWshould be computed in the material coordinate frame, since it will automatically be rotated into the global Cartesian coordinate frame upon leaving the material subroutine.In addition to specifying a coordinate system, the user may input up to three ordered rotation axis-Euler angle pairs for additional rotation. Axis-angle pairs may be prescribed on an element-by-element basis using an
INITIAL CONDITIONcommand block to set VUMAT state variablesANGLE_1,AXIS_1,ANGLE_2,AXIS_2, andANGLE_3,AXIS_3. Angles are specified in degrees, while axes are denoted \((1, 2, 3)\), representing \((X, Y, Z)\), respectively. These variables may be, e.g., read from a file or expressed as a user function. Use ofINITIAL CONDITIONcommand blocks is described in the chapter on Boundary Conditions and Initial Conditions, see Section 7.3.Built-in state variables pertaining to material coordinate system rotations are listed in Table Table 5.37.
The VUMAT/UMAT state variables are available for output as ABQ_STATE_ \(j\), where \(j\) is a one-based index \(1 \le j \le\) DEPVAR. Consult Section 9 for additional details on output of variables.
Input and output VUMAT subroutine arguments are listed in Tables Table 5.35 and Table 5.36. Arguments which are not currently fully supported in the VUMAT interface are indicated with an !.
Argument Name |
Description (Value) |
|---|---|
|
Number of elements in workset (always one, since the VUMAT currently processes one element at a time) |
|
Number of stress components (three for both solids and shells) |
|
Number of shear components (three for solids or one for shells) |
|
Number of state variables (input |
|
Number of user-defined field variables (zero) |
|
Length of property array (length of input |
|
Annealing process flag (zero) |
|
Current analysis time |
|
Current analysis time (identical to |
|
Current time step size |
|
Material name (empty string) |
|
Material point coordinates (zero) |
|
Element characteristic size (cube root of solid volume or square root of shell area) |
|
User-defined property array (input |
|
Current material point density (zero) |
|
Strain increment over the current time step |
|
Incremental relative rotation at each material point (zero) |
|
Temperature at start of time step |
|
Stretch at start of time step (identity tensor) |
|
Deformation gradient (calculated for solids; unsupported for shells and set to identity tensor) |
|
User-defined field variable values at start of time step (zero) |
|
Material stress at start of time step |
|
Material state variables at start of time step |
|
Internal energy per unit mass at start of time step (zero) |
|
Dissipated inelastic energy per unit mass at start of time step (zero) |
|
Temperature at end of time step |
|
Stretch tensor at end of time step (identity tensor) |
|
Deformation gradient (calculated for solids; unsupported for shells and set to identity tensor) |
|
User-defined field variable values at end of time step (zero) |
Argument Name |
Description |
|---|---|
|
Updated material stress at end of step |
|
Updated material state variables at end of step |
|
Updated internal energy per unit mass at start of time step (ignored) |
|
Updated dissipated inelastic energy per unit mass at end of time step (ignored) |
Index |
Name |
Variable Description |
|---|---|---|
|
|
X component of the material 11 unit vector |
|
|
Y component of the material 22 unit vector |
|
|
Z component of the material 33 unit vector |
|
|
Y component of the material 11 unit vector |
|
|
Z component of the material 22 unit vector |
|
|
X component of the material 33 unit vector |
|
|
X component of the material 22 unit vector |
|
|
Y component of the material 33 unit vector |
|
|
Z component of the material 11 unit vector |
|
|
Rotation angle about axis 1 (degrees) |
|
|
Rotation angle about axis 2 (degrees) |
|
|
Rotation angle about axis 3 (degrees) |
|
|
First axis of rotation |
|
|
Second axis of rotation |
|
|
Third axis of rotation |
Arguments to the UMAT interface are described in Table 5.38. For more details of the expected behavior of the UMAT interface, see the Abaqus User’s Guide.
Warning
The UMAT capability is relatively new in SIERRA/SM. Please report all issues/inconsistencies in using this capability to sierra-help@sandia.gov.
Argument Name |
Description |
|---|---|
|
(in/out) Material stress at start of step |
|
(in/out) Material state variables at start of step |
|
(out) Jacobiian of the constitutive model \(\partial\Delta\sigma/ \partial\Delta\epsilon\) |
|
(in/out) specific elastic strain energy |
|
(in/out) specific plastic dissipation |
|
(in/out) specific creep dissipation |
|
unsupported |
|
(len=``NTENS``) unsupported |
|
(len=``NTENS``) unsupported |
|
unsupported |
|
total mechanical strain at the beginning of the increment (rotated to approximate logarithmic strain) |
|
mechanical strain increments |
|
(len=2) (1) value of step time at beginning of increment, (2) value of tatal time at beginning of increment |
|
time increment |
|
temperature at beginning of step |
|
increment of temperature |
|
Array of interpolated valies of predefined field variables at material point at the start of the increment (unused?) |
|
Array of increments of |
|
User-defined material name, left-justified (unused) |
|
Number of direct stress components (3) |
|
Number of enigneering shear stress components (3) |
|
Size of the stress or strain component array (6) |
|
Number of dependant state variables, ( |
|
Array of property values |
|
Number of properties, ( |
|
Current coordinates at material point |
|
Increment of rotation |
|
Suggested time step scale factor, can be used to cut implicit time step |
|
Characteristic element length |
|
Deformation gradient at the beginning of the increment |
|
Deformation gradient at the end of increment |
|
Element id |
|
Integration point id |
|
Layer id for composite/layered materials (unused) |
|
Section point number within the current layer (unused) |
|
Step number |
|
Increment number |
5.4.1. Other Guidelines for VUMAT Use
The shell VUMAT is currently only supported for plane stress conditions. The out-of-plane stress, STRESSNEW(i,3), is explicitly set to zero upon return. The VUMAT can alter the plane strain increment STRAININC(i,3) accordingly to satisfy plane stress.
When implementing a VUMAT, it is important to note that all internal variables are initialized to zero, so constitutive routines must be designed accordingly. For example, in the presence of a damage-type variable, it is recommended to adopt the convention that an undamaged state has damage \(d = 0.0\), while a damaged state has damage \(d > 0.0\). Because there is currently no way to detect the beginning of a simulation from within the VUMAT interface, there is no reliable way to use the standard VUMAT initialization.
As noted in Tables Table 5.35 and Table 5.36, internal work and plastic dissipation may not be specified or accessed within the current VUMAT interface. External work and kinetic energy are computed outside of the material subroutine by LAMÉ and can be accessed via a USER OUTPUT block in the Sierra/SM input file (consult Section 9 for details). To store dissipated plastic energy, an additional internal state variable may be defined and updated within the VUMAT.