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 <[email protected] <mailto:[email protected]>>:

    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
    
<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
    <[email protected] <mailto:[email protected]>> 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 <[email protected]
    <mailto:[email protected]>> 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
    <[email protected] <mailto:[email protected]>> 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
FAX:    +1 510 643 5264
[email protected]
http://faculty.ce.berkeley.edu/sanjay
-------------------------------------------------------------------

Books:

Engineering Mechanics of Deformable
Solids: A Presentation with Exercises
http://www.oup.com/us/catalog/general/subject/Physics/MaterialsScience/?view=usa&ci=9780199651641
http://ukcatalogue.oup.com/product/9780199651641.do
http://amzn.com/0199651647

Engineering Mechanics 3 (Dynamics) 2nd Edition
http://www.springer.com/978-3-642-53711-0
http://amzn.com/3642537111

Engineering Mechanics 3, Supplementary Problems: Dynamics
http://www.amzn.com/B00SOXN8JU

-----------------------------------------------

Reply via email to