<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">On Wed, Sep 20, 2017 at 6:19 PM, Sanjay Govindjee <span dir="ltr"><<a href="mailto:s_g@berkeley.edu" target="_blank">s_g@berkeley.edu</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
  
    
  
  <div text="#000000" bgcolor="#FFFFFF">
    Matt, <br>
      There is such a thing as non-local plasticity, one where there is
    a separate field equation to<br>
    solve for the plasticity (beyond the balance of momentum).<br></div></blockquote><div><br></div><div>I had not seen that. We use non-locality in electrostatics to account for solvent screening which</div><div>cannot be modeling well in the continuum.</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"><div text="#000000" bgcolor="#FFFFFF">
    -sanjay<br>
    <br>
    <div class="m_7380000087972790590moz-cite-prefix">On 9/20/17 4:51 PM, Matthew Knepley
      wrote:<br>
    </div>
    <blockquote type="cite">
      <div dir="ltr">
        <div class="gmail_extra">
          <div class="gmail_quote">On Wed, Sep 20, 2017 at 3:46 PM,
            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">
              <div style="word-wrap:break-word"><br>
                <div>
                  <blockquote type="cite">
                    <div>On 20. Sep 2017, at 19:05, Matthew Knepley <<a href="mailto:knepley@gmail.com" target="_blank">knepley@gmail.com</a>>
                      wrote:</div>
                    <br class="m_7380000087972790590m_-4834572762739778173Apple-interchange-newline">
                    <div>
                      <div dir="ltr" style="font-family:Helvetica;font-size:12px;font-style:normal;font-variant-caps:normal;font-weight:normal;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px">
                        <div class="gmail_extra">
                          <div class="gmail_quote">On Wed, Sep 20, 2017
                            at 12:57 PM, Maximilian Hartig<span class="m_7380000087972790590m_-4834572762739778173Apple-converted-space"> </span><span dir="ltr"><<a href="mailto:imilian.hartig@gmail.com" target="_blank">imilian.hartig@gmail.c<wbr>om</a>></span><span class="m_7380000087972790590m_-4834572762739778173Apple-converted-space"> </span>wrote:<br>
                            <blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-style:solid;border-left-color:rgb(204,204,204);padding-left:1ex">
                              <div style="word-wrap:break-word">
                                <div>
                                  <blockquote type="cite">
                                    <div>On 20. Sep 2017, at 18:17,
                                      Matthew Knepley <<a href="mailto:knepley@gmail.com" target="_blank">knepley@gmail.com</a>>
                                      wrote:</div>
                                    <br class="m_7380000087972790590m_-4834572762739778173m_820538064167687730Apple-interchange-newline">
                                    <div>
                                      <div dir="ltr" style="font-family:Helvetica;font-size:12px;font-style:normal;font-variant-caps:normal;font-weight:normal;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px">
                                        <div class="gmail_extra">
                                          <div class="gmail_quote">On
                                            Wed, Sep 20, 2017 at 11:46
                                            AM, Maximilian Hartig<span class="m_7380000087972790590m_-4834572762739778173m_820538064167687730Apple-converted-space"> </span><span dir="ltr"><<a href="mailto:imilian.hartig@gmail.com" target="_blank">imilian.hartig@gmail.c<wbr>om</a>></span><span class="m_7380000087972790590m_-4834572762739778173m_820538064167687730Apple-converted-space"> </span>wrote:<br>
                                            <blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-style:solid;border-left-color:rgb(204,204,204);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> <span class="m_7380000087972790590m_-4834572762739778173Apple-converted-space"> </span>-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>
                                        </div>
                                      </div>
                                    </div>
                                  </blockquote>
                                  <div><br>
                                  </div>
                                  This is what I’m mainly concerned
                                  with.<br>
                                  <blockquote type="cite">
                                    <div>
                                      <div dir="ltr" style="font-family:Helvetica;font-size:12px;font-style:normal;font-variant-caps:normal;font-weight:normal;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px">
                                        <div class="gmail_extra">
                                          <div class="gmail_quote">
                                            <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>
                                        </div>
                                      </div>
                                    </div>
                                  </blockquote>
                                  <br>
                                  <div>I am trying to find a formulation
                                    that works and I think there is a
                                    core concept I am just not
                                    “getting”. </div>
                                  <div>I want to solve for the
                                    displacements. </div>
                                  <div>This works fine in an elastic
                                    case. When plasticity is involved, I
                                    need to determine the actual stress
                                    for my residual evaluation and I
                                    have not found a way to do that.</div>
                                  <div>All formulations for stress I
                                    found in literature use strain
                                    increments so I tried to just solve
                                    for increments each timestep and
                                    then add them together in
                                    tspoststep. But I still need to
                                    somehow evaluate the stress for my
                                    displacement increment residuals. So
                                    currently, I have auxiliary fields
                                    with the stress and the plastic
                                    strain.</div>
                                </div>
                              </div>
                            </blockquote>
                            <div><br>
                            </div>
                            <div>First question: Don't you get stress by
                              just applying a local operator, rather
                              than a solve?</div>
                          </div>
                        </div>
                      </div>
                    </div>
                  </blockquote>
                  <div>That depends on the type of plasticity. </div>
                </div>
              </div>
            </blockquote>
            <div><br>
            </div>
            <div>What type of plasticity is not local?</div>
            <div> </div>
            <blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
              <div style="word-wrap:break-word">
                <div>
                  <div>For a linear hardening formulation it is correct
                    that I could just apply a local operator. I’d be
                    happy with that for now. But I’d still need to save
                    stress state and plastic strain to determine whether
                    or not I’m dealing with a plasticity. I don’t know
                    how to do that inside the residual evaluation.</div>
                </div>
              </div>
            </blockquote>
            <div><br>
            </div>
            <div>I do not know what you mean by this, meaning why you
              can't just save these as auxiliary fields. Also, it would
              seem to be enough to have the old displacement and the
              plastic strain.</div>
            <div> </div>
            <blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
              <div style="word-wrap:break-word">
                <div>
                  <div> Plus DMProjectField seems to have problems
                    evaluating the gradient when boundary conditions are
                    imposed.</div>
                </div>
              </div>
            </blockquote>
            <div><br>
            </div>
            <div>There are several examples where we do exactly this.
              Can you show me what you mean by this?</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">
              <div style="word-wrap:break-word">
                <div>
                  <div>Thanks,</div>
                  <div>Max</div>
                  <blockquote type="cite">
                    <div>
                      <div dir="ltr" style="font-family:Helvetica;font-size:12px;font-style:normal;font-variant-caps:normal;font-weight:normal;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px">
                        <div class="gmail_extra">
                          <div class="gmail_quote">
                            <div><br>
                            </div>
                            <div>  Thanks,</div>
                            <div><br>
                            </div>
                            <div>     Matt</div>
                            <div> </div>
                            <blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-style:solid;border-left-color:rgb(204,204,204);padding-left:1ex">
                              <div style="word-wrap:break-word">
                                <div>
                                  <div>I evaluate the current trial
                                    stress by adding a stress increment
                                    assuming elastic behaviour. If the
                                    trial stress lies beyond the yield
                                    stress I calculate the corrected
                                    stress to evaluate my residual for
                                    the displacements. But now I somehow
                                    need to update my plastic strain and
                                    the stress in the auxiliary fields.
                                    So in tspoststep I created another
                                    SNES to now calculate the stress and
                                    plastic strain while the
                                    displacement is the auxiliary
                                    field. </div>
                                  <div><br>
                                  </div>
                                  I’m sure there’s an elegant solution
                                  on how to update internal variables
                                  but I have not found it.</div>
                                <div><br>
                                </div>
                                <div>Thanks,</div>
                                <div>Max<br>
                                  <blockquote type="cite">
                                    <div>
                                      <div dir="ltr" style="font-family:Helvetica;font-size:12px;font-style:normal;font-variant-caps:normal;font-weight:normal;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px">
                                        <div class="gmail_extra">
                                          <div class="gmail_quote">
                                            <div><br>
                                            </div>
                                            <div> <span class="m_7380000087972790590m_-4834572762739778173m_820538064167687730Apple-converted-space"> </span>Thanks,</div>
                                            <div><br>
                                            </div>
                                            <div>     Matt</div>
                                            <div> </div>
                                            <blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-style:solid;border-left-color:rgb(204,204,204);padding-left:1ex">Thanks,<br>
                                              Max</blockquote>
                                          </div>
                                          <br>
                                          <br clear="all">
                                          <span class="m_7380000087972790590HOEnZb"><font color="#888888"><span class="m_7380000087972790590m_-4834572762739778173HOEnZb"><font color="#888888">
                                                  <div><br>
                                                  </div>
                                                  --<span class="m_7380000087972790590m_-4834572762739778173m_820538064167687730Apple-converted-space"> </span><br>
                                                  <div class="m_7380000087972790590m_-4834572762739778173m_820538064167687730gmail_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/%7Emk51/" target="_blank">http://www.caam.rice.edu/~mk51<wbr>/</a></div>
                                                    </div>
                                                  </div>
                                                </font></span></font></span></div>
                                      </div>
                                    </div>
                                  </blockquote>
                                </div>
                                <span class="m_7380000087972790590HOEnZb"><font color="#888888"><br>
                                  </font></span></div>
                            </blockquote>
                          </div>
                          <span class="m_7380000087972790590HOEnZb"><font color="#888888"><br>
                              <br clear="all">
                              <div><br>
                              </div>
                              --<span class="m_7380000087972790590m_-4834572762739778173Apple-converted-space"> </span><br>
                              <div class="m_7380000087972790590m_-4834572762739778173gmail_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/%7Emk51/" target="_blank">http://www.caam.rice.edu/~mk51<wbr>/</a></div>
                                </div>
                              </div>
                            </font></span></div>
                      </div>
                    </div>
                  </blockquote>
                </div>
                <br>
              </div>
            </blockquote>
          </div>
          <br>
          <br clear="all">
          <div><br>
          </div>
          -- <br>
          <div class="m_7380000087972790590gmail_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/%7Emk51/" target="_blank">http://www.caam.rice.edu/~<wbr>mk51/</a><br>
              </div>
            </div>
          </div>
        </div>
      </div>
    </blockquote>
    <br>
    <pre class="m_7380000087972790590moz-signature" cols="72">-- 
------------------------------<wbr>------------------------------<wbr>-------
Sanjay Govindjee, PhD, PE
Horace, Dorothy, and Katherine Johnson Professor in Engineering

779 Davis Hall
University of California
Berkeley, CA 94720-1710

Voice:  <a href="tel:(510)%20642-6060" value="+15106426060" target="_blank">+1 510 642 6060</a>
FAX:    <a href="tel:(510)%20643-5264" value="+15106435264" target="_blank">+1 510 643 5264</a>
<a class="m_7380000087972790590moz-txt-link-abbreviated" href="mailto:s_g@berkeley.edu" target="_blank">s_g@berkeley.edu</a>
<a class="m_7380000087972790590moz-txt-link-freetext" href="http://faculty.ce.berkeley.edu/sanjay" target="_blank">http://faculty.ce.berkeley.<wbr>edu/sanjay</a>
------------------------------<wbr>------------------------------<wbr>-------

Books:  

Engineering Mechanics of Deformable 
Solids: A Presentation with Exercises
<a class="m_7380000087972790590moz-txt-link-freetext" href="http://www.oup.com/us/catalog/general/subject/Physics/MaterialsScience/?view=usa&ci=9780199651641" target="_blank">http://www.oup.com/us/catalog/<wbr>general/subject/Physics/<wbr>MaterialsScience/?view=usa&ci=<wbr>9780199651641</a>
<a class="m_7380000087972790590moz-txt-link-freetext" href="http://ukcatalogue.oup.com/product/9780199651641.do" target="_blank">http://ukcatalogue.oup.com/<wbr>product/9780199651641.do</a>
<a class="m_7380000087972790590moz-txt-link-freetext" href="http://amzn.com/0199651647" target="_blank">http://amzn.com/0199651647</a>

Engineering Mechanics 3 (Dynamics) 2nd Edition
<a class="m_7380000087972790590moz-txt-link-freetext" href="http://www.springer.com/978-3-642-53711-0" target="_blank">http://www.springer.com/978-3-<wbr>642-53711-0</a>
<a class="m_7380000087972790590moz-txt-link-freetext" href="http://amzn.com/3642537111" target="_blank">http://amzn.com/3642537111</a>

Engineering Mechanics 3, Supplementary Problems: Dynamics 
<a class="m_7380000087972790590moz-txt-link-freetext" href="http://www.amzn.com/B00SOXN8JU" target="_blank">http://www.amzn.com/B00SOXN8JU</a>

------------------------------<wbr>-----------------
</pre>
  </div>

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