USDFLD Subroutine Modeling Functionally Graded Materials (FGMs)



Are you an engineer struggling to model functionally graded materials (FGMs) in simulations? If so, you’re not alone. Fortunately, with the USDFLD subroutine in Abaqus, it’s possible to define your own material properties and accurately simulate complex materials.

About this Video:

In this tutorial video, we’ll guide you through the process of modeling FGMs in Abaqus using the USDFLD subroutine with solid elements. We’ll start by explaining the USDFLD subroutine and its advantages over the UMAT. Then, we’ll delve into the material properties of FGMs and their importance in various engineering applications.

Next, we’ll show you an example of how to define an FGM material in Abaqus using the USDFLD subroutine. We’ll walk you through the steps to create a cylindrical model with symmetric conditions, assign the FGM material using the USDFLD subroutine, and perform loading and meshing.

Throughout the tutorial, we’ll use solid elements and finite element method (FEM) to accurately model the behavior of the FGM. We’ll also show you how to define solution-dependent state variables (SDVs) using a tabular definition to calculate the Young’s modulus as a function of radius for our FGM.

By the end of this tutorial, you’ll have a solid understanding of how to model FGMs in Abaqus using the USDFLD subroutine with solid elements. You’ll also have gained valuable insight into the capabilities of user-defined material subroutines and the benefits they provide for accurately simulating complex materials.

So, if you’re interested in learning more about Abaqus projects, the USDFLD subroutine, FGMs, cylinders, and the finite element method, then this tutorial video is perfect for you. Follow along with us and learn how to create your own FGM material properties in Abaqus using the USDFLD subroutine.

This video includes the following contents:

0:33 Introduction
1:33 USDFLD Subroutine
6:20 FGM material
10:19 Creating the model in Abaqus
14:47 Showing the results
16:25 Ending

USDFLD subroutine:

USDFLD is a powerful user-defined field subroutine in Abaqus that allows you to define additional field variables for use in post-processing or as input to other subroutines. By leveraging the capabilities of the Fortran programming language, you can define scalar, vector, or tensor fields that can access and modify solution variables such as displacements, stresses, and strains.

To use the USDFLD subroutine in Abaqus, you’ll need to provide the subroutine code in Fortran, compile it into a shared library, and link it to your Abaqus analysis. You’ll also need to define the field variables and their initial values in the input file.

USDFLD is ideal for complex simulations that require custom calculations, such as the definition of additional stress or strain components, the calculation of damage or failure criteria, the implementation of user-defined material models, or the evaluation of heat flux or electric field. However, it’s worth noting that user-defined subroutines require advanced programming skills and may significantly increase the computational time and memory requirements of your analysis. Therefore, it’s important to validate your results against experimental or analytical data.

In summary, USDFLD is a valuable tool for advanced Abaqus users who need to extend the software’s functionality beyond its built-in capabilities. By defining custom field variables and leveraging Fortran’s flexibility, you can achieve more accurate and comprehensive simulations that align with your specific needs.

USDFLD videos:

To find content regarding the USDFLD subroutine you can watch these tutorials:

An Example for USDFLD Subroutine in Abaqus

For UMAT subroutine please visit:

A simple example for Umat subroutine in Abaqus

Anisotropic material in Umat code for Abaqus

More Information:

After purchasing this model you could ask your question using the following link:


Please note this model requires at least 4 GB ram.
In this video, we avoid giving too many details so you can easily use the product. Here you can find: Abaqus files (CAE, ODB, INP, FORTRAN, and JNL), Excel file PowerPoint files. Videos, PowerPoint presentation. For more information please send me an Email:



More Details About Abaqus

Abaqus is an FEA software used to analyze models with high complexity. The provided option by this software creates a great environment to study various models. Not even solid mechanics but also thermal and fluid mechanic models can be simulated in this software. It is worth mentioning that the fluid mechanic model was separated after Abaqus 6.16 and since version 2017 the company started to develop an independent solver for it. In order to increase the complexity of models, engineers can use FORTRAN to develop subroutine code and Python to create a model by scripting. Here we provide a simple description to explain how these two features help you develop a model.

Scripting by Python:

Imagine you want to create a part with holes randomly distributed inside it. You need to bring a calculator and a piece of paper to find some random numbers to find the center and radius of those holes. The other option is to use Matlab code or any other coding language to find those random values. However, after finding those values you still need to create those holes inside your models. You need to modify your part at least one time per hole. Fortunately, Abaqus provided Python scripting to avoid this. You can easily create your code there and use the provided function to create and modify those holes inside your part. Consequently, you don’t need to do it by clicking and modifying your part. You can develop code in Python to do the job for you.

Subroutine for Abaqus:

Now, you created your complex part and now you are ready to define your material properties, boundary condition and loads. However, you notice your material properties are very complex and they change over time. Even if you didn’t have this problem, you would need to change the value of time-dependent on material properties. You look at the Abaqus feature and think there is no way you can do it. In fact, your model should change during the process. Your values are not just a simple numbers and you need to make them as a function of time and other variables. Here is the time you need to use subroutine to define those complex properties in your model. You need to use the proper function known as Subroutine and define your function there and run that by your model.

If you think you need more background it might be a good idea to see the other video about subroutine (Please click here). To use subroutine we need to use the FORTRAN code and also Abaqus needs to be linked to Intel FORTRAN. The video is short so you can learn this in less than 15 minutes and you will have the output and Abaqus CAE file.

Youtube video is posted:



Easy learning


There are no reviews yet.

Only logged in customers who have purchased this product may leave a review.