On Wed, Jul 5, 2017 at 9:39 AM, Maximilian Hartig <imilian.har...@gmail.com> 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 ü. > We do have one second order timestepper (Newmark) put in by Lisandro: http://www.mcs.anl.gov/petsc/petsc-current/docs/manualpages/TS/TSALPHA2.html > 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. > Did you look at the DAMASK formulation that Luv suggested? Thanks, Matt > 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 >> >> >> >> >> > -- What most experimenters take for granted before they begin their experiments is infinitely more interesting than any results to which their experiments lead. -- Norbert Wiener http://www.caam.rice.edu/~mk51/