- edited description
Right-preconditioned PETScKrylovSolver twice as expensive with monitor
Issue #817
new
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)
-
reporter -
reporter - edited description
-
Using
solver.monitor(true)
, etc also leaks memory. - Log in to comment