<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
</head>
<body 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>
-sanjay<br>
<br>
<div class="moz-cite-prefix">On 9/20/17 4:51 PM, Matthew Knepley
wrote:<br>
</div>
<blockquote type="cite"
cite="mid:CAMYG4G=ti8TWxuMVi9Pik48ozGwnBhFxaDYi7UdzTFi8J7BtCg@mail.gmail.com">
<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"
moz-do-not-send="true">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"
moz-do-not-send="true">knepley@gmail.com</a>>
wrote:</div>
<br
class="m_-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_-4834572762739778173Apple-converted-space"> </span><span
dir="ltr"><<a
href="mailto:imilian.hartig@gmail.com"
target="_blank" moz-do-not-send="true">imilian.hartig@gmail.<wbr>com</a>></span><span
class="m_-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"
moz-do-not-send="true">knepley@gmail.com</a>>
wrote:</div>
<br
class="m_-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_-4834572762739778173m_820538064167687730Apple-converted-space"> </span><span
dir="ltr"><<a
href="mailto:imilian.hartig@gmail.com"
target="_blank"
moz-do-not-send="true">imilian.hartig@gmail.c<wbr>om</a>></span><span
class="m_-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_-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_-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="HOEnZb"><font
color="#888888"><span
class="m_-4834572762739778173HOEnZb"><font
color="#888888">
<div><br>
</div>
--<span
class="m_-4834572762739778173m_820538064167687730Apple-converted-space"> </span><br>
<div
class="m_-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" moz-do-not-send="true">http://www.caam.rice.edu/~mk51<wbr>/</a></div>
</div>
</div>
</font></span></font></span></div>
</div>
</div>
</blockquote>
</div>
<span class="HOEnZb"><font
color="#888888"><br>
</font></span></div>
</blockquote>
</div>
<span class="HOEnZb"><font color="#888888"><br>
<br clear="all">
<div><br>
</div>
--<span
class="m_-4834572762739778173Apple-converted-space"> </span><br>
<div
class="m_-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"
moz-do-not-send="true">http://www.caam.rice.edu/~<wbr>mk51/</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="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/%7Emk51/"
target="_blank" moz-do-not-send="true">http://www.caam.rice.edu/~mk51/</a><br>
</div>
</div>
</div>
</div>
</div>
</blockquote>
<br>
<pre class="moz-signature" cols="72">--
-------------------------------------------------------------------
Sanjay Govindjee, PhD, PE
Horace, Dorothy, and Katherine Johnson Professor in Engineering
779 Davis Hall
University of California
Berkeley, CA 94720-1710
Voice: +1 510 642 6060
FAX: +1 510 643 5264
<a class="moz-txt-link-abbreviated" href="mailto:s_g@berkeley.edu">s_g@berkeley.edu</a>
<a class="moz-txt-link-freetext" href="http://faculty.ce.berkeley.edu/sanjay">http://faculty.ce.berkeley.edu/sanjay</a>
-------------------------------------------------------------------
Books:
Engineering Mechanics of Deformable
Solids: A Presentation with Exercises
<a class="moz-txt-link-freetext" href="http://www.oup.com/us/catalog/general/subject/Physics/MaterialsScience/?view=usa&ci=9780199651641">http://www.oup.com/us/catalog/general/subject/Physics/MaterialsScience/?view=usa&ci=9780199651641</a>
<a class="moz-txt-link-freetext" href="http://ukcatalogue.oup.com/product/9780199651641.do">http://ukcatalogue.oup.com/product/9780199651641.do</a>
<a class="moz-txt-link-freetext" href="http://amzn.com/0199651647">http://amzn.com/0199651647</a>
Engineering Mechanics 3 (Dynamics) 2nd Edition
<a class="moz-txt-link-freetext" href="http://www.springer.com/978-3-642-53711-0">http://www.springer.com/978-3-642-53711-0</a>
<a class="moz-txt-link-freetext" href="http://amzn.com/3642537111">http://amzn.com/3642537111</a>
Engineering Mechanics 3, Supplementary Problems: Dynamics
<a class="moz-txt-link-freetext" href="http://www.amzn.com/B00SOXN8JU">http://www.amzn.com/B00SOXN8JU</a>
-----------------------------------------------
</pre>
</body>
</html>