[petsc-users] Reuse KSP

Young, Matthew, Adam may at bu.edu
Tue Apr 17 07:48:15 CDT 2018




________________________________
From: Matthew Knepley <knepley at gmail.com>
Sent: Tuesday, April 17, 2018 8:38 AM
To: Young, Matthew, Adam
Cc: petsc-users at mcs.anl.gov
Subject: Re: [petsc-users] Reuse KSP

On Tue, Apr 17, 2018 at 8:33 AM, Young, Matthew, Adam <may at bu.edu<mailto:may at bu.edu>> wrote:

My code (C/C++) uses PETSc to solve a linear system at each iteration in a time-stepping scheme. The PETSc routines are separated out because the scheme that uses them is optional in the larger code.


At each time step, the PETSc scheme calls a routine that includes:


{

  Mat A;

  Vec x,b;

  KSP ksp;


  [Set up A,x,b]


  KSPCreate(PETSC_COMM_WORLD,&ksp);


  [Build A and b from simulation data]


  [Set nullspace of A with MatSetNullSpace]


  KSPSetOperators(ksp,A,A);

  KSPSetFromOptions(ksp);

  KSPSolve(ksp,b,x);


  [Write x into an instance of our array class, perform checks, etc.]


  KSPDestroy(&ksp);


  return(0);

}


My question is: If I want to use superLU_DIST with the option -mat_superlu_dist_fact SamePattern (or SamePattern_SameRowPerm), should I move KSPCreate/Destroy outside of the time-step loop in the larger code?

1) Yes

2) How are you using LU when A has a nullspace?
My bad - that code is in there from when I was trying iterative solvers. Should I remove it if I use LU or will PETSc just ignore it?

3) You can also move out SetFromOptions().
Thanks for the advice. So, that means I'll build A and b from simulation data, SetOperators(), Solve(), and carry on?

  Matt


Thanks.

----------------------------
Matthew Young
PhD Candidate
Astronomy Department
Boston University





--
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/>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mcs.anl.gov/pipermail/petsc-users/attachments/20180417/69ed5662/attachment-0001.html>


More information about the petsc-users mailing list