[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