Blog, Subroutines

Most Typically Used Subroutines in Abaqus

Intro to subroutines Banner

Abaqus provides to the users an extensive array of user subroutines regarding standard, explicit (or CFD analyses). For instance, here we introduce some of the most popular and important subroutines in Abaqus/Standard and Explicit. How ever, all user subroutine applicable in Abaqus can be found in Abaqus User Subroutines Reference Guide:

Subroutine Reference Guide in Documentation

We start from simpler ones:

1. DLOAD (Abaqus/Standard) & VDLOAD (Abaqus/Explicit)

They are typically used when a load is a complex function of time and/or position (a f (t, x) function for a load). So, use these subroutines to define nonuniform, distributed mechanical loads (pressures and body forces). These subroutines can also be used to define a load that varies with element number and/or integration point number.

DLOAD VDLOAD Usage in Abaqus CAE

2. DISP (Abaqus/Standard) & VDISP (Abaqus/Explicit)

They can be used to prescribe translational and rotational boundary conditions; for all degrees of freedom listed in the associated BC. You can specify values for either the degree of freedom or its time derivatives such as velocity
and acceleration.

3. FRIC (Abaqus/Standard) & VFRIC (Abaqus/Explicit) & VFRICTION (Abaqus/Explicit)

These subroutines are used when more complex models than those provided with Abaqus are needed to describe the transmission of shear forces between surfaces in contact.

4. FILM (Abaqus/Standard)

Typically used when either the film coefficient, h, or sink temperature, θs, is a complex function of time, position, and/or surface temperature.

5. HETVAL (Abaqus/Standard) & VHETVAL (Abaqus/Explicit)

We use that to define complex models for internal heat generation in a material, such as might occur when the material undergoes a phase change. VHETVAL more recently (from Abaqus 2018) added to Abaqus.

6. UEXPAN (Abaqus/Standard)

Use this subroutine to define incremental thermal strains when the material’s thermal expansion is too complex to model with Abaqus itself.

7. DFLUX (Abaqus/Standard) & VDFLUX (Abaqus/Explicit)

When a nonuniform distributed flux is a function of position, time, temperature, etc. in a heat transfer or mass diffusion analysis, you may need use this subroutine. VDFLUX more recently (from Abaqus 2016) added to Abaqus.

8. USDFLD (Abaqus/Standard) & VUSDFLD (Abaqus/Explicit)

They can define the values of field variables directly at the integration points of elements. The subroutines have access to solution data, so the field variable values can be functions of element variables such as stress, strain, strain rate, etc. We can define most material properties in Abaqus as functions of field variables. Therefore, the material properties can be a function of the solution data.
We use them usually when needing to model complex material behavior and not want to develop a UMAT/VUMAT subroutine.


Use this subroutine to define time-dependent, viscoplastic deformation in a material. The deformation is divided into deviatoric behavior (creep) and volumetric behavior (swelling).


Use this subroutine to define complex, nonlinear mechanical behavior for shell elements directly in terms of the shell element’s section stiffness.

11. UMAT (Abaqus/Standard) & VUMAT (Abaqus/Explicit)

To define any complex, constitutive models for materials that cannot be modeled with the available Abaqus material models.

12. UMATHT (Abaqus/Standard) & VUMATHT (Abaqus/Explicit)

Use these subroutines to define the thermal constitutive behavior of the material as well as internal heat generation during heat transfer processes. VUMATHT more recently (from Abaqus 2018) added to Abaqus.

13. UEL (Abaqus/Standard) & VUEL (Abaqus/Explicit)

When it is necessary to create elements with an element formulation that is not available in Abaqus element library, we use them.

14. UEXTERNALDB (Abaqus/Standard) & VEXTERNALDB (Abaqus/Explicit)

To manage external databases that may be used by other user subroutine or other software programs that are providing Abaqus data and/or using data generated by Abaqus.

Leave a Reply