Timeline for Solving a Nonlinear Complementary Problem (plasticity)
Current License: CC BY-SA 4.0
15 events
| when toggle format | what | by | license | comment | |
|---|---|---|---|---|---|
| Nov 1, 2020 at 8:41 | vote | accept | anderstood | ||
| Nov 1, 2020 at 8:41 | history | bounty awarded | anderstood | ||
| Oct 30, 2020 at 4:57 | comment | added | xzczd♦ | @anderstood You need to increase points for plotting, try e.g. PlotPoints -> 1000 or MaxRecursion -> 15 :) | |
| Oct 29, 2020 at 15:02 | comment | added | anderstood | @AlexTrounev This is pretty classic, plasticity requires a yield criterion $f(\sigma) \leq 0$, the positivity of the plastic flow multiplier (which must be equivalent to the maximum dissipation principle), and a so-called orthogonality condition: no plastic flow if $f<0$, plastic flow only if $f=0$. See e.g. the third part (page 21) of mms2.ensmp.fr/msi_paris/archives-transparents/…. | |
| Oct 29, 2020 at 14:54 | comment | added | anderstood | @xzczd Try ParametricPlot[{epsisol[t], sigma[t]}, {t, 0, 1000}, AspectRatio -> 1/2] (after integration on {t, 0, 1000} of course). | |
| Oct 29, 2020 at 2:49 | comment | added | xzczd♦ | @anderstood Er… what do you mean by "it drifts a little bit"? | |
| Oct 28, 2020 at 15:10 | comment | added | Alex Trounev | @anderstood I agree that in this particular realization the model with WhenEvent[] looks better. Also your model of plasticity is not common. Where did you take it? | |
| Oct 28, 2020 at 13:45 | comment | added | anderstood | @AlexTrounev Actually I did manage to make it work with regularization by reformulating the problem with sign (sign[x_] = 2/Pi*ArcTan[10000*x]; epsipsol = NDSolveValue[{E1*epsip[t] - sigma[t] == -sigmay*sign[epsip'[t]], epsip[0] == 0}, epsip, {t, 0, 100}]). But I disagree that it is supposed to be better (see my previous comment). It's supposed to be simpler, for sure, but a high cost! | |
| Oct 28, 2020 at 11:03 | comment | added | Alex Trounev | @xzczd Now it looks good (+1). The model with regularization supposed to be better but we are not able to compute this problem using it. | |
| Oct 28, 2020 at 9:23 | comment | added | anderstood | Your edited solution is quite what I had in mind and is quite robust. It drifts a little bit but that is ok. A word on your previous "continuous" approach: it is often referred to as "regularizing" but it introduces a somehow arbitrary regularizing parameter (k = 10^3 if I remember well), so possibly a new scale. In general this simplification comes with weaknesses, such as the one mentioned by Alex Trounev. Contrary to your solution with WhenEvent, it was not able to handle non-differentiable sigma functions. | |
| Oct 28, 2020 at 3:23 | comment | added | xzczd♦ | @AlexTrounev I find another method that gives the correct solution, have a look. | |
| Oct 28, 2020 at 3:22 | history | edited | xzczd♦ | CC BY-SA 4.0 | added 130 characters in body |
| Oct 27, 2020 at 15:02 | comment | added | xzczd♦ | @Alex Seems that the DAE solver has turned to i.c. epsi[0] == -0.038287, this might be the reason, so this method isn't that good… | |
| Oct 27, 2020 at 13:31 | comment | added | Alex Trounev | It looks like your solution not limited by $\pm 0.5$ as solution by Steffen Jaeschke. | |
| Oct 27, 2020 at 5:13 | history | answered | xzczd♦ | CC BY-SA 4.0 |