[petsc-users] KSP: when to use initial residual norm (ksp_converged_use_initial_residual_norm)
Daniel.Abele at dlr.de
Daniel.Abele at dlr.de
Tue Feb 4 12:01:22 CST 2025
Hi Barry,
thanks for the reply. We are not using any operator splitting method. Can I take from your answer that the initial residual norm is not recommended then?
We are solving a diffusion equation with FD and implicit time stepping (mostly euler, sometimes crank Nicholson.)
Regards,
Daniel
Von: Barry Smith <bsmith at petsc.dev>
Gesendet: Montag, 3. Februar 2025 17:17
An: Abele, Daniel <Daniel.Abele at dlr.de>
Cc: petsc-users at mcs.anl.gov
Betreff: Re: [petsc-users] KSP: when to use initial residual norm (ksp_converged_use_initial_residual_norm)
On Feb 2, 2025, at 1:09 PM, Daniel.Abele--- via petsc-users <petsc-users at mcs.anl.gov<mailto:petsc-users at mcs.anl.gov>> wrote:
Hi,
we are solving a time dependent problem with a single KSP in every time step. We are debating which convergence criterion to use. Is there general guidance around when to use one of the norms with initial residual (ksp_converged_use_initial_residual_norm or ksp_converged_use_min_initial_residual_norm) over the default norm?
If I understand the formulas correctly, the initial residual norm “norm(b – A * x0)” (maybe add preconditioning) means that if you have a very good initial guess (as is often the case in time dependent problems if you can use the result if the last time step as initial guess), the norm is much stricter than the default norm “norm(b)”.
The above statement is correct.
Is this meant as a way to control error accumulation over time? Or does it have some other purpose?
Thanks and Regards,
Daniel
For splitting-type methods, you want the error in the linear system solve, e, to be on the same order as the maximum error from the splitting, the explicit time-step discretization, and the implicit time-step discretization. So you need some estimate of that value.
Now
|| e ||_2 < || B(b - Ax) ||_2
-------------------
\lambda_min(BA).
For this you need a handle on \lambda_min(BA) which you can obtain with Lanczo using -ksp_monitor_singular_values. So the converge criteria should really depend on setting the -ksp_atol using the required bound on || e ||_2 and \lambda_min(BA).
PETSc should provide this convergence test but no one has gotten around to adding it.
Barry
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mcs.anl.gov/pipermail/petsc-users/attachments/20250204/51589c7f/attachment.html>
More information about the petsc-users
mailing list