<html><head><meta http-equiv="content-type" content="text/html; charset=utf-8"></head><body dir="auto"><div dir="ltr"></div><div dir="ltr"><br></div><div dir="ltr"><br><blockquote type="cite">On 14 Aug 2023, at 10:39 AM, maitri ksh <maitri.ksh@gmail.com> wrote:<br><br></blockquote></div><blockquote type="cite"><div dir="ltr"><div dir="ltr"><div>Hi, </div><div>I need to solve an eigenvalue problem  <b>Ax=lmbda*x</b>, where A=(B^-H)*Q*B^-1 is a hermitian matrix, 'B^-H' refers to the hermitian of the inverse of the matrix B. Theoretically it would take around 1.8TB to explicitly compute the matrix B^-1 . A feasible way to solve this eigenvalue problem would be to use the LU factors of the B matrix instead. So the problem looks something like this: </div><div>                     (<b>((LU)^-H)*Q*</b><b>(LU)^-1)*</b><b>x = lmbda*x</b></div><div>For a guess value of the (normalised) eigen-vector 'x', </div><div>1) one would require to solve two linear equations to get '<b>Ax</b>', </div><div>        (LU)*y=x,             solve for 'y',</div><div>       ((LU)^H)*z=Q*y,   solve for 'z' </div><div>    then one can follow the conventional power-iteration procedure</div><div>2) update eigenvector: x= z/||z||<br></div><div>3) get eigenvalue using the Rayleigh quotient </div><div>4) go to step-1 and loop through with a conditional break.</div><div><br></div><div>Is there any example in petsc that does not require explicit declaration of the matrix '<b>A</b>' (<b>Ax=lmbda*x)</b><b> </b>and<b> </b>instead takes a vector '<b>Ax</b>' as input for an iterative algorithm (like the one above). I looked into some of the examples of eigenvalue problems ( it's highly possible that I might have overlooked, I am new to petsc) but I couldn't find a way to circumvent the explicit declaration of matrix A.</div></div></div></blockquote><div><br></div><div>You could use SLEPc with a MatShell, that’s the very purpose of this MatType.</div><div><br></div><div>Thanks,</div><div>Pierre</div><br><blockquote type="cite"><div dir="ltr"><div dir="ltr"><div>Maitri</div><div><br></div><div><br></div><div><br></div></div>
</div></blockquote></body></html>