Yes. You can use ex24.c with target=0 http://slepc.upv.es/documentation/current/src/eps/examples/tutorials/ex24.c.html Jose
> El 26 mar 2017, a las 18:25, Manav Bhatia <[email protected]> escribió: > > Thanks Jose! > > What would be a good way to calculate null space of A^2? Would I need to > create a shell matrix for A^2 and define matrix-vector products on this? > > -Manav > > >> On Mar 26, 2017, at 2:56 AM, Jose E. Roman <[email protected]> wrote: >> >> >>> El 26 mar 2017, a las 5:17, Manav Bhatia <[email protected]> escribió: >>> >>> Hi, >>> >>> I am working on some continuation problems and need to approximate the null >>> space of a matrix for bifurcation and branch switching. >>> >>> Are there algorithms available in Petsc to do this? Can Slepc be used to >>> calculate the null space of a matrix? I guess the eigenvectors >>> corresponding to zero eigenvalues would serve this purpose? Literature is >>> pointing me in the direction of more elaborate Moore-Spence algorithms. I >>> am not sure why an eigensolver cannot be used for this purpose. >>> >>> Any guidance would be greatly appreciated. >>> >>> Thanks, >>> Manav >>> >> >> You can use SLEPc to compute null space vectors, but some care must be taken. >> >> You can do simple tests with ex11.c: >> http://slepc.upv.es/documentation/current/src/eps/examples/tutorials/ex11.c.html >> This example deflates the null space, but you can comment out the call to >> EPSSetDeflationSpace() and then the zero eigenvalue will be computed >> explicitly. >> >> The first comment is that the default convergence criterion is relative to >> the eigenvalue, which is obvioulsy bad for the zero eigenvalue. So you >> should switch to the absolute convergence criterion: -eps_conv_abs >> >> The above should work for a semi-definite matrix. If the matrix is >> indefinite then computing the null space will be more difficult. In this >> case, I would try computing the null space of A^2. >> >> Finally, if the size of the null space is large, then the solver might have >> more difficulties. If this happens, try reducing the tolerance or >> deactivating locking: -eps_krylovschur_locking 0 >> >> Jose >
