vectors cannot be retrieved from SVD when Type == 'cross' because BV Type is "not set"

Issue #23 resolved
Johnnie Gray created an issue

An error is raised (BV object's type is not set) when trying to retrieve vectors from SVD using either getVectors or getSingularTriplet, but only if the 'cross' method was specified.

The following snippet is a workaround

# ... setup and solve SVD instance
LBV, RBV = svd_solver.getBV()
LBV.setType(SLEPc.BV.Type.SVEC)
RBV.setType(SLEPc.BV.Type.SVEC)
# ... get vectors

although actually e.g. LBV.getType() already reports 'svec' before being set.

Comments (3)

  1. Jose E. Roman

    This problem appears only when svd_solver.setfromoptions() has not been called. A simple fix is to call it. The source of the problem is SLEPc (not slepc4py). I have pushed a fix in the maint branch. This fix will be available in 3.7.2 that will be published in a couple of weeks.

  2. Log in to comment