[petsc-dev] strangness in Chebyshev estimate of eigenvalues

Mark Adams mfadams at lbl.gov
Sat Aug 22 21:26:45 CDT 2015


Good point.  I can not see any reason to use the initial guess for the
eigen estimate.  I would vote for (1).

Also, I hope cheb->random is the default.  One of my apps uses a zero RHS
for the first solve, just because they did not care about adding some logic
like: if (.not. first_solve) solve()  Using a zero RHS would be
catastrophic.  I trust this is true, because the code works, but we should
make sure.  And perhaps Cheby should check that that KSPSolve did all of
its iterations (ie, DIVERGE_ITS, or whatever).  Getting this wrong leads to
silent errors that are a pain to debug.

I can do this.

Mark



On Sat, Aug 22, 2015 at 6:35 PM, Barry Smith <bsmith at mcs.anl.gov> wrote:

>
>    From KSPSolve_Chebyshev()
>
>      X = ksp->work[0];
>       if (cheb->random) {
>         B    = ksp->work[1];
>         ierr = VecSetRandom(B,cheb->random);CHKERRQ(ierr);
>       } else {
>         B = ksp->vec_rhs;
>       }
>       ierr = KSPSolve(cheb->kspest,B,X);CHKERRQ(ierr);
>
>       if (ksp->guess_zero) {
>         ierr = VecZeroEntries(X);CHKERRQ(ierr);
>       }
>       ierr =
> KSPChebyshevComputeExtremeEigenvalues_Private(cheb->kspest,&min,&max);CHKERRQ(ierr);
>
>    This seems to do strange stuff with the initial guess for the
> eigenanalysis. ksp->work[0] is a work vector used within the Chebyshev
> algorithm, so at this point in the code it will have just whatever stuff it
> had in it from a previous Chebyshev solver or a zero the first time
> through. It seems bad to use this vector as the initial guess for
> estimator. Then AFTER the KSPSolve() it zeros  ksp->work[0], sometimes? If
> the original system being solved has zero initial guess, even though the
> values in X will not be used again. WTF?
>
>    Shouldn't the code either
>
> 1) zero X = ksp->work[0] everytime BEFORE the KSPSolve() or
> 2) zero X if ksp->guess_zero and otherwise copy into X the initial guess
> vec_sol from the caller before computing the eigenvalues to use that
> initial guess in estimating the eigenvalues?
>
>   Barry
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mcs.anl.gov/pipermail/petsc-dev/attachments/20150822/05e11c22/attachment.html>


More information about the petsc-dev mailing list