<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">On Tue, Jun 5, 2018 at 10:04 AM, Matthew Overholt <span dir="ltr"><<a href="mailto:overholt@capesim.com" target="_blank">overholt@capesim.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">Barry,<div><br></div><div>What I should have said was that I wanted to control when it does the "Analysis" (phase 11), not Factoring (phase 22). </div></div></blockquote><div><br></div><div>If you only change values in the matrix, but not the structure of the matrix, PETSc will only repeat the numerical factorization,</div><div>not the symbolic factorization, which I think is what you want.</div><div><br></div><div> Matt</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div> We are solving the heat conduction equation, which makes for a nearly linear system; the non-linearity only enters through the material properties dependence on temperature, which is usually weak. We use the direct approach with several fixed point iterations to get the solution. We have found (in our non-PETSc code) that a lot of time can be saved, particularly when unsteady, by judiciously choosing when to (re)do the Analysis. Typically we do the Analysis on output time steps when unsteady, and just for the first fixed point iteration when steady.</div><div><br></div><div>Matt...</div><div class="gmail_extra"><br><div class="gmail_quote">On Tue, Jun 5, 2018 at 5:03 AM, Smith, Barry F. <span dir="ltr"><<a href="mailto:bsmith@mcs.anl.gov" target="_blank">bsmith@mcs.anl.gov</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><span><br>
<br>
> On Jun 4, 2018, at 10:32 PM, Matthew Overholt <<a href="mailto:overholt@capesim.com" target="_blank">overholt@capesim.com</a>> wrote:<br>
> <br>
> Hello,<br>
> <br>
> I am using KSP in KSPPREONLY mode to do a direct solve on an A*x = b system, with solver algorithms MUMPS, CPardiso and Pardiso. For Pardiso, is it possible to control the solver execution step (denoted "phase" in Intel's docs)? I would like to be able to control when it refactors as one can when calling it directly.<br>
<br>
</span> Matt,<br>
<br>
This is handled automatically by PETSc. If the matrix entries change than PETSc will automatically call the correct code to perform a new numerical factorization; if the matrix entries are not changed then it will not refactor the matrix. I am not sure if it makes sense for a user to be setting different phase values since it is handled automatically. Could you explain your exact use case where you would like to control the phase variable directly?<br>
<span class="m_2747826685420155052HOEnZb"><font color="#888888"><br>
Barry<br>
</font></span><div class="m_2747826685420155052HOEnZb"><div class="m_2747826685420155052h5"><br></div></div></blockquote></div></div></div>
</blockquote></div><br><br clear="all"><div><br></div>-- <br><div class="gmail_signature" data-smartmail="gmail_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>