<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">On Mon, Jan 20, 2014 at 12:46 PM, Dharmendar Reddy <span dir="ltr"><<a href="mailto:dharmareddy84@gmail.com" target="_blank">dharmareddy84@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>
        I have a doubt regarding error condition for SNES. For F(X) =<br>
0, where X is a vector X = [x1 x2 x3 ....]', my understanding is, for<br>
convergence criteria based on X, SNES checks for</blockquote><div> </div><div>Convergence criteria should depend on what physics you want to resolve,</div><div>the experiments you want to compare with, etc. I don't think we can tell you</div>
<div>what to use. However,</div><div><br></div><div>  a) Your use of dX below is strange. Tolerances like these are vulnerable to</div><div>       stagnation of the iteration and I would never use them. PETSc uses something like</div>
<div><br></div><div>      norm2(F(x^k))/norm2(F(x^0)) < relTol || norm2(F(x^k)) < absTol</div><div><br></div><div>      which will tell you whether you have actually solved the equations</div><div><br></div><div>  b) The choice of norm depends on what needs to be accurate. norm2 is appropriate</div>
<div>       for energies (and other quadratic things), whereas norm1 makes sense for mass</div><div>       (and additive things). I don't have a physical motivation for norm_inf.</div><div><br></div><div>  c) You can always set your own convergence test</div>
<div><br></div><div>   Matt</div><div><br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"> <br></blockquote><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">

1) norm2(dX)/(rTol*norm2(X) + absTol) < 1 and converged if true.<br>
<br>
I have two other options to consider,<br>
<br>
2)  1/N * norm1 ( dX/ (rTol*abs(X)+aTol)) < 1 where N is the size of (X)<br>
<br>
3)  norm_infinity ( dX/  (rTol*abs(X)+aTol) ) < 1<br>
<br>
Which is a better option ? rather how should one decide which one to<br>
use ? I am trying to solve the semiconductor transport equations<br>
(poisson + particle convection). I use a comercial solver called<br>
synopsys TCAD, and it uses option 2 to test the convergence along with<br>
option 1 applied for testing convergence based on Function norm.<br>
<br>
I am inclined towards option 3 is more local and a stronger condition than 1.<br>
<br>
If i solve a set of couple equation<br>
<br>
F1(X1,X2,X3) = 0,<br>
F2(X1,X2,X3) = 0,<br>
F3(X1,X2,X3) = 0<br>
<br>
How do i use different absTol for X1, X2, and X3 to test the<br>
convergence criteria.<br>
<br>
Thanks<br>
<span class="HOEnZb"><font color="#888888">Reddy<br>
</font></span></blockquote></div><br><br clear="all"><div><br></div>-- <br>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>