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/ > >
