[petsc-users] Shell matrices and complex NHEP SVD problems

Jose E. Roman jroman at dsic.upv.es
Sun Jul 15 03:35:47 CDT 2012


El 15/07/2012, a las 01:41, Matthew Knepley escribió:

> On Sat, Jul 14, 2012 at 6:30 PM, Miguel Fosas <miguel.fosas at gmail.com> wrote:
> Hi everyone,
> 
> I have a question concerning the usage of shell matrices with SLEPc
> and the SVD solvers. When I compute the largest singular values from a
> complex non-hermitian matrix A with SLEPc, the solver asks the user to
> provide MATOP_MULT and MATOP_MULT_TRANSPOSE operations for A.
> 
> As I have observed in the documentation of SLEPc, both the cyclic and
> cross solvers require matrix-vector product  of A* v, with A* the
> complex conjugate of A. After having taken a look at the source code,
> it is not clear to me how the complex case is handled.
> 
> The question is: for the complex case, does the implementation of
> MatMultTranspose have to compute A* v or A^T v? Is there a reason why
> it is not implemented using MatMultHermitianTranspose?
> 
> I believe it is done this way because we originally did not distinguish (they were not there in 2009). It
> should probably be updated.
> 
>     Matt
>  
> Thanks in advance,
> 
> Miguel.
> 

True. I will change it for the release. Thanks.

By the way, the MatOperation names are not very consistent: MATOP_MULT_TRANSPOSE and MATOP_MULTHERMITIANTRANSPOSE. Shouldn't it be MATOP_MULT_HERMITIAN_TRANSPOSE?

Jose



More information about the petsc-users mailing list