[petsc-users] PCFactorSetMatOrderingType not working with 3.21

Barry Smith bsmith at petsc.dev
Sun Aug 18 18:31:11 CDT 2024


   You can call 

  PCSetType(pc,PCILU); 
  KSPSetFromOptions(ksp);
  PCFactorSetMatOrderingType(pc,....);

  This reproduces the old behavior in PETSc.

   You can still pass -pc_type somethingelse at runtime to use a different PC.


> On Aug 18, 2024, at 6:19 PM, Zou, Ling <lzou at anl.gov> wrote:
> 
> Thank you, Barry. You must be right in this case. I am defaulting to ILU.
> I did an additional test to confirm, with ‘-pc_type ilu’ in the command line, it works fine.
>  
> If I am defaulting to ILU, when should I call PCFactorSetMatOrderingType?
>  
> -Ling
>  
>  
> From: Barry Smith <bsmith at petsc.dev <mailto:bsmith at petsc.dev>>
> Date: Sunday, August 18, 2024 at 12:22 PM
> To: Zou, Ling <lzou at anl.gov <mailto:lzou at anl.gov>>
> Cc: petsc-users at mcs.anl.gov <mailto:petsc-users at mcs.anl.gov> <petsc-users at mcs.anl.gov <mailto:petsc-users at mcs.anl.gov>>
> Subject: Re: [petsc-users] PCFactorSetMatOrderingType not working with 3.21
> 
> Are you using -pc_type ilu at the command line in your test? Or just letting it default to using ILU? This could explain the difference, the decision of what preconditioner to default to has moved until later in code, not when the PC is created 
> ZjQcmQRYFpfptBannerStart
> This Message Is From an External Sender
> This message came from outside your organization.
>  
> ZjQcmQRYFpfptBannerEnd
>  
>    Are you using -pc_type ilu  at the command line in your test? Or just letting it default to using ILU?
>  
>     This could explain the difference, the decision of what preconditioner to default to has moved until later in code, not when the PC is created or the matrix supplied but when it starts to build the preconditioner. Hence when you call PCFactorSetMatOrderingType() in the code the PC may not yet be set to ILU (or anything) hence the PCFactorSetMatOrderingType() is ignored,
>  
>  
> 
> 
> On Aug 17, 2024, at 3:44 PM, Zou, Ling <lzou at anl.gov <mailto:lzou at anl.gov>> wrote:
>  
> Barry, thanks.
> I am accessing PETSc through MOOSE. I need to figure out if the versions are consistent and how to test it.
> -Ling
>  
> From: Barry Smith <bsmith at petsc.dev <mailto:bsmith at petsc.dev>>
> Date: Saturday, August 17, 2024 at 12:08 PM
> To: Zou, Ling <lzou at anl.gov <mailto:lzou at anl.gov>>
> Cc: petsc-users at mcs.anl.gov <mailto:petsc-users at mcs.anl.gov> <petsc-users at mcs.anl.gov <mailto:petsc-users at mcs.anl.gov>>
> Subject: Re: [petsc-users] PCFactorSetMatOrderingType not working with 3.21
> 
> I have attached src/snes/tutorials/ex5. c in which I tried to reproduce your problem by inserting the code you've indicated. However I am not getting the problem you see, I am seeing, type: ilu out-of-place factorization 0 levels of fill tolerance
> ZjQcmQRYFpfptBannerStart
> This Message Is From an External Sender
> This message came from outside your organization.
>  
> ZjQcmQRYFpfptBannerEnd
>  
>    I have attached src/snes/tutorials/ex5.c in which I tried to reproduce your problem by inserting the code you've indicated.
>  
>    However I am not getting the problem you see, I am seeing,
>  
>     type: ilu
>       out-of-place factorization
>       0 levels of fill
>       tolerance for zero pivot 2.22045e-14
>       matrix ordering: rcm
>  
> 
> when I run with -pc_type ilu -snes_view
>  
>  Can you please confirm you get the same problem with the attached ex5.c ?  You could send your code to see if I can reproduce the problem.
>  
>   I am using the release branch of PETSc 
>  
>   Barry
>  
>  
>  
>  
> 
>  
> 
>  
> 
> On Aug 17, 2024, at 12:35 PM, Zou, Ling via petsc-users <petsc-users at mcs.anl.gov <mailto:petsc-users at mcs.anl.gov>> wrote:
>  
> Hi all,
>  
> The following codes are how I used to setup PC mat ordering:
>  
>   // Setup KSP/PC (at this moment, user-input options and commandline options are available)
>   SNESGetKSP(snes, &ksp);
>   KSPSetFromOptions(ksp);
>   PC pc;
>   KSPGetPC(ksp, &pc);
>   PCFactorSetMatOrderingType(pc, MATORDERINGRCM);
>   // PCFactorSetLevels(pc, 5);
>   SNESSetFromOptions(snes);
>  
> After switching to PETSc 3.21, this no longer works, and can be confirmed from ‘-snes_view’ output:
>  
>   PC Object: 1 MPI process
>     type: ilu
>       out-of-place factorization
>       0 levels of fill
>       tolerance for zero pivot 2.22045e-14
>       using diagonal shift to prevent zero pivot [NONZERO]
>       matrix ordering: natural
>  
> The command line option still works, i.e., ‘-pc_factor_mat_ordering_type rcm’ gives me the correct behavior.
>  
> Questions:
> Is this a bug introduced in the new version, or
> With the new version, I should call this function at a different time?
>  
> Best,
>  
> -Ling

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


More information about the petsc-users mailing list