Abaqus User Subroutines Guide

What's New

R2022x FD01 (FP.2205)

R2022x GA

Abaqus/Standard User Subroutines

CREEP

Metals

Drucker-Prager Materials

Capped Drucker-Prager Materials

Gaskets

Integration Schemes

Constant Stress Assumption When Defining Creep and Swelling

Defining Both Plasticity and Creep

Interpretation of Stress and Strain Variables

User Subroutine Interface

Variables to Be Defined

Variables That Can Be Updated

Variables Passed in for Information

Example: Hyperbolic Sine Creep Law

DFLOW

User Subroutine Interface

Variables to Be Defined

Variables Passed in for Information

DFLUX

User Subroutine Interface

Variables to Be Defined

Variables Passed in for Information

DISP

User Subroutine Interface

Variables to Be Defined

Variables Passed in for Information

DLOAD

User Subroutine Interface

Variables to Be Defined

Variables Passed in for Information

FILM

User Subroutine Interface

Variables to Be Defined

Variables Passed in for Information

FLOW

User Subroutine Interface

Variables to Be Defined

Variables Passed in for Information

FRIC

User Subroutine Interface

Variables to Be Defined

Variables That Can Be Updated

Variables Passed in for Information

FRIC_COEF

User Subroutine Interface

Variables to Be Defined

Variables That Can Be Updated

Variables Passed in for Information

GAPCON

Usage with Contact Pairs and Gap Elements

User Subroutine Interface

Variables to Be Defined

Variables Passed in for Information

GAPELECTR

User Subroutine Interface

Variables to Be Defined

Variables Passed in for Information

HARDINI

Defining Backstress Components

User Subroutine Interface

Variables to Be Defined

Variables Passed in for Information

HETVAL

User Subroutine Interface

Variables to Be Defined

Variables That Can Be Updated

Variables Passed in for Information

MPC

Coding Methods

Constraints That Involve Degrees of Freedom That Are Not Active in the Model

Use with Nodal Coordinate Systems

Degree of Freedom Version of User Subroutine MPC

Nodal Version of User Subroutine MPC

ORIENT

User Subroutine Interface

Variables to Be Defined

Variables Passed in for Information

RSURFU

Overpenetration Constraint

Calculations to Be Performed

Defining the Local Surface Geometry

User Subroutine Interface

Variables to Be Defined

Variables Passed in for Information

Example: Rigid Punch

SDVINI

Use of Solution-Dependent State Variables in Other User Subroutines

User Subroutine Interface

Variables to Be Defined

Variables Passed in for Information

SIGINI

Stress Components

Initial Stress Field Equilibrium

User Subroutine Interface

Variables to Be Defined

Variables Passed in for Information

UAMP

Explicit Solution Dependence

User Subroutine Interface

Variables to Be Defined

Variables That Can Be Updated

Variables Passed in for Information

Example: Amplitude Definition Using Sensor and State Variables

UANISOHYPER_INV

Enumeration of Invariants

Storage of Arrays of Derivatives of the Energy Function

Special Considerations for Various Element Types

User Subroutine Interface

Variables to Be Defined

Variables Passed in for Information

Example: Anisotropic Hyperelastic Model of Kaliske and Schmidt

Additional Reference

UANISOHYPER_STRAIN

Storage of Strain Components

Storage of Arrays of Derivatives of the Energy Function

Special Considerations for Various Element Types

User Subroutine Interface

Variables to Be Defined

Variables Passed in for Information

Example: Orthotropic Saint-Venant Kirchhoff Model

UCORR

Cross-Correlation for Base Motion Excitation

Cross-Correlation for Point Loads and Distributed Loads

User Subroutine Interface

Variables to Be Defined

Variables Passed in for Information

UCREEPNETWORK

Model Description

User Subroutine Interface

Variables to Be Defined

Variables That Can Be Updated

Variables Passed in for Information

Example: Bergstrom-Boyce Model

UDAMAGEMF

User Subroutine Interface

Variables to Be Defined

Variables That Can Be Updated

Variables Passed in for Information

Example: User-Defined Damage Model

UDECURRENT

User Subroutine Interface

Variables to Be Defined

Variables Passed in for Information

UDEMPOTENTIAL

User Subroutine Interface

Variables to Be Defined

Variables Passed in for Information

UDMGINI

User Subroutine Interface

Variables to Be Defined

Variables That Can Be Updated

Variables Passed in for Information

Example: User-Defined Damage Initiation Criterion with Two Different Failure Mechanisms

UDSECURRENT

User Subroutine Interface

Variables to Be Defined

Variables Passed in for Information

UEL

Wave Kinematic Data

User Subroutine Interface

Variables to Be Defined

Variables That Can Be Updated

Variables Passed in for Information

UEL Conventions

Usage with General Nonlinear Procedures

Usage with Linear Perturbation Procedures

Nondiagonal Damping in Linear Perturbation Procedures

Example: Structural and Heat Transfer User Element

UELEMDRESP

User-Defined Element Design Response

User Subroutine Interface

Variables to Be Defined

Variables Passed in for Information

UELMAT

User Subroutine Interface

Variables to Be Defined

Variables That Can Be Updated

Variables Passed in for Information

UELMAT Conventions

Usage with General Nonlinear Procedures

Usage with Linear Perturbation Procedures

Example: Structural User Element with Abaqus Isotropic Linearly Elastic Material

UEPACTIVATIONFACET

User Subroutine Interface

Variables to Be Defined

Variables That Can Be Updated

Variables Passed in for Information

UEPACTIVATIONSETUP

User Subroutine Interface

Variables to Be Defined

Variables That Can Be Updated

Variables Passed in for Information

UEPACTIVATIONVOL

User Subroutine Interface

Variables to Be Defined

Variables That Can Be Updated

Variables Passed in for Information

UEXPAN

User Subroutine Interface

Variables to Be Defined

Variables That Can Be Updated

Variables Passed in for Information

UEXTERNALDB

User subroutine interface

Variables to be defined

Variables passed in for information

UFIELD

Updating Field Variables

User subroutine interface

Variables to be defined

Variables passed in for information

UFLUID

Density and Fluid Mass

User Subroutine Interface

Variables to Be Defined

Variables That Can Be Updated

Variables Passed in for Information

UFLUIDCONNECTORLOSS

User Subroutine Interface

Variables to Be Defined

Variables Passed in for Information

UFLUIDCONNECTORVALVE

User Subroutine Interface

Variables to Be Defined

Variables Passed in for Information

UFLUIDLEAKOFF

User Subroutine Interface

Variables to Be Defined

Variables Passed in for Information

UFLUIDPIPEFRICTION

User Subroutine Interface

Variables to Be Defined

Variables Passed in for Information

UGENS

Storage of Membrane and Bending Components

Increments for Which Only the Section Stiffness Can Be Defined

Stability

Convergence Rate

Use with Shells That Have Transverse Shear and/or Hourglass Stiffness

Use with Continuum Shell Elements

User Subroutine Interface

Variables to Be Defined

Variables That Can Be Updated

Variables Passed in for Information

UHARD

User Subroutine Interface

Variables to Be Defined

Variables Passed in for Information

UHYPEL

Special Considerations for Various Element Types

User Subroutine Interface

Variables to Be Defined

Variables Passed in for Information

UHYPER

Special Considerations for Various Element Types

User Subroutine Interface

Variables to Be Defined

Variables Passed in for Information

UHYPER_STRETCH

Shells That Calculate Transverse Shear Energy

Elements with Hourglassing Modes

User Subroutine Interface

Variables to Be Defined

Variables Passed in for Information

UINTER

User Subroutine Interface

Variables to Be Defined

Variables That Can Be Updated

Variables Passed in for Information

UMASFL

User Subroutine Interface

Variables to Be Defined

Variables Passed in for Information

UMAT

Storage of Stress and Strain Components

Defining Local Orientations

Stability

Convergence Rate

Viscoelastic Behavior in Frequency Domain

Special Considerations for Various Element Types

Large Volume Changes with Geometric Nonlinearity

Use with Almost Incompressible or Fully Incompressible Elastic Materials

Increments for Which Only the Jacobian Can Be Defined

Utility Routines

User Subroutine Interface

Variables to Be Defined

Variables That Can Be Updated

Variables Passed in for Information

Example: Using More than One User-Defined Mechanical Material Model

Example: Simple Linear Viscoelastic Material

UMATHT

Use of Subroutine UMATHT with Coupled Temperature-Displacement and Coupled Thermal-Electrical-Structural Elements

User Subroutine Interface

Variables to Be Defined

Variables That Can Be Updated

Variables Passed in for Information

Example: Using More than One User-Defined Thermal Material Model

Example: Uncoupled Heat Transfer

UMDFLUX

User Subroutine Interface

Variables to Be Defined

Variables That Can Be Updated

Variables Passed in for Information

UMDFLUXSETUP

User Subroutine Interface

Variables to Be Defined

Variables That Can Be Updated

Variables Passed in for Information

UMESHMOTION

Accessing Node Point Data

User Subroutine Interface

Variables to Be Defined

Variables That Can Be Updated

Variables Passed in for Information

UMIXMODEFATIGUE

User Subroutine Interface

Variables to Be Defined

Variables That Can Be Updated

Variables Passed in for Information

Example: User-Defined Fatigue Crack Growth Criterion

UMOTION

User Subroutine Interface

Variables to Be Defined

Variables Passed in for Information

UMULLINS

User Subroutine Interface

Variables to Be Defined

Variables That Can Be Updated

Variables Passed in for Information

UPOREP

User Subroutine Interface

Variables to Be Defined

Variables Passed in for Information

UPRESS

User Subroutine Interface

Variables to Be Defined

Variables Passed in for Information

UPSD

User Subroutine Interface

Variables to Be Defined

Variables Passed in for Information

URDFIL

User Subroutine Interface

Variables to Be Defined

Variables Passed in for Information

Example: Terminating an Analysis upon Exceeding a Mises Stress Limit

Example: Terminating an Analysis When the Maximum Mises Stress Value Stops Increasing

USDFLD

Explicit Solution Dependence

Defining Field Variables

Accessing Material Point Data

State Variables

User subroutine interface

Variables to be defined

Variables that can be updated

Variables passed in for information

Example: Damaged Elasticity Model

USUPERELASHARDMOD

User Subroutine Interface

Variables to Be Defined

Variables Passed in for Information

UTEMP

User subroutine interface

Variables to be defined

Variables passed in for information

UTRACLOAD

User Subroutine Interface

Variables to Be Defined

Variables Passed in for Information

UTRS

User Subroutine Interface

Variables to Be Defined

Variables That Can Be Updated

Variables Passed in for Information

UTRSNETWORK

User Subroutine Interface

Variables to Be Defined

Variables That Can Be Updated

Variables Passed in for Information

Example: Williams-Landel-Ferry Shift Function

UVARM

Accessing Material Point Data

Using User-Defined Output Variables

User Subroutine Interface

Variables to Be Defined

Variables Passed in for Information

Example: Calculation of Stress Relative to Shift Tensor

UWAVE

User Subroutine Interface

Variables to Be Defined

Variables Passed in for Information

UXFEMNONLOCALWEIGHT

User Subroutine Interface

Variables to Be Defined

Variables Passed in for Information

VOIDRI

User Subroutine Interface

Variables to Be Defined

Variables Passed in for Information

Abaqus/Explicit User Subroutines

VDFLUX

User Subroutine Interface

Variables to Be Defined

Variables Passed in for Information

VDISP

Initial Velocity

Acceleration

User Subroutine Interface

Variables to Be Defined

Variables Passed in for Information

Example: Imposition of Acceleration on a Rigid Body with Nonzero Initial Velocity

VDLOAD

User Subroutine Interface

Variables to Be Defined

Variables Passed in for Information

VEXTERNALDB

Dynamic Exchange of Data with Other Abaqus User Subroutines and External Programs

User Subroutine Interface

Variables to Be Defined

Variables That Can Be Updated

Variables Passed in for Information

VFABRIC

Component Ordering in Tensors

Initial Calculations and Checks

Orientation of the Fabric Yarn

Material Point Deletion

User Subroutine Interface

Variables to Be Defined

Variables That Can Be Updated

Variables Passed in for Information

Example: Using More than One User-Defined Material Model

Example: Influence of Nonorthogonal Material Directions in Highly Anisotropic Elastic Material

VFRIC

Terminology

Local Coordinate System

Frictional Forces

User Subroutine Interface

Variables to Be Defined

Variables That Can Be Updated

Variables Passed in for Information

VFRIC_COEF

User Subroutine Interface

Variables to Be Defined

Variables Passed in for Information

VFRICTION

Contact Points

Local Coordinate System

Frictional Forces

User Subroutine Interface

Variables to Be Defined

Variables That Can Be Updated

Variables Passed in for Information

VHETVAL

User Subroutine Interface

Variables to Be Defined

Variables Passed in for Information

VSDVINI

Use of Solution-Dependent State Variables in Other User Subroutines

User Subroutine Interface

Variables to Be Defined

Variables Passed in for Information

VUAMP

Explicit Solution Dependence

User Subroutine Interface

Variables to Be Defined

Variables That Can Be Updated

Variables Passed in for Information

Example: Amplitude Definition Using Sensor and State Variables

VUANISOHYPER_INV

Enumeration of Invariants

Storage of Arrays of Derivatives of Energy Function

Special Considerations for Shell Elements

Material Point Deletion

User Subroutine Interface

Variables to Be Defined

Variables Passed in for Information

Example: Using More than One User-Defined Anisotropic Hyperelastic Material Model

Example: Anisotropic Hyperelastic Model of Kaliske and Schmidt

Additional Reference

VUANISOHYPER_STRAIN

Component Ordering in Tensors

Special Consideration for Shell Elements

Material Point Deletion

User Subroutine Interface

Variables to Be Defined

Variables Passed in for Information

Example: Using More than One User-Defined Anisotropic Hyperelastic Material Model

Example: Orthotropic Saint-Venant Kirchhoff Model

VUCHARLENGTH

Defining Characteristic Element Length

Array of Element Type and Geometric Properties

Elements

Special Consideration for 8-Node Continuum Shell Elements

User Subroutine Interface

Variables to Be Defined

Variables Passed in for Information

VUCREEPNETWORK

Model Description

User Subroutine Interface

Variables to Be Defined

Variables That Can Be Updated

Variables Passed in for Information

Example: Power-Law Strain Hardening Model

VUEL

User Subroutine Interface

Variables to Be Defined

Variables Passed in for Information

VUEL Conventions

Usage with General Nonlinear Procedures

Example: Structural User Element

VUEOS

User Subroutine Interface

Variables to Be Defined

Variables That Can Be Updated

Variables Passed in for Information

Example: User Subroutine VUEOS to Reproduce Results Obtained with EOS, TYPE=USUP

VUEXPAN

User Subroutine Interface

Variables to Be Defined

Variables Passed in for Information

VUFIELD

Updating Field Variables

User Subroutine Interface

Variables to Be Defined

Variables Passed in for Information

VUFLUIDEXCH

Conventions for Defining Mass Flow/Heat Energy Flow Rate

User Subroutine Interface

Variables to Be Defined

Variables That Can Be Updated

Variables Passed in for Information

VUFLUIDEXCHEFFAREA

Defining Effective Area

User Subroutine Interface

Variables to Be Defined

Variables Passed in for Information

VUGENS

Storage of Membrane and Bending Components

Stability

Use with Shells That Have Transverse Shear

Use with Continuum Shell Elements

User Subroutine Interface

Variables to Be Defined

Variables That Can Be Updated

Variables Passed in for Information

VUHARD

User Subroutine Interface

Variables to Be Defined

Variables Passed in for Information

VUINTER

Terminology

Local Coordinate System

Conventions for Heat Flux and Stress

User Subroutine Interface

Variables to Be Defined

Variables That Can Be Updated

Variables Passed in for Information

VUINTERACTION

Terminology

Local Coordinate System

Conventions for Stress and Heat Flux

User Subroutine Interface

Variables to Be Defined

Variables That Can Be Updated

Variables Passed in for Information

VUMAT

Component Ordering in Tensors

Initial Calculations and Checks

Defining Local Orientations

Special Considerations for Various Element Types

Deformation Gradient

Objective Stress Rates

Defining Effective Modulus to Control Time Incrementation in Abaqus/Explicit

Material Point Deletion

User Subroutine Interface

Variables to Be Defined

Variables That Can Be Updated

Variables Passed in for Information

Example: Using More than One User-Defined Material Model

Example: Elastic/Plastic Material with Kinematic Hardening

VUMATHT

User Subroutine Interface

Variables to Be Defined

Variables That Can Be Updated

Variables Passed in for Information

Example: Using More than One User-Defined Material Model

Example: A Simple Thermal Material

VUMULLINS

Material Point Deletion

User Subroutine Interface

Variables to Be Defined

Variables That Can Be Updated

Variables Passed in for Information

Example: Hyperelasticity with Softening

Additional Reference

VUSDFLD

Explicit Solution Dependence

Defining Field Variables

State Variables

Accessing Material Point Data

Component Ordering in Symmetric Tensors

User Subroutine Interface

Variables to Be Defined

Variables That Can Be Updated

Variables Passed in for Information

Example: Damaged Elasticity Model

VUSUPERELASHARDMOD

User Subroutine Interface

Variables to Be Defined

Variables Passed in for Information

VUTRS

User Subroutine Interface

Variables to Be Defined

Variables That Can Be Updated

Variables Passed in for Information

VUVISCOSITY

User Subroutine Interface

Variables to Be Defined

Variables Passed in for Information

Example: Cross Viscosity Model

VWAVE

User Subroutine Interface

Variables to Be Defined

Variables That Can Be Updated

Variables Passed in for Information

General Utility Routines

Obtaining Abaqus Environment Variables

Utility Routine Interface

Variables to Be Provided to the Utility Routine

Variables Returned from the Utility Routine

Obtaining the Abaqus Job Name

Utility Routine Interface

Variables Returned from the Utility Routine

Obtaining the Abaqus Output Directory Name

Utility Routine Interface

Variables Returned from the Utility Routine

Obtaining Parallel Processes Information

GETNUMCPUS and VGETNUMCPUS (Obtain the Number of Processes)

GETRANK and VGETRANK (Obtain the Process Number)

GETNUMTHREADS (Obtain the Number of Threads)

Get_Thread_Id

GETCOMMUNICATOR (Fortran)

Get_Communicator (C++)

Obtaining Part Information

GETPARTINFO and VGETPARTINFO (Obtain Part Instance Information Given Global Node/Element Number)

GETINTERNAL and VGETINTERNAL (Obtain Global Node/Element Number Given Part Instance Information )

Obtaining Physical Constants in an Abaqus/Standard Analysis

Utility Routine Interface

Variables to Be Provided to the Utility Routine

Variables Returned from the Utility Routine

Obtaining Material Point Information in an Abaqus/Standard Analysis

Utility Routine Interface

Variables to Be Provided to the Utility Routine

Variables Returned from the Utility Routine

Available Output Variable Keys

Ordering of Returned Components

Analysis Time for Which Values Are Returned

Equilibrium State for Values Returned

Example

Accessing State-Dependent Variables

Unsupported Element Types, Procedures, and Output Variable Keys

Decoding Material and Orientation Names

Utility Routine Interface

Variables to Be Provided to the Utility Routine

Variables Returned from the Utility Routine

Obtaining Constituent-Level Material Point Information in an Abaqus/Standard Analysis

Utility Routine Interface

Variables to Be Provided to the Utility Routine

Variables Returned from the Utility Routine

Obtaining Contact Constraint Point Information in an Abaqus/Standard Analysis

Utility Routine Interface

Variables to Be Provided to the Utility Routine

Variables Returned from the Utility Routine

Available Variable Keys

Obtaining Material Point Information in an Abaqus/Explicit Analysis

Utility Routine Interface

Variables to Be Provided to the Utility Routine

Variables Returned from the Utility Routine

Available Output Variable Keys

Component Ordering in Symmetric Tensors

Analysis Time for Which Values Are Returned

Example

Unsupported Element Types, Procedures, and Output Variable Keys

Obtaining Material Point Information Averaged at a Node

Utility routine interface

Variables to be provided to the utility routine

Variables returned from the utility routine

Available Output Variable Keys

Ordering of Returned Components

Analysis Time for Which Values Are Returned

Accessing State-Dependent Variables

Unsupported Element Types and Output Variable Keys

Example: Obtaining Plastic Strain Results

Example: Obtaining Contact Results

Obtaining Node Point Information

Utility Routine Interface

Variables to Be Provided to the Utility Routine

Variables Returned from the Utility Routine

Available Output Variable Keys

Ordering of Returned Components

Analysis Time for Which Values Are Returned

Obtaining Node to Element Connectivity

Utility Routine Interface

Variables to Be Provided to the Utility Routine

Variables Returned from the Utility Routine

Obtaining Stress Invariants, Principal Stress/Strain Values and Directions, and Rotating Tensors in an Abaqus/Standard Analysis

SINV (Calculate Stress Invariants)

SPRINC (Calculate Principal Values)

SPRIND (Calculate Principal Values and Directions)

ROTSIG (Rotate a Tensor)

Obtaining Principal Stress/Strain Values and Directions in an Abaqus/Explicit Analysis

VSPRINC (Calculate Principal Values)

VSPRIND (Calculate Principal Values and Directions)

Obtaining Wave Kinematic Data in an Abaqus/Aqua Analysis

GETWAVE (Get Wave Kinematics)

GETWAVEVEL, GETWINDVEL, and GETCURRVEL (Get Wave, Wind, and Current Velocities)

Printing Messages to the Message or Status File

Utility Routine Interface

Variables to Be Provided to the Utility Routine

Terminating an Analysis

Utility Routine Interface

Obtaining Sensor Information

Utility Routine Interface

Variables to Be Provided to the Utility Routine

Variables Returned from the Utility Routine

Accessing Abaqus Materials

Utility Routine Interface

Variables to Be Provided to the Utility Routine

Variables Returned from the Utility Routine

Accessing Abaqus Thermal Materials

Utility Routine Interface

Variables to Be Provided to the Utility Routine

Variables Returned from the Utility Routine

Accessing Abaqus Table Collections

setTableCollection

getParameterTable

getParameterTableRow

getPropertyTable

vGetPropertyTable

vGetPropertyTablePtr

queryTableCollectionSize

queryTableCollectionNames

queryTableCollection

queryParameterTable

queryPropertyTable

Accessing Abaqus Event Series Data

getEventSeriesSliceProperties

getEventSeriesSliceLG

getEventSeriesSliceLGLocationPath

Ensuring Thread Safety

Mutexinit, MutexLock, and Mutexunlock

Allocatable Arrays

SMALocalIntArrayCreate, SMALocalFloatArrayCreate

SMALocalIntArrayAccess, SMALocalFloatArrayAccess

SMALocalIntArraySize, SMALocalFloatArraySize

SMALocalFloatArrayDelete, SMALocalFloatArrayDelete

SMAIntArrayCreate, SMAFloatArrayCreate

SMAIntArrayAccess, SMAFloatArrayAccess

SMAIntArraySize, SMAFloatArraySize

SMAFloatArrayDelete, SMAFloatArrayDelete

Allocatable Global Arrays of Variable Precision

Allocatable Global Arrays of User-Defined Types

Setting a User-Defined Value

Utility Routine Interface

Variables to Be Provided to the Utility Routine

Toolpath-Mesh Intersection Utility Routines

Setup Utility Routines

PtkSetMeshAndEventSeries

PtkSetEventSeriesProperties

PtkGetEventSeriesNumDivisionPoints

PtkGetEventSeriesDivisionCoordinates

PtkSetEventSeriesDivisionPointWeights

PtkSetMeshAndScanstrategies

PtkSetEigLibrary

PtkAssignEigLibToScanStrategies

PtkAssignEigLibToES

Compute Utility Routine

PtkCompute

Data Retrieval Utility Routines

PtkGetScanPatternData

PtkGetNumIntersectedElements

PtkGetIntersectedElements

PtkGetDataAccess

PtkGetData

Index

User Subroutines Index

User subroutine functions listing

Abaqus/Standard User Subroutines

Abaqus/Explicit User Subroutines