Hi Barry,<br>I got the following result:<br><br>vyan2000@vyan2000-linux ~/NCproject/general $ mpirun -np 1 ./HeatProfile1D -snes_mf_operator <br>Alarm clock<br>vyan2000@vyan2000-linux ~/NCproject/general $ mpirun -np 1 ./HeatProfile1D -snes_type test<br>
Alarm clock<br><br>Are they normal responses and what do they indicate?<br><br>Thanks a lot,<br><br>Yan <br><br><br><div class="gmail_quote">On Sun, Jan 10, 2010 at 5:57 PM, Barry Smith <span dir="ltr">&lt;<a href="mailto:bsmith@mcs.anl.gov">bsmith@mcs.anl.gov</a>&gt;</span> wrote:<br>
<blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;"><br>
  JUST run with -snes_mf_operator and then with -snes_type test NOT together,<br><font color="#888888">
<br>
   Barry</font><div><div></div><div class="h5"><br>
<br>
On Jan 10, 2010, at 4:42 PM, Ryan Yan wrote:<br>
<br>
<blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
Hi Barry,<br>
Please see reply below,<br>
<br>
On Sun, Jan 10, 2010 at 4:57 PM, Barry Smith &lt;<a href="mailto:bsmith@mcs.anl.gov" target="_blank">bsmith@mcs.anl.gov</a>&gt; wrote:<br>
<br>
On Jan 10, 2010, at 3:52 PM, Ryan Yan wrote:<br>
<br>
Hi Barry,<br>
Yes, exactly. The original multi-components system scale quite unevenly. I will try to rescale it.<br>
Could this be helpful to show some promise on quadratic convergence?<br>
<br>
  I won&#39;t be concerned about &quot;quadratic convergence&quot; I&#39;d only be concerned that it is converging to the correct answer and that you are getting close enough to the correct answer.<br>
<br>
Yes, I agree.<br>
<br>
   You can run with -snes_mf_operator and -snes_type test to verify if the Jacobian being computed is accurate. Perhaps in your function evaluation you are not using the stencil that you set with the DA, this would cause the wrong Jacobian to be computed.<br>

<br>
<br>
After passing in -snes_mf_operator and -snes_type test as follows:<br>
vyan2000@vyan2000-linux ~/NCproject/general : mpirun -np 2 ./HeatProfile1D -snes_mf_operator -snes_type test<br>
I got errors, as expected:<br>
<br>
[0]PETSC ERROR: --------------------- Error Message ------------------------------------<br>
[0]PETSC ERROR: Invalid argument!<br>
[0]PETSC ERROR: Cannot test with alternative preconditioner!<br>
[0]PETSC ERROR: ------------------------------------------------------------------------<br>
[0]PETSC ERROR: Petsc Release Version 3.0.0, Patch 5, Mon Apr 13 09:15:37 CDT 2009<br>
[0]PETSC ERROR: See docs/changes/index.html for recent updates.<br>
[0]PETSC ERROR: See docs/faq.html for hints about trouble shooting.<br>
[0]PETSC ERROR: See docs/index.html for manual pages.<br>
[0]PETSC ERROR: ------------------------------------------------------------------------<br>
[0]PETSC ERROR: ./HeatProfile1D on a O-hypre-p named vyan2000-linux by vyan2000 Sun Jan 10 17:16:00 2010<br>
[0]PETSC ERROR: Libraries linked from /home/vyan2000/local/PPETSc/petsc-3.0.0-p5/O-hypre-prometheus/lib<br>
[0]PETSC ERROR: Configure run at Thu Jun 25 13:49:36 2009<br>
[0]PETSC ERROR: Configure options --download-mpich=1 --with-debugger=gdb --download-hypre=1 --download-parmetis=1 --download-prometheus=1 --with-shared=0<br>
[0]PETSC ERROR: ------------------------------------------------------------------------<br>
[0]PETSC ERROR: SNESSolve_Test() line 28 in src/snes/impls/test/snestest.c<br>
[0]PETSC ERROR: SNESSolve() line 2221 in src/snes/interface/snes.c<br>
[0]PETSC ERROR: DMMGSolveSNES() line 510 in src/snes/utils/damgsnes.c<br>
[0]PETSC ERROR: DMMGSolve() line 372 in src/snes/utils/damg.c<br>
[0]PETSC ERROR: main() line 270 in /home/vyan2000/local/PPETSc/petsc-2.3.3-p15/src/ksp/ksp/examples/tutorials/NCprojectHeatProfile1D.c<br>
application called MPI_Abort(MPI_COMM_WORLD, 62) - process 0[cli_0]: aborting job:<br>
application called MPI_Abort(MPI_COMM_WORLD, 62) - process 0<br>
<br>
The error makes sense, since I did not pass in the analytical Jacobian for the preconditioner matrix. In stead, I was using DMMGSetSNESLocal(dmmg,FormFunctionLocal,0,ad_FormFunctionLocal,admf_FormFunctionLocal). I am going to change the code a bit, pass in the analytical Jacobian and do the -snes_type test.<br>

<br>
I will bear your suggestion in mind during the test.<br>
<br>
Thanks a lot,<br>
<br>
Yan<br>
<br>
<br>
<br>
  Barry<br>
<br>
<br>
<br>
Thanks a lot,<br>
<br>
Yan<br>
<br>
On Sun, Jan 10, 2010 at 4:35 PM, Barry Smith &lt;<a href="mailto:bsmith@mcs.anl.gov" target="_blank">bsmith@mcs.anl.gov</a>&gt; wrote:<br>
<br>
 You already got a 10^16 drop in the residual norm. It is not realistic to expect to get much more than that for double precision calculations. Perhaps your original F() has some funky scaling of different components that you can fix.<br>

<br>
<br>
<br>
 Barry<br>
<br>
<br>
On Jan 10, 2010, at 2:55 PM, Ryan Yan wrote:<br>
<br>
Hi All,<br>
I am solving a nonlinear system using snes. The -snes_monitor option has the following output:<br>
<br>
 0 SNES Function norm 2.640163923729e+09<br>
 1 SNES Function norm 1.047643565314e+08<br>
 2 SNES Function norm 1.712732074788e+06<br>
 3 SNES Function norm 1.002169173269e+04<br>
 4 SNES Function norm 1.655878303433e+03<br>
 5 SNES Function norm 3.746498305706e+02<br>
 6 SNES Function norm 8.317435704773e+01<br>
 7 SNES Function norm 1.857639969641e+01<br>
 8 SNES Function norm 4.149691057773e+00<br>
 9 SNES Function norm 9.265604042412e-01<br>
 10 SNES Function norm 2.069527103214e-01<br>
 11 SNES Function norm 4.624186491082e-02<br>
 12 SNES Function norm 1.035558432688e-02<br>
 13 SNES Function norm 2.341362958811e-03<br>
 14 SNES Function norm 5.507445427277e-04<br>
 15 SNES Function norm 1.485123568354e-04<br>
 16 SNES Function norm 5.180043781814e-05<br>
 17 SNES Function norm 2.341966514486e-05<br>
 18 SNES Function norm 1.344936158651e-05<br>
 19 SNES Function norm 1.054812641176e-05<br>
Number of Newton iterations = 19<br>
Converged reason is 4<br>
<br>
It looks like the iterate never falls into a quadratic convergence region before it converges. Is there any hint to understand this behavior?<br>
<br>
Thanks a lot,<br>
<br>
Yan<br>
<br>
<br>
<br>
<br>
<br>
<br>
</blockquote>
<br>
</div></div></blockquote></div><br>