<div dir="ltr"><div>We do have one second order timestepper (Newmark) put in by Lisandro<br></div><div><br></div><div>Great, I was not aware of that. I'll try to make use of it as soon as I resolve this issue.<br></div><div><br></div><div>I have a suspicion that my problem is the fact that I'm updating my plastic strain during the nonlinear solver iterations for the stress. I tried to create an auxiliary field for the plastic strain and then update it at the end of each timestep with PEtscDSSetUpdate. But the update function does not seem to get called. Do I have to update the auxiliary field in a TSMonitor context? I couldn't find any examples of how to update an Auxiliary field.<br><br></div><div>Thanks,<br></div><div>Max<br></div><div><br></div><span class="gmail-im"></span></div><div class="gmail_extra"><br><div class="gmail_quote">2017-07-05 18:46 GMT+02:00 Matthew Knepley <span dir="ltr"><<a href="mailto:knepley@gmail.com" target="_blank">knepley@gmail.com</a>></span>:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div class="gmail_extra"><div class="gmail_quote"><span class="">On Wed, Jul 5, 2017 at 9:39 AM, Maximilian Hartig <span dir="ltr"><<a href="mailto:imilian.hartig@gmail.com" target="_blank">imilian.hartig@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div><div><div>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.<br></div>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 ü.<br></div></div></div></blockquote><div><br></div></span><div>We do have one second order timestepper (Newmark) put in by Lisandro:</div><div><br></div><div> <a href="http://www.mcs.anl.gov/petsc/petsc-current/docs/manualpages/TS/TSALPHA2.html" target="_blank">http://www.mcs.anl.gov/<wbr>petsc/petsc-current/docs/<wbr>manualpages/TS/TSALPHA2.html</a></div><span class=""><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div><div></div>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.</div></div></blockquote><div><br></div></span><div>Did you look at the DAMASK formulation that Luv suggested?</div><div><br></div><div> Thanks,</div><div><br></div><div> Matt</div><div><div class="h5"><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div>Thanks,<br></div><div>Max<br></div></div><div class="m_3988151222093129773gmail-HOEnZb"><div class="m_3988151222093129773gmail-h5"><div class="gmail_extra"><br><div class="gmail_quote">2017-06-30 20:49 GMT+02:00 Luv Sharma <span dir="ltr"><<a href="mailto:luvsharma11@gmail.com" target="_blank">luvsharma11@gmail.com</a>></span>:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div style="word-wrap:break-word">Hi Max,<div><br></div><div>I do not understand the equations that you write very clearly. </div><div><br></div><div>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:</div><div><a href="https://github.com/tdegeus/GooseFFT/blob/master/small-strain/laminate/elasto-plasticity.py" target="_blank">https://github.com/tdegeus/Goo<wbr>seFFT/blob/master/small-strain<wbr>/laminate/elasto-plasticity.py</a></div><div><br></div><div>If you are looking for a PETSc based implementation for plasticity (isotropic/anisotropic) you can look at </div><div><a href="https://damask.mpie.de/" target="_blank">https://damask.mpie.de/</a></div><div>I had presented a talk about the same at the PETSc User Meeting last year.</div><div><br></div><div>As I understand it, additional field equations will only be necessary if the plasticity or elasticity were “nonlocal”. You may want to look at:</div><div>On the role of moving elastic–plastic boundaries in strain gradient plasticity, R H J Peerlings</div><div><br></div><div>Best regards,</div><div>Luv</div><div><div class="m_3988151222093129773gmail-m_1543821297218254185h5"><div><br><div><blockquote type="cite"><div>On 30 Jun 2017, at 11:52, Maximilian Hartig <<a href="mailto:imilian.hartig@gmail.com" target="_blank">imilian.hartig@gmail.com</a>> wrote:</div><br class="m_3988151222093129773gmail-m_1543821297218254185m_6974763644534671648Apple-interchange-newline"><div><div>Hi Luv,<br><br>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:<br>Field 0: <span class="m_3988151222093129773gmail-m_1543821297218254185m_6974763644534671648Apple-tab-span" style="white-space:pre-wrap"> </span>3 displacement components<br>Field 1: <span class="m_3988151222093129773gmail-m_1543821297218254185m_6974763644534671648Apple-tab-span" style="white-space:pre-wrap"> </span>3 velocity components <br>Field 2: <span class="m_3988151222093129773gmail-m_1543821297218254185m_6974763644534671648Apple-tab-span" style="white-space:pre-wrap"> </span>1 equivalent plastic strain<br><br>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:<br><br>Field 0 (displacement):<br>f0[i] = rho*u_t[u_Off[1]+i]<br>f1[i*dim+j] = sigma_tr[i*dim+j] - 2*mu*sqrt(3/2)*u_t[uOff[2]]*N[<wbr>i*dim+j]<br><br>where sigma_tr is the trial stress, mu is the shear modulus and N is the unit deviator tensor normal to the yield surface.<br><br>Field 1 (velocity):<br>f0[i] = u[uOff[1]+i]-u_t[i]<br>f1[i*dim+j] = 0<br><br>Field 2 (effective plastic strain):<br>f0[0] = ||s_tr|| -2*mu*sqrt(3/2)*u_t[uOff[2]]-s<wbr>qrt(2/3)*sigma_y<br>f1[i] = 0<br>where ||s_tr|| is the norm of the deviator stress tensor.<br><br>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.<br><br>Thanks,<br>Max<br><br><br><blockquote type="cite">On 30. Jun 2017, at 11:09, Luv Sharma <<a href="mailto:luvsharma11@gmail.com" target="_blank">luvsharma11@gmail.com</a>> wrote:<br><br>Hi Max,<br><br>Is your field solver not converging or the material point solver ;)? <br><br>Best regards,<br>Luv<br><blockquote type="cite">On 30 Jun 2017, at 10:45, Maximilian Hartig <<a href="mailto:imilian.hartig@gmail.com" target="_blank">imilian.hartig@gmail.com</a>> wrote:<br><br>Hello,<br><br>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.<br>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?<br><br><br>Thanks,<br>Max<br></blockquote><br></blockquote><br></div></div></blockquote></div><br></div></div></div></div></blockquote></div><br></div>
</div></div></blockquote></div></div></div><br><br clear="all"><span class=""><div><br></div>-- <br><div class="m_3988151222093129773gmail_signature"><div dir="ltr"><div>What most experimenters take for granted before they begin their experiments is infinitely more interesting than any results to which their experiments lead.<br>-- Norbert Wiener</div><div><br></div><div><a href="http://www.caam.rice.edu/~mk51/" target="_blank">http://www.caam.rice.edu/~<wbr>mk51/</a><br></div></div></div>
</span></div></div>
</blockquote></div><br></div>