ABAQUS
CONTENTS
Lecture 1
Introduction
Overview of Some User Subroutines . . . . . . . . . . . . . . . . . . . . . . .  L1.2
Where User Subroutines Fit into ABAQUS/Standard . . . . . . . . . .  L1.6
User Subroutine Calls in the First Iteration  . . . . . . . . . . . . . . L1.10
Including User Subroutines in a Model . . . . . . . . . . . . . . . . . . . .  L1.11
Using Multiple User Subroutines in a Model . . . . . . . . . . . . . L1.12
Restart Analyses . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . L1.12
Writing Output from User Subroutines  . . . . . . . . . . . . . . . . . . . .  L1.13
Path Names for External Files  . . . . . . . . . . . . . . . . . . . . . . . . L1.14
Compiling and Linking User Subroutines . . . . . . . . . . . . . . . . . .  L1.15
FORTRAN Compiler Levels  . . . . . . . . . . . . . . . . . . . . . . . . . L1.17
Debugging Techniques and Proper Programming Habits . . . . . .  L1.18
Required FORTRAN Statements  . . . . . . . . . . . . . . . . . . . . . . L1.18
Naming Conventions  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . L1.20
Subroutine Argument Lists . . . . . . . . . . . . . . . . . . . . . . . . . . . L1.20
Solution-Dependent State Variables . . . . . . . . . . . . . . . . . . . . L1.21
Testing Suggestions  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . L1.24
Lecture 2
User Subroutine: DLOAD
Introduction  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  L2.2
ABAQUS Usage. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  L2.3
DLOAD vs. UEL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . L2.4
DLOAD Subroutine Interface  . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  L2.5
Variables to be Defined  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . L2.6
Variables for Information Only  . . . . . . . . . . . . . . . . . . . . . . . . L2.6
Example: Transient Internal Pressure Loading  . . . . . . . . . . . . . . .  L2.8
7/01
Writing User Subroutines with ABAQUS
TOC.1
ABAQUS
Partial Input Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . L2.9
User Subroutine . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . L2.10
Remarks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . L2.11
Example: Asymmetric Pressure Loads . . . . . . . . . . . . . . . . . . . . . L2.12
Partial Input Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . L2.14
User Subroutine . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . L2.15
Remarks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . L2.16
Lecture 3
User Subroutine: FILM
Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . L3.2
ABAQUS Usage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . L3.3
FILM Subroutine Interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . L3.4
Variables to be Defined . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . L3.5
Variables for Information Only . . . . . . . . . . . . . . . . . . . . . . . . . L3.6
Example: Radiation in Finned Surface . . . . . . . . . . . . . . . . . . . . . . L3.8
Partial Input Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . L3.12
User Subroutine . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . L3.13
Remarks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . L3.15
Workshop: User Subroutine FILM . . . . . . . . . . . . . . . . . . . . . . . . L3.16
Goals  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . L3.16
Problem Description  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . L3.16
Lecture 4
User Subroutine: USDFLD
Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . L4.2
ABAQUS Usage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . L4.3
Defining Field-Variable-Dependent Material Properties  . . . . . L4.5
Defining Field Variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . L4.9
Accessing Solution Data at Material Points  . . . . . . . . . . . . . . L4.11
Explicit vs. Implicit Solution . . . . . . . . . . . . . . . . . . . . . . . . . . L4.12
7/01
Writing User Subroutines with ABAQUS
TOC.2
ABAQUS
Using Solution-Dependent State Variables  . . . . . . . . . . . . . . L4.13
User Subroutine GETVRM  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  L4.15
GETVRM Subroutine Interface  . . . . . . . . . . . . . . . . . . . . . . . . L4.15
Variables Provided to GETVRM  . . . . . . . . . . . . . . . . . . . . . . . L4.15
Variables Returned by GETVRM . . . . . . . . . . . . . . . . . . . . . . . L4.16
Elements Supported by GETVRM  . . . . . . . . . . . . . . . . . . . . . . L4.18
USDFLD Subroutine Interface . . . . . . . . . . . . . . . . . . . . . . . . . . .  L4.19
Variables to be Defined  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . L4.20
Variables that may be Defined  . . . . . . . . . . . . . . . . . . . . . . . . L4.21
Variables for Information Only  . . . . . . . . . . . . . . . . . . . . . . . L4.22
USDFLD and Automatic Time Incrementation . . . . . . . . . . . . L4.24
Example: Laminated Composite Plate Failure. . . . . . . . . . . . . . .  L4.27
Material Model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . L4.29
Partial Input Data  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . L4.38
User Subroutine  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . L4.41
Results . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . L4.45
Remarks  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . L4.48
Lecture 5
User Subroutine: URDFIL
Introduction  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  L5.2
ABAQUS Usage. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  L5.4
Utility Routine POSFIL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . L5.5
Utility Routine DBFILE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . L5.7
URDFIL Subroutine Interface . . . . . . . . . . . . . . . . . . . . . . . . . . . .  L5.9
Variables to be Defined  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . L5.10
Variables for Information Only  . . . . . . . . . . . . . . . . . . . . . . . L5.11
Example: Using URDFIL to Terminate an Analysis . . . . . . . . . .  L5.12
Input Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . L5.13
User Subroutine  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . L5.16
Remarks  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . L5.21
7/01
Writing User Subroutines with ABAQUS
TOC.3
ABAQUS
Lecture 6
Writing a UMAT or VUMAT
Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . L6.2
Motivation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . L6.4
Steps Required in Writing a UMAT or VUMAT  . . . . . . . . . . . . . . . L6.12
UMAT Interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . L6.20
UMAT Variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . L6.25
UMAT Utilities  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . L6.28
UMAT Conventions  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . L6.29
UMAT Formulation Aspects . . . . . . . . . . . . . . . . . . . . . . . . . . . L6.30
Usage Hints  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . L6.32
Example 1: Isotropic Isothermal Elasticity . . . . . . . . . . . . . . . . . . L6.33
Governing Equations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . L6.33
Coding for Isotropic Isothermal Elasticity  . . . . . . . . . . . . . . . L6.34
Remarks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . L6.36
Example 2: Non-Isothermal Elasticity  . . . . . . . . . . . . . . . . . . . . . L6.38
Governing Equations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . L6.38
Coding for Non-Isothermal Elasticity . . . . . . . . . . . . . . . . . . . L6.39
Remarks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . L6.43
Example 3: Neo-Hookean Hyperelasticity . . . . . . . . . . . . . . . . . . L6.44
Governing Equations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . L6.44
Coding for Neo-Hookean Hyperelasticity . . . . . . . . . . . . . . . . L6.47
Remarks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . L6.53
Example 4: Kinematic Hardening Plasticity . . . . . . . . . . . . . . . . . L6.54
Governing Equations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . L6.54
Integration Procedure  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . L6.56
Coding for Kinematic Hardening Plasticity  . . . . . . . . . . . . . . L6.58
Remarks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . L6.66
Example 5: Isotropic Hardening Plasticity . . . . . . . . . . . . . . . . . . L6.69
Governing Equations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . L6.69
Integration Procedure  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . L6.71
Coding for Isotropic Mises Plasticity  . . . . . . . . . . . . . . . . . . . L6.73
7/01
Writing User Subroutines with ABAQUS
TOC.4
ABAQUS
Remarks  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . L6.83
VUMAT Interface. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  L6.85
VUMAT Variables  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . L6.90
Comparison of VUMAT and UMAT Interfaces . . . . . . . . . . . . . L6.92
VUMAT Conventions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . L6.94
VUMAT Formulation Aspects  . . . . . . . . . . . . . . . . . . . . . . . . . L6.96
Example 6: VUMAT for Kinematic Hardening . . . . . . . . . . . . . . .  L6.98
Coding for Kinematic Hardening Plasticity VUMAT . . . . . . . . L6.99
Remarks  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . L6.105
Example 7: VUMAT for Isotropic Hardening . . . . . . . . . . . . . . .  L6.107
Coding for Isotropic Hardening Plasticity VUMAT . . . . . . . . L6.108
Remarks  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . L6.117
Lecture 7
Creating a Nonlinear User Element
Overview  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  L7.2
Motivation  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  L7.3
Defining a User Element  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  L7.8
Key Characteristics of a User Element . . . . . . . . . . . . . . . . . . . L7.8
Other Important Element Properties . . . . . . . . . . . . . . . . . . . . . L7.9
Defining the User Element Behavior  . . . . . . . . . . . . . . . . . . . L7.10
UEL Interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  L7.13
ABAQUS Options  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . L7.13
Parameter Definition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . L7.14
Data Lines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . L7.15
More on Keywords and Parameters  . . . . . . . . . . . . . . . . . . . . L7.19
User Element Loads  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . L7.22
UEL Interface  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . L7.23
UEL Variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . L7.24
UEL Conventions  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . L7.27
UEL Formulation Aspects and Usage Hints . . . . . . . . . . . . . . L7.28
Coding and Testing the UEL . . . . . . . . . . . . . . . . . . . . . . . . . . L7.30
7/01
Writing User Subroutines with ABAQUS
TOC.5
ABAQUS
Example 1: Planar Beam Element with Nonlinear
Section Behavior  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . L7.32
Objective  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . L7.32
Coding Requirements  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . L7.33
Element Formulation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . L7.35
Element Definition in the Input File  . . . . . . . . . . . . . . . . . . . . L7.39
Coding for Planar Beam Example . . . . . . . . . . . . . . . . . . . . . . L7.40
Remarks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . L7.45
Generalized Constitutive Behavior  . . . . . . . . . . . . . . . . . . . . . L7.46
Remarks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . L7.50
Example 2: Force Control Element. . . . . . . . . . . . . . . . . . . . . . . . L7.51
Objective  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . L7.51
Element Formulation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . L7.54
Element Definition in the Input File  . . . . . . . . . . . . . . . . . . . . L7.56
Coding for Force Control Element Example . . . . . . . . . . . . . . L7.57
Remarks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . L7.61
Using Nonlinear User Elements in Various Analysis Procedures  L7.63
Overview of Procedures  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . L7.63
Perturbation Procedures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . L7.66
Transient Analysis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . L7.69
Transient Heat Transfer Analysis  . . . . . . . . . . . . . . . . . . . . . . L7.70
Dynamic Analysis  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . L7.73
Workshops
Workshop Preliminaries . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  WP.1
User Subroutine FILM  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  W1.1
User Subroutine UMAT: Tangent Stiffness . . . . . . . . . . . . . . . . . .  W2.1
7/01
Writing User Subroutines with ABAQUS
TOC.6
ABAQUS
Lecture 1
Introduction
Overview
• Overview of Some User Subroutines
• Where User Subroutines Fit into ABAQUS/Standard
• Including User Subroutines in a Model
• Writing Output from User Subroutines
• Compiling and Linking User Subroutines
• Debugging Techniques and Proper Programming Habits
7/01
Writing User Subroutines with ABAQUS
L1.1
ABAQUS
Overview of Some User Subroutines
Overview of Some User Subroutines
• ABAQUS/Standard provides users with an extensive array of user
subroutines that allow them to adapt ABAQUS to their particular
analysis requirements.
• Chapter 24 of the ABAQUS/Standard Users’ Manual details all 40+
user subroutines available in ABAQUS/Standard.
Some popular user subroutines include
CREEP: Use this subroutine to define time-dependent, viscoplastic
deformation in a material. The deformation is divided into
deviatoric behavior (creep) and volumetric behavior (swelling).
DLOAD: Use this subroutine to define nonuniform, distributed
mechanical loads (pressures and body forces).
7/01
Writing User Subroutines with ABAQUS
L1.2