Right-preconditioned PETScKrylovSolver twice as expensive with monitor

Issue #817 new
Jan Blechta created an issue

In PETScKrylovSolver there is KSPMonitorTrueResidualNorm which causes with right preconditioning that preconditioner is applied twice as many while this is completely useless considering that true and "preconditioned" norms are the same for right preconditioning.

This could be considered as a bug in PETSc and filed there.

The workaround is simple. Do not use solver.monitor(true) or solver.parameters["monitor_convergence"] = true but call rather PETScOptions::set(solver.get_options_prefix()+"ksp_monitor") and solver.set_from_options().

Comments (3)

  1. Log in to comment