Hi there, I have a matrix shell where the Mult operation looks like this: y=1/2(K+K*) x with K=M^-1 A and K* its transpose.
1- For setting-up the operation MatMult, since I need to do a KSPSolve on M, should I set-up the KSP on the operation MATOP_CREATE and destroy it on MATOP_DESTROY and store it as a global variable? 2- For "inverting" M, considering that M is symmetric, Should I (a) use LU, or should I (b) use an iterative procedure like CG with ILU, since M is symmetric positive definite? Is there a faster iterative method for a SPD matrix? 3- I want to use this matrix shell in SLEPc to compute the largest positive eigenvalue, which will be smaller in magnitude than the smallest negative real (possibly very close to zero). Since it is a matrix shell I assume that I can't really use Shift-and-invert without choosing an iterative procedure that only requires MatMult. What would be the best Method+Preconditioner for this case? Note that this is a Real Symmetric matrix (but not Positive definite). Should I set all of these as true? MATOP_IS_HERMITIAN MATOP_IS_STRUCTURALLY_SYMMETRIC MATOP_IS_SYMMETRIC Thank you, Miguel
