> On Feb 2, 2025, at 1:09 PM, Daniel.Abele--- via petsc-users 
> <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