On Tue, Jun 5, 2018 at 10:04 AM, Matthew Overholt <[email protected]> wrote:
> Barry, > > What I should have said was that I wanted to control when it does the > "Analysis" (phase 11), not Factoring (phase 22). > If you only change values in the matrix, but not the structure of the matrix, PETSc will only repeat the numerical factorization, not the symbolic factorization, which I think is what you want. Matt > 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. > > Matt... > > On Tue, Jun 5, 2018 at 5:03 AM, Smith, Barry F. <[email protected]> > wrote: > >> >> >> > On Jun 4, 2018, at 10:32 PM, Matthew Overholt <[email protected]> >> wrote: >> > >> > Hello, >> > >> > 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. >> >> Matt, >> >> 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? >> >> Barry >> >> -- What most experimenters take for granted before they begin their experiments is infinitely more interesting than any results to which their experiments lead. -- Norbert Wiener https://www.cse.buffalo.edu/~knepley/ <http://www.caam.rice.edu/~mk51/>
