I agree with what Jed says.

  One could argue that if the matrix was represented as a MatNest, the null 
space of the Schur complement is a property of the MatNest object and hence 
could/should be something that is attached to the matrix. Now if the Mat 
happens not to be a MatNest, the null space of the Schur complement is still a 
property of the Mat (and the index sets that define the part you are Schur 
complementing on), so again the null space could be attached to matrix (plus 
the index sets of the parts you are Schur complementing on). 

   Perhaps we need a generic way of attaching null spaces to parts of matrices 
and to parts of matrices in different basis (which is what a Schur complement 
is). So (and this is likely overly simplistic) one could supply a null space, 
an index set, and a flag indicating either "part of the matrix" or the "Schur 
complement of the matrix with respect to an index set".  These provided null 
spaces could then be used by the preconditioners (like Fieldsplit) that 
manipulate parts of the matrix or Schur complement.

  Barry



> On Nov 12, 2014, at 7:12 PM, Jed Brown <[email protected]> wrote:
> 
> Lawrence Mitchell <[email protected]> writes:
>> So is the problem that the nullspace belongs to the appropriate
>> operator, but at the point you tell the solver, you don't necessarily
>> have all the operators to hand?  Moreover, depending on the PC choice,
>> the nullspaces of the operator blocks may or may not be relevant?
> 
> Given the system [A B; C D], the null space of D has nothing to do with
> the null space of S = D - C A^{-1} B.  In some important cases, D is the
> zero matrix, for example.  Using MatSetNullSpace to set a null space on
> D (even if you have it in hand) is lying and may cause the wrong thing
> to happen if you use a different solver configuration (e.g., a
> relaxation split).
> 
> Attaching a null space to an IS is damn perverse because an index set is
> a bag of integers and you're labeling it with information about a Mat
> that is the result of some other algorithm using lots more information
> than just the IS (and done in a non-unique way).

Reply via email to