running option: with -snes_mf and without -snes_mf
Barry Smith
bsmith at mcs.anl.gov
Tue Feb 24 21:30:30 CST 2009
Your Jacobian is wrong. It is close to being correct but has some
entries that are wrong. Run with
-snes_type test -snes_test_display for a small problem (like 10
unknowns) and it will show the entries that
are wrong.
Barry
On Feb 24, 2009, at 6:58 PM, (Rebecca) Xuefei YUAN wrote:
> Hi,
>
> I was writing a FormJacobianLocal() as a part of my project,
> however, I found that the result from two sets of running options
> (one with -snes_mf and one without it) are not the same, and they
> are not even close to each other. (The running result could be seen
> at the bottom of this email.)
>
> I believe there is sth wrong with my jacobian matrix and I double
> checked with my lines and cannot find what's wrong, so I am starting
> to debug the code in gdb.
>
> The difference between two codes are happened at MatMult which is
> located at SNESSolve_LS -- SNES_KSPSolve -- KSPSolve_FGMRES --
> FGMREScycle -- MatMult.
>
> With jacobian matrix given, it calls MatMult_Inode and with matrix
> free, it calls MatMult_MFFD.
>
> Any suggestions if I would like to track why and how those two give
> different results?
>
> Moreover, besides the reference "A Flexible Inner-Outer
> Preconditioned GMRES Algorithm" by Y. Saad 1993, is there any other
> references those codes(especially SNESSolve_LS) based on?
>
> Or is there an already written algorithm for SNESSolve_LS()?
>
> Thanks a lot!
>
> with -snes_mf:
> --------------------------------------------
> **************************************************
> 0 SNES Function norm 1.413389226096e+00
> 0 KSP Residual norm 1.413389226096e+00
> 1 KSP Residual norm 8.949990968008e-03
> 2 KSP Residual norm 1.701213729481e-11
> 1 SNES Function norm 2.550842882967e-09
> Nonlinear solve converged due to CONVERGED_FNORM_RELATIVE
> **************************************************
> time step = 1
> time = 1.0000000000000000e+00
> number of nonlinear iterations = 1
> number of linear iterations = 2
> function norm = 2.5508428829673858e-09
> -----------------------------------------------
> without -snes_mf**************************************************
> 0 SNES Function norm 1.413389226096e+00
> 0 KSP Residual norm 1.413389226096e+00
> 1 KSP Residual norm 1.417239245196e-03
> 2 KSP Residual norm 2.565960913946e-06
> 1 SNES Function norm 9.641118499860e-03
> 0 KSP Residual norm 9.641118499860e-03
> 1 KSP Residual norm 1.434927485205e-05
> 2 KSP Residual norm 2.360672583502e-09
> 2 SNES Function norm 1.310213342315e-04
> 0 KSP Residual norm 1.310213342315e-04
> 1 KSP Residual norm 1.466288489933e-07
> 2 KSP Residual norm 9.025797759583e-11
> 3 SNES Function norm 1.769344613096e-06
> 0 KSP Residual norm 1.769344613096e-06
> 1 KSP Residual norm 2.167360853642e-09
> 2 KSP Residual norm 5.034113683896e-13
> 4 SNES Function norm 2.351612245726e-08
> Nonlinear solve converged due to CONVERGED_PNORM_RELATIVE
> **************************************************
> time step = 1
> time = 1.0000000000000000e+00
> number of nonlinear iterations = 4
> number of linear iterations = 8
> function norm = 2.3516122457259199e-08
> **************************************************
>
> -----------------------------------------------
>
>
> -R
>
More information about the petsc-users
mailing list