[petsc-users] Matrix free GMRES seems to ignore my initial guess
Smith, Barry F.
bsmith at mcs.anl.gov
Mon May 27 23:55:15 CDT 2019
This behavior where the residual norm jumps at restart indicates something is very very wrong. Run with the option -ksp_monitor_true_residual and I think you'll see the true residual is not decreasing as is the preconditioned residual. My guess is that your "action of the matrix" is incorrect and not actually a linear operator. Try using MatComputeExplicitOperator() and see what explicit matrix it produces, is it what you expect?
Barry
> On May 27, 2019, at 11:33 PM, Jan Izak Cornelius Vermaak via petsc-users <petsc-users at mcs.anl.gov> wrote:
>
> Hi all,
>
> So I am faced with this debacle. I have a neutron transport solver with a sweep code that can compute the action of the matrix on a vector.
>
> I use a matrix shell to set up the action of the matrix. The method works but only if I can get the solution converged before GMRES restarts. It gets the right answer. Now my first problem is (and I only saw this when I hit the first restart) is that it looks like the solver completely resets after the GMRES-restart. Below is an iteration log with restart interval set to 10. At first I thought it wasn't updating the initial guess but it became clear that it initial guess always had no effect. I do set KSPSetInitialGuessNonZero but it has no effect.
>
> Is the matrix-free business defaulting my initial guess to zero everytime? What can I do to actually supply an initial guess? I've used PETSc for diffusion many times and the initial guess always works, just not now.
>
> [0] Computing b
> [0] Iteration 0 Residual 169.302
> [0] Iteration 1 Residual 47.582
> [0] Iteration 2 Residual 13.2614
> [0] Iteration 3 Residual 4.46795
> [0] Iteration 4 Residual 1.03038
> [0] Iteration 5 Residual 0.246807
> [0] Iteration 6 Residual 0.0828341
> [0] Iteration 7 Residual 0.0410627
> [0] Iteration 8 Residual 0.0243749
> [0] Iteration 9 Residual 0.0136067
> [0] Iteration 10 Residual 169.302
> [0] Iteration 11 Residual 47.582
> [0] Iteration 12 Residual 13.2614
> [0] Iteration 13 Residual 4.46795
> [0] Iteration 14 Residual 1.03038
> [0] Iteration 15 Residual 0.246807
> [0] Iteration 16 Residual 0.0828341
> [0] Iteration 17 Residual 0.0410627
> [0] Iteration 18 Residual 0.0243749
> [0] Iteration 19 Residual 0.0136067
> [0] Iteration 20 Residual 169.302
>
> --
> Jan Izak Cornelius Vermaak
> (M.Eng Nuclear)
> Email: janicvermaak at gmail.com
> Cell: +1-979-739-0789
More information about the petsc-users
mailing list