[petsc-users] Reuse KSP

Matthew Knepley knepley at gmail.com
Tue Apr 17 07:38:40 CDT 2018


On Tue, Apr 17, 2018 at 8:33 AM, Young, Matthew, Adam <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?

3) You can also move out SetFromOptions().

  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/7421dc09/attachment.html>


More information about the petsc-users mailing list