> El 6 jul 2018, a las 16:37, Gard Spreemann <[email protected]> escribió:
>
> On Friday 6 July 2018 16:18:27 CEST Jose E. Roman wrote:
>> SLEPc's default eigensolver 'krylovschur' does this kind of computation
>> repeatedly, in an outer loop (the restarts) until eigenvalues are converged.
>> If you call EPSSolve() with -eps_max_it 1 to avoid any restarts then you
>> will get something similar to what you want. The computed basis can be
>> retrieved with EPSGetBV(). However, this is not the intended usage, and
>> hence it is not documented. You will have to look at the source code and see
>> what is being computed.
>
> Thank you. I'll have a look and see if I can make sense of it.
>
> I had the impression that it's only possible to set the *maximum*
> dimension of the Krylov subspaces used though. Is that the case? I'd
> need to set the dimensionality exactly.
The dimension of the Krylov subspace is controlled by means of the ncv
parameter
http://slepc.upv.es/documentation/current/docs/manualpages/EPS/EPSSetDimensions.html
>
>> What do you need this for?
>
> I need to compute some good approximations of (the action of) certain
> polynomials of a matrix (on a vector). Looking around, it seems there
> are some very nice approximations available if one has an orthonormal
> basis for the Krylov subspaces up to power equal to the degree of the
> polynomial in question.
If you can explicitly compute the coefficients of the polynomial (in the
monomial basis) you could also consider using SLEPc's MFN module, that computes
f(A)*v where f can be a polynomial.
Jose
>
> I was therefore hoping there would be some way to leverage SLEPc's
> sophisticated Krylov code.
>
>
> Best,
> Gard
>
>
>
>