[petsc-users] Basic question on making SNES continue its iterations

Barry Smith bsmith at mcs.anl.gov
Wed Jun 5 12:03:19 CDT 2013


    There are many things that can go wrong with Newton's method   See http://www.mcs.anl.gov/petsc/documentation/faq.html#newton  


On Jun 5, 2013, at 11:33 AM, Gaurish Telang <gaurish108 at gmail.com> wrote:

> I am trying to solve a non-linear system with PETSs's SNES solvers. 
> 
> To run my code, I am using the following options for snes set through the command-line, 
> seen below.
> 
> mpirun -np 1 ./Testvector \
> -fBus      $1/Bus.mat \
> -fYm       $1/Ym.mat \
>  -ft       $1/t.mat \
> -flinedata $1/linedata.mat \
> -nox \
> -snes_atol 1.e-5\
> -snes_stol 1.e-6 \
> -snes_rtol 1.e-12 \
> -snes_max_it 100 \
> -snes_max_linear_solve_fail 100  \
> -snes_converged_reason \
> -ksp_type preonly \
> -pc_type lu \
> -pc_factor_mat_solver_package superlu_dist \
> -snes_monitor \
> > result_superLU_dist.tmp 2>&1;
> 
> 
> After feeding my data, I get the following output
>  0 SNES Function norm 2.438306296478e+02 
>   1 SNES Function norm 1.679437793666e+02 
>   2 SNES Function norm 1.493618467597e+02 
>   3 SNES Function norm 4.622194635741e+01 
>   4 SNES Function norm 4.195017632984e+01 
> Nonlinear solve did not converge due to DIVERGED_LINE_SEARCH iterations 4
> 
> As you can see the the SNES function norm is *decreasing*, which indicates it is probably converging slowly to the actual solution. However after just 4 iterations, it stops and indicates non-convergence, even though my -snes_max_it = 100 as shown above. 
> 
> Is there a way to tell PETSc to continue its SNES iterations? Maybe some there are some 
> default parameters which have to be changed? 
> 
> Thank you
> 
> Gaurish



More information about the petsc-users mailing list