I would like to use SVD factorization from SLEPc in rectangular sparse matrix.
The script below illustrates this type of matrices.
mesh0 = UnitSquareMesh(64, 64)
V0 = FunctionSpace(mesh0, "CG", 2)
V1 = FunctionSpace(mesh0, "CG", 1)
W = MixedFunctionSpace([V0, V1])
V0_dofs = W.sub(0).collapse(mesh0)[1].values()
(u0, u1) = TrialFunctions(W)
(v0, v1) = TestFunctions(W)
f = Expression("-10exp(-(pow(x[0] - 0.5, 2) + pow(x[1] - 0.5, 2)) / 0.02)")
g = Expression("sin(5x[0])")
a = inner(grad(u0 + u1), grad(v0)) * dx
L = f * (v0) * dx + g * (v0) * ds
A, b = assemble_system(A_form = a, b_form = L)
A0 = A[V0_dofs, :]
b0 = b[V0_dofs]
Can I access with dolfin this feature of SLEPc for computing the partial singular value decomposition (SVD) of a large sparse rectangular matrix?
( Are solvers such as Lanczos and thick-restart Lanczos bidiagonalization available? )
Thanks in advance!