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 <[email protected]> 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 <[email protected] <mailto:[email protected]>>
> Date: Saturday, August 17, 2024 at 12:08 PM
> To: Zou, Ling <[email protected] <mailto:[email protected]>>
> Cc: [email protected] <mailto:[email protected]> 
> <[email protected] <mailto:[email protected]>>
> 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 
> <[email protected] <mailto:[email protected]>> 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

Reply via email to