step-42 now available

219 views
Skip to first unread message

Wolfgang Bangerth

unread,
Nov 6, 2013, 6:09:32 PM11/6/13
to deal.II user group

All,
let me copy a brief item from the news file that may be of interest to you:
.......................
step-42, written by Joerg Frohne, Timo Heister and Wolfgang
Bangerth, shows how to solve an elasto-plastic contact problem.
The program is an extension of step-41 to a much more complex
equation (nonlinear elasto-plasticity) and also demonstrates
how to compute solutions for such problems in parallel.
.......................
This program is now available at
http://www.dealii.org/developer/doxygen/deal.II/step_42.html
and will be part of the next deal.II release as well!

Cheers
W.

--
------------------------------------------------------------------------
Wolfgang Bangerth email: bang...@math.tamu.edu
www: http://www.math.tamu.edu/~bangerth/

Muhammad Mashhood

unread,
Feb 21, 2020, 6:25:44 AM2/21/20
to deal.II User Group
Dear Prof. Wolfgang,
                                  Thank you for sharing the tutorial step. I am using the plasticity (material non linearity) part of it with the surface force (Neuman BC) as a mechanical load. When I remove the load the plasticized domain comes back to its original (undeformed) state.
I was wondering if this code with current mathematical model of plasticity (as mentioned in the corresponding research article) could be further developed to evaluate the plastic strain of the plasticized region?
Moreover, this plastic deformation could be then stored on Gauss points so that one can also visualize that what is the final shape of the plasticized domain after removing load.
Thank you! 

Wolfgang Bangerth

unread,
Feb 21, 2020, 9:05:33 AM2/21/20
to dea...@googlegroups.com
On 2/21/20 4:25 AM, Muhammad Mashhood wrote:
>                                   Thank you for sharing the tutorial step. I
> am using the plasticity (material non linearity) part of it with the surface
> force (Neuman BC) as a mechanical load. When I remove the load the plasticized
> domain comes back to its original (undeformed) state.
> *I was wondering if this code with current mathematical model of plasticity
> (as mentioned in the corresponding research article) could be further
> developed to evaluate the plastic strain of the plasticized region?*

Are you asking whether it is *possible*, or whether *we* could further develop
the code? The first for sure, I don't think that it would be very difficult to
add this functionality. The latter probably not -- a lot of the development of
the tutorials is driven by people who have an interest in need in a particular
topic -- so it would require someone volunteering to do the work.

> Moreover, this plastic deformation could be then stored on Gauss points so
> that one can also visualize that what is the final shape of the plasticized
> domain after removing load.

Yes, that too could be done.

Best
W.

--
------------------------------------------------------------------------
Wolfgang Bangerth email: bang...@colostate.edu
www: http://www.math.colostate.edu/~bangerth/

Muhammad Mashhood

unread,
Feb 21, 2020, 11:31:56 AM2/21/20
to deal.II User Group
Thank you for the response Prof. Wolfgang. My apology for the confusion. I will try to clear my concern as follows:
In my question I meant whether is it possible to evaluated plastic strain component from currently implemented plasticity algorithm as a further development of this code?

I would be thankful if you guide or refer me to the possibility from implemented plasticity algorithm's point of view.
Normally the way I know is to use the plastic slip factor (calculated in one of the plasticity algorithm's step) to evaluate the plastic strain component but to me the currently implemented algorithm seems a bit different than normally mentioned in text books.

Then as a step further I would be trying to store this plastic strain in cells or Gauss points along with the modified yield strength (due to isotropic hardening) so that history of loading is stored too in the domain.  
Looking forward to your guiding response. Thank you once again for your concern and consistent guidance!

Best regards,
Muhammad

Wolfgang Bangerth

unread,
Feb 23, 2020, 6:42:17 PM2/23/20
to dea...@googlegroups.com

> In my question I meant whether is it possible to evaluated plastic strain
> component from currently implemented plasticity algorithm as a further
> development of this code?

I am pretty sure that it is, by just computing the difference between the
elastic stress (C eps(u)) and the actual stress computed. In fact, for the
current situation, the actual stress computed equal to the elastic stress
where it is less than the yield stress (and so the plastic strain is zero),
and it is simply a fraction of the elastic stress where it exceeds the yield
stress. Once you have the plastic stress, you can compute the plastic strain
by multiplying it by C^{-1}.


> Then as a step further I would be trying to store this plastic strain in cells
> or Gauss points along with the modified yield strength (due to isotropic
> hardening) so that history of loading is stored too in the domain.

I imagine that that, too, can be done. I'm not an expert in plasticity, but I
see no fundamental reasons why what you want to do should not be possible.
There are also classes CellDataStorage and TransferableQuadraturePointData and
parallel::distributed::ContinuousQuadratureDataTransfer that can help you with
storing information at quadrature points.

Muhammad Mashhood

unread,
Mar 30, 2020, 2:09:55 PM3/30/20
to deal.II User Group


On Monday, February 24, 2020 at 12:42:17 AM UTC+1, Wolfgang Bangerth wrote:

> In my question I meant whether is it possible to evaluated plastic strain
> component from currently implemented plasticity algorithm as a further
> development of this code?

I am pretty sure that it is, by just computing the difference between the
elastic stress (C eps(u)) and the actual stress computed. In fact, for the
current situation, the actual stress computed equal to the elastic stress
where it is less than the yield stress (and so the plastic strain is zero),
and it is simply a fraction of the elastic stress where it exceeds the yield
stress. Once you have the plastic stress, you can compute the plastic strain
by multiplying it by C^{-1}.
Thank you very much Prof. Wolfgang for your suggestion and I hope you are doing all well. As far as I understood now from your suggestion is that on the base of additive decomposition, I can subtract elastic stress (C eps(u)) from the actual stress computed to have the plastic stress part. But here I just noticed in the program that we also need (eps(u)) or the elastic strain part to have elastic stress part's value when the domain is in the plastic region.
    In one dimension problem there is I think no problem because from stress strain curve one knows already the elastic stress value (which is yield stress) but here we have multidimensional problem i.e. stress and strain as a 2nd order tensor. Therefore I am thinking now that how this elastic strain tensor can be evaluated to have elastic stress part to be subtracted from total calculated stress.
One of the idea I have so far is to use the calculated "strain_tensor" to find the elastic stress as  "elastic_stress_tensor = (stress_strain_tensor_kappa + stress_strain_tensor_mu) * strain_tensor". But again the point is that the "strain_tensor" here is the total strain rather than elastic strain component. 

Kindly correct me if I misunderstood your suggestion at any point or if there is an alternate approach possible. Thank you again in advance.
Stay healthy stay safe!

Andrew McBride

unread,
Apr 1, 2020, 5:26:44 AM4/1/20
to dea...@googlegroups.com
Hi all 

Classical plasticity is underpinned by return mapping algorithms that operate at the level of the quadrature point. One has a global predictor for the displacement field where we assume frozen plastic flow. Then at each quadrature point you compute a trial strain, and hence a trial stress. The trial stress is used to test for yield at the quadrature point. You then compute the plastic multiplier, and hence the plastic strain, to return to the yield surface. This is an iterative process at the global and possibly local level.

All of this can and has been done in deal.ii. Wolfgang has suggested using CellDataStorage which will allow you to handle the quadrature point data. For implementations have a look at https://github.com/prisms-center/plasticity . 

You might also want to have a look at some of the extensive literature e.g. https://onlinelibrary.wiley.com/doi/book/10.1002/9780470694626 Here they explain the algorithm in detail.

Best
A

--
The deal.II project is located at http://www.dealii.org/
For mailing list/forum options, see https://groups.google.com/d/forum/dealii?hl=en
---
You received this message because you are subscribed to the Google Groups "deal.II User Group" group.
To unsubscribe from this group and stop receiving emails from it, send an email to dealii+un...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/dealii/9a59d3e4-e11d-4f6e-af92-c34c85fe9b57%40googlegroups.com.

Muhammad Mashhood

unread,
Apr 1, 2020, 7:33:50 AM4/1/20
to deal.II User Group
Hi Mac,
             I really appreciate your concern and thank you for nice and brief summary regarding classical plasticity algorithm.
I would like to highlight here that in Prisms-plasticity this algorithm is also implemented but I checked with its continuum plasticity application, which so far is not updated and hence also the code is not working for continuum plasticity part. As per communication from developers they will update and make it run in next update.
Secondly I am preferably using the step-42. Personally for me it seems bit simpler and I already coupled it with other physics for multi-physics problem.


On Wednesday, April 1, 2020 at 11:26:44 AM UTC+2, mac wrote:
Hi all 

Classical plasticity is underpinned by return mapping algorithms that operate at the level of the quadrature point. One has a global predictor for the displacement field where we assume frozen plastic flow. Then at each quadrature point you compute a trial strain, and hence a trial stress. The trial stress is used to test for yield at the quadrature point. You then compute the plastic multiplier, and hence the plastic strain, to return to the yield surface. This is an iterative process at the global and possibly local level.
No doubt, you are very right that the plastic multiplier is evaluated in iterative manner and this very plastic multiplier is then a key to plastic strain evaluation. But here I would like to highlight that in the step-42 seemingly a bit different method is used to solve elastoplastic problem. As far as I could understand the algorithm in hand, here after evaluating the trial stress in terms of Von-Mises equivalent stress and also when it is higher than the yield stress, the stiffness tensor is evaluated as function of current trial stress. After that this very stiffness tensor is used to evaluate displacement and strain increments and convergence of Newton algorithm is checked. So in this way the system is solved iteratively and after convergence the displacement and the total strain is present as output.
As the total strain is the output that is why I need here some way to evaluate the plastic and elastic strain (any one of them so that other can be evaluated from additive decomposition). If you want, you can check this interesting and simple algorithm in a deal.ii step-42 code or this nice article of "Goal oriented error estimation and mesh adaptivity in 3d elastoplasticity problems" doi: https://doi-org.proxy.bnl.lu/10.1007/s10704-016-0113-y
I hope I explained it well. Thanks again for showing interest and your concern.
A

To unsubscribe from this group and stop receiving emails from it, send an email to dea...@googlegroups.com.
Reply all
Reply to author
Forward
0 new messages