Continue to Site

Eng-Tips is the largest engineering community on the Internet

Intelligent Work Forums for Engineering Professionals

  • Congratulations MintJulep on being selected by the Eng-Tips community for having the most helpful posts in the forums last week. Way to Go!

How to update YoungÆs modulus according to change in plastic strain 3

Status
Not open for further replies.

ab110

Mechanical
Feb 27, 2011
55
Hi,

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

C,
A
 
Replies continue below

Recommended for you

Is this the tangent modulus you're defining? If so then convert to stress/strain and input the data as per the manual.

Tara
 
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.

C,
A
 
Hi,

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.

Regards,
Bartosz


 
 http://files.engineering.com/getfile.aspx?folder=5f9fee1b-a702-4fda-abe8-d3ae94db7776&file=eng_tips_usdfld.zip
Dear Bartosz,

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

Cheers,
A
 
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.

Cheers,
A
 
Hi,

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.

Regards,
Bartosz
 
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.

C,
A
 
 http://files.engineering.com/getfile.aspx?folder=13d17264-f226-400b-bfd8-e2fb7b5e41b0&file=Changing_E_with_Thickness.zip
Hi,

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:
Code:
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
      else
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.

Regards,
Bartosz
 
 http://files.engineering.com/getfile.aspx?folder=1900d3eb-c457-4a77-8a95-7420ccc0896f&file=25052011_eng_tips_USDFLD_for_ab110.zip
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?

Regards,
A
 
Hi,
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.

Regards,
Bartosz
 
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?

C,
A
 
Status
Not open for further replies.

Part and Inventory Search

Sponsor