<div dir="ltr">got it, thanks Pierre & Jose.</div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Mon, Aug 14, 2023 at 12:50 PM Jose E. Roman <<a href="mailto:jroman@dsic.upv.es">jroman@dsic.upv.es</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">See for instance ex3.c and ex9.c<br>
<a href="https://slepc.upv.es/documentation/current/src/eps/tutorials/index.html" rel="noreferrer" target="_blank">https://slepc.upv.es/documentation/current/src/eps/tutorials/index.html</a><br>
<br>
Jose<br>
<br>
<br>
> El 14 ago 2023, a las 10:45, Pierre Jolivet <<a href="mailto:pierre.jolivet@lip6.fr" target="_blank">pierre.jolivet@lip6.fr</a>> escribió:<br>
> <br>
> <br>
> <br>
>> On 14 Aug 2023, at 10:39 AM, maitri ksh <<a href="mailto:maitri.ksh@gmail.com" target="_blank">maitri.ksh@gmail.com</a>> wrote:<br>
>> <br>
>> <br>
>> Hi, <br>
>> I need to solve an eigenvalue problem  Ax=lmbda*x, 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: <br>
>>                      (((LU)^-H)*Q*(LU)^-1)*x = lmbda*x<br>
>> For a guess value of the (normalised) eigen-vector 'x', <br>
>> 1) one would require to solve two linear equations to get 'Ax', <br>
>>         (LU)*y=x,             solve for 'y',<br>
>>        ((LU)^H)*z=Q*y,   solve for 'z' <br>
>>     then one can follow the conventional power-iteration procedure<br>
>> 2) update eigenvector: x= z/||z||<br>
>> 3) get eigenvalue using the Rayleigh quotient <br>
>> 4) go to step-1 and loop through with a conditional break.<br>
>> <br>
>> Is there any example in petsc that does not require explicit declaration of the matrix 'A' (Ax=lmbda*x) and instead takes a vector 'Ax' 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.<br>
> <br>
> You could use SLEPc with a MatShell, that’s the very purpose of this MatType.<br>
> <br>
> Thanks,<br>
> Pierre<br>
> <br>
>> Maitri<br>
<br>
</blockquote></div>