Importing Equivalent Plastic Strain

About the development of the FEM module/workbench.

Moderator: bernd

HSig
Posts: 6
Joined: Mon Oct 12, 2015 1:26 pm

Re: Importing Equivalent Plastic Strain

Post by HSig »

Very nice, actually wrote something similar few months ago (before signing up to the forum.) I did not do further work on it because I saw quickly that the approach was not flexible enough, it would give more sense to rewrite the result reader in such a way that it reads all available results, no matter what they are. So what you define in the input file, to be written in the .frd result file, is read by the result reader and made available in FreeCAD-FEM.
User avatar
bernd
Veteran
Posts: 12851
Joined: Sun Sep 08, 2013 8:07 pm
Location: Zürich, Switzerland
Contact:

Re: Importing Equivalent Plastic Strain

Post by bernd »

updated https://github.com/berndhahnebach/FreeC ... empestrain and rebased in on uptodate master

- load your file
- purge results
- run analysis
- run code attached

Code: Select all

res_obj = App.ActiveDocument.CalculiX_static_results
mesh_obj = App.ActiveDocument.getObjectsByLabel('beam01')[0]
mesh_obj.ViewObject.setNodeColorByScalars(res_obj.NodeNumbers, res_obj.Peeq)
What are these peeq strains ?
Attachments
screen.jpg
screen.jpg (399.92 KiB) Viewed 2110 times
Last edited by bernd on Sun Feb 19, 2017 8:56 pm, edited 2 times in total.
User avatar
bernd
Veteran
Posts: 12851
Joined: Sun Sep 08, 2013 8:07 pm
Location: Zürich, Switzerland
Contact:

Re: Importing Equivalent Plastic Strain

Post by bernd »

HSig wrote:Very nice, actually wrote something similar few months ago (before signing up to the forum.) I did not do further work on it because I saw quickly that the approach was not flexible enough, it would give more sense to rewrite the result reader in such a way that it reads all available results, no matter what they are. So what you define in the input file, to be written in the .frd result file, is read by the result reader and made available in FreeCAD-FEM.
+1
User avatar
bernd
Veteran
Posts: 12851
Joined: Sun Sep 08, 2013 8:07 pm
Location: Zürich, Switzerland
Contact:

Re: Importing Equivalent Plastic Strain

Post by bernd »

sodelo wrote:For the post-processing, I understand the standard way is defined in _TaskPanelShowResult.py and the VTK way is defined in FemVTKTools.cpp.
These two options are somewhat redundant. Will both 2 options continue to exist in the future?
_TaskPanelShowResult.py was first, is easy to adapt, does not need C++ knowledge, does not need to recompile FreeCAD, does not need dependency VTK, BUT is just to play a bit. Not really for working with results.

From my point of view they both will coexist. If you really would like to work with the FEM results VTK post processing is the way to go. For developing (like what we do just now) and just have a fast view whats happening _TaskPanelShowResult.py is great.

bernd
sodelo
Posts: 73
Joined: Tue Jan 24, 2017 9:20 am

Re: Importing Equivalent Plastic Strain

Post by sodelo »

What are these peeq strains ?
When you work with metals beyond yield stress, after unloading you will have a permanent strain. Plasticity has occured.
PEEQ stands for (Cumulated) Equivalent Plastic Strain.
Assuming your material behaves as the Mises Plastic Behaviour (which is often the case, at least to some extent), you can describe the behaviour of any part of this material whatever the stress state (tension, compression, shear, biaxial stress, ...) if you have at your disposal the results of a uniaxial tensile test (for which there is a single stress and a single strain) from which you can derive:
- the elastic modulus,
- the yield stress (stress where the behaviour is no longer elastic),
- the hardening behaviour (increase of stress with the increase of plastic strain).

It is assumed that for any given stress state, you can always compare to a tensile curve thanks to 2 equivalent scalars: the equivalent (mises) stress and the (cumulated) equivalent strain.
PEEQ is cumulated because it never decreases to reflect the fact that once you get plasticity, permanent changes have occured in the material. If you load in tension to get a permanent elongation and then compress (reaching again the yield stress) so that at the end after unloading you have the same length than initially, the Plastic strain magnitude is zero bu the Cumulated Equivalent Plastic Strain is not zero.
In case of a structural overload or during a forming operation, it is important to check if plasticity has occured and what is its value. This is the role of the PEEQ.
To go further we would need to post-process a well each component of the plastic strain tensor.

In the case of the beam (your picture), this shows the location and extend of the zone of the part which has gone within plasticity.
sodelo
Posts: 73
Joined: Tue Jan 24, 2017 9:20 am

Re: Importing Equivalent Plastic Strain

Post by sodelo »

From my point of view they both will coexist. If you really would like to work with the FEM results VTK post processing is the way to go. For developing (like what we do just now) and just have a fast view whats happening _TaskPanelShowResult.py is great.
So we will go for _TaskPanelShowResult.py. Depending on the feedback concerning the stress and strain vectors, I may propose to suppress them. I do not know however when I can do this.
User avatar
bernd
Veteran
Posts: 12851
Joined: Sun Sep 08, 2013 8:07 pm
Location: Zürich, Switzerland
Contact:

Re: Importing Equivalent Plastic Strain

Post by bernd »

Does it mean the normal strain is not usable behind yielding? Which strain (the normal or the peeq) fits to the deformations and the stress if we are behind yielding?
Last edited by bernd on Sun Feb 19, 2017 8:52 pm, edited 1 time in total.
User avatar
bernd
Veteran
Posts: 12851
Joined: Sun Sep 08, 2013 8:07 pm
Location: Zürich, Switzerland
Contact:

Re: Importing Equivalent Plastic Strain

Post by bernd »

sodelo wrote:
From my point of view they both will coexist. If you really would like to work with the FEM results VTK post processing is the way to go. For developing (like what we do just now) and just have a fast view whats happening _TaskPanelShowResult.py is great.
So we will go for _TaskPanelShowResult.py. Depending on the feedback concerning the stress and strain vectors, I may propose to suppress them. I do not know however when I can do this.
good idea.
sodelo
Posts: 73
Joined: Tue Jan 24, 2017 9:20 am

Re: Importing Equivalent Plastic Strain

Post by sodelo »

Does it mean the normal strain is not usable behind yielding? Which strain (the normal or the peeq) fits to the deformations and the stress if we are behind yielding?
What you calll "normal strain" is just total strain. Below the yield stress, total strains and elastic strains are equal. Beyond, there is a partition between elastic and plastic strains (except if there is no hardening <--> the curve is flat beyond yield stress, in that case, Total Strain=Plastic Strain+ (Elastic Strain)at yield stress.
By just looking at the total strain, you cannot guess whether you have plasticity (except if you have gone very far in plasticity since in that case, Total strain is almost equal to Plastic Strain).
To answer you question, both plastic and total strains are useful and consistent. Imagine you pull on a 100mm-long specimen and you unload it. You impose a fixed displacement of 5mm. Computed total strain will be (almost) 5% at maximum loading (real value is log(1+5/100)). If you compute a 2% plastic strain, you know (without even doing the unloading in the simulation), that the final length will be 2% longer.

In the definition of the Plastic part of the material (*PLASTIC for Calculix and ABAQUS), equivalent mises stress is given as a function of the cumulated equivalent plastic strain. So when you exploit your tensile stress to make it usable for the FE code, you have to substract the elastic part from the total strain.
User avatar
bernd
Veteran
Posts: 12851
Joined: Sun Sep 08, 2013 8:07 pm
Location: Zürich, Switzerland
Contact:

Re: Importing Equivalent Plastic Strain

Post by bernd »

try this file. The finer mesh is not only on the surface but through the whole part of the solid. To recreate the mesh just double click on the mesh and apply again.

to show peeq strain use:

Code: Select all

App.ActiveDocument.CompoundFilter_Mesh.ViewObject.setNodeColorByScalars(App.ActiveDocument.CalculiX_static_results.NodeNumbers, App.ActiveDocument.CalculiX_static_results.Peeq)
beam01_bhb_mesh_cleared.FCStd
(22.58 KiB) Downloaded 64 times
screen1.jpg
screen1.jpg (551.78 KiB) Viewed 2090 times
Post Reply