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