<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">On Wed, Sep 20, 2017 at 11:46 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:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Hello,<br>
<br>
I’m trying to implement plasticity using petscFE but I am quite stuck since a while. Here’s what I’m trying to do:<br>
<br>
I have a TS which solves the following equation:<br>
gradient(stress) +Forces = density*acceleration<br>
where at the moment stress is a linear function of the strain and hence the gradient of the displacement. This works fine. Now I want to compare the stress to a reference value and if it lies above this yield stress, I have to reevaluate the stress at the respective location. Then I need to update the plastic strain / yield stress  at this location.<br>
I tried doing that first by solving three fields at the same time: displacements, stresses and yield stress. This failed.<br>
Then, I tried solving only for displacement increments, storing the displacements, stresses and yield stress from the past time step in an auxiliary field. The auxiliary fields are updated after each time step with a second SNES, using the displacement increments from the current, converged time step. This also failed.<br>
In both cases the code had problems converging and when it did, I ended up with negative plastic strain. This is not possible and I don’t know how it happens because I explicitly only increment the plastic strain when the increment is positive.<br>
<br>
I am sure there is an easy solution to how I can update the internal variables and determine the correct stress for the residual but I just cannot figure it out. I’d be thankful for any hints.<br></blockquote><div><br></div><div>It looks like there are two problems above:</div><div><br></div><div>1) Convergence</div><div><br></div><div>For any convergence question, we at minimum need to see the output of</div><div><br></div><div>  -snes_view -snes_converged_reason -snes_monitor -ksp_monitor_true_residual -snes_linesearch_monitor</div><div><br></div><div>However, this does not seem to be the main issue.</div><div><br></div><div>2) Negative plastic strain</div><div><br></div><div>If the system really converged (I cannot tell without other information), then the system formulation is wrong. Of course, its</div><div>really easy to check by just plugging your solution into the residual function too. I do not understand your explanation above</div><div>completely however. Do you solve for the plastic strain or the increment?</div><div><br></div><div>  Thanks,</div><div><br></div><div>     Matt</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Thanks,<br>
Max</blockquote></div><br><br clear="all"><div><br></div>-- <br><div class="gmail_signature" data-smartmail="gmail_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/~mk51/</a><br></div></div></div>
</div></div>