Sequential solver superlu ILU supports drop tolerance. For example, 
petsc/src/ksp/ksp/tutorials/ex2.c:
./ex2 -pc_type ilu -pc_factor_mat_solver_type superlu -help |grep superlu
...
-mat_superlu_ilu_droptol: <now 0.0001 : formerly 0.0001>: ILU_DropTol (None)

i.e., you can run it as
$ ./ex2 -pc_type ilu -pc_factor_mat_solver_type superlu 
-mat_superlu_ilu_droptol 0.0001 -ksp_monitor
  0 KSP Residual norm 7.483267010387e+00
  1 KSP Residual norm 5.109625265233e-05
Norm of error 5.10959e-05 iterations 1

$ ./ex2 -pc_type ilu -pc_factor_mat_solver_type superlu 
-mat_superlu_ilu_droptol 0.001 -ksp_monitor
  0 KSP Residual norm 7.473227154663e+00
  1 KSP Residual norm 5.916533165499e-03
  2 KSP Residual norm 1.638603182685e-06
Norm of error 1.6387e-06 iterations 2

Hong
________________________________
From: petsc-users <petsc-users-boun...@mcs.anl.gov> on behalf of Barry Smith 
<bsm...@petsc.dev>
Sent: Tuesday, February 27, 2024 11:27 AM
To: Константин Мурусидзе <konstantin.murusi...@math.msu.ru>
Cc: petsc-users@mcs.anl.gov <petsc-users@mcs.anl.gov>
Subject: Re: [petsc-users] Problem of using PCFactorSetDropTolerance

We don't consider drop tolerance preconditioners as reliable or robust so I 
don't see anyone implementing it. On Feb 27, 2024, at 10: 11 AM, Константин 
Мурусидзе <konstantin. murusidze@ math. msu. ru> wrote: Thank you! Should we 
expect it
ZjQcmQRYFpfptBannerStart
This Message Is From an External Sender
This message came from outside your organization.

ZjQcmQRYFpfptBannerEnd

   We don't consider drop tolerance preconditioners as reliable or robust so I 
don't see anyone implementing it.



On Feb 27, 2024, at 10:11 AM, Константин Мурусидзе 
<konstantin.murusi...@math.msu.ru> wrote:

Thank you! Should we expect it to appear in the near future?


27.02.2024, 18:07, "Barry Smith" <bsm...@petsc.dev>:

   I'm sorry for the confusion. PETSc does not have a drop tolerance ILU so 
this function does nothing as you've noted.

   Barry


On Feb 27, 2024, at 7:27 AM, Константин Мурусидзе 
<konstantin.murusi...@math.msu.ru<mailto:konstantin.murusi...@math.msu.ru>> 
wrote:

This Message Is From an External Sender
This message came from outside your organization.
Hello! I have such problem, while solving linear system and using 
PCFactorSetDropTolerance. As I understand this  function could significantly 
reduce number of iterations of system of solution, but there is no iterations 
decreasing.I had try a lot of options for this function, but there is no result
Could you suggest me if I have some mistake, while I setting up the 
preconditioner?

    PetscCall(KSPSetType(ksp, KSPCG));
    PetscCall(KSPSetInitialGuessNonzero(ksp,PETSC_TRUE));
    PetscCall(KSPSetNormType(ksp, KSP_NORM_DEFAULT));
    PetscCall(KSPCGSetType(ksp, KSP_CG_SYMMETRIC));

    PetscCall(KSPGetPC(ksp, &pc));
    PetscCall(PCSetType(pc, PCILU));
    PetscCall(PCFactorSetShiftType(pc, MAT_SHIFT_POSITIVE_DEFINITE));

    PetscCall(PCFactorSetLevels(pc, 2));
    PetscCall(PCFactorSetReuseOrdering(pc,PETSC_TRUE));
    PetscCall(PCFactorSetDropTolerance(pc, 1.e-5, 1.e-3, 10000));
    PetscCall(PCFactorSetZeroPivot(pc, 1.e-3));
    PetscCall(KSPSetTolerances(ksp, 1.e-8, 1.e-8, PETSC_DEFAULT, 
PETSC_DEFAULT));

    PetscCall(KSPSetFromOptions(ksp));

    PetscCall(KSPSolve(ksp, b, x));
     PetscCall(KSPGetIterationNumber(ksp, &its));


Reply via email to