[petsc-users] Computing residual norm in KSPFGMRESCycle()

Dave Lee davelee2804 at gmail.com
Thu Jul 4 19:29:29 CDT 2019


Hi PETSc,

I have a problem for which I need to exclude certain degrees of freedom
from the evaluation of the norm as used to monitor the residual in FGMRES
(don't ask!). Therefore I would like to replace the existing norm
evaluation with my own version.

Currently this is done within:
KSPFGMRESUpdateHessenberg(ksp,loc_it,hapend,&res_norm)
as:
*res = PetscAbsScalar(*RS(it+1));

Firstly, I would like to make sure I can replicate the existing residual
norm. I tried to do this as:
KSPFGMRESUpdateHessenberg(ksp,loc_it,hapend,&res_norm);
KSPFGMRESBuildSoln(fgmres->nrs,ksp >vec_sol,tmp_sol,ksp,loc_it);
VecNorm(tmp_sol,NORM_2,&res_tmp);
VecNorm(ksp->vec_rhs,NORM_2,&res_rhs);
res_norm = fabs(res_tmp-res_rhs);

But this doesn't match the norm that comes out of UpdateHessenberg.

Any ideas on how I can re-create the norm derived from UpdateHessenberg as
an expansion over the Kyrlov vectors in FGMRES?

Cheers, Dave.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mcs.anl.gov/pipermail/petsc-users/attachments/20190705/0ff4c5e3/attachment.html>


More information about the petsc-users mailing list