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 <bsm...@petsc.dev>
Gesendet: Montag, 3. Februar 2025 17:17
An: Abele, Daniel <daniel.ab...@dlr.de>
Cc: petsc-users@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@mcs.anl.gov<mailto:petsc-users@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




Reply via email to