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 <luvsharm...@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...@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 <luvsharm...@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.har...@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 <luvsharm...@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.har...@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@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 > > ----------------------------------------------- > > >