[petsc-users] Zero diagonal term for direct solver

Qin Lu lu_qin_2000 at yahoo.com
Thu Jul 9 10:05:51 CDT 2020


 Thanks for all your input!
How can I set these options in the program instead of as runtime options (in the .petsc file)? For example, which subroutine shall I call to set '-pc_factor_nonzeros_along_diagonal", and what is corresponding argument value?
Thanks,Qin

    On Wednesday, July 8, 2020, 02:15:11 PM CDT, Barry Smith <bsmith at petsc.dev> wrote:  
 
 
  There is also -pc_factor_nonzeros_along_diagonal which reorders to move the zeros off the diagonal before the numerical factorization
  But if having 0 leads to a factorization without error then it will produce the correct answer (this means that zero got filled in during the factorization)


On Jul 8, 2020, at 2:11 PM, Mark Adams <mfadams at lbl.gov> wrote:


On Wed, Jul 8, 2020 at 2:43 PM Qin Lu via petsc-users <petsc-users at mcs.anl.gov> wrote:

Hello,
I am using the Petsc native direct solver (with KSPPREONLY and PCLU) to solver a small Linear equation system. The matrix has a couple of diagonal terms with value 0, which makes the solver fail. Then I set a very small value (e.g., 1e-10) at these terms and the solver works. Can this cause noticeable errors in the solution? 

Can't say. 
Are there any options in Petsc to make the direct solver do row/column pivoting so that all the diagonal terms are non-zero?

I see:

-pc_factor_pivot_in_blocks <true,false>- allow pivoting within the small blocks during factorization (may increase stability of factorization.

and


-pc_factor_shift_type <shifttype>- Sets shift type or PETSC_DECIDE for the default; use '-help' for a list of available types
-pc_factor_shift_amount <shiftamount>- Sets shift amount or PETSC_DECIDE for the default

 

Thanks for any suggestions.
Regards,Qin


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


More information about the petsc-users mailing list