On Mon, Nov 10, 2014 at 10:28 PM, Jed Brown <[email protected]> wrote:
> Matthew Knepley <[email protected]> writes: > >> at which point the nullspace is not attached, no? > >> > > > > Crap, that is right. I think we should propagate the nullspace from > pmat[1]. > > Uh, there is no reason pmat[1] can be expected to have the same null > space. pmat[1] is the zero matrix in some important cases, and the null > space of the Schur complement (or its SIMPLE-type approximation) depends > on boundary conditions in a different block (thus problematic for > segregated assembly). I've been unsuccessful so far in my search for an > elegant solution, but passing the null space along in this way is > encouraging overt lying and can be expected to break other algorithms as > well as any consistency tests we might add in the future. > I know it can break, however here is my thinking. The user is completely in control here, and this is the only channel we have to pass the information. So I would make them responsible for breakage. We have excellent diagnostics here, so we can tell who has a null space right away. We have a lot of interface that allow a user to break PETSc in order to allow them to customize it sufficiently. Thanks, Matt -- 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
