[petsc-users] -snes_fd for problems with residuals with non-continuous first derivative?

Maximilian Hartig imilian.hartig at gmail.com
Fri Jul 7 05:10:37 CDT 2017


I have looked into several books for plasticity, but it cannot hurt to
check out another one. I will do so as soon as I can get a hold of it.
I do have a basic understanding on how to implement plasticity with the
return mapping algorithm. My main problem is that I am lost when trying to
implement it within Petsc. I just might have to create two separate snes
-solver contexts to run inside a single TS solver. In my understanding,
that is not how Petsc is designed to work though.
I cannot seem to find a clear formulation for dynamic plasticity either. I
looked into the Cristescu book "dynamic plasticity" but that was not very
helpful either. I have read through:
Rust, W. (2009). Nichtlineare Finite- Elemente-Berechnungen. Wiesbaden:
Springer Vieweg.
Kim, N.-H. (2015). Introduction to Nonlinear Finite Element Analysis. New
York, NY: Springer New York Heidelberg Dodrecht London.
http://doi.org/10.1007/978-1-4419-1746-1
Steinke, P. (2015). Finite-Elemente-Methode (5th ed.). Springer Vieweg.
and they all describe how to set up a stationary (or pseudo-timestepping)
solver for plasticity.
But firstly I'd like to avoid writing my own solver and secondly I need it
to be transient.

I have looked at the links you provided Luv, thanks. DAMASK is to complex a
subject for me to understand it quickly. I will need some time to
understand what it does and how to make use of it exactly.
Thanks,
Max

2017-07-05 20:49 GMT+02:00 Luv Sharma <luvsharma11 at gmail.com>:

> Hi ,
>
> I agree with Sanjay and you can still look at the links that I mentioned;
> to get an understanding of different plasticity formulations.
> Honestly, I am also lost in plasticity ;)
>
> The first link is an FFT based spectral solver implementation of
> plasticity.
> I have a PETSc implementation (in python) of the same but without
> plasticity (only hyper-elasticity). I hope to make it open source soon.
> May be that will be helpful for you as well!
>
> Best regards,
> Luv
>
> On 5 Jul 2017, at 19:08, Sanjay Govindjee <s_g at berkeley.edu> wrote:
>
> Let me suggest that you grab a hold of Simo and Hughes, Computational
> Inelasticity, Springer-Verlag (1998).  It explains a lot about how to set
> up this problem -- in particular Chapter 1 gives a comprehensive
> one-dimensional tutorial on everything you need to know.
>
>
> On 7/5/17 9:39 AM, Maximilian Hartig wrote:
>
> I do not clearly understand the discrimination between local and global
> plasticity. I do have areas where I expect the behaviour to be elastic and
> other areas where I expect elasto-plastic behaviour.
> Inertia effects are of importance and hence I need second order temporal
> derivatives of my displacements. The only way I have found to implement
> this in Petsc is to create a separate velocity field which I use to then
> compute ü.
> To account for plasticity, in my understanding I need to introduce at
> least one additional history variable. In my case this is the effective
> plastic strain e_p. I then solve the equation of motion
> (grad(sigma)-rho*ü+F=0) and the consistency condition (sigma_eq -
> sigma_yield = 0) at the same time. Or try to at least.
>
> Thanks,
> Max
>
> 2017-06-30 20:49 GMT+02:00 Luv Sharma <luvsharma11 at gmail.com>:
>
>> Hi Max,
>>
>> I do not understand the equations that you write very clearly.
>>
>> Are you looking to implement a “local” and “if” type of isotropic
>> hardening plasticity? If that is the case, then in my understanding you
>> need to solve only 1 field equation for the displacement components or for
>> the strain components. You can look at the following code:
>> https://github.com/tdegeus/GooseFFT/blob/master/small-strain
>> /laminate/elasto-plasticity.py
>>
>> If you are looking for a PETSc based implementation for plasticity
>> (isotropic/anisotropic) you can look at
>> https://damask.mpie.de/
>> I had presented a talk about the same at the PETSc User Meeting last year.
>>
>> As I understand it, additional field equations will only be necessary if
>> the plasticity or elasticity were “nonlocal”. You may want to look at:
>> On the role of moving elastic–plastic boundaries in strain gradient
>> plasticity, R H J Peerlings
>>
>> Best regards,
>> Luv
>>
>> On 30 Jun 2017, at 11:52, Maximilian Hartig <imilian.hartig at gmail.com>
>> wrote:
>>
>> Hi Luv,
>>
>> I’m modelling linear hardening(sigma_y = sigma_y0 +
>> K_iso*epsilon_plast_eqiv) with isotropic  plasticity only. So I should not
>> need to use an iterative method to find the point on the yield surface. I
>> have three fields and 7 unknowns in total:
>> Field 0: 3 displacement components
>> Field 1: 3 velocity components
>> Field 2: 1 equivalent plastic strain
>>
>> It is the solver for these three fields that is not converging. I am
>> using PetscFE. As residuals for the plastic case (sigma_vM > sigma_yield) I
>> have:
>>
>> Field 0 (displacement):
>> f0[i] = rho*u_t[u_Off[1]+i]
>> f1[i*dim+j] = sigma_tr[i*dim+j] - 2*mu*sqrt(3/2)*u_t[uOff[2]]*N[i*dim+j]
>>
>> where sigma_tr is the trial stress, mu is the shear modulus and N is the
>> unit deviator tensor normal to the yield surface.
>>
>> Field 1 (velocity):
>> f0[i] = u[uOff[1]+i]-u_t[i]
>> f1[i*dim+j] = 0
>>
>> Field 2 (effective plastic strain):
>> f0[0] = ||s_tr|| -2*mu*sqrt(3/2)*u_t[uOff[2]]-sqrt(2/3)*sigma_y
>> f1[i] = 0
>> where ||s_tr|| is the norm of the deviator stress tensor.
>>
>> Field 0 residual is essentially newton’s second law of motion and Field 2
>> residual should be the yield criterion. I might have just fundamentally
>> misunderstood the equations of plasticity but I cannot seem to find my
>> mistake.
>>
>> Thanks,
>> Max
>>
>>
>> On 30. Jun 2017, at 11:09, Luv Sharma <luvsharma11 at gmail.com> wrote:
>>
>> Hi Max,
>>
>> Is your field solver not converging or the material point solver ;)?
>>
>> Best regards,
>> Luv
>>
>> On 30 Jun 2017, at 10:45, Maximilian Hartig <imilian.hartig at gmail.com>
>> wrote:
>>
>> Hello,
>>
>> I’m trying to implement plasticity and have problems getting the Petsc
>> SNES to converge. To check if my residual formulation is correct I tried
>> running with -snes_fd for an easy example as the Petsc FAQ suggest. I
>> cannot seem to get the solver to converge at any cost.
>> I already tried to impose bounds on the solution and moved to
>> vinewtonrsls as a nonlinear solver. I checked and rechecked my residuals
>> but I do not find an error there. I now have the suspicion that the
>> -snes_fd option is not made for handling residuals who’s first derivatives
>> are not continuous (e.g. have an “if” condition in them for the plasticity/
>> flow-condition). Can you confirm my suspicion? And is there another way to
>> test my residual formulation separate from my hand-coded jacobian?
>>
>>
>> Thanks,
>> Max
>>
>>
>>
>>
>>
>
> --
> -------------------------------------------------------------------
> Sanjay Govindjee, PhD, PE
> Horace, Dorothy, and Katherine Johnson Professor in Engineering
>
> 779 Davis Hall
> University of California
> Berkeley, CA 94720-1710
>
> Voice:  +1 510 642 6060 <(510)%20642-6060>
> FAX:    +1 510 643 5264 <(510)%20643-5264>s_g at berkeley.eduhttp://faculty.ce.berkeley.edu/sanjay
> -------------------------------------------------------------------
>
> Books:
>
> Engineering Mechanics of Deformable
> Solids: A Presentation with Exerciseshttp://www.oup.com/us/catalog/general/subject/Physics/MaterialsScience/?view=usa&ci=9780199651641http://ukcatalogue.oup.com/product/9780199651641.dohttp://amzn.com/0199651647
>
> Engineering Mechanics 3 (Dynamics) 2nd Editionhttp://www.springer.com/978-3-642-53711-0http://amzn.com/3642537111
>
> Engineering Mechanics 3, Supplementary Problems: Dynamics http://www.amzn.com/B00SOXN8JU
>
> -----------------------------------------------
>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mcs.anl.gov/pipermail/petsc-users/attachments/20170707/a59b3d7a/attachment-0001.html>


More information about the petsc-users mailing list