User login


You are here

Strain Gradient Plasticity

Mubeen's picture

Hi all,

I have a strange question that has puzzled me since last almost one year.

There are many SG-plasticity models in the technical literature, sometimes categorized as lower-order or higher-order models.

The problem is :

the constitutive models include the gradient of plastic parameters (e.g. plastic slip).

While developing a UMAT, the local values of variables (stress, strain, internal variables) are the arguments of the subroutine, however the SG theories require the values of gradients of internal variables/plastic-strains at the Integration Points as well.

As the normal way to handle gradients of these variables is to write these variables as combination of shape functions and the nodal values, so intutively the main question is:

due to the need of gradients, it is not possible to use UMAT for these models, (and UEL is obviously the right choice), but how come the authors of almost every article in the research journals mention that they implemented the model using UMAT ?? How can they calculate the gradients using UMAT ??


Best regards,



luvsharma11's picture

Hi Mubeen,

I agree that most of these articles do not give details on how they implement their models. I do not know much about that either but I think a call to UMAT can be made from a UEL. So to implement a SGP model one can make use of both (UMAT and UEL) in conjunction.


Luv Sharma

Yonggang Huang's picture

There is a way to get around this in ABAQUS, using UMAT to account for the strain gradient effect.  Prof. Shaoxing Qu has come up this idea, published it in IJP (2004), and successfully implemented it in ABAQUS.  Please contact him at .  Good luck.

Mubeen's picture

Dear Prof. Huang,

thank you for pointing out the relevant literature. I tried to contact Prof. Qu at the address you mentioned, but perhaps due to a typo in the email address, the email was not sent.

Upon googling, I found his email:

His detailed reply was helpful. 


Dear Mubeen,

I'm working on the strain gradient theory by means of UMAT. Professor Qu put forward a suggestion that I can define a common block array to store the information (coordinates and plastic strains )of integration points and then calculate the strain gradient. I can't understand how can I calculate the strain gradient by the strain and the coordinate of the integration points? And you know at every iteration in UMAT, only current integration point can be obtained, how can I get all the intergation points of the element?


Yi Hao

Amit Acharya's picture

One particular implementation using a UMAT in lower order gradient plasticity uses the gradient term evaluated at the last converged state. There the idea is the following:

At every iteration, for each element, write out to file the coords of the int pt., element no. of the element, and the value of the variable whose gradient needs to be computed.  Then, when the increment counter changes (this information is avaiable in the UMAT call) for the first time in an increment, use the data in file to interpolate with shape fns and calculate the required gradient at the center of the 'element' formed by the integration pts.within each (real) element. Use this common value of the gradient for all int. pts. of the element, for calculations in the new increment

You can consult the following references if you wish:

 Tang et al. - Journal of the Mechanics and Physics of Solids, 52 (2004) 2841 – 2867

 Acharya, Beaudoin - Journal of the Mechanics and Physics of Solids, 48 (2000) 2213–2230

I hope this helps.

WaiChing Sun's picture

Hi Professor Acharya, 

    Since the internal variable data are only available at integration points, does that mean one has to use some kind of projection scheme to extend the IV data to the nodes of the finite element mesh such that a gradient term can be computed? 

 If that is the case, which norm (e.g. H1, L2, or energy norm) should we choose to perform such a projection? 





Mubeen's picture

Dear Prof. Acharya,

thank you for the detailed comment. The UTILITY subroutines in Abaqus are intelligent enough to provide the information about coordinates and serial number of integration points and element numbers to the user.

At the moment, I have access to FEAP, (getting the Abaqus/Standard + Intel Compiler licenses will take some weeks).

Is this procedure also valid for FEAP?


Amit Acharya's picture

Dear WaiChing,

The practical hack (which works well) is not to involve an exptrapolation to nodes. Assume for definiteness, quad elements. Then, within each element simply consider a further  quadrilateral formed by the physical locations of the int. points of that element. Calculate the gradient, using shape fns. for a quad, at the center of the 'int-pt.-quad'.  Use this value of the gradient as the common gradient value at all int. points of the element. Clearly, this is a local element-by-element computation.

Thus, you don't need to invoke a notion of a norm to go through with the above implementation.

Beyond the hack, a bigger theoretical question is, what space does the internal variable live in. It turns out that this is subtle and can be considered only in the context of the full evolution problem. For higher order models, the only analysis of the evolution problem I know of is that of

 Our lower-order theory is of entirely different type, having wave-propagative features (even in the absence of inertia). We provided some analysis of the issues involved in

The results here would seem to suggest that the internal variable in this case lives in H1, but this is not a rigorous result (in the sense of rigorous PDE theory). Nevertheless, the examples considered show some unusual and unexpected twists which one may find interesting.

Dear All

As prof. Acharya mentioned, there
are some ways to implement lower order gradient theories in finite element
framework via UMAT. Since in most of lower order gradient theory like mechanism
based strain gradient theory proposed by Nix and Gao (1999) and crystal
plasticity version of that (Han, 2005, JMPS), the gradient term appears in
hardening law as an additional parameters. Apparently they did not consider
gradient term as an additional degree of freedom while the long range elastic
stress (back stress) of dislocation is not  accounted. So these theories
can be implemented via UMAT. The procedure has been explanied in the
supplementary document of our paper entitled:

"Grain size-inclusion size
interaction in metal matrix composite using mechanism based gradient crystal
plasticity (2011) IJSS".

In this approach, the pseudo-element
constructed from the GPs of the actual finite elements. To calculate the plastic slip gradients within an FE, we apply the
approach similar to the one is used in calculating strains from displacements
in a conventional FE formulation.

Hope it
works for you.



Amit Acharya's picture

Dear Ramin,

The Nix-Gao model introduces the gradient in the flow strength. This modification does not leave the structure of the boundary value problem of incremental/rate equilibrium for the rate-independent material unaltered and would not allow an implementation via a UMAT, for strictly rate-independent materials.

What does leave the structure of the incremental/rate bvp for the rate-independent material unaltered is a modification of only the work hardening modulus and not the flow strength, an observation made in

Acharya A., Shawki, T. G.  Thermodynamic restrictions on constitutive equations for second-deformation-gradient inelastic behavior, J. Mech. Phys. Solids, 43(11), 1751-1772, 1995.

This paper also considers the rate-dependent material, and of course as usual, the issues related to the structure of the rate-dependent, incremental/rate bvp are much simpler and this problem allows more practical liberties.

Dear Prof. Acharya


Thanks for your interesting comments. As you mentioned in case of rate independent material, implementing via UMAT does not capture the mathematical nature of the problem. So I think in that case the proposed model of Acharya and Bassani (2000) would be more approprite for lower order gradien theories while for higher order theories still UEL implementation is required.


Mubeen's picture

Dear Prof. Acharya,

I was searching for information related to this problem. Tons of thanks for mentioning this article.

Mubeen's picture

Dear Prof. Acharya,

does the procedure mentioned above require USDFLD subroutine? Because
the element number (NOEL) and integration point number (NPT) are not
available in UMAT, but they are the arguments of USDFLD subroutine, so I
suppose that by defining Gamma as a field variable, the user can get
its gradient. Kindly correct me if I am wrong.


Amit Acharya's picture

Dear Mubeen,

I haven't coded in ABAQUS in some time, but when I did I am sure that NOEL and NPT were part of the UMAT subroutine call. Is it not the case anymore? That would mean rewiring a lot of old subroutines people may have written.

In any case you would need this information, especially NPT. For NOEL, it is easy to think up workarounds...

Frank Richter's picture




you can make NOEL and NPT available in UMAT: set

state variable = NOEL and NPT in SDVINI



Mubeen's picture

although it is claimed that Mechanism based Strain Gradient Crystal Plasticity (MSGCP) constitutive theory is a lower-order theory and doesn't require additional DOFs/BCs, but mathematically we have 2 partial differentials, one is the total strain (∂u/∂x) and the second enters in the constitutive relation via the plastic strain as gradient of total slip (∂γ/∂x).

However the MSGCP seeks only the true gradient of displacement, and the gradient of plastic slip γ, is approximated clearly via local element-by-element computation. 

Is it a mathematically sound way to compute such gradients? 

Best regards,


eng.femiran's picture

 There exist two frameworks of strain gradient plasticity theories to
model size effects observed at the micron and sub-micron scales in
experiments. The first framework involves the higher-order stress and
therefore requires extra boundary conditions, such as the theory of
mechanism-based strain gradient (MSG) plasticity [J Mech Phys Solids 47
(1999) 1239; J Mech Phys Solids 48 (2000) 99; J Mater Res 15 (2000)
1786] established from the Taylor dislocation model. The other framework
does not involve the higher-order stress, and the strain gradient
effect come into play via the incremental plastic moduli.

Emilio Martínez Pañeda's picture

I have made available the UMAT subroutine that I've developed to implement the Conventional Mechanism-Strain Gradient (CMSG) plasticity model in ABAQUS. The subroutine is in compiled form and is accompanied by a comprehensive documentation PDF file. You can download it from: 

Do not hesitate to contact me if you have any further doubts.

Subscribe to Comments for "Strain Gradient Plasticity"

Recent comments

More comments


Subscribe to Syndicate