The built in PETSc LU factorizations have special options to attempt to "shift" a singular matrix (by adding something to a zero pivot). These methods are ad hoc but sometimes perform satisfactory inside a preconditioner. See the manual page for PCLU in particular -pc_factor_shift_type <shifttype> - Sets shift type or PETSC_DECIDE for the default; use '-help' for a list of available types See also http://www.mcs.anl.gov/petsc/documentation/faq.html#zeropivot
Barry > On May 27, 2015, at 10:40 PM, Amneet Bhalla <[email protected]> wrote: > > Hi Folks, > > We are dealing with a singular matrix that arises from Stokes' equation with > Dirichlet velocity BCs. The way we are handling it is to pass nullspace info > to KSP, i.e, vector of {u,p} = {0,1}, and letting the matrix to be singular. > However, we are using ASM as the preconditioner and when the subpc covers the > entire domain (which can be the case in the preconditioning step of our MG > algorithm), LU decomposition fails. We are thinking of pinning one of the > pressure DOFs to zero explicitly, so that we can avoid singular matrix for > the LU decomposition. Is there another method of doing it, which avoids > explicit pinning down of an arbitrary pressure DOF? > > Thanks, > --Amneet > > -- > --Amneet > > >
