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