Products: Abaqus/Standard Abaqus/Explicit Abaqus/Aqua
A variety of utility routines are available to assist in the coding of user subroutines. When called, the utility routine will perform a predefined function or action whose output or results can be integrated into the user subroutine.
The following utility routines are available for use in coding user subroutines in Abaqus:
GETENVVAR or VGETENVVAR can be called from any Abaqus/Standard or Abaqus/Explicit user subroutine, respectively, to obtain the value of an environment variable (“Obtaining Abaqus environment variables,” Section 2.1.1 of the Abaqus User Subroutines Reference Manual).
GETJOBNAME or VGETJOBNAME can be called from any Abaqus/Standard or Abaqus/Explicit user subroutine, respectively, to obtain the name of the current analysis job (“Obtaining the Abaqus job name,” Section 2.1.2 of the Abaqus User Subroutines Reference Manual).
GETOUTDIR or VGETOUTDIR can be called from any Abaqus/Standard or Abaqus/Explicit user subroutine, respectively, to obtain the name of the directory where analysis job output is being placed (“Obtaining the Abaqus output directory name,” Section 2.1.3 of the Abaqus User Subroutines Reference Manual).
GETNUMCPUS can be called from any Abaqus/Standard user subroutine to obtain the number of MPI processes; VGETNUMCPUS can be called from any Abaqus/Explicit user subroutine in a domain-parallel run to obtain the number of processes used for the parallel run (“Obtaining parallel processes information,” Section 2.1.4 of the Abaqus User Subroutines Reference Manual).
GETRANK can be called from any Abaqus/Standard user subroutine to obtain the rank of the MPI process from which the function is called; VGETRANK can be called from any Abaqus/Explicit user subroutine in a domain-parallel run to obtain the individual process rank (“Obtaining parallel processes information,” Section 2.1.4 of the Abaqus User Subroutines Reference Manual).
GETPARTINFO or VGETPARTINFO can be called from any Abaqus/Standard or Abaqus/Explicit user subroutine, respectively, to retrieve the part instance name and local node or element number corresponding to an internal node or element number. GETINTERNAL or VGETINTERNAL can be called from any Abaqus/Standard or Abaqus/Explicit user subroutine, respectively, to retrieve the internal node or element number corresponding to a given part instance name and local number (“Obtaining part information,” Section 2.1.5 of the Abaqus User Subroutines Reference Manual.)
GETVRM provides access to material point information for Abaqus/Standard user subroutines UVARM and/or USDFLD (“Obtaining material point information in an Abaqus/Standard analysis,” Section 2.1.6 of the Abaqus User Subroutines Reference Manual).
VGETVRM provides access to selected output variables at material points for Abaqus/Explicit user subroutine VUSDFLD (“Obtaining material point information in an Abaqus/Explicit analysis,” Section 2.1.7 of the Abaqus User Subroutines Reference Manual).
GETVRMAVGATNODE provides access to material point information, extrapolated to and averaged at a node, for Abaqus/Standard user subroutine UMESHMOTION (“Obtaining material point information averaged at a node,” Section 2.1.8 of the Abaqus User Subroutines Reference Manual).
GETVRN provides access to node point information for Abaqus/Standard user subroutine UMESHMOTION (“Obtaining node point information,” Section 2.1.9 of the Abaqus User Subroutines Reference Manual).
GETNODETOELEMCONN can be called from user subroutine UMESHMOTION to retrieve a list of elements connected to a specific node. This element list can then be used with utility routine GETVRMAVGATNODE (“Obtaining node to element connectivity,” Section 2.1.10 of the Abaqus User Subroutines Reference Manual).
SINV determines the first and second stress invariants for a given stress tensor in Abaqus/Standard (“Obtaining stress invariants, principal stress/strain values and directions, and rotating tensors in an Abaqus/Standard analysis,” Section 2.1.11 of the Abaqus User Subroutines Reference Manual).
SPRINC or VSPRINC determines the principal values for a given stress or strain tensor in Abaqus/Standard or Abaqus/Explicit, respectively (“Obtaining stress invariants, principal stress/strain values and directions, and rotating tensors in an Abaqus/Standard analysis,” Section 2.1.11 of the Abaqus User Subroutines Reference Manual, and “Obtaining principal stress/strain values and directions in an Abaqus/Explicit analysis,” Section 2.1.12 of the Abaqus User Subroutines Reference Manual).
SPRIND or VSPRIND determines both the principal values and principal directions for a given stress or strain tensor in Abaqus/Standard or Abaqus/Explicit, respectively (“Obtaining stress invariants, principal stress/strain values and directions, and rotating tensors in an Abaqus/Standard analysis,” Section 2.1.11 of the Abaqus User Subroutines Reference Manual, and “Obtaining principal stress/strain values and directions in an Abaqus/Explicit analysis,” Section 2.1.12 of the Abaqus User Subroutines Reference Manual).
ROTSIG can be called from Abaqus/Standard user subroutine UMAT to perform the rotation of tensors when large-strain calculations are performed (“Obtaining stress invariants, principal stress/strain values and directions, and rotating tensors in an Abaqus/Standard analysis,” Section 2.1.11 of the Abaqus User Subroutines Reference Manual).
GETWAVE determines wave kinematic data associated with the applied wave theory in an Abaqus/Aqua analysis (“Obtaining wave kinematic data in an Abaqus/Aqua analysis,” Section 2.1.13 of the Abaqus User Subroutines Reference Manual).
GETWAVEVEL, GETWINDVEL, and GETCURRVEL are used to obtain the wave, wind, and steady current velocity components, respectively, for a given point in an Abaqus/Aqua analysis (“Obtaining wave kinematic data in an Abaqus/Aqua analysis,” Section 2.1.13 of the Abaqus User Subroutines Reference Manual).
STDB_ABQERR or XPLB_ABQERR can be called from any Abaqus/Standard or Abaqus/Explicit user subroutine, respectively, to print an informational, warning, or error message to the message file in Abaqus/Standard or the status file in Abaqus/Explicit (“Printing messages to the message or status file,” Section 2.1.14 of the Abaqus User Subroutines Reference Manual).
XIT or XPLB_EXIT can be called from any Abaqus/Standard or Abaqus/Explicit user subroutine, respectively, to terminate an analysis (“Terminating an analysis,” Section 2.1.15 of the Abaqus User Subroutines Reference Manual).
IGETSENSORID or IVGETSENSORID can be called from Abaqus/Standard user subroutine UAMP or Abaqus/Explicit user subroutine VUAMP, respectively, to obtain the ID of a user-defined sensor. GETSENSORVALUE or VGETSENSORVALUE can be called from Abaqus/Standard user subroutine UAMP or Abaqus/Explicit user subroutine VUAMP, respectively, to obtain the value of a user-defined sensor (“Obtaining sensor information,” Section 2.1.16 of the Abaqus User Subroutines Reference Manual).
MATERIAL_LIB_MECH can be called from Abaqus/Standard user subroutine UELMAT to access the Abaqus material library (“Accessing Abaqus materials,” Section 2.1.17 of the Abaqus User Subroutines Reference Manual).
MATERIAL_LIB_HT can be called from Abaqus/Standard user subroutine UELMAT to access the Abaqus thermal material library (“Accessing Abaqus thermal materials,” Section 2.1.18 of the Abaqus User Subroutines Reference Manual).
SMACfdUserSubroutineGetScalar can be called from any Abaqus/CFD user subroutine to access selected output variables for elements or surface facets that are part of a boundary condition definition (“Obtaining scalar state information in an Abaqus/CFD analysis,” Section 2.1.19 of the Abaqus User Subroutines Reference Manual).
SMACfdUserSubroutineGetVector can be called from any Abaqus/CFD user subroutine to access selected output variables for elements and surface facets that are part of a boundary condition definition (“Obtaining vector state information in an Abaqus/CFD analysis,” Section 2.1.20 of the Abaqus User Subroutines Reference Manual).
SMACfdUserSubroutineGetMpiComm can be called from within any Abaqus/CFD user subroutine to obtain the MPI communicator used in a parallel analysis job (“Obtaining the MPI communicator in an Abaqus/CFD analysis,” Section 2.1.21 of the Abaqus User Subroutines Reference Manual).