iMechanica - Comments for "ABAQUS - Does Newton's method affect the convergence rate of higher order incremental scheme such as RK4 implemented via UMAT?"
https://imechanica.org/node/12878
Comments for "ABAQUS - Does Newton's method affect the convergence rate of higher order incremental scheme such as RK4 implemented via UMAT?"enAlso note that no
https://imechanica.org/comment/19483#comment-19483
<a id="comment-19483"></a>
<p><em>In reply to <a href="https://imechanica.org/node/12878">ABAQUS - Does Newton's method affect the convergence rate of higher order incremental scheme such as RK4 implemented via UMAT?</a></em></p>
<div class="field field-name-comment-body field-type-text-long field-label-hidden"><div class="field-items"><div class="field-item even"><p>
Also note that no commercial code will disclose its algorithmic implementation. At most they just mention the algorithm, but not how it is implemented (unless it is open-source) :)
</p>
<p>
Kumar
</p>
<p>
--
</p>
<p>
The world started with 0, is progressing with 0, but doesn't want 0.
</p>
</div></div></div><ul class="links inline"><li class="comment_forbidden first last"><span><a href="/user/login?destination=node/12878%23comment-form">Log in</a> or <a href="/user/register?destination=node/12878%23comment-form">register</a> to post comments</span></li>
</ul>Mon, 13 Aug 2012 15:15:18 +0000Akumarcomment 19483 at https://imechanica.orgFirstly,the quadratc
https://imechanica.org/comment/19481#comment-19481
<a id="comment-19481"></a>
<p><em>In reply to <a href="https://imechanica.org/node/12878">ABAQUS - Does Newton's method affect the convergence rate of higher order incremental scheme such as RK4 implemented via UMAT?</a></em></p>
<div class="field field-name-comment-body field-type-text-long field-label-hidden"><div class="field-items"><div class="field-item even"><p>
Firstly,the quadratc convergence of Newton's method is valid if following conditions are satisfied:
</p>
<ol><li>xn isclose to the root of f(x) =0</li>
<li>f'(x) != 0</li>
<li>f''(x) is finite.
</li>
</ol><p>
This implies quadratic convergence is the best possible convergence rate (if newton's method converges to a solution).
</p>
<p>
Now in abaqus, force convergence (tolerance = 5E-3) is looked at first<br />
before displacement (0.01). If you look at the criteria for force<br />
residual and time-average force, it's quite elaborate, whereas<br />
displacement equation is quite simple. Now, in your force controlled case, the approximations are made at both levels (force as well as displacements). With bigger time-step, the guess of displacement increment (hence, strain increments) are farther than the actual solution. This means,you'll iterate relatively more (and will have more error in the obtained solution).
</p>
<p>
In my experience, Abaqus utilizes Newtons method not to obtain the solution, but to obtain initial guess for displacement increment.That's why in case of displacement controlled run, there is minimal guess in the increment. Whereas in force controlled the obtained force from stress tensor is compared with the actual force, and the error is residual. Newton's method is now used to get the new displacement, and this process continues until it convergence is achieved.
</p>
<p>
Abaqus has very elaborate iteration criteria: e.g. 3 iterations after which divergence check is made (if the current residual increases relative to max of previous two, time increment is reduced by factor 2); 8 iterations after which logarithmic chekc (tolerance 0.02) is used; if more than 10 iterations are taken time increment is automatically reduced by a factor 0.75, and so on. <em>Therefore, your convergence rate is highly dependent on all these</em> (along with the shape of force displacement).
</p>
<p>
What I can suggest is to study the effect of tolerances (specially force and displacement).
</p>
<p>
Kumar
</p>
<p>
--
</p>
<p>
The world started with 0, is progressing with 0, but doesn't want 0.
</p>
</div></div></div><ul class="links inline"><li class="comment_forbidden first last"><span><a href="/user/login?destination=node/12878%23comment-form">Log in</a> or <a href="/user/register?destination=node/12878%23comment-form">register</a> to post comments</span></li>
</ul>Mon, 13 Aug 2012 14:33:04 +0000Akumarcomment 19481 at https://imechanica.orgNewton's method affects precision only
https://imechanica.org/comment/19453#comment-19453
<a id="comment-19453"></a>
<p><em>In reply to <a href="https://imechanica.org/node/12878">ABAQUS - Does Newton's method affect the convergence rate of higher order incremental scheme such as RK4 implemented via UMAT?</a></em></p>
<div class="field field-name-comment-body field-type-text-long field-label-hidden"><div class="field-items"><div class="field-item even"><p>
Dear Akumar,
</p>
<p>
Thank you for sharing your knowledge with me. It is extremely appreciated. You are perfectly correct about the convergence levels. Your example that illustrates that concept is very straightforward.
</p>
<p>
On the application to ABAQUS, I think you also perfectly understand my problem. However, I believe that I must disagree on certain aspects.
</p>
<p>
1) As you mentionned, in the case of force controlled, my UMAT calculates a O(4) stress a using RK4 method. Then, ABAQUS will use it to solve, via a Newton's method, for the displacement. The issue lies in your conclusion here : "<span>So, even though you had very good accuracy in stress calculations, the displacements are still governed by newtons method, and therefore you see quadratic convergence only".</span>
</p>
<p>
Newton's method, which is an iterative method, converges towards the solution until a "stop" criteria is attained (e.g. 1E-12). The notion of convergence rate for the Newton's method is based on the error of the current step compared to error to the previous step. In other words, Newton's method converges towards that "stop" criteria with order 2. Hence, only the precision is affected (i.e. the stop criteria). In the case of the Runge-Kutta 4 method, the convergence rate with respect to the size of the time-step is considered. More specifically, RK4 converges towards the solution with respect to the time-step with a 4th order convergence.
</p>
<p>
The meaning of that is that Newton's method should only affect the precision of the results (through the stop criteria) and NOT the convergence rate of the solution with respect to the size of the time-step.
</p>
<p>
</p>
<p>
2) In your side note, you mentionned: <em><span>there are numerical schemes running inside the solver.</span></em>
</p>
<p>
Do you have any idea of what these schemes are? In my analysis, when displacements are applied, all my tests resulted in a 4th order convergence. However, when stresses are applied, I get convergence rates that range from [2, 4] (depending on how I define my material), which is very strange.
</p>
<p>
</p>
<p>
My take on this problem is that I am pretty sure the issue is ABAQUS (probably not Newton either). As you mentionned, there are some underlying computations that I am not aware of that complicates the case where stresses are applied.
</p>
<p>
Regards,
</p>
<p>
- Jack
</p>
<p>
</p>
</div></div></div><ul class="links inline"><li class="comment_forbidden first last"><span><a href="/user/login?destination=node/12878%23comment-form">Log in</a> or <a href="/user/register?destination=node/12878%23comment-form">register</a> to post comments</span></li>
</ul>Fri, 10 Aug 2012 05:19:17 +0000jack_lukcomment 19453 at https://imechanica.orgNumerical method accuracy depends on underlying algorithms
https://imechanica.org/comment/19444#comment-19444
<a id="comment-19444"></a>
<p><em>In reply to <a href="https://imechanica.org/node/12878">ABAQUS - Does Newton's method affect the convergence rate of higher order incremental scheme such as RK4 implemented via UMAT?</a></em></p>
<div class="field field-name-comment-body field-type-text-long field-label-hidden"><div class="field-items"><div class="field-item even"><p>v\:* {behavior:url(#default#VML);}<br />
o\:* {behavior:url(#default#VML);}<br />
w\:* {behavior:url(#default#VML);}<br />
.shape {behavior:url(#default#VML);}</p>
<p>Normal<br />
0</p>
<p>false<br />
false<br />
false</p>
<p>EN-US<br />
X-NONE<br />
X-NONE</p>
<p>/* Style Definitions */<br />
table.MsoNormalTable<br />
{mso-style-name:"Table Normal";<br />
mso-tstyle-rowband-size:0;<br />
mso-tstyle-colband-size:0;<br />
mso-style-noshow:yes;<br />
mso-style-priority:99;<br />
mso-style-qformat:yes;<br />
mso-style-parent:"";<br />
mso-padding-alt:0in 5.4pt 0in 5.4pt;<br />
mso-para-margin-top:0in;<br />
mso-para-margin-right:0in;<br />
mso-para-margin-bottom:10.0pt;<br />
mso-para-margin-left:0in;<br />
line-height:115%;<br />
mso-pagination:widow-orphan;<br />
font-size:11.0pt;<br />
font-family:"Calibri","sans-serif";<br />
mso-ascii-font-family:Calibri;<br />
mso-ascii-theme-font:minor-latin;<br />
mso-fareast-font-family:"Times New Roman";<br />
mso-fareast-theme-font:minor-fareast;<br />
mso-hansi-font-family:Calibri;<br />
mso-hansi-theme-font:minor-latin;}</p>
<p class="MsoNormal">
The order of convergence in any iterative scheme is directly<br />
related to the order of approximation made in the algorithm. For any numerical<br />
method that consists of approximation at many levels, the order of error is<br />
governed by the lowest order of approximation made in any intermediate schemes<br />
and machine precision. For example, if a numerical scheme consists of algorithm<br />
1, 2, 3 with order of error ε, ε2, ε4, respectively, then<br />
the order of error in the whole solution will be of order of ε.</p>
<p class="MsoNormal">
</p><p>To illustrate this point, let us consider the Taylor’s<br />
series of sine.</p>
<p class="MsoNormal">
<span><br /></span>
</p>
<p class="MsoNormal">
<span><br /></span>
</p>
<p class="MsoNormal">
</p><p><span> sin(x+</span><em>ε) = sin(x) + </em><em>ε cos(x) + O(</em><em>ε</em>2<span>).</span>
</p>
<p class="MsoNormal">
<span>Here, the order of approximation is <em>O</em>(</span><em>ε</em>2<span>).<span> <br /></span>Now, let us consider two methods: (1) sin(x) and cos(x) are calculated<br />
exactly, and (2) sin(x) and cos(x) are calculated from series expansion.</span>
</p>
<p class="MsoNormal">
<span>In method (2): I will further approximate sine and cosine using series expansion:</span>
</p>
<p class="MsoNormal">
</p><p>sin(x) = x + <span><em>O</em>(</span><em>ε</em>3<span>), cos(x) = 1 - x2/2 + O(x4)<br /></span>
</p>
<p class="MsoNormal">
<span><br /></span>
</p>
<p class="MsoNormal">
<span>Note, if we calculate sin(x+</span> ε<span>)<br />
from method (2), we have three levels of approximations. And therefore the<br />
lowest will govern. </span>
</p>
<p class="MsoNormal">
<span>For <strong><em>x</em> = 0.5</strong>, and </span><strong>ε = 0.01</strong>. <em>Assuming the machine results are exact up to six decimal places</em>,<br />
the following table illustrates the numerical values calculated.</p>
<p class="MsoNormal">
<strong><span>Function</span></strong>
</p>
<p class="MsoNormal">
<strong><span>Exact</span></strong>
</p>
<p class="MsoNormal">
<strong><span>Method 1</span></strong>
</p>
<p class="MsoNormal">
<strong><span>Method 2</span></strong>
</p>
<p class="MsoNormal">
<strong><span>sin(x)</span></strong>
</p>
<p class="MsoNormal">
<span>0.479426</span>
</p>
<p class="MsoNormal">
<span>0.479426</span>
</p>
<p class="MsoNormal">
<span>0.500000</span>
</p>
<p class="MsoNormal">
<strong><span>cos(x)</span></strong>
</p>
<p class="MsoNormal">
<span>0.877583</span>
</p>
<p class="MsoNormal">
<span>0.877583</span>
</p>
<p class="MsoNormal">
<span>0.875000</span>
</p>
<p class="MsoNormal">
<strong><span>sin(x+</span></strong><em> </em><strong>ε</strong><strong><span>)</span></strong>
</p>
<p class="MsoNormal">
<span>0.488177</span>
</p>
<p class="MsoNormal">
<span>0.488201</span>
</p>
<p class="MsoNormal">
<span>0.508750</span>
</p>
<p class="MsoNormal">
</p><p> </p>
<p class="MsoNormal">
</p><p>As can be seen above, in method 1, the lowest order of error<br />
is <em><span>O</span></em><span>(</span><em>ε</em>2<span>), and therefore </span><span>sin(x+</span><em> </em>ε<span>) shows accuracy until 3rd decimal place. In method 2,<br />
the error was accumulated from all the approximations; i.e. </span>
</p>
<p class="MsoNormal" align="center">
<span><br /></span>
</p>
<p class="MsoNormal">
<span>Numerically sine function made largest error, and therefore final<br />
solution is governed by sin(x).</span>
</p>
<p class="MsoNormal">
<span>Just for example, here I made very crude illustration in taking<br />
the values and order of approximation. But it does show, how error propagates<br />
in numerical analysis.</span>
</p>
<p class="MsoNormal">
<strong><span>Back to your question:</span></strong>
</p>
<p class="MsoNormal">
<span>Similar things are happening in force controlled and displacement<br />
controlled analyses. You have a UMAT, to which abaqus passes strains (STRAN and<br />
DSTRAN), and the UMAT calculates and returns the updated stress (STRESS) tensor<br />
and Jacobian matrix (DDSDDE). Abaqus uses this Jacobian matrix to generate<br />
stiffness matrix, and solves the equations for new displacements/forces.</span>
</p>
<p class="MsoNormal">
<span>In the case of force controlled, abaqus will assume and value of<br />
strain increment and will pass it to UMAT. Your Umat will calculate O(4) stress<br />
(which is quite accurate), and will return it to abaqus. Now abaqus will use it<br />
to solve the equations, and will make necessary adjustments based on Newton’s<br />
method (O(2)). So, even though you had very good accuracy in stress<br />
calculations, the displacements are still governed by newtons method, and<br />
therefore you see quadratic convergence only. <em>This is similar to Method 2.</em></span>
</p>
<p class="MsoNormal">
<span>On the other hand, when you make it displacement control, Abaqus<br />
does not need to approximate displacements (hence strain and strain<br />
increments), therefore your UMAT governs the convergence. <em>This is similar to Method 1.</em></span>
</p>
<p class="MsoNormal">
<em><span>On the side note: this is just coincidence, there are numerical<br />
schemes running inside the solver. So in the next case, even though you run analysis<br />
displacement control, you might not find the order 4 convergence. I hope this answers your question. </span></em>
</p>
<p> </p>
</div></div></div><ul class="links inline"><li class="comment_forbidden first last"><span><a href="/user/login?destination=node/12878%23comment-form">Log in</a> or <a href="/user/register?destination=node/12878%23comment-form">register</a> to post comments</span></li>
</ul>Wed, 08 Aug 2012 19:06:42 +0000Akumarcomment 19444 at https://imechanica.orgReformulation
https://imechanica.org/comment/19440#comment-19440
<a id="comment-19440"></a>
<p><em>In reply to <a href="https://imechanica.org/node/12878">ABAQUS - Does Newton's method affect the convergence rate of higher order incremental scheme such as RK4 implemented via UMAT?</a></em></p>
<div class="field field-name-comment-body field-type-text-long field-label-hidden"><div class="field-items"><div class="field-item even"><p>
Let me try to reformulate the problem here.
</p>
<p>
I am trying to understand the differences between the computations ABAQUS does when we apply strains OR stresses. In my problem, I am taking ABAQUS' output (either stress if strains are applied or strains if stresses are applied) and I do a convergence analysis on that output. It appears that when strains are applied (stress is the output), the solution converges with 4th order (with respect to time-step). However, when I apply stresses (strains are measured), the solution converges with lower order (between order 3 and 2). These results are very strange and I am wondering if the fault is ABAQUS.
</p>
<p>
</p>
<p>
I hope this clears some points about my problem.
</p>
<p>
Thanks in advance!
</p>
<p>
-Jack
</p>
</div></div></div><ul class="links inline"><li class="comment_forbidden first last"><span><a href="/user/login?destination=node/12878%23comment-form">Log in</a> or <a href="/user/register?destination=node/12878%23comment-form">register</a> to post comments</span></li>
</ul>Tue, 07 Aug 2012 14:49:53 +0000jack_lukcomment 19440 at https://imechanica.org