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