<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">On Tue, Dec 22, 2015 at 7:51 AM, Feng Xing <span dir="ltr"><<a href="mailto:snakexf@gmail.com" target="_blank">snakexf@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Hello everyone,<br>
<br>
I want to solve Ax=b with a direct LU method many times where A is a parallel aij matrix. I found two ways in the doc and in some slides (maybe not updated).<br>
<br>
1.   KSPSetType(ksp,KSPPREONLY);<br>
      PCSetType(pc,PCLU);<br>
      PCFactorSetMatSolverPackage(pc,MATSOLVERSUPERLU_DIST);<br>
      KSPSetReusePreconditioner(ksp, PETSC_TRUE);<br>
      KSPSolve(A,b,x);<br></blockquote><div><br></div><div>Use the first method. In fact, if your matrix does not change, you do not even need</div><div>the Reuse flag. PETSc will automatically reuse the PC. The flag allows you to reuse</div><div>the PC for a changing matrix.</div><div><br></div><div>  Thanks,</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">
2.   MatGetOrdering(A, MATORDERINGNATURAL, &isr, &isc);<br>
      MatGetFactor(A, MATSOLVERMUMPS, MAT_FACTOR_LU, &A_fact);<br>
      MatLUFactorSymbolic(A_fact, A, isr, isc, &info);<br>
      MatLUFactorNumeric(A_fact, A, &info);<br>
      MatSolve(A_fact,b,x);<br>
<br>
I would like to ask if both of them allow to do one time LU factorisation, then implement backward/forward LU each KSPSolve or MatSolve?<br>
Besides, does the ways support superlu_dist and mumps?<br>
<br>
Thank you very much.<br>
<span class="HOEnZb"><font color="#888888"><br>
Feng Xing<br>
Postdoc in France<br>
<br>
    </font></span></blockquote></div><br><br clear="all"><div><br></div>-- <br><div class="gmail_signature">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></div>