How can I use multiple user subroutines in Abaqus? Should each subroutine have a separate file or be placed in the same .for file? How?

  • You must to post comments
Best Answer

What is Abaqus subroutine?

Sometimes, there may arise a problem in Abaqus that cannot be resolved using the usual procedures available in Abaqus/CAE. This could be due to a specific equation or the complexity of the problem. Alternatively, you might encounter a situation where you need to solve a user-defined problem that requires the implementation of specific functions. In such cases, the software provides us with a coding platform known as the Abaqus subroutine. The Abaqus subroutine allows for the customization of the program to suit specific applications that are not readily available through the main Abaqus features. If you find that you are unable to conduct your analysis using the built-in models for materials, loads, properties, elements, etc., it is recommended to write a Abaqus subroutine.

Abaqus subroutines

Abaqus utilizes various types of subroutines, each serving a specific purpose within the simulation. For instance, the UMAT user subroutine enables the addition of constitutive models to the program. On the other hand, the UEL subroutine offers a more advanced capability by allowing users to define their own elements. Additionally, there are several other subroutines applicable within Abaqus. Examples of less complex Abaqus user subroutines include DLOAD, DISP, UVARM, URDFIL, and more. To gain familiarity with the key and commonly used subroutines, I recommend reading the following articles: “10 Useful ABAQUS Subroutines (Part 1) and “10 Useful Abaqus Subroutines (Part 2).”

Subroutine file

To extend the capabilities of Abaqus and incorporate customized functionalities, writing an Abaqus subroutine is essential. The subroutine file, written in Fortran, serves as the primary tool for this purpose. By utilizing the subroutine file, engineers can implement user-defined elements, constitutive models, and specialized algorithms that enhance the accuracy and versatility of simulations. Fortran, being the programming language of choice, provides the necessary syntax and structure to write Abaqus subroutines effectively. With the subroutine file, users can tailor Abaqus to address complex engineering challenges, unlocking the software’s full potential for accurate and reliable analysis results. Understanding the structure and utilizing Fortran skills enables engineers to harness the power of the Abaqus subroutine file effectively.

Using multiple subroutines in one subroutine file

In Abaqus, there are situations where it becomes necessary to write multiple subroutines within a single file. This approach offers several advantages, including improved code organization, efficient compilation, and simplified code management. By combining multiple subroutines into a single file, engineers can better organize their code and maintain a logical structure. This helps in understanding the relationships and dependencies between different subroutines, making it easier to navigate and modify the code when necessary.

Additionally, compiling a single file with multiple subroutines can be more efficient than compiling multiple individual files. It reduces the overhead associated with compiling and linking separate files, resulting in faster compilation times.

Furthermore, managing a single file is often more convenient than dealing with multiple files. It simplifies the process of version control, sharing code with collaborators, and ensuring all necessary subroutines are readily available.

An example of multiple subroutines within a single file could be a scenario where an Abaqus user wants to implement custom material behavior along with user-defined elements. They might write a subroutine for the constitutive model (e.g., UMAT) and another subroutine for the user-defined element behavior (e.g., UEL). By combining these subroutines into a single file, the engineer can maintain a cohesive representation of their custom material and element behavior, making it easier to manage and reuse the code in different analyses.

We can have more than one Abaqus subroutine in one file. Abaqus himself will call both subroutines wherever and whenever it needs during analysis.

For example, if you are writing a UMAT and a USDFLD, your Fortran file will have such a structure:

Remember that a given user subroutine (such as UMAT or USDFLD) should appear only once in the specified user subroutine source.

See Also:

Training Package: Introduction to UMAT and VUMAT Subroutines

Q&A: What are specific internal energy and dissipated inelastic specific energy? Can they affect VUMAT results? 

Eager to hear from you…

Any complication or other questions? Feel free to comment here…

You can also send any new questions from the Questions and Answers page. Just find that blue Ask Question button at the top right corner…


  • You must to post comments
Showing 1 result
Your Answer

Please first to submit.