Abaqus provides the users with 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. Writing user subroutines with Abaqus will be presented in the last part of the article. However, all user subroutines applicable in Abaqus can be found in the Abaqus User Subroutines Reference Guide:
We start with 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.
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
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. writing user subroutines with Abaqus will be available in other posts and products.
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 to 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 do not want to develop a UMAT/VUMAT subroutine.( writing user subroutines with Abaqus)
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.
15. writing user subroutines with Abaqus, is there any tutorial?
Here below, I have listed some main Abaqus subroutines that you may encounter when using Abaqus at an advanced level as a graduate student or researcher. Good news for you! You can learn each subroutine you want by clicking on that.
It would be useful to see Abaqus Documentation to understand how it would be hard to start an Abaqus simulation without any Abaqus tutorial.