classic Classic list List threaded Threaded
2 messages Options
Reply | Threaded
Open this post in threaded view


Ahmad Falahatpisheh
Dear Group Users,

I have a strain energy function which I have applied using UMAT in Abaqus/Standard. Now, I am trying to define this material model by VUMAT in Abaqus/Explicit.

In documentation, it is said that it is most effectively accomplished by formulating the hyperelastic constitutive model in terms of the stretch tensor, U.

I have the following question:

1. Should I define the Cauchy stress for the array stressNew(nblock, ndir+nshr) like UMAT?

2. How can I rotate the stresses resulting from deformation gradient back to corotational basis?

I would be grateful for any kind of help.

Reply | Threaded
Open this post in threaded view


For 1), a VUMAT, stresses need to be computed in so-called corotational form. See this link for some details:

 This actually simplifies the math somewhat because in the stress calculation you can just use the (stretch tensor)^2 which is available as an argument in the subroutine definition. If you do it this way, there is no need to rotate the stresses at all...they will automatically be expressed in the reference configuration instead of the deformed configuration.

 You actually can use the regular Cauchy stress equation and then rotate it back to the reference configuration with the rotation matrix:

 stress_corotational = R^T(stress)R

 where R is the rotation tensor and T is transpose operator. You can calculate R and R^T from the deformation gradient and stretch tensor passed in by the subroutine arguments:

 F = RU


 R = FU^-1

 Shawn Chester took this more complicated approach in his Neo-Hookean subroutine at:


 I suggest you follow the approach given in Bergstrom's book:

 Bergström, J.S. (2015). Mechanics of Solid Polymers: Theory and Computational Modeling. Elsevier Inc.
 which uses the simpler approach.