[petsc-users] using preconditioner with SLEPc

Florian Bruckner e0425375 at gmail.com
Mon Feb 8 06:03:59 CST 2021


Dear PETSc / SLEPc Users,

my question is very similar to the one posted here:
https://lists.mcs.anl.gov/pipermail/petsc-users/2018-August/035878.html

The eigensystem I would like to solve looks like:
B0 v = 1/omega A0 v
B0 and A0 are both hermitian, A0 is positive definite, but only given as a
linear operator (matshell). I am looking for the largest eigenvalues
(=smallest omega).

I also have a sparse approximation P0 of the A0 operator, which i would
like to use as precondtioner, using something like this:

        es = SLEPc.EPS().create(comm=fd.COMM_WORLD)
        st = es.getST()
        ksp = st.getKSP()
        ksp.setOperators(self.A0, self.P0)

Unfortunately PETSc still complains that it cannot create a preconditioner
for a type 'python' matrix although P0.type == 'seqaij' (but A0.type ==
'python').
By the way, should P0 be an approximation of A0 or does it have to include
B0?

Right now I am using the krylov-schur method. Are there any alternatives if
A0 is only given as an operator?

thanks for any advice
best wishes
Florian
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mcs.anl.gov/pipermail/petsc-users/attachments/20210208/96104589/attachment.html>


More information about the petsc-users mailing list