[petsc-users] solving saddle point problem in distributed memory

Barry Smith bsmith at petsc.dev
Tue Jul 28 20:47:32 CDT 2020


   SuperLU_DIST won't "magically" run on saddle point problems. It only does limited pivoting, realistically a parallel LU cannot always do complete pivoting or it becomes a sequential algorithm. For parallel you need to use PCFIELDSPLIT, for sequential you can use SuperLU (not SuperLU_DIST) since it can do more pivoting, being a sequential algorithm.

  Barry


> On Jul 28, 2020, at 7:59 PM, Bin Liu <lbllm2018 at hotmail.com> wrote:
> 
> Thanks for your tutorials. Yes. I tried PCFIELDSPLIT. However, it only works for sequential runs. When I run the code in distributed memory, it reports errors. In fact, the essence of my wonder is (a) how to set up superlu_dist in petsc for solving saddle point problem in distributed memory? (b) does the direct solvers in petsc can run in distributed memory for solving saddle point problem?
>   <>
> From: Stefano Zampini [mailto:stefano.zampini at gmail.com <mailto:stefano.zampini at gmail.com>] 
> Sent: Tuesday, 28 July 2020 6:55 PM
> To: Bin Liu <lbllm2018 at hotmail.com <mailto:lbllm2018 at hotmail.com>>
> Cc: petsc-users at mcs.anl.gov <mailto:petsc-users at mcs.anl.gov>
> Subject: Re: [petsc-users] solving saddle point problem in distributed memory
>  
> If you want advice you should post the error trace PETSc reports.
>  
> Anyway, solving Stokes is not so trivial (without direct solvers, you may need mesh dependent information), but we have examples for it
>  
> https://gitlab.com/petsc/petsc/-/blob/master/src/ksp/ksp/tutorials/ex42.c <https://gitlab.com/petsc/petsc/-/blob/master/src/ksp/ksp/tutorials/ex42.c>
> https://gitlab.com/petsc/petsc/-/blob/master/src/ksp/ksp/tutorials/ex43.c <https://gitlab.com/petsc/petsc/-/blob/master/src/ksp/ksp/tutorials/ex43.c>
> https://gitlab.com/petsc/petsc/-/blob/master/src/snes/tutorials/ex69.c <https://gitlab.com/petsc/petsc/-/blob/master/src/snes/tutorials/ex69.c>
>  
> If you scroll to the end of those files, you see a bunch of possible options either using PCFIELDSPLIT,  PCBDDC or KSPFETIDP.
>  
> 
> 
> On Jul 28, 2020, at 12:37 PM, Bin Liu <lbllm2018 at hotmail.com <mailto:lbllm2018 at hotmail.com>> wrote:
>  
> I would like to solve a saddle point problem arising from the stokes equation. I got successful to use the direct solvers in sequential runs. However, I would like to extend it for distributed memory computation. I tried to use superlu_dist, but the program returns errors. Is it possible to solve a saddle point problem in distributed memory using superlu_dist? Could anyone give a simple sample code to set up the parameters of the solver?
>  
> Thanks

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mcs.anl.gov/pipermail/petsc-users/attachments/20200728/ee55e1d4/attachment.html>


More information about the petsc-users mailing list