<div dir="ltr">Hi Matthew,<div><br></div><div>Thanks for letting me notice that algorithm I didn´t know, but I think it is not exactly the same. The two-step procedure that I want to implement within PETSC is the one shown in this article (<a href="https://epubs.siam.org/doi/abs/10.1137/100817978">https://epubs.siam.org/doi/abs/10.1137/100817978</a>) and I show you the reduced matrix for your convenience:</div><div><div><div><img src="cid:ii_ji34w61b1" alt="image.png" width="546" height="210"><br></div><br></div><div>A_1, A_2 are the blocks of the big original problem used for PCBJACOBI while R_1 and R_2 are some boolean matrices that select "nonzeros" of the off-diagonal blocks to build the reduced problem. As I told you, the algorithm that I am using is to compute the inverse of the A_1 with MUMPS and then solving that matrix with an iterative solver within PETSC, but I was wondering if I can merge everything inside PETSC doing the precondition PCBJACOBI of the big original problem and then indicating to PETSC where the reduced problem is.</div><div><br></div><div>I am so sorry if I explained myself wrong! Thanks a lot for your quick answer,</div><div><br></div><div>Adrian.</div><div><br></div><br></div></div><br><div class="gmail_quote"><div dir="ltr">El mié., 6 jun. 2018 a las 12:50, Matthew Knepley (<<a href="mailto:knepley@gmail.com">knepley@gmail.com</a>>) escribió:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">On Tue, Jun 5, 2018 at 6:46 PM, Adrián Amor <span dir="ltr"><<a href="mailto:aamor@pa.uc3m.es" target="_blank">aamor@pa.uc3m.es</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr">Hi all,<div><br></div><div>I think this is a basic question that I am pretty sure that it can be done in PETSC but I don't know the way, so sorry for wasting your time if it's too basic!</div><div><br></div><div>I have a big system of equations (say 1M of unknowns) which I divide into 25 blocks and I use a block-Jacobi preconditioner to get the solution from KSPBICG. However, I know that I can build a reduced matrix with the nonzeros of the big preconditioned matrix, solve this reduced problem, and then recover the solution for the original big system with the factorized matrices from block Jacobi. How can I do this with PETSC? Since using KSPComputeExplicitOperator and then copy blocks of this matrix to build the reduced surface problem in PETSC is definitely not an option.</div></div></blockquote><div><br></div><div>Its a little hard to understand what algorithm you are describing. Do you mean something like</div><div><br></div><div>  <a href="https://en.wikipedia.org/wiki/SPIKE_algorithm" target="_blank">https://en.wikipedia.org/wiki/SPIKE_algorithm</a></div><div><br></div><div>We do not have that. We can do additive/multiplicative iterations on these blocks using PCFIELDSPLIT (however the block operations would be serialized).</div><div>If you want something direct like this, have you tried just applying SuperLU_dist or MUMPS?</div><div><br></div><div>  Thanks,</div><div><br></div><div>    Matt</div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div>I was doing this by hand using MUMPS to build the reduced system of equations, then using PETSC without preconditioner and then, recover the full solution. However, the burden in time and memory is not negligible so I wanted to explore a different way with PETSC (using maybe some ILU). I think that the performance in memory is going to be similar but I expect a better performance in time.</div><div><br></div><div>Thanks a lot!</div><div><br></div><div>Adrian.</div></div>
</blockquote></div><br><br clear="all"><div><br></div>-- <br><div class="m_4676222913702072529gmail_signature"><div dir="ltr"><div><div dir="ltr"><div>What most experimenters take for granted before they begin their experiments is infinitely more interesting than any results to which their experiments lead.<br>-- Norbert Wiener</div><div><br></div><div><a href="http://www.caam.rice.edu/~mk51/" target="_blank">https://www.cse.buffalo.edu/~knepley/</a><br></div></div></div></div></div>
</div></div>
</blockquote></div>