<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<style type="text/css" style="display:none;"> P {margin-top:0;margin-bottom:0;} </style>
</head>
<body dir="ltr">
<div class="elementToProof" style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
Hello,</div>
<div class="elementToProof" style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
<br>
</div>
<div class="elementToProof" style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
Currently I am using the block Jacobi preconditioner, and it's the only one which seems to give fast convergence for this problem so far. I actually did implement a matshell which redundantly stored each matrix on each rank (which was far less memory than explicitly
storing the Kronecker product) and computed the action of the Kronecker product in a semi-matrix-free way, however without the preconditioner the solver time was far too slow. Unfortunately, I forgot to make a backup of that matshell otherwise I would provide
the code for it. </div>
<div class="elementToProof" style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
<br>
</div>
<div class="elementToProof" style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
As far as the inverse goes, do you mean inverting the small matrices and then embed them in the larger Kronecker structure such that we have the inverse matrix of the linear system? I'm a bit confused because wouldn't the inversion of the entire large matrix
not only break the sparsity pattern inside the blocks, but also the block sparsity? I imagine this would also still use quite a bit of memory. However if I am mistaken I apologize.</div>
<div class="elementToProof" style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
<br>
</div>
<div class="elementToProof" style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
I appreciate the quick replies,</div>
<div class="elementToProof" style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
Rex Planalp </div>
<div id="appendonsend"></div>
<hr style="display:inline-block;width:98%" tabindex="-1">
<div id="divRplyFwdMsg" dir="ltr"><font face="Calibri, sans-serif" style="font-size:11pt" color="#000000"><b>From:</b> Jed Brown <jed@jedbrown.org><br>
<b>Sent:</b> Friday, January 17, 2025 12:10 AM<br>
<b>To:</b> Matthew Knepley <knepley@gmail.com>; Barry Smith <bsmith@petsc.dev><br>
<b>Cc:</b> petsc-users@mcs.anl.gov <petsc-users@mcs.anl.gov>; Donald Planalp <donaldrexplanalpjr@outlook.com><br>
<b>Subject:</b> Re: [petsc-users] KSP with large sparse kronecker product</font>
<div> </div>
</div>
<div class="BodyFragment"><font size="2"><span style="font-size:11pt;">
<div class="PlainText">Matthew Knepley <knepley@gmail.com> writes:<br>
<br>
> On Thu, Jan 16, 2025 at 6:26 PM Barry Smith <bsmith@petsc.dev> wrote:<br>
><br>
>><br>
>> I don't think we have good code for this case. But it is a good case<br>
>> and we should definitely provide support so it would be great to talk<br>
>> about.<br>
>><br>
>> Possibly start with the name :-) MATSKAIJ :-)<br>
>><br>
><br>
> Are you using any preconditioner? If not, you could just use a MATSHELL,<br>
> and compute the action of your Kronecker matrix.<br>
<br>
Also note that if each panel of the Kronecker product is small enough to solve an eigenproblem, you may want to use fast diagonalization to compute an exact inverse. The eigenproblem will have a dense solution (even though the matrix is sparse), but a few dense
eigenproblems of size a hundred or thousand could be faster than solving iteratively with systems in the millions.<br>
</div>
</span></font></div>
</body>
</html>