<div dir="ltr">Hi there,<br>I have a matrix shell where the Mult operation looks like this:<br>y=1/2(K+K*) x<br>with K=M^-1 A and K* its transpose.<br><br><div>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?<br><br></div><div>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?<br><br></div>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?<br><br>MATOP_IS_HERMITIAN<br>MATOP_IS_STRUCTURALLY_SYMMETRIC<br><div>MATOP_IS_SYMMETRIC<br><br></div><div>Thank you,<br></div><div>Miguel<br></div></div>