For testing purposes you can use -pc_type none -ksp_monitor_singular_value  
and see if it looks like the smallest singular value is converging to zero.




> On Oct 10, 2017, at 7:20 PM, Kong, Fande <[email protected]> wrote:
> 
> Thanks, Hong and Matt,
> 
> I think the matrix is singular.  I will be checking the implementation.
> 
> Fande,
> 
> On Tue, Oct 10, 2017 at 8:57 AM, Hong <[email protected]> wrote:
> Fande,
> '-pc_factor_shift_amount 1' is huge.
> Try use petsc default shift amount '1.e-14' by 
>  '-pc_factor_shift_type  nonzero' only.
> 
> Hong
> 
> On Tue, Oct 10, 2017 at 9:40 AM, Matthew Knepley <[email protected]> wrote:
> On Tue, Oct 10, 2017 at 10:36 AM, Kong, Fande <[email protected]> wrote:
> Hi Developers,
> 
> I am trying to use the native LU in PETSc to compute a matrix (arising from a 
> fluid-structure interaction problem). I encounter a zero pivot. The matrix 
> gives the wrong Newton direction when using "-pc_factor_shift_type  nonzero 
> -pc_factor_shift_amount 1".  I hence guess the matrix is singular.
> 
> Any easy way to detect if or not the matrix is singular??
> 
> That is the easiest way, namely having LU fail. You can catch the failure and 
> do something useful.
> 
>   Matt
>  
> Fande,
> 
> 
> 
> -- 
> What most experimenters take for granted before they begin their experiments 
> is infinitely more interesting than any results to which their experiments 
> lead.
> -- Norbert Wiener
> 
> https://www.cse.buffalo.edu/~knepley/
> 
> 

Reply via email to