EPSSetInitialSpace set in FreeFem

Dear all,
Recently, I’m learning about SLEPc and I’m reading this help manual slepc.pdf. I find the Advanced Usage of EPS described in Chapter 2, section 6. Section 2.6.1 is about entering an initial guess into EPS.

This gives me a little insight that we can assign the calculated eigenmode to the next eigenvalues as an initial guess. In SLEPc, they provide the command EPSSetInitialSpace(EPS eps, PetscInt n, Vec is[]). However, I did not find similar examples in FreeFem. Is there anyone who can give me help or ideas?

Thank you in advance!

How many iterates does it take to solve your second eigenproblem?

Dear prj,

Thank you very much for your quick reply. If I didn’t use a special setting, this iterations of this eigenproblem wouldn’t be very large.

However, the calculation here appears to have a spurious eigenvalue with a growth rate greater than zero. Therefore, I want to try modifying the initial guess to see if this method can aviod spurious wigenvalue.

On the other hand, I am more interested in this method. In the future I may be able to compute much larger mesh quantities and problems with very many parameters, and the command EPSSetInitialSpace() may be necessary to speed up the computation.

You can look in plugin/mpi/SLEPc-code.hpp how EPSSetInitialSpace() is called. Basically, you need to use the argument vectors in EPSSolve(). But there is probably something wrong in your script, what spectral transformation are you using?

Thank you very much for your help. I may not fully understand this file plugin/mpi/SLEPc-code.hpp for the time being. I‘ll take more time to understand it.

In terms of spectral transformation, I’m using:

In fact, I didn’t try other method of spectral transformation. Do you think this parameter setting is wrong? However, among the four eigenvalue calculated above, the first one is correct one I need to require, and the second unstable one is the eigenvalue I think is wrong, and this eigenvalue will not converge significantly with mesh encryption.

Such a tolerance (lower than machine epsilon) does not make sense.

Yes, it was just a wrong attempt at the time and had no effect on the result.