Smart questions
Smart answers
Smart people
Join Eng-Tips Forums

Member Login

Remember Me
Forgot Password?
Join Us!

Come Join Us!

Are you an
Engineering professional?
Join Eng-Tips now!
  • Talk With Other Members
  • Be Notified Of Responses
    To Your Posts
  • Keyword Search
  • One-Click Access To Your
    Favorite Forums
  • Automated Signatures
    On Your Posts
  • Best Of All, It's Free!

Join Eng-Tips
*Eng-Tips's functionality depends on members receiving e-mail. By joining you are opting in to receive e-mail.

Posting Guidelines

Promoting, selling, recruiting, coursework and thesis posting is forbidden.
Jobs from Indeed

Link To This Forum!

Partner Button
Add Stickiness To Your Site By Linking To This Professionally Managed Technical Forum.
Just copy and paste the
code below into your site.

How to update YoungÆs modulus according to change in plastic strainHelpful Member!(2) 

ab110 (Mechanical) (OP)
5 Apr 11 7:01

Does anyone know how to define a material in ABAQUS in which the Young's modulus (E) is not fix and is dependent on plastic strain?

For instance we want to have the relation between E and plastic strain as follow:

Effective strain (for uniaxial tension, RD)    Elastic modulus (GPa)
0.00000                                                198.8
0.01793                                                172.4
0.03942                                                168.7
0.06155                                                166.8
0.08409                                                167.2
0.10747                                                166.8

Helpful Member!  corus (Mechanical)
5 Apr 11 8:54
Is this the tangent modulus you're defining? If so then convert to stress/strain and input the data as per the manual.  


akabarten (Automotive)
5 Apr 11 10:29

Take a look for this thread:

ab110 (Mechanical) (OP)
6 Apr 11 7:03
Thanks Bartosz for your help,

I have checked the USDFLD subroutine in the PDF file. Becouse I am new to write user subroutine in ABAQUS, I couldn't change that for this special problem. Would you please put the subroutine here and let me know how to use that?

The other thing that i should mention is that the analysis that I want to use the subroutine is in ABAQUS STANDARD, please let me know if there is any differences between ABAQUS STANDARD and Explicit to use this subroutine.

Sorry again because of this request. I have tried a lot but I couldn't use that.

akabarten (Automotive)
7 Apr 11 14:56

It is true the example from the pdf file is not trivial.

I made for You very simple example + USDFLD subroutine used by the model.
Please check attached *.zip file.

A material change Young module respect to elastic strain.
The idea is to use field variable, since meaning of field variable is set by a user in the example field variable are elastic strains.
The subroutine read EE11 output for each integration point and save it as field variable, next abaqus base on the field variable value choose Young module.
The example is with truss elements since there is only one direction for stress and strain so it is easy to check results.

Of course the same approach you can use with plastic strain, You need to change only subroutine to read plastic strain.
Just add new output in the model ('PE') and in the subroutine read 'PE' output instead 'EE'.
For plastic strain outputs will be save in 'array' table in following order:
array(1) = PE11, array(2) = PE22, array(3) = PE33
array(4) = PE12, array(5) = PE13, array(6) = PE23
array(7) = PEEQ, array(8) = PEMAG

More information you can find in abaqus documentation:
1. Abaqus User Subroutines Reference Manual (1.1.45 USDFLD User subroutine to redefine field variables at a material point.)
2. Abaqus User Subroutines Reference Manual (2.1.6 Obtaining material point information in an Abaqus/Standard analysis.)
3. Abaqus Analysis User's Manual (30.6.1 Predefined fields.)

>>> please let me know if there is any differences between ABAQUS STANDARD and Explicit to use this subroutine.
USDFLD is for Standard and VUSDFLD is for Explicit.
Usually we can find small difference in subroutines for explicit and standard. I do not know is any differences in this case. You need to check it in documentation.


ab110 (Mechanical) (OP)
11 Apr 11 7:01
Dear Bartosz,

Thanks a lot for your kind attention and help me to solve this problem.

ab110 (Mechanical) (OP)
12 Apr 11 2:50
Hi Bartosz,

I have performed the analysis which is a nonlinear plane stress problem and Young's Modulus (E) is changed with Equivalent Plastic Strain (PEEQ). To validate the model I want to plot PEEQ versus E. I couldn't find a relation between them, so I have made a new post about that. I made a decision to write this question here too, to ask you about that. Please let me know if you know how to get E in a nonlinear plane stress problem to plot PEEQ versus E.

akabarten (Automotive)
14 Apr 11 11:59

I am not sure how to do it. This is also a reason why the example made by me is with elastic material not with elastic-plastic.
I was not sure how to check the model.

I think you should take a look here:
Getting Started with Abaqus: Interactive Edition -> 10.2 Plasticity in ductile metals

There is equation which involve elastic strains, plastic strains,
stress and Young module. I would try calculate E from the equation.

Since you have plane stress case at the beginning I would make calculation for one direction. If you are using isotropic material then the results should be also true for other directions.

ab110 (Mechanical) (OP)
15 Apr 11 7:43
thanks for your help,
ab110 (Mechanical) (OP)
25 May 11 2:06
Hi Bartosz,

I want to define a material in which the Young's modulus (E) can change trough thickness. I wrote a USDFLD subroutine for that to use a field variable. Would you please help me solve the problems that I have as below:

•    As you can see in the attached file, I want to change the E in thickness direction (Y). So I defined COORD (2) as a field variable. I think this way is not correct because the amount of coordinate (2) will change by deformation of sheet, but I want to change the E trough thickness.  How can I define the field variable for this problem?

•    Instead of writing exact numbers for E, I want to have a relation between E and field variable (1) like:
E=69600(1+Field (1)/2.5)
How can I use this equation?

I appreciate if you please let me know if there is a better way to change E with thickness and this way is not correct.

Thanks again in advance for your kind attention.

Helpful Member!  akabarten (Automotive)
25 May 11 14:45

I've prepared a pack for you with my solution. The pack includes *.inp and *.for files.
This is your model with small modification (new step, new definition for field variable in *ELASTIC section).
Please take a look for it since I put some explanations in comments.

This is how I changed your USDFLD subroutine:


c     first inc. of first step ?
      if (kstep .eq. 1 .and. kinc .eq. 1) then

c       read y-coordinate
        y = coord(2)
c       calculate Young module
        E = 69600.d0 * (1.d0 + y / 2.5d0)
c       define depend state variable (E(y))
        field(1) = E
c       save E value for state dependend variable
        statev(1) = E

c     do it for all others inc. and steps
c       assign initial values calculated in first inc.
        field(1) = statev(1)

      end if

The main idea is to:
1. define field variable as E instead thickness as in your case.
2. point 1 allow us to calculate E respect to your equation.
3. thickness (y-coordinate) I read for material points not for nodes. It easier since coordinates for material points are pass into subroutine
with dummy arguments lists (coord array) and we do not have to use GETVRM routine to read node coordinates.
4. E is calculated only for first increment when all elements are in initial positions, for all others increment I assign initial values.
So I have no influence of element deformation for my material data during solution.
It is true only if in first increment of my analysis I have no loads which could deform geometry.
5. remember that USDFLD subroutine is call at the end of an increment, it means E values assign for elements are not correct for first increment.
To solve it I see two possibilities:
a) add one artificial step with one increment where we do not generate any stress/strains at the beginning of the analysis.
b) set initial values for field variable.
Take a look for abaqus documentation 30.2.1 Initial conditions in Abaqus/Standard and Abaqus/Explicit (Defining initial values of predefined field variables).
I think the best is to use external odb file to read initial field variables values. In this case You do not need USDFLD subroutine for other runs with the same part.
You need to only run one analysis with subroutine to set field variables.

Value of E assigned for each element you can plot in Viewer with FV1 field output.

If the case of any doubts please let me know.

ab110 (Mechanical) (OP)
26 May 11 7:01
Hi Bartosz,

Thank heaps for your help and showing me the way.

You put wonderful comments for me. Regarding to you comments would you please answer my questions as below:

•    What do you mean by material point coordinate? Is it the coordinate of integration point?
•    When I wanted to plot FV1 to see E for each element the minimum and maximum were 92800 and 185600 respectively. In the equation for E, the minimum and maximum should be 69600 and 208800 (69600*3). I thought maybe we don't have enough elements trough thickness, so I increased the number of element to 50 trough thickness!! But the minimum and maximum are 70990 and 207400 respectively which are not exact yet. Would you please let me know what is the reason that we can not get the exact amount for E in this analysis?

akabarten (Automotive)
27 May 11 5:17


What do you mean by material point coordinate? Is it the coordinate of integration point?
Yes, you are right, this is the same points.


When I wanted to plot FV1 to see E for each element the minimum and maximum were 92800 and 185600 respectively.
The values are correct. The equation for E is calculate respect to y-coordinate of material point.
For your mesh there are 3 material points in y-direction (in middle of element height):
1. For bottom elements it is 0.83333 -> E=69600*(1+0.83333/2.5) = 92800
2. For middle elements it is 2.49999 -> E=69600*(1+2.49999/2.5) = 139200
3. For top elements it is 4.16666 -> E=69600*(1+4.16666/2.5) = 185600


  In the equation for E, the minimum and maximum should be 69600 and 208800
You can get these values only for node position. It does not make sense, E value you can assign only for elements not for nodes.

One more point from my side, I forgot about this in previous post.
The subroutine works ok for reduced elements (with one integration points) if you want to use fully integrated elements then you need to modify the subroutine.
I believe the best solution is to calculate E value for all material points in an element and assign one average value.

ab110 (Mechanical) (OP)
27 May 11 8:34
Thanks a lot Bartosz,

I do not know how to express my deep appreciate to you. I think you are very professional in this area and the best person by who I can improve my knowledge.

I am really interested in knowing more about you. would you please let me have your e-mail address or a way by which I can contact you?


Reply To This Thread

Posting in the Eng-Tips forums is a member-only feature.

Click Here to join Eng-Tips and talk with other members!

Back To Forum

Close Box

Join Eng-Tips® Today!

Join your peers on the Internet's largest technical engineering professional community.
It's easy to join and it's free.

Here's Why Members Love Eng-Tips Forums:

Register now while it's still free!

Already a member? Close this window and log in.

Join Us             Close